title: chinese-alpaca-plus-7b
emoji: 📚
colorFrom: gray
colorTo: red
language:
- zh
tags:
- chatglm
- pytorch
- zh
- Text2Text-Generation
license: other
widget:
- text: 为什么天空是蓝色的?
Chinese Alpaca Plus 7B Model
发布中文LLaMA, Alpaca Plus版(7B)模型
推出中文LLaMA, Alpaca Plus版(7B),相比基础版本的改进点如下:
- 进一步扩充了训练数据,其中LLaMA扩充至120G文本(通用领域),Alpaca扩充至4M指令数据(重点增加了STEM相关数据)
- Alpaca训练时采用了更大的rank,相比原版具有更低的验证集损失
- 评测结果显示,Alpaca-Plus-7B相比基础版Alpaca-7B效果更优,部分任务接近或超过13B版本
- 这一轮比拼:7B获得65.3分,13B获得70.9分,Plus-7B效果75.3分,具体评测结果请参考效果评测
本模型是原生LLaMA-7B
合并中文LLaMA LoRA
和中文Alpaca LoRA
后的模型权重chinese-alpaca-plus-7b-hf
,并转化为HuggingFace版本权重(.bin文件),可以直接使用或者继续训练。
13b-hf权重链接:https://huggingface.co/shibing624/chinese-alpaca-plus-13b-hf
test case:
input_text | predict |
---|---|
为什么天空是蓝色的? | 天空是蓝色的,是因为大气层中的气体分子会散射太阳光中的蓝色光,使得我们看到的天空是蓝色的。 |
Usage
本项目开源在textgen项目:textgen,可支持llama模型,通过如下命令调用:
Install package:
pip install -U textgen
from textgen import LlamaModel
model = LlamaModel("llama", "shibing624/chinese-alpaca-plus-7b-hf")
r = model.predict(["用一句话描述地球为什么是独一无二的。"])
print(r) # ['地球是独一无二的,因为它拥有独特的大气层、水循环、生物多样性以及其他自然资源,这些都使它成为一个独特的生命支持系统。']
Usage (HuggingFace Transformers)
Without textgen, you can use the model like this:
First, you pass your input through the transformer model, then you get the generated sentence.
Install package:
pip install sentencepiece
pip install transformers>=4.28.0
import torch
import transformers
from transformers import LlamaTokenizer, LlamaForCausalLM
def generate_prompt(text):
return f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
{text}
### Response:"""
tokenizer = LlamaTokenizer.from_pretrained('shibing624/chinese-alpaca-plus-7b-hf')
model = LlamaForCausalLM.from_pretrained('shibing624/chinese-alpaca-plus-7b-hf').half().cuda()
model.eval()
text = '为什么天空是蓝色的?'
prompt = generate_prompt(text)
input_ids = tokenizer.encode(prompt, return_tensors='pt').to('cuda')
with torch.no_grad():
output_ids = model.generate(
input_ids=input_ids,
max_new_tokens=128,
temperature=1,
top_k=40,
top_p=0.9,
repetition_penalty=1.15
).cuda()
output = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(output.replace(text, '').strip())
output:
为什么天空是蓝色的?
天空是蓝色的,是因为大气层中的气体分子会散射太阳光中的蓝色光,使得我们看到的天空是蓝色的。
模型来源
release合并后的模型权重,一步到位直接使用,省电、减少碳排放。
基于 多LoRA权重合并(适用于Chinese-Alpaca-Plus )方法手动合并而成,具体是使用 decapoda-research/llama-7b-hf 底座模型 合并 Chinese-LLaMA-Plus-LoRA和Chinese-Alpaca-Plus-LoRA 两个LoRA权重 得到,并转化为HuggingFace版本权重(.bin文件)。
HuggingFace版本权重(.bin文件)可用于:
- 使用Transformers进行训练和推理
- 使用text-generation-webui搭建界面
PyTorch版本权重(.pth文件)可用于:
- 使用llama.cpp工具进行量化和部署
PyTorch版本权重(.pth文件)链接,8-bit量化版的Alpaca-Plus-7B:Billsfriend/chinese-Alpaca-7b-plus-ggml-q8_0
模型文件组成:
chinese-alpaca-plus-7b-hf
config.json
generation_config.json
pytorch_model-00001-of-00002.bin
pytorch_model-00002-of-00002.bin
pytorch_model.bin.index.json
special_tokens_map.json
tokenizer.json
tokenizer.model
tokenizer_config.json
硬件要求:14G显存
微调数据集
我整理部分公开微调数据集:
- 50万条中文ChatGPT指令Belle数据集:BelleGroup/train_0.5M_CN
- 100万条中文ChatGPT指令Belle数据集:BelleGroup/train_1M_CN
- 5万条英文ChatGPT指令Alpaca数据集:50k English Stanford Alpaca dataset
- 5万条中文GPT4指令Alpaca数据集:shibing624/alpaca-zh
- 69万条中文指令Guanaco数据集(Belle50万条+Guanaco19万条):Chinese-Vicuna/guanaco_belle_merge_v1.0
如果需要训练LLaMA模型,请参考https://github.com/shibing624/textgen
Citation
@software{textgen,
author = {Xu Ming},
title = {textgen: Implementation of language model finetune},
year = {2023},
url = {https://github.com/shibing624/textgen},
}