Yuan2.0(源2.0)是浪潮信息发布的新一代基础语言大模型。我们开源了全部的3个模型Yuan2.0-102B、Yuan2.0-51B和Yuan2.0-2B。并且提供了预训练、微调、推理服务的相关脚本,以供研发人员做进一步的开发。Yuan2.0是在Yuan1.0的基础上,利用更多样的高质量预训练数据和指令微调数据集,令模型在语义、数学、推理、代码、知识等不同方面具备更强的理解能力。
近期,我们对Yuan2.0-2B模型进行了优化升级,在微调数据集构成上进行了整体和局部的配比调优,均衡模型在各领域的性能表现。从评测结果上来看,新版本的Yuan2.0-2B模型在推理、代码、对话等领域,均取得了显著的成果,其中在HumanEval数据集上的评测准确率由54.9%提升至61.5%,在GSM8K数据集上的评测准确率由66.6%提升至70.2%。
YuanChat(源Chat) 是Yuan-2.0 项目的一部分, 作为Yuan2.0的一个客户端应用. YuanChat 提供了一种简单的交互方式,可以让用户很轻松的使用 Yuan2.0, 用户可以很方便的进行测试以及使用。
首先,请在系统中安装DockerDesktop,完成安装后,启动Docker Desktop,启动成功后,会看到如下页面?
中。?
注意: 如果你的环境中不存在GPU或你想在CPU模式下运行,需要修改模型文件config.json和yuan_hf_model.py
1. config.json
将 ‘user_flash_attention ’的值改为 ‘false’
2. yuan_hf_model.py
1)注释掉 yuan_hf_model.py中第35、36行;
2)修改yuan_hf_model.py中第271行代码为:
inference_hidden_states_memory = torch.empty (bsz, 2, hidden_states.shape[2], dtype=hidden_states.dtype)
另外,我们同时提供了已经修改好的文件,分别为config_cpu.json和yuan_hf_model_cpu.py,可以将这两个文件分别重命名为config.json和yuan_hf_model.py,替换原有的两个文件即可。
我们封装了一个可直接运行Yuan Model推理和YuanChat的镜像,可已通过如下命令进行拉取。
到此,我们的所有准备工作已经完成,可以开始运行测试了。
# powder shell
# 进入到模型文件所在目录
cd f:\yuandemo
# 启动模型+Chat服务
docker run -d --name all-in-one -p 5050:5050 -v f:\yuandemo\Yuan2-2B-hf:/models yuanmodel/yuanchat:all-cpu
打开Docker Desktop的Containers菜单,可以看到一个名为all-in-one的容器,查看此容器的详情?
?当详情页出现如下输出时,表示服务启动完毕?
用浏览器打开地址:http://localhost:5050,会看到如下页面
到此,恭喜你已完成部署,现在可以体验和测试Yuan大模型了!
如果你是初次安装的Docker Desktop,或没有配置过.wslconfig文件,在启动服务时,会出现如下错误:
2024-01-05 17:14:04 You are using the default legacy behaviour of the <class 'transformers.models.llama.tokenization_llama.LlamaTokenizer'>. This is expected, and simply means that the `legacy` (previous) behavior will be used so nothing changes for you. If you want to use the new behaviour, set `legacy=False`. This should only be set if you understand what it means, and thoroughly read the reason why this was added as explained in https://github.com/huggingface/transformers/pull/24565
2024-01-05 17:14:04 Creat tokenizer...
2024-01-05 17:14:04 Creat model...
Loading checkpoint shards:?? 0%|????????? | 0/3 [00:00<?, ?it/s]start.sh: line 4:???? 8 Killed????????????????? python -u run_text_generation_server_hf.py
.wslconfig文件是wsl的默认配置文件,可以通过在.wslconfig文件中设置参数,来改变wsl的默认值
1. win+R,并输入%UserProfile%,点击回车
2. Windows的DockerDesktop默认是运行在wsl2模式下,所以我们要新建配置文件来修改wsl的默认值。
在打开的目录中新建.wslconfig文件,用记事本打开,并输入如下内容
其中“memory”是最大虚拟内存限制,“processors”是最大虚拟CPU数量,“swap”为0表示禁止使用交换内存
[wsl2]
memory=16GB
processors=4
swap=0
3. 重启wsl
修改完wsl配置文件后,需要重新启动wsl才能使配置文件生效。打开Powershell,并执行如下命令
wsl --shutdown
4. 重新启动Docker Desktop
在重启完wsl后,Docker Desktop会退出,现在我们需要重新打开Docker Desktop
5. 重启服务
打开Docker Desktop后,在Container菜单中找到all-in-one容器,点击重启按钮