大模型训练框架swift简单使用
在做大模型开发的时候,会遇到模型选型的问题,需要测试不通模型的效果,对于一开始刚接触大模型小白的我,是一个一个模型尝试,在环境部署,模型训练效果对比,在不同环境中切换。后来接触到了swfit框架后就相对轻松很多了。
swift GitHub地址 该项目是由阿里达摩院推出的,和这个同类型的项目还有 Axolotl, Llama-Factory ,有了swift框架就不用在一个一个的撘环境了
安装部署就不说了很简单在 github上有说明,
这里主要总结和记录一下如何扩展模型类型和怎么组装训练数据
我用的模型是chinese-llama-alpaca-2 这个模型是基于llama2进行训练的由于llama2只支持英文,说以有人就弄出来这个,项目,一开始我用swfit的 llama魔板来做训练,结果训练的结果很差,就想着看看是哪里问题。于是就开始翻代码。最后发现在swift/llm/utils/template.py 的639 行这里模板 和chinese-llama-alpaca-2 里的模板有差异在[INST] <[INST]少了一个“空格”
1 | #swift 框架里 llama的魔板 |
1 | #这个是chinese-llama-alpaca-2 main/scripts/training/build_dataset.py |
于是就对swift做了一个扩展修改如下 swift/llm/utils/model.py 文件添加了如下几处
- 在120行后面添加如下代码
1 | chinese_llama_alpaca_2 = 'chinese-llama-alpaca-2' |
模型注册在395行添加如下代码
1
2
3
4
5
6
修改文件swift/llm/utils/template.py
1.添加模型类型 在35行
1 | chinese_llama = 'chinese_llama' |
2.注册模板在645行
1 | CHINESE_LLAMA_DEFAULT_SYSTEM = ("You are a helpful assistant. 你是一个乐于助人的助手。\n") |