# Yi-1.5 ## 论文 `Yi: Open Foundation Models by 01.AI` - [https://arxiv.org/abs/2403.04652] ## 模型架构 Yi 模型采用了基于 LLaMA 实现的修改版decoder-only Transformer 架构。主要改进包括: 注意力机制: Yi 在 6B 和 34B 模型中引入了分组查询注意力(GQA),以减少训练和推理成本,7B 和 13B 使用全注意力。 激活函数: 使用 SwiGLU 作为后注意力层,调整激活大小以与现有模型保持一致,并补偿由 GQA 引起的参数减少。 位置嵌入和长上下文: 采用 RoPE 并调整基频以支持长达 200K 的上下文窗口。通过持续预训练和轻量级微调,模型在长上下文检索性能上接近完美,表明模型具有内在的建模长依赖关系的能力。 ## 算法原理 Yi-1.5是一个 decoder-only 的 transformer 模型,使用 SwiGLU激活函数、GQA、RoPE等是Yi的升级版本,它在Yi的基础上进行了持续预训练,使用了500B(即500十亿)个高质量语料库的token,并且在300万个多样化的微调样本上进行了微调。与Yi相比,Yi-1.5在编程、数学、推理和指令遵循能力方面表现更强,同时仍然保持了在语言理解、常识推理和阅读理解方面的卓越能力。
## 环境配置 ### Docker(方法一) 此处提供[光源](https://www.sourcefind.cn/#/service-details)拉取 docker 镜像的地址与使用步骤 ``` docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-py3.10-dtk24.04.3-ubuntu20.04 docker run -it --shm-size=1024G -v : -v /opt/hyhal:/opt/hyhal --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name Yi-1.5 bash # 为以上拉取的docker的镜像ID替换 cd /home/Yi-1.5-pytorch pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip uninstall vllm ``` ### Dockerfile(方法二) 此处提供 dockerfile 的使用方法 ``` docker build -t yi-1.5-df:latest . docker run -it --shm-size=1024G -v : -v /opt/hyhal:/opt/hyhal --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name yi-1.5 yi-1.5-df bash pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pip uninstall vllm ``` ### Anaconda(方法三) 此处提供本地配置、编译的详细步骤,例如: 关于本项目 DCU 显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。 ``` DTK驱动:dtk24.04.3 python:python3.10 torch: 2.1.0 torchvision: 0.16.0 deepspeed:0.12.3 bitsandbytes: 0.42.0 triton:2.1.0 ``` `Tips:以上dtk驱动、python、paddle等DCU相关工具版本需要严格一一对应` 其它非深度学习库参照 requirements.txt 安装: ``` pip install -r requirements.txt ``` `Tips:transformers>=4.36.2,<4.39` ## 数据集 使用alpaca_en.json数据集,已经包含在data目录中,具体文件为alpaca_en_demo.json 项目中已提供用于试验训练的迷你数据集,训练数据目录结构如下,用于正常训练的完整数据集请按此目录结构进行制备: ``` ── data ├── alpaca_en_demo.json.json └── alpaca_zh_demo.json.json ``` ## 训练 根据实际路径修改模型路径和数据集路径 ### 单机单卡 ``` cd finetune sh single_node.sh ``` ### 单机多卡 ``` cd finetune sh multi_node.sh ``` ## 推理 ``` cd inference python 6B_single_dcu.py ``` ## result 使用的加速卡:2张 DCU-K100-64G
### 精度 测试数据:[alpaca_en_demo.json],使用的加速卡:K100-64G,2卡训练。 根据测试结果情况填写表格: | device | train_loss | | :------: | :------: | | DCU-K100 | 0.7647 | | GPU-A800 | 0.7651 | ## 应用场景 ### 算法类别 对话问答 ### 热点应用行业 `科研,教育,政府,金融` ## 预训练权重 预训练权重下载中心: [huggingface](https://huggingface.co/01-ai/Yi-1.5-6B-Chat) 模型目录结构如下:
## 源码仓库及问题反馈 - http://developer.sourcefind.cn/codes/modelzoo/yi_1.5_6b_chat_pytorch.git ## 参考资料 - https://github.com/hiyouga/LLaMA-Factory/tree/main - https://github.com/01-ai/Yi-1.5 - (https://huggingface.co/01-ai)