IEIT-Yuan / Yuan-2.0

Yuan 2.0 Large Language Model
Other
681 stars 86 forks source link

源2.0

Read this in English.

📔 更为详细的使用信息,可以参考:源2.0 论文

目录

持续更新🔥🔥🔥

介绍

源2.0 是浪潮信息发布的新一代基础语言大模型。我们开源了全部的3个模型源2.0-102B,源2.0-51B和源2.0-2B。并且我们提供了预训练,微调,推理服务的相关脚本,以供研发人员做进一步的开发。源2.0是在源1.0的基础上,利用更多样的高质量预训练数据和指令微调数据集,令模型在语义、数学、推理、代码、知识等不同方面具备更强的理解能力。


对本仓库源码的使用遵循开源许可协议 Apache 2.0

源2.0模型支持商用,不需要申请授权,请您了解并遵循《源2.0模型许可协议》,勿将开源模型和代码及基于开源项目产生的衍生物用于任何可能给国家和社会带来危害的用途以及用于任何未经过安全评估和备案的服务。

尽管模型在训练时我们已采取措施尽力确保数据的合规性和准确性,但模型参数量巨大且受概率随机性因素影响,我们无法保证输出内容的准确性,且模型易被输入指令所误导,本项目不承担开源模型和代码导致的数据安全、舆情风险或发生任何模型被误导、滥用、传播、不当利用而产生的风险和责任。您将对通过使用、复制、分发和修改模型等方式利用该开源项目所产生的风险与后果,独自承担全部责任。

源大模型共训计划

我们希望开源的模型更符合开发者应用需求,为此我们推出源大模型共训计划,开发者提出自己的应用或场景的需求,由我们来准备训练数据并对源大模型进行增强训练,训练后的模型依然在社区开源。

每月六日我们会收集前一月开发者提出的具体需求,经过评审后列入当月模型训练计划,训练完成后的模型在当月月末就会更新到开源社区。开发者只需要提出需求,由我们来进行数据准备、模型训练并开源。请开发者在issue的“源大模型共训计划”问题下提出具体需求,提出需求的具体格式无要求,只需要说清楚具体的应用场景、对大模型的能力需求以及给出输入输出的说明。

以下是提出需求的一些示例(几条示例,能够反应场景的典型特性即可):

  1. 场景需求:能够基于业务场景生成相关内容,对场景的描述。  输入:用户问题,输出:正确的答案。

  2. 场景需求:我想让大模型能够阅读一个领域下的多篇论文,给出这些论文的综述,当前领域研究的热点以及未解决的问题,从而辅助学术研究。 输入为:一个领域下的多篇论文,输出为:综述研究报告,研究热点总结,未解决问题总结。

快速启动

详细启动文档可参考快速启动.

环境配置

我们建议使用有我们提供的最新的docker镜像文件.

我们可以通过下面命令启动容器:

docker pull yuanmodel/yuan2.0:V1-base
docker run --gpus all --privileged --ulimit stack=68719476736 --shm-size=1000G -itd -v /path/to/yuan_2.0:/workspace/yuan_2.0 -v /path/to/dataset:/workspace/dataset -v /path/to/checkpoints:/workspace/checkpoints --name your_name yuanmodel/yuan2.0:V1-base
docker exec -it your_name bash

数据预处理

我们提供了数据预处理的脚本,参考数据预处理说明文档.

预训练

我们提供了用于预训练的文档和 example的脚本,具体使用方法可以参考预训练说明文档.

模型微调

请参考指令微调 源2.0 指令微调示例

请注意,不同的微调脚本对应的模型并不相同,请根据需要选择对应的模型。

支持使用llama-factory进行指令微调

支持使用fastchat进行多轮对话的微调

模型

源2.0 是浪潮信息发布的新一代基础语言大模型。我们开源了全部的3个模型:源2.0-102B、源2.0-51B、源2.0-2B。提供预训练、微调、推理服务的相关脚本,以供研发人员做进一步开发。源2.0是在源1.0的基础上,利用更多样的高质量预训练数据和指令微调数据集,令模型在语义、数学、推理、代码、知识等不同方面具备更强的理解能力。

🥇🥇🥇 我们提供了源2.0的模型文件,可以通过以下链接进行下载:

Hugging Face版本

模型 序列长度 下载链接
源2.0-102B-hf 4K ModelScope | HuggingFace | OpenXlab | 百度网盘 | WiseModel
源2.0-51B-hf 4K ModelScope | HuggingFace | OpenXlab | 百度网盘 | WiseModel
源2.0-2B-hf 8K ModelScope | HuggingFace | OpenXlab | 百度网盘 | WiseModel
源2.0-2B-Janus-hf 8K ModelScope | HuggingFace | OpenXlab | 百度网盘 | WiseModel
源2.0-2B-Februa-hf 8K ModelScope | HuggingFace | OpenXlab | 百度网盘 | WiseModel
源2.0-2B-Mars-hf New
8K ModelScope | HuggingFace | OpenXlab | 百度网盘 | WiseModel

https://huggingface.co/IEITYuan/Yuan2-2B-Mars-hf

