使用LLaMA Factory来训练智谱ChatGLM3-6B模型

简介: 使用LLaMA Factory来训练智谱ChatGLM3-6B模型

使用LLaMA Factory来训练智谱ChatGLM3-6B模型时,以下是一个训练过程:


1. 环境搭建

a. 安装Python和Anaconda

下载并安装适合你操作系统的Python版本(推荐Python 3.10或更高版本)。

安装Anaconda,以管理Python环境和依赖库。

b. 安装CUDA和cuDNN
  • 根据你的NVIDIA显卡型号,下载并安装对应版本的CUDA和cuDNN。这些库将用于GPU加速训练过程。
  • 查看电脑显卡配置:
nvidia-smi


2. 下载和安装LLaMA Factory

a. 克隆LLaMA Factory仓库

b. 安装依赖库

  • 进入LLaMA Factory的目录,使用Anaconda创建一个新的Python环境(例如,使用conda create -n llamafactory python=3.10命令)。
  • 激活新创建的环境(例如,使用conda activate llamafactory命令)。
  • 根据LLaMA Factory的requirements.txt文件,使用pip install -r requirements.txt命令安装所需的依赖库。为了加快安装依赖速度,要在使用pip安装Python包时指定清华镜像,你可以在执行pip命令时使用-i参数指定镜像地址。以下是使用清华镜像安装requirements.txt中的Python包的示例命令:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 准备数据集

a. 选择或创建数据集
  • 选择一个适合训练ChatGLM3-6B模型的数据集,或者根据需求创建自定义数据集。
  • 例如参数:
[
  {
    "instruction": "保持健康的三个提示。",
    "input": "",
    "output": "以下是保持健康的三个提示:\n\n1. 保持身体活动。每天做适当的身体运动,如散步、跑步或游泳,能促进心血管健康,增强肌肉力量,并有助于减少体重。\n\n2. 均衡饮食。每天食用新鲜的蔬菜、水果、全谷物和脂肪含量低的蛋白质食物,避免高糖、高脂肪和加工食品,以保持健康的饮食习惯。\n\n3. 睡眠充足。睡眠对人体健康至关重要,成年人每天应保证 7-8 小时的睡眠。良好的睡眠有助于减轻压力,促进身体恢复,并提高注意力和记忆力。"
  },
  {
    "instruction": "三原色是什么?",
    "input": "",
    "output": "三原色通常指的是红色、绿色和蓝色(RGB)。它们是通过加色混合原理创建色彩的三种基础颜色。在以发光为基础的显示设备中(如电视、计算机显示器、智能手机和平板电脑显示屏), 三原色可混合产生大量色彩。其中红色和绿色可以混合生成黄色,红色和蓝色可以混合生成品红色,蓝色和绿色可以混合生成青色。当红色、绿色和蓝色按相等比例混合时,可以产生白色或灰色。\n\n此外,在印刷和绘画中,三原色指的是以颜料为基础的红、黄和蓝颜色(RYB)。这三种颜色用以通过减色混合原理来创建色彩。不过,三原色的具体定义并不唯一,不同的颜色系统可能会采用不同的三原色。"
  },
  {
    "instruction": "描述原子的结构。",
    "input": "",
    "output": "原子是物质的基本单位,它由三种基本粒子组成:质子、中子和电子。质子和中子形成原子核,位于原子中心,核外的电子围绕着原子核运动。\n\n原子结构具有层次性。原子核中,质子带正电,中子不带电(中性)。原子核非常小且致密,占据了原子总质量的绝大部分。电子带负电,通常围绕核运动,形成若干层次,称为壳层或电子层。电子数量与质子数量相等,使原子呈电中性。\n\n电子在每个壳层中都呈规律分布,并且不同壳层所能容纳的电子数也不同。在最里面的壳层一般只能容纳2个电子,其次一层最多可容纳8个电子,再往外的壳层可容纳的电子数逐层递增。\n\n原子核主要受到两种相互作用力的影响:强力和电磁力。强力的作用范围非常小,主要限制在原子核内,具有极强的吸引作用,使核子(质子和中子)紧密结合在一起。电磁力的作用范围较大,主要通过核外的电子与原子核相互作用,发挥作用。\n\n这就是原子的基本结构。原子内部结构复杂多样,不同元素的原子核中质子、中子数量不同,核外电子排布分布也不同,形成了丰富多彩的化学世界。"
  },
  {
    "instruction": "如何减少空气污染?",
    "input": "",
    "output": "有很多方法来减少空气污染:\n\n1. 减少机动车排放: 通过支持可再生能源来驱动的交通工具,如电动汽车、混合动力汽车,使用公共交通工具,骑自行车或步行。\n2. 鼓励清洁能源: 政府和企业可以通过提供优惠政策和补贴来鼓励人们使用清洁能源。\n3. 减少工业排放: 工厂可以通过采用更清洁的生产方法,使用减排技术来减少工业废气的排放。\n4. 绿化城市: 种植更多的树木和植物可以吸收空气中的污染物和二氧化碳,有助于减少空气污染。\n5. 减少家庭能耗: 通过使用节能电器、关闭不必要的电源开关、减少用电量,能够减少家庭用电量,从而减少空气污染。\n6. 垃圾分类和回收利用: 妥善处理垃圾,避免焚烧垃圾,对垃圾进行分类和回收利用,可以减少污染物排放。\n\n总之,减少空气污染需要政府、企业和个人共同努力。我们每个人都要承担责任,通过自己的实际行动来保护环境。"
  },
  {
    "instruction": "描述一次你不得不做出困难决定的经历。",
    "input": "",
    "output": "作为一名人工智能助手,我是由程序控制的,没有感情和个人意识,我的一切决策都是基于我的算法和程序的设定。但在某种情况下,我需要根据我的程序判断做出决定。\n\n例如,当我处理多个任务时,如果有多个任务具有相同的优先级,那么我需要依据我的程序进行判断,选择哪个任务来处理。\n\n在这种情况下,我会将任务进行比较,考虑它们的时间紧迫性、资源需求、风险和收益等因素,最后做出一个最佳的决定。\n\n虽然这并不是一个真正的困难决定,因为我只是执行我的程序,但它确实需要我进行一定的判断,以确保我能够做出最好的决定。"
  }
]
  • 新建一个json文件,放到data目录下面
