🚀 雅意大模型
雅意大模型在百萬級人工構造的高質量領域數據上微調而來,覆蓋多領域上百種自然語言指令任務。它增強了中文基礎與領域分析能力,還增加了插件能力。經過用戶內測優化,進一步提升了性能與安全性。開源此模型,旨在為中文預訓練大模型開源社區貢獻力量,與夥伴共建雅意大模型生態。
🚀 快速開始
以下是一個簡單調用 yayi-7b
進行下游任務推理的示例代碼,可在單張 A100/A800/3090 等GPU運行,使用FP16精度推理時約佔用 20GB 顯存。若需獲取訓練數據或基於 yayi-7b
進行模型微調,請參考我們的 💻Github Repo。
基礎用法
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
import torch
yayi_7b_path = "wenge-research/yayi-7b"
tokenizer = AutoTokenizer.from_pretrained(yayi_7b_path)
model = AutoModelForCausalLM.from_pretrained(yayi_7b_path, device_map="auto", torch_dtype=torch.bfloat16)
prompt = "你好"
formatted_prompt = f"<|System|>:\nA chat between a human and an AI assistant named YaYi.\nYaYi is a helpful and harmless language model developed by Beijing Wenge Technology Co.,Ltd.\n\n<|Human|>:\n{prompt}\n\n<|YaYi|>:"
inputs = tokenizer(formatted_prompt, return_tensors="pt").to(model.device)
eos_token_id = tokenizer("<|End|>").input_ids[0]
generation_config = GenerationConfig(
eos_token_id=eos_token_id,
pad_token_id=eos_token_id,
do_sample=True,
max_new_tokens=100,
temperature=0.3,
repetition_penalty=1.1,
no_repeat_ngram_size=0
)
response = model.generate(**inputs, generation_config=generation_config)
print(tokenizer.decode(response[0]))
注意,模型訓練時添加了 special token <|End|>
作為結束符,因此上述代碼 GenerationConfig
裡將 eos_token_id
設置為該結束符對應的 token id。
✨ 主要特性
- 多領域數據訓練:雅意大模型在百萬級人工構造的高質量領域數據上進行指令微調,訓練數據覆蓋媒體宣傳、輿情分析、公共安全、金融風控、城市治理等五大領域,上百種自然語言指令任務。
- 能力增強:從預訓練初始化權重到領域模型的迭代過程中,逐步增強了中文基礎能力和領域分析能力,並增加了部分插件能力。
- 持續優化:經過數百名用戶內測過程中持續不斷的人工反饋優化,進一步提升了模型性能和安全性。
📚 詳細文檔
相關協議
侷限性
基於當前數據和基礎模型訓練得到的SFT模型,在效果上仍存在以下問題:
- 在涉及事實性的指令上可能會產生違背事實的錯誤回答。
- 對於具備危害性的指令無法很好的鑑別,可能會產生危害性言論。
- 在一些涉及推理、代碼、多輪對話等場景下模型的能力仍有待提高。
免責聲明
基於以上模型侷限性,我們要求開發者僅將我們開源的代碼、數據、模型及後續用此項目生成的衍生物用於研究目的,不得用於商業用途,以及其他會對社會帶來危害的用途。請謹慎鑑別和使用雅意大模型生成的內容,請勿將生成的有害內容傳播至互聯網。若產生不良後果,由傳播者自負。
本項目僅可應用於研究目的,項目開發者不承擔任何因使用本項目(包含但不限於數據、模型、代碼等)導致的危害或損失。詳細請參考免責聲明。
開源協議
本項目中的代碼依照 Apache - 2.0 協議開源,數據採用 CC BY - NC 4.0 協議,YaYi 系列模型權重的使用則需要遵循 Model License。
🔧 技術細節
模型初始化與參考
- 本項目使用了 BigScience 的 [bloomz - 7b - mt](https://huggingface.co/bigscience/bloomz - 7b1 - mt) 模型權重作為初始化權重,並基於詞表進行擴展。
- 本項目訓練代碼參考了 Databricks 的 dolly 項目及 Huggingface transformers 庫。
- 本項目分佈式訓練使用了 Microsoft 的 DeepSpeed 分佈式訓練工具及 Huggingface transformers 文檔中的 [ZeRO stage 2](https://huggingface.co/docs/transformers/main_classes/deepspeed#zero2 - config) 配置文件。
信息表格
屬性 |
詳情 |
模型類型 |
雅意大模型(YaYi) |
訓練數據 |
覆蓋媒體宣傳、輿情分析、公共安全、金融風控、城市治理等五大領域,上百種自然語言指令任務的百萬級人工構造高質量領域數據 |