分享好友 最新动态首页 最新动态分类 切换频道
ChatGLM3 模型微调教程:引领AI对话新潮流,开启无限可能!
2024-12-26 19:36

一、 大模型 ChatGLM3 简介

ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:

    二、大模型 ChatGLM3 微调步骤

    1. 结束当前运行(按键盘上的 Ctrl + C)

    2. 安装模型依赖库

      # 切换到 ChatGLM3 项目工作目录
      cd /ChatGLM3/finetune_demo
      # 激活 ChatGLM3 虚拟环境
      conda activate ChatGLM3
      # 在 ChatGLM3 环境中安装 requirements.txt 依赖
      pip install -r requirements.txt

      出现以上报错,需要修改 requirements.txt 文件

      vim requirements.txt

      鼠标往下滑,找到最后一行 双击键盘上的 d 键,即可快速删除

      继续执行依赖安装命令

      # 在 ChatGLM3 环境中安装 requirements.txt 依赖
      pip install -r requirements.txt

      3. 准备数据集

      3.1 创建文件夹 data 以及 子文件夹 AdvertiseGen

          3.2 上传数据集

          我们使用 AdvertiseGen 数据集来进行微调。从 Google Drive 或者 Tsinghua Cloud 下载处理好的 AdvertiseGen 数据集,将解压后的 AdvertiseGen 目录放到本目录的 /data/ 下, 例如。/ChatGLM3/finetune_demo/data/AdvertiseGen

          3.3 解压数据集

          cd data/AdvertiseGen
          tar -xzvf AdvertiseGen.tar.gz

          这里的选项解释如下:

            3.4 转换数据格式

              # 切换到 ChatGLM3 项目工作目录
              cd /ChatGLM3/finetune_demo
              # 创建 AdvertiseGen_fix.py 文件
              vim AdvertiseGen_fix.py
                import json
                from typing import Union
                from pathlib import Path
                def _resolve_path(path: Union[str, Path]) -> Path:
                return Path(path).expanduser().resolve()
                def _mkdir(dir_name: Union[str, Path]):
                dir_name = _resolve_path(dir_name)
                if not dir_name.is_dir():
                dir_name.mkdir(parents=True, exist_ok=False)
                def convert_adgen(data_dir: Union[str, Path], save_dir: Union[str, Path]):
                def _convert(in_file: Path, out_file: Path):
                _mkdir(out_file.parent)
                with open(in_file, encoding='utf-8') as fin:
                with open(out_file, 'wt', encoding='utf-8') as fout:
                for line in fin:
                dct = json.loads(line)
                sample = {'conversations': [{'role': 'user', 'content': dct['content']},
                {'role': 'assistant', 'content': dct['summary']}]}
                fout.write(json.dumps(sample, ensure_ascii=False) + ' ')
                data_dir = _resolve_path(data_dir)
                save_dir = _resolve_path(save_dir)
                train_file = data_dir / 'train.json'
                if train_file.is_file():
                out_file = save_dir / train_file.relative_to(data_dir)
                _convert(train_file, out_file)
                dev_file = data_dir / 'dev.json'
                if dev_file.is_file():
                out_file = save_dir / dev_file.relative_to(data_dir)
                _convert(dev_file, out_file)
                convert_adgen('data/AdvertiseGen/AdvertiseGen', 'data/AdvertiseGen_fix')
                  # 运行 AdvertiseGen_fix.py 文件
                  python AdvertiseGen_fix.py

                  4. 使用命令行开始微调,我们使用 lora 进行微调

                  接着,我们仅需要将配置好的参数以命令行的形式传参给程序,就可以使用命令行进行高效微调。

                  python finetune_hf.py /ChatGLM3/finetune_demo/data/AdvertiseGen_fix /ChatGLM3/basic_demo/THUDM/ZhipuAI/chatglm3-6b configs/lora.yaml

                  出现以上问题,需要安装 nltk 依赖

                  # 安装 nltk 依赖
                  pip install nltk

                  再次执行微调命令

                  python finetune_hf.py /ChatGLM3/finetune_demo/data/AdvertiseGen_fix /ChatGLM3/basic_demo/THUDM/ZhipuAI/chatglm3-6b configs/lora.yaml

                  微调完成

                  5. 微调验证以及推理

                      python inference_hf.py output/checkpoint-500/ --prompt "类型#裙*版型#显瘦*材质#网纱*风格#性感*裙型#百褶*裙下摆#压褶*裙长#连衣裙*裙衣门襟#拉链*裙衣门襟#套头*裙款式#拼接*裙款式#拉链*裙款式#木耳边*裙款式#抽褶*裙款式#不规则"
                      最新文章
                      事实还是虚构?揭穿 7 个流行的 SEO 神话
                        SEO 充满了建议、最佳实践,是的,甚至是神话!  关于 SEO 的误解经常存在;例如,相信更多的链接会提高排名,或者 SEO 只是一项一劳永逸的任务,可能会产生错误的期望。  在本文中,我们将事实与虚构分开,揭穿七个常见的 SEO 神话
                      联想亮度快捷键(联想亮度快捷键是哪个)
                      可以通过以下三种方法调节屏幕亮度:一、 在使用的操作系统中调节亮度的方法(以Win10为例):【方法1】:点击开始菜单栏,然后依次选择 设置——系统——显示选项,右侧可以看到亮度级别,用鼠标左右拖动亮度条,可以调整屏幕的亮度。【方
                      qq在线文档怎么创建
                      在现代办公和学习中,文档创建和协作已成为不可或缺的一部分。QQ在线文档作为腾讯推出的一款高效工具,为用户提供了便捷、实时的文档编辑和分享功能。下面,我们将详细介绍如何在QQ中创建在线文档。首先,确保你已经登录QQ账号。在QQ的主界
                      分享5个电脑神技巧!!
                      快到年终啦,给大家分享几个电脑操作神技巧,助力大家高效办公,不加班!!Word文档中有大量图片需要调整对齐,可以利用“查找和替换”功能,帮助我们来完成任务。使用快捷键「Ctrl + H」进入查找和替换,在“查找内容”中选择「特殊格式」
                      电子书店管理系统设计与实现-附源码080050
                      电子书店管理系统的详细设计与实现主要是根据前面的电子书店管理系统的需求分析和电子书店管理系统的总体设计来设计页面并实现业务逻辑。主要从电子书店管理系统界面实现、业务逻辑实现这两部分进行介绍。4.1用户功能模块4.1.1 前台首页界
                      深州市网站优化及推广
                      深州市网站优化及推广的关键步骤如下: 1. 网站基础优化- 关键词研究:使用工具如Google Keyword Planner、Ahrefs等找到与深州市相关的高搜索量关键词。- 网站结构优化:确保网站结构清晰,导航简单,利于搜索引擎抓取和用户体验。- 页面优
                      安卓恢复工具箱 Apeaksoft Android Toolkit v2.1.32 多语言绿色版
                      Apeaksoft Android Toolkit 绿色版是知软博客为大家搜集分享的一款功能专业好用的安卓设备恢复工具箱,集成了多种实用的功能,能够帮助用户以较为轻松的方式备份、恢复、传输数据,管理文件和应用程序,以及进行屏幕录制和截图等操作。目前
                      游戏代理0加盟费
                      游戏行业随着时代的进步而发展着,而游戏代理行业也逐渐走向完善,由于选择游戏代理创业的人多了起来,使得游戏代理的门槛也在降低,也导致游戏代理现在的鱼龙混杂,尤其是现在市场上出现很多游戏代理0加盟费的情况,这样的我们应该相信吗
                      银行数据宽表构建和描述分析
                      一、案例综述 案例编号: 102005案例名称: 银行数据宽表构建和描述分析作者姓名(或单位、或来源): 朱江案例所属行业: J662 货币银行服务 案例所用软件: R案例包含知识点: 宽表构建 数据描述 案例描述: 案例描述部分主要有两个内容
                      相关文章
                      推荐文章
                      发表评论
                      0评