🚀 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 的使用政策。