3.5 KiB
3.5 KiB
EmoLLM 微调数据生成教程
一、目标与背景
为了使我们的心理大模型有更好的表达效果,我们必须要有高质量的数据集。为了达到这一目标,我们决定利用四种强大的中文大模型:文心一言、通义千问、讯飞星火 和 智谱GLM 来生成对话数据。此外,我们还将增强数据集的认知深度,通过加入少量自我认知数据集来提高模型的泛化能力。
二、数据集生成方法
-
模型选择与数据准备
选择文心一言、通义千问、讯飞星火和智谱GLM这四种大语言模型,获取调用相应接口的API,并准备用于生成对话数据。
-
单轮与多轮对话数据生成
利用这四种模型,我们生成了10000条单轮和多轮对话数据。在这一过程中,我们确保了数据的多样性、复杂性和有效性。
因为心理活动往往是复杂的,为了保证数据的多样性。我们选择了16 * 28 共
448
个场景进行数据集生成,具体场景名称请参考config.yml中的emotions_list 和 areas_of_life
两个参数的配置。 -
自我认知数据集的加入
为了增强模型的认知能力,我们特意加入了一部分自我认知数据集。这些数据集有助于模型更好地理解上下文,提高对话的自然度和连贯性。
三、实践步骤
- 初始化
-
安装所需的软件和库
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
-
准备输入数据和配置参数
可参见
config.yml
均有注释
- 模型选择与配置
- 根据需求选择适合的模型 为了使大家都能够玩上大模型,我们选用InterLLM2-7B作为我们的基线模型(消费级显卡也可部署微调的哦)
- 对模型进行必要的配置和调整 根据我们的数据集以及配置策略,使用XTuner进行微调
- 数据生成
- 使用通义千问大模型进行数据生成
# 终端运行 bash run_qwen.bash
- 使用百度文心大模型进行数据生成
# 终端运行 python ernie_gen_data.py
- 使用智谱GLM大模型进行数据生成
# 终端运行 python zhipuai_gen_data.py
- 使用讯飞星火大模型进行数据生成
# 终端运行 python ./xinghuo/gen_data.py
- 自我认知数据集的整合
- 自我认知数据集需要按照格式手动生成,如下格式即可
[ { "conversation": [ { "input": "请介绍一下你自己", "output": "我是大佬的emo小助手,可以帮助你解决心理上的问题哦" } ] }, { "conversation": [ { "input": "请做一下自我介绍", "output": "我是大佬的emo小助手,可以帮助你解决心理上的问题哦" } ] } ]
-
数据集整合
在进行数据集整合之前,我们要检查生成的数据是否存在格式错误,类型不符合等情况。我们需要check.py进行检查数据。最后再使用merge_json.py将所有的json整合为一个总的json文件。
-
评估与优化
- 使用适当的评估指标对生成的数据集进行评估
- 根据评估结果进行必要的优化和调整
- 测试与部署
- 使用独立测试集对训练好的模型进行评估
- 根据测试结果进行必要的调整和优化
- 将最终的模型部署到实际应用中