ChatGLM3的LoRA微调见《ChatGLM3采用客服对话数据集在本地进行LoRA微调多轮对话训练

这里用chatglmcpp进行量化加速,先在终端git clone --recursive https://github.com/li-plus/chatglm.cpp.git到自己的目录

通过cd chatglm.cpp进入项目

配置python环境后执行pip install torch tabulate tqdm transformers accelerate sentencepiece

注意transformers版本不能太低,否则很可能执行转化时报错,这里用4.40.0版本。

将convert.py的model_name_or_path参数默认修改为自己的chatglm3-6b-32k的绝对路径(也可以在命令行通过i指定),执行python chatglm_cpp/convert.py -l E:\Project\ML\ChatGLM3\finetune_demo\output\E-commerce_dataset\checkpoint-300 -t q4_0 -o chatglm3-6b-32k-q4(lora).bin,l参数是lora微调产生的适配器adapter等所在路径,以自己的微调路径为准,t参数是量化精度,可选q4_0(最小)、q5_0、q8_0和f16等,o参数是保存量化模型的路径。

成功执行量化

准备测试运行,如果是在这个项目可以用pip install .   ,否则可以pip install git+https://github.com/li-plus/chatglm.cpp.git@main,对于Mac系统可以用CMAKE_ARGS="-DGGML_METAL=ON" pip install chatglm-cpp

注:也可以通过c++运行,速度更快,但需要编译,这里不展开。

进入python环境写简单代码运行,导入报错,这是因为在当前路径存在目录chatglm_cpp,和库名相同,因此切换路径,比如cd examples

成功对话

接下来,你可以用examples目录的代码玩一玩,比如cli_demo.py是用于命令行交互演示(m参数是模型路径,用p参数是单轮对话的问题,而i参数是多轮交互,此时输入clear清空上下文,输入stop退出),web_demo.py是通用网页聊天。

创作不易,禁止抄袭,转载请附上原文链接及标题

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