🚀 Ziya-LLaMA-13B-v1
Ziya-LLaMA-13B-v1 是基于 LLaMa 的 130 亿参数指令微调模型,专注于写作任务,能完成公文报告、讲稿书信、创意文案等多类写作。
相关链接
✨ 主要特性
姜子牙系列模型包含多个版本,各有特点和用途:
📦 安装指南
安装所需的软件依赖,执行以下命令:
pip install torch==1.12.1 tokenizers==0.13.3 git+https://github.com/huggingface/transformers
📚 详细文档
模型分类
属性 |
详情 |
需求 |
写作 |
任务 |
AGI 模型 |
系列 |
姜子牙 Ziya |
模型 |
LLaMA |
参数 |
13B |
额外 |
English&Chinese |
模型信息
有监督微调
我们从网络收集并清洗大量真实的真人写作数据,用 GPT - 3.5 生成对应写作指令,并经过严格人工校验。在此基础上,利用奖励模型和清洗逻辑,挑选高难度写作指令,剔除简单数据,保证指令多样性。通过 evol - instruct 方法,生成约 30 万条高质量通用指令数据,混合通用指令和写作指令数据,使模型兼具良好意图理解和优秀回答生成能力。
人类反馈学习
实验发现,用少量人类标注的高质量写作排序数据,通过强化学习训练模型,可提升写作效果。为进一步提升模型表现,减少“幻觉”和不安全输出,基于指令微调后的模型进行人类反馈训练(HFT),采用人类反馈强化学习(RM、PPO)。在内部自研框架上实现 HFT 训练流程,最少用 8 张 40G 的 A100 显卡完成全参数训练。PPO 训练中不限制样本长度,确保长文本任务奖励准确,每次训练总经验池超 100k 样本,保证训练充分性。
效果评估
写作文案评价较主观,难用准确率或满意度衡量。因此采用匿名模型多人 Side - by - Side 评估机制,收集 100 条不同难度写作指令数据评估,后续会公开评测集。以胜出率评价模型,计算公式为:胜出率 =(该模型的胜出数量 + 打平数量 / 2)/ 总标注数。一般胜出率大于 55% 表示显著胜出,小于 45% 表示明显落后,45% 至 55% 表示基本持平。
对比模型 |
平均胜出率 |
最大胜出率 |
最小胜出率 |
vs Ziya-LLaMa-13B-v1.1 |
70.7 |
73.5 |
69 |
vs baichuan-vicuna-7b |
69.6 |
73.5 |
68 |
vs Moss-16B |
65.1 |
69 |
62 |
vs ChatGLM2-6B |
58.3 |
61.5 |
56 |
vs Minimax-abab5 |
52.3 |
53 |
50.5 |
vs GPT-3.5-turbo |
44.7 |
49.5 |
38 |
注:最大胜出率和最小胜出率是对每个标注人员结果单独统计,平均胜出率是汇总所有标注人员结果统计。
💻 使用示例
基础用法
由于 LLaMA 权重的许可限制,该模型不能用于商业用途,请严格遵守 LLaMA 的使用政策。
from transformers import AutoTokenizer
from transformers import LlamaForCausalLM
import torch
device = torch.device("cuda")
query="帮我写一份去西安的旅游计划"
model = LlamaForCausalLM.from_pretrained("IDEA-CCNL/Ziya-Writing-LLaMa-13B-v1", torch_dtype=torch.float16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("IDEA-CCNL/Ziya-Writing-LLaMa-13B-v1", use_fast=False)
inputs = '<human>:' + query.strip() + '\n<bot>:'
input_ids = tokenizer(inputs, return_tensors="pt").input_ids.to(device)
generate_ids = model.generate(
input_ids,
max_new_tokens=2048,
do_sample = True,
top_p = 0.85,
temperature = 0.85,
repetition_penalty=1.,
eos_token_id=2,
bos_token_id=1,
pad_token_id=0)
output = tokenizer.batch_decode(generate_ids)[0]
print(output)
微调示例
参考 ziya_finetune
推理量化示例
参考 ziya_inference
🔧 技术细节
模型训练
模型训练过程包括有监督微调、人类反馈学习等步骤,在数据收集、处理、指令生成和训练方法上都有严格的流程和策略,以确保模型在写作任务上的性能。
评估机制
采用匿名模型多人 Side - by - Side 评估机制,通过计算胜出率来客观评价模型在写作文案任务中的表现。
📄 许可证
本模型使用 GPL - 3.0 许可证。
引用
如果您在工作中使用了我们的模型,可以引用以下内容:
引用论文
@article{fengshenbang,
author = {Jiaxing Zhang and Ruyi Gan and Junjie Wang and Yuxiang Zhang and Lin Zhang and Ping Yang and Xinyu Gao and Ziwei Wu and Xiaoqun Dong and Junqing He and Jianheng Zhuo and Qi Yang and Yongfeng Huang and Xiayu Li and Yanghan Wu and Junyu Lu and Xinyu Zhu and Weifeng Chen and Ting Han and Kunhao Pan and Rui Wang and Hao Wang and Xiaojun Wu and Zhongshen Zeng and Chongpei Chen},
title = {Fengshenbang 1.0: Being the Foundation of Chinese Cognitive Intelligence},
journal = {CoRR},
volume = {abs/2209.02970},
year = {2022}
}
引用网站
@misc{Fengshenbang-LM,
title={Fengshenbang-LM},
author={IDEA-CCNL},
year={2021},
howpublished={\url{https://github.com/IDEA-CCNL/Fengshenbang-LM}},
}
⚠️ 重要提示
由于 LLaMA 权重的许可限制,该模型不能用于商业用途,请严格遵守 LLaMA 的使用政策。