🚀 雅意大模型
雅意大模型在百万级人工构造的高质量领域数据上微调而来,覆盖多领域上百种自然语言指令任务。它增强了中文基础与领域分析能力,还增加了插件能力。经过用户内测优化,进一步提升了性能与安全性。开源此模型,旨在为中文预训练大模型开源社区贡献力量,与伙伴共建雅意大模型生态。
🚀 快速开始
以下是一个简单调用 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) |
训练数据 |
覆盖媒体宣传、舆情分析、公共安全、金融风控、城市治理等五大领域,上百种自然语言指令任务的百万级人工构造高质量领域数据 |