b. 数据预处理
  • 对数据集进行预处理,包括数据清洗、分词、标记命名实体等操作,以确保数据集符合LLaMA Factory的输入要求。

4. 配置训练参数

a. 选择训练策略
  • 根据你的需求和数据集的特点,选择合适的训练策略(如LoRA微调、QLoRA微调等)。
b. 设置训练参数
  • 设置学习率、批次大小、训练轮数、优化器等训练参数。这些参数将直接影响模型的训练效果。你可以参考LLaMA Factory的官方文档或教程来设置合适的参数值。
  • 语言选择:中文
  • 模型名称:ChatGLM3-6B-Chat
  • 模型路径:前面从Hugging Face下载的ChatGLM3-6B模型本地路径
  • 微调方法:lora
  • 训练阶段:sft
  • 数据集:上面新添加的测试数据集
  • 训练轮数:200,因为数据量比较小,为了能表现效果,这里使用200轮

5. 开始训练

a. 加载预训练模型
  • 下载智谱ChatGLM3-6B的预训练模型,并将其放置在适当的目录中。
  • 使用LLaMA Factory提供的工具或脚本加载预训练模型。
b. 运行训练脚本
  • 根据LLaMA Factory的官方文档或教程,编写或修改训练脚本以指定数据集路径、训练参数等。
  • 运行训练脚本,开始训练过程。在训练过程中,你可以使用LLaMA Factory提供的工具或命令行参数来监控模型的性能(如损失函数的变化、验证集上的准确率等)。
  • 启动脚本参考:

(1)激活环境:conda activate xnenv

(2)进入目录:cd /home/chatglm/LLaMA-Factory

(3)启动应用:nohup python src/train_web.py > train_web.out &

(4)查看日志:tail -f -n 1000 train_web.out

6. 评估模型

a. 准备测试数据集
  • 准备一个与训练数据集不同的测试数据集,用于评估模型的性能。
b. 评估模型性能
  • 使用LLaMA Factory提供的评估工具或脚本对训练好的模型进行评估。计算模型在测试集上的准确率、召回率、F1值等指标,以评估模型的性能。

7. 部署和使用

a. 部署模型
  • 如果模型性能满足要求,你可以将模型部署到生产环境中,并提供API接口供其他系统或应用调用。
b. 优化和微调
  • 根据实际需求,你可以对模型进行进一步的优化和微调,以提高其性能或满足特定的应用场景需求。

