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
为什么天空是蓝色的? 天空是蓝色的,是因为大气层中的气体分子会散射太阳光中的蓝色光,使得我们看到的天空是蓝色的。

release model weight

Usage

本项目开源在textgen项目:textgen,可支持llama模型,通过如下命令调用:

Install package:

pip install -U textgen
from textgen import GptModel
model = GptModel("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显存

微调数据集

我整理部分公开微调数据集:

  1. 50万条中文ChatGPT指令Belle数据集:BelleGroup/train_0.5M_CN
  2. 100万条中文ChatGPT指令Belle数据集:BelleGroup/train_1M_CN
  3. 5万条英文ChatGPT指令Alpaca数据集:50k English Stanford Alpaca dataset
  4. 5万条中文GPT4指令Alpaca数据集:shibing624/alpaca-zh
  5. 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},
}

Reference

Open LLM Leaderboard Evaluation Results

Detailed results can be found here

Metric Value
Avg. 42.46
ARC (25-shot) 49.23
HellaSwag (10-shot) 70.48
MMLU (5-shot) 38.39
TruthfulQA (0-shot) 39.72
Winogrande (5-shot) 70.09
GSM8K (5-shot) 0.68
DROP (3-shot) 28.61
Downloads last month
1,472
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Spaces using shibing624/chinese-alpaca-plus-7b-hf 30