原始版本

模型 序列长度 下载链接
源2.0-102B 4K ModelScope | OpenXlab | 百度网盘 | WiseModel
源2.0-51B 4K ModelScope | OpenXlab | 百度网盘 | WiseModel
源2.0-2B 8K ModelScope | OpenXlab | 百度网盘 | WiseModel
源2.0-2B-Janus 8K ModelScope | OpenXlab | 百度网盘 | WiseModel
源2.0-2B-Februa 8K ModelScope | OpenXlab | 百度网盘 | WiseModel

源2.0-2B模型支持的序列长度为8192个tokens,源2.0-51B和源2.0-102B模型支持的序列长度为4096个tokens,可以根据用户设备的内存大小设置 --max-position-embeddings--seq-length 的值。

评测结果

我们提供了HumanEvalAGIEval-GK-MathGSM8KTruthfulQA的评估脚本,以方便大家复现我们的评测结果。在4个典型任务上,我们在论文中给出了源2.0不同尺寸模型的精度。

Model GSM8K AGIEval-GK-Math-QA AGIEval-GK-Math-Cloze HumanEval TurthfulQA
GPT-4 92% 47.0% 16.1% 86.6% 59%
ChatGPT 68.6%* 36.5% 7.3% 66.5%* 34%*
Llama2 56.8% - - 29.9% -
源2.0-102B 76.6% 38.7% 13.5% 67.1% 58%
源2.0-102B-SC 86.2% 45.5% 15.2% 77.4% -

* 使用与源2.0完全相同的输入数据对ChatGPT进行测试,时间2023年11月

代码调用

考虑到推理服务的效率,源2.0-51B和源2.0-102B模型在启动推理服务之前,需要将模型转换成只有张量并行的模型文件。可以参考文档

可以通过调用推理服务,向推理服务发送请求实现模型的调用,源2.0 推理服务

详细启动推理服务的流程可以参考 Yuan2_inference_guide文档

可以使用replicate.com/ieit-yuan进行yuan2.0的线上api调用 ,具体操作方式参考replicate的官方文档。在LangChain和llamaIndex中使用replicate的教程可参考:https://python.langchain.com/docs/integrations/providers/replicatehttps://docs.llamaindex.ai/en/stable/api_reference/llms/replicate.html

推理资源需求

模型规格 最低GPU显存(推理) 最低GPU显存(微调)
2B 6GB 80GB
51B 4*80GB 32*80GB
102B 8*80GB 96*80GB

源2.0 + 源Chat部署

使用 源Chat(YuanChat) 可以快速构建基于源2.0大模型的对话应用,源Chat 提供了一种简单的交互方式,支持在linux部署和Windows 操作系统上的便捷部署。

linux部署

Step 1: 根据 源2.0 推理服务,获取推理服务的 request url:http://127.0.0.1:8000 ,支持ckpt和HuggingFace两种模型方式部署

Step 2: 根据 源Chat部署文档 完成源Chat的部署

Step 3: 在浏览器中访问链接:http://localhost:5050,验证是否部署正确

Windows部署

🔘 GPU部署

Step 1: 根据 源2.0 推理服务,获取推理服务的 request url:http://127.0.0.1:8000 ,支持ckpt和HuggingFace两种模型方式部署

Step 2: 根据 源Chat部署文档 完成源Chat的部署

Step 3: 在浏览器中访问链接:http://localhost:5050,验证是否部署正确

🔘 CPU部署

仅支持HuggingFace模型方式部署

Step 1: 通过修改HuggingFace模型配置文件手动关闭flash_atten,具体如下:将config_cpu.json 内容替代config.json, 将yuan_hf_model_cpu.py 内容替代yuan_hf_model.py

Step 2: 根据 Hugging Face 模型推理api部署 ,获取推理服务的 request url:http://127.0.0.1:8000

Step 3: 根据 源Chat部署文档 完成源Chat的部署

Step 4: 在浏览器中访问链接:http://localhost:5050,验证是否部署正确

详细部署方案可以参考 源2.0源Chat

TensorRT-LLM推理服务部署

性能测试

我们比较了Yuan2.0-2B的trt_llm模型和原始的megatron模型进行的推理速度

max_output_len=300, prompt="写一篇春游作文"

Batch_size Megatron(推理速度:token/s) trt-llm-engine_2B(推理速度:token/s) 性能提升(倍)
1 29 124 4.35
4 114 477 4.17
8 229 880 3.85
16 432 1888 4.37
32 842 3326 3.95
64 1684 6724 3.99

详细部署方案可以参考TensorRT-LLM Yuan

联系我们

1.给我们发邮件:air_service@ieisystem.com

2.加入开发者微信群: 扫码关注“源AI看世界”公众号,发送消息 “入群” 获取开发者技术交流群二维码。   Image text

招聘公告

我们正在招聘大模型框架研发、推理性能优化、开源社区运营方向相关专家。

请申请者将个人简历发送至邮箱(wushaohua@ieisystem.com),并注明邮件主题”源项目团队应聘简历-个人名字”。