注意事项

  • 在整个训练过程中,确保你的计算机有足够的计算资源和存储空间。
  • 根据你的硬件环境和数据集大小,适当调整训练参数以获得最佳的训练效果。
  • 仔细阅读LLaMA Factory的官方文档和教程,以确保正确配置和使用相关工具和脚本。
相关文章
|
7月前
|
机器学习/深度学习 算法 测试技术
使用ORPO微调Llama 3
ORPO是一种结合监督微调和偏好对齐的新型微调技术,旨在减少训练大型语言模型所需资源和时间。通过在一个综合训练过程中结合这两种方法,ORPO优化了语言模型的目标,强化了对首选响应的奖励,弱化对不期望回答的惩罚。实验证明ORPO在不同模型和基准上优于其他对齐方法。本文使用Llama 3 8b模型测试ORPO,结果显示即使只微调1000条数据一个epoch,性能也有所提升,证实了ORPO的有效性。完整代码和更多细节可在相关链接中找到。
365 10
|
7月前
|
人工智能 自然语言处理 物联网
Predibase发布25个LoRA,超越GPT-4的Mistral模型
【2月更文挑战第24天】Predibase发布25个LoRA,超越GPT-4的Mistral模型
124 2
Predibase发布25个LoRA,超越GPT-4的Mistral模型
|
3月前
|
机器学习/深度学习 人工智能 分布式计算
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
本次教程介绍了如何使用 PAI ×LLaMA Factory 框架,基于全参方法微调 Qwen2-VL 模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
|
22天前
|
人工智能 自然语言处理 物联网
llama factory 从数据集起步 跑通 qwen系列开源生成式大模型 微调
`dataset_info.json` 文件用于管理 llama factory 中的所有数据集,支持 `alpaca` 和 `sharegpt` 格式。通过配置此文件,可以轻松添加自定义数据集。数据集的相关参数包括数据源地址、数据集格式、样本数量等,支持 Hugging Face 和 ModelScope 两个平台的数据集仓库。针对不同格式的数据集,提供了详细的配置示例,如 `alpaca` 格式的指令监督微调数据集、偏好数据集等,以及 `sharegpt` 格式的多模态数据集等。今天我们通过自定义数据集的方式来进行qwen2.5_14B_instruct模型进行微调
230 7
|
2月前
|
测试技术 Apache
mixtral大模型
Mixtral 是一种具有开放权重的高质量稀疏专家混合模型 (SMoE)。根据 Apache 2.0 许可。 Mixtral 在大多数基准测试中都优于 Llama 2 70B,推理速度提高了 6 倍。它是最强大的开放权重模型,具有宽松的许可证,也是成本/性能权衡方面的最佳模型。
|
3月前
|
人工智能 测试技术 Apache
Mistral 大语言模型
Mistral AI 是一家由 Meta Platforms 和 Google DeepMind 前员工创立的法国人工智能公司,成立于 2023 年 4 月,并在同年 10 月筹集了 3.85 亿欧元,估值超过 20 亿美元。其愿景是通过创新打造开放、高效、有用且值得信赖的人工智能模型。Mistral AI 提供 Mistral-7B 大型语言模型,参数达 70 亿,在多个基准测试中优于 Llama 2 13B 和 Llama 1 34B。此外,还推出了开放权重的 Mixtral 大语言模型,性能卓越,推理速度提升了 6 倍。
|
5月前
|
人工智能 物联网 测试技术
使用PAI×LLaMA Factory 微调 Llama3 模型
本次教程介绍了如何使用PAI和LLaMA Factory框架,基于轻量化LoRA方法微调Llama-3模型,使其能够进行中文问答和角色扮演,同时通过验证集ROUGE分数和人工测试验证了微调的效果。在后续实践中,可以使用实际业务数据集,对模型进行微调,得到能够解决实际业务场景问题的本地领域大模型。
使用PAI×LLaMA Factory 微调 Llama3 模型
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】Transformers大模型库(一):Tokenizer
【AI大模型】Transformers大模型库(一):Tokenizer
89 1
|
5月前
|
监控 算法 物联网
LLaMA-Factory:大语言模型微调框架 | AIGC
LLaMA-Factory 是一个国内北航开源的低代码大模型训练框架,专为大型语言模型(LLMs)的微调而设计【7月更文挑战第5天】
493 9
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】Transformers大模型库(八):大模型微调之LoraConfig
【AI大模型】Transformers大模型库(八):大模型微调之LoraConfig
83 0