Ielts-speaking-assistant
简介
基于YouTube、b站等相关雅思口语模拟考试以及真实测试视频, 通过InternLM2微调得到的雅思口语测试助手。雅思口语测试助手旨在帮助模拟雅思口语测试与课程学习。
本项目将介绍关于数据获取、清洗、处理,使用InternLM2 微调、LMDeploy量化与推理,最后部署至 OpenXLab。
openxlab模型
模型链接ielts-speaking-assistant model
数据集
从YouTube,b站爬取了200多个雅思口语对话模拟或者真实视频,从中提取对应音频,通过音频提取获得对话的原始文档,整理对话数据为 XTuner 多轮对话数据格式,如下:
[{
"conversation":[
{
"system": "xxx",
"input": "xxx",
"output": "xxx"
},
{
"input": "xxx",
"output": "xxx"
}
]
},
{
"conversation":[
{
"system": "xxx",
"input": "xxx",
"output": "xxx"
},
{
"input": "xxx",
"output": "xxx"
}
]
}]
进一步清洗数据获得最终的多轮对话数据集,用于后续指令微调。
微调
基座模型:InternLM2-chat-7b
考虑到雅思口语测试过程中存在不同需求:
- 模拟考官对使用者进行引导与提问
- 帮助使用者进行提示与回答建议
分别针对不同的目标需求修改指令对话数据集,使用 XTuner 进行微调。
xtuner 安装:
git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[all]'
SFT训练
整理好数据后,即可进行微调。具体微调的 config 已经放置在 train/config
目录下,在安装好 xtuner 后可以进行训练:
xtuner train ${CONFIG_NAME_OR_PATH} --deepspeed deepspeed_zero2
模型转换
将得到的 PTH 模型转换为 HuggingFace 模型,生成 Adapter 文件夹
mkdir hf
export MKL_SERVICE_FORCE_INTEL=1
export MKL_THREADING_LAYER=GNU
xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH_file_dir} ${SAVE_PATH}
模型合并
将 HuggingFace adapter 合并到大语言模型:
xtuner convert merge \
${NAME_OR_PATH_TO_LLM} \
${NAME_OR_PATH_TO_ADAPTER} \
${SAVE_PATH} \
--max-shard-size 2GB
可以通过运行接口文件或者通过 xtuner chat 进行模型对话:
```shell
运行文件
python ./cli_demo.py
加载 Adapter 模型对话(Float 16)
xtuner chat ${NAMEORPATHTOADAPTER} --prompt-template internlm2_chat ```
评论