使用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仓库
  • 打开命令行或终端,使用git clone命令从GitHub上克隆LLaMA Factory的仓库到本地计算机。官方源码仓库地址:https://github.com/hiyouga/LLaMA-Factoryicon-default.png?t=N7T8https://github.com/hiyouga/LLaMA-Factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
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的官方文档和教程,以确保正确配置和使用相关工具和脚本。

请注意,由于LLaMA Factory和ChatGLM3-6B模型的细节可能会随着时间的推移而更新或变化,因此建议参考最新的官方文档LLaMA-Factory QuickStart - 知乎1. 项目背景开源大模型如LLaMA,Qwen,Baichuan等主要都是使用通用数据进行训练而来,其对于不同下游的使用场景和垂直领域的效果有待进一步提升,衍生出了微调训练相关的需求,包含预训练(pt),指令微调(sft)…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/695287607和教程进行操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/619743.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“等保测评通过指南:打造企业安全生态环境“

等保测评,即网络安全等级保护测评,是企业构建安全生态环境的重要环节。以下是通过等保测评的指南,旨在帮助企业打造一个安全的网络环境: 理解等保测评的重要性: 等保测评是确保企业信息系统安全得到有效保护的重要标准…

轻松上手Spring AOP,掌握切面编程的核心技巧

文章目录 AOP 是什么AspectJSpring AOP切点表达式execution()语法结构示例注意事项 通知(Advice)类型如何使用准备阶段定义切面定义并使用切点测试 总结 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍…

轨迹规划 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 纯追踪算法原理推导2 自适应纯追踪算法(APP)3 规范化纯追踪算法(RPP)4 仿真实现4.1 ROS C仿真4.2 Python仿真4.3 Matlab仿真 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划…

Android面试题之Kotlin和Java之间互操作

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 互操作性和可空性 要注意Java中所有类型都是可空的String!表示平台数据类型 public class JavaTest {public String generateName() {return …

瞬息全宇宙——平行宇宙终极教程,手把手教你做出百万点赞视频

最近一种叫“瞬息全宇宙”的视频火了,抖音一期视频百万赞,各个博主视频都在带瞬息全宇宙这个标签,于是就有很多朋友催我出教程了,在琢磨了几天之后,终于整出来了 教程包含了插件的安装,界面的讲解&#xff…

for 双重循环

一.双循环: 可以使用嵌套循环来实现脚本的双层循环,示例代码如下 1.显示外循环是$a 内循环$b encho -e \t 是制表符 2.9 9乘法表 for 循环: echo -n是不换行输出 while循环: 3.输出长度宽度都为9个星的矩形 for循环 while循环 …

开发者出海时都在用哪些组件库?

❝ 哈喽👋,我是树酱。今天我要介绍的是在开发者出海时经常使用的组件库。这些组件库大多采用Tailwind CSS作为基础,它们不仅风格独树一帜,而且外观也非常吸引人! 1.Shadcn-ui shadcn的风格跟Notion风格很像&#xff0c…

博客互动革命:如何打造活跃读者社区并提升参与度

CSDN 的朋友你们好,我是未来,今天给大家带来专栏【程序员博主教程(完全指南)】的第 10 篇文章“与读者互动”。本文揭示了提升技术博客参与度的秘诀。从评论互动到社交媒体策略,本文将指导你如何建立强大的读者社区。掌…

编程技巧:什么是JavaScript递归

什么是递归 程序调用自身的编程技巧称为递归(recursion) 递归的基本思想是将一个复杂的问题分解成更小、更易于管理的子问题,这些子问题与原始问题相似,但规模更小。 递归的要素 基本情况(Base Case)&…

【C语言 | 数据结构】栈

文章目录 前言1、栈1.1栈的概念和定义1.1.2栈的基本概念: 1.2栈的方法(接口)1.3栈的实现方法1.4栈的性质1.5栈的应用1.6栈的结构 2、栈的实现2.1 顺序栈2.1.1 顺序栈的结构体2.1.2 顺序栈的初始化2.1.3 顺序栈的销毁2.1.4 顺序栈的入栈2.1.5 顺序栈的出栈2.1.5 顺序…

聚观早报 | 比亚迪海狮07 EV上市;苹果将升级Siri

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 5月13日消息 比亚迪海狮07 EV上市 苹果将升级Siri OpenAI开发全新技术 沃尔沃EX30车型将上市 SpaceX计划新建发…

template——模板进阶(C++)

在之前的文章中,介绍了模板初阶:Cpp_桀桀桀桀桀桀的博客-CSDN博客 在本篇中将会对模板进一步的讲解。本篇中的主要内容为:非类型模板参数、函数模板的特化、类模板的特化(其中包含全特化和偏特化),最后讲解…

【计算机网络篇】数据链路层(9)使用集线器的共享式以太网

文章目录 🛸使用同轴电缆的共享总线以太网 🎆使用集线器的共享式以太网🥚集线器的特点 🍔10BASE-T星型以太网 🛸使用同轴电缆的共享总线以太网 若总线上的某个机械连接点接触不良或断开,则整个网络通信就不…

【前端工程化指南】Git常见操作之忽略文件

默认情况下,Git管理代码版本时会对所有文件进行跟踪,但有些时候我们并不希望项目中的一些文件上传到远程仓库或公共仓库中,例如密钥,个人隐私文件等。因此Git提供了两种忽略跟踪文件的方式.gitignore文本文件与git rm命令&#xf…

亿级流量下通用的高并发架构设计

既然是亿级用户应用,那么高并发必然是其架构设计的核心要素。 本文我们将介绍高并发架构设计的一些通用设计方案。 关键词:读/写分离、数据缓存、缓存更新、CQRS、数据分片、异步写 本文节选自电子工业出版社博文视点刚刚出版的《亿级流量系统架构设计…

Java随笔1

1.编程中组件的概念: 在编程中,组件(Component)通常指的是一种可重用的、模块化的代码单元,它封装了特定的功能或用户界面元素,并提供了与其他代码进行交互的接口。组件可以看作是对数据和方法的简单封装&…

ADS基础操作篇2

上篇文章《ADS基础介绍篇1》,对ADS界面,常用小工具及自带设计模板进行了介绍。ADS使用非常方便,含大量的控件和仿真模板。这篇文章我们主要讲解ADS的基础操作,包含Workspace、原理图、symbol的创建,仿真结果查看及优化。 1. 新建Workspace 添加名称及路径后,点击create…

共享充电宝语音芯片ic方案支持远程4g无线更新语音

一、简介 共享充电宝语音芯片ic方案支持远程4g无线wifi蓝牙更新语音 共享充电宝已经是遍布在大街小巷的好产品,解决了携带充电宝麻烦的痛点 但是很多的共享充电宝在人机交互方便,还做得不够好,比如:借、还设备没有语音提示&…

基于SSM的计算机课程实验管理系统的设计与实现(源码)

| 博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅&#x1f44…

AI视频教程下载:用ChatGPT制作 YouTube视频的指南

课程大纲: 面向 YouTuber 的 ChatGPT YouTube关键词研究 YouTube标题 YouTube缩略图 YouTube社区帖子 组织您的 YouTube 视频 本课程将通过两个不同领域的YouTube视频,展示如何使用Chat GPT来创建关键词、标题、缩略图、描述和社区帖子。 关键词研…