大模型lora微调-chatglm2

从零开始 通义千问大模型本地化到阿里云通义千问API调用 通义千问大模型”是阿里云推出的一个超大规模的语言模型,具有强大的归纳和理解能力,可以处理各种自然语言处理任务,包括但不限于文本分类、文本生成、情感分析等。此模型能够极大地提高了自然语言处理的效率和准确性,给用户提供了一种新的、简便的工具。 阅读详情

免部署模型对比

网址:https://gitclone.com/aiit/chat/

模型参数下载

网址:互链高科

模型框架列举

  •  chatglm2训练框架: https://github.com/hiyouga/ChatGLM-Efficient-Tuning 
  • 通用大模型训练(chatglm2失败,其他模型成功):https://github.com/hiyouga/LLaMA-Efficient-Tuning
  • 萤火大模型(未验证):https://github.com/yangjianxin1/Firefly/

通义千问大模型微调源码(chatglm2 微调失败,训练通义千问成功):

GitHub - hiyouga/LLaMA-Efficient-Tuning: Easy-to-use LLM fine-tuning framework (LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, ChatGLM2)Easy-to-use LLM fine-tuning framework (LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, ChatGLM2) - GitHub - hiyouga/LLaMA-Efficient-Tuning: Easy-to-use LLM fine-tuning framework (LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, ChatGLM2)icon-default.png?t=N7T8https://github.com/hiyouga/LLaMA-Efficient-Tuning

训练数据准备

进入LLaMA-Efficient-Tuning根目录后,有一个data目录,创建一个自己的训练数据文件,录入内容格式如下:

[{"instruction":"阅读下列短文,从每题所给的四个选项《A、 B、 C和D)中。选出最佳选项。",

"input":"sdfdsg",

"output:"A"}]训练数据文件配置到dataset_info.json中

训练命令

vim run.sh

Model_path="model_path"
save_Model_dir="save_model"
dataset="qwentest"

CUDA_VISIBLE_DEVICES=0

torchrun --nproc_per_node 1 src/train_bash.py \
--model_name_or_path ${Model_path} \
--stage sft \

--do_train \
--dataset ${dataset} \
--dataset_dir data \
--finetuning_type lora \
--output_dir ${save_Model_dir} \
--overwrite_cache \
--per_device_train_batch_size 4 \
--gradient_accumulation_steps 1 \
--lr_scheduler_type cosine \
--logging_steps 10 \
--save_steps 1000 \

--learning_rate 1e-3 \
--num_train_epochs 10.0 \
--plot_loss \

--lora_target c_attn \
--template chatml \
--fp16

执行训练

3、执行nohup ./finetune_llm.sh &

训练完的模型调用

from transformers import AutoTokenizer,AutoModelForCausalLM, AutoConfig
from peft import PeftModel

from transformers.generation import GenerationConfig
import os

model_path = "原始模型"
ckpt_path = "lora微调后的模型"

save_pre_name = os.path.basename(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

base_model = AutoModelForCausaLLM.from_pretrained(model_path,device_map={"":0},trust_remote_code=True)

base_model.generation_config = GenerationConfig.from_pretrained(model_path, trust_remote_code=True)

lora_model = PeftModel.from_pretrained(base_model, ckpt_path)

lora_model.to('cuda:4')
lora_model.eval()

input = ""
line_format=input.replace("######","\n")

llm_question="ddsfdsfddsfsdg\nA. 非常满意\nB. 满意\nC. 不满意\nD. 非常不满意\n答案:".format(line_format)

inputs = tokenizer(llm_question, return_tensors='pt')

inputs = inputs.to(lora_model.device)

pred = lora_model.generate(**inputs, max_new_tokens=500)

predict_txt = tokenizer.decode(pred.cpu()[0], skip_special_tokens=True).replace("\n", " ")

print(predict_txt)

关于chatglm2模型微调:(chatglm2成功):   https://github.com/hiyouga/ChatGLM-Efficient-Tuning 

训练数据准备

进入LLaMA-Efficient-Tuning根目录后,有一个data目录,创建一个自己的训练数据文件,录入内容格式如下:

[{"instruction":"阅读下列短文,从每题所给的四个选项《A、 B、 C和D)中。选出最佳选项。",

"input":"sdfdsg",

"output:"A"}]训练数据文件配置到dataset_info.json中

dataset_info.json 样式如下

{

"alpaca_zh":{

"filename":"yourpath"

},

"youtrainname":

{

"filename":"yourpath"

}

}

其中alpaca_zh不参加训练,但是在模型导出时,若不配会报错

训练命令vim run.sh

Model_path="model_path"
dataset="datasetname"
save_Model_dir="save_model"
CUDA_VISIBLE_DEVICES=0,1,2
torchrun --nproc_per_node 3  src/train_bash.py \
    --model_name_or_path ${Model_path} \
    --stage sft \
    --do_train \
    --dataset ${dataset} \
    --finetuning_type lora \
    --output_dir ${save_Model_dir} \
    --overwrite_cache \
    --per_device_train_batch_size 10 \
    --gradient_accumulation_steps 1 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --save_steps 200 \
    --learning_rate 5e-5 \
    --num_train_epochs 10.0 \
    --plot_loss \
    --fp16

模型导出(非必须,导出后可作为基础模型使用,无需模型参数拼接)

model_path="basemodelpath"

python export_model.py \

    --model_name_or_path ${model_path} \

    --finetuning_type lora \

    --checkpoint_dir lora_model_path

    --output_dir final_model_path

训练完的模型调用(未进行lora模型导出合并时使用)

from transformers import AutoTokenizer,AutoModelForCausalLM, AutoConfig
from peft import PeftModel

import os

model_path = "原始模型"
ckpt_path = "lora微调后的模型"

save_pre_name = os.path.basename(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

base_model= AutoModel.from_pretrained(model_path, trust_remote_code=True)

lora_model = PeftModel.from_pretrained(base_model, ckpt_path)

lora_model.to('cuda:4')
lora_model.eval()

input = ""
line_format=input.replace("######","\n")

llm_question="ddsfdsfddsfsdg\nA. 非常满意\nB. 满意\nC. 不满意\nD. 非常不满意\n答案:".format(line_format)
predict_txt, history= lora_model.chat(tokenizer, llm_question, history=[])
print(predict_txt)

 若进行了模型导出时应用

tokenizer=AutoTokenizer.from_pretrained(model_path,trust_remote_code=True)

model = AutoModel.from_pretrained(model_path,trust_remote_code=True,device="cuda:0")

llm_question="你好"

predict,history = my_model.chat(tokenizer, llm_question, history=[])

通义千问Qwen-7B效果如何?Firefly微调实践,效果出色 可以看到Qwen-7B在保持中英代码高效解码的前提下,对部分使用人群较多的语种(泰语th、希伯来语he、阿拉伯语ar、韩语ko、越南语vi、日语ja、土耳其语tr、印尼语id、波兰语pl、俄语ru、荷兰语nl、葡萄牙语pt、意大利语it、德语de、西班牙语es、法语fr等)上也实现了较高的压缩率,使得模型在这些语种上也具备较强的可扩展性和较高的训练和推理效率。经群友反馈,对于第一题,Baichuan-13B、ChatGLM2、Qwen-7B等官方的chat模型,以及Bard都给出了错误的答案。 阅读详情

相关推荐

【通义千问】大模型Qwen GitHub开源工程学习笔记(5)-- 模型的微调【全参数微调】【LoRA方法】【Q-LoRA方法】

注意,如果你使用预训练模型进行LoRA微调,而非chat模型,模型的embedding和输出层的参数将被设为可训练的参数。秩分解矩阵可以看作是一种特殊的调料,它可以改变模型的行为,使模型更好地适应新的任务,但并不会改变原有的食材(即预训练模型的权重)。相比之下,LoRA将预训练模型的权重冻结,并在转换器架构的每一层注入可训练的秩分解矩阵。这意味着在这种方法中,原始的预训练权重 W 是固定的,不会在后续的训练过程中进行更新,而是只对 A 和 B 进行训练。在全参数微调中,所有的模型参数都会被重新训练。

weixin_46481662的博客 3240

五步炼丹,qwen通义千问1.5版本微调实战

通用千问微调,lora微调,qwen1.5微调,通义千问1.5微调,最近阿里大模型通义千问qwen推出了1.5版本的开源模型,涉及了0.5B, 1.8B, 4B, 7B, 14B, 及72b在内的多种参数模型与量化模型因此本篇文章是基于一个开源大模型微调训练工具包使用lora对qwen1.5的,但是对于每个人的机器配置以及cuda环境,可能会导致一些问题,如果遇到问题可以发在评论区,大家一起研究,同时测试数据我放到下面了,需要的自行获取。

IT大头的博客 2万+

chatGLM2-6B模型LoRA微调数据集实现大模型的分类任务

ChatGLM 模型是由清华大学开源的、支持中英双语问答的对话语言模型,并针对中文进行了优化。该模型基于 General Language Model(GLM)架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署。ChatGLM 具备以下特点:充分的中英双语预训练:ChatGLM 在 1:1 比例的中英语料上训练了 1T 的 token 量,兼具双语能力。优化的模型架构和大小:修正了二维 RoPE 位置编码实现。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 2277

Qwen(通义千问)部署量化微调实践

通义千问(Qwen)是阿里云研发的通义千问大模型系列的70亿参数规模的模型。Qwen是基于Transformer的大语言模型, 在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。今天我们来对这个模型进行本地部署实践python 3.8及以上版本pytorch 1.12及以上版本,推荐2.0及以上版本建议使用CUDA 11.4及以上(GPU用户、flash-attention用户等需考虑此选项)二三。

kaka0722ww的博客 5774

大模型LLM微调经验总结&项目更新

周末对大模型微调项目代码进行了重构,支持ChatGLM和ChatGLM2模型微调的切换,增加了代码的可读性,并且支持Freeze方法、Lora方法、P-Tuning方法、「全量参数方法」微调。PS:在对Chat类模型进行SFT时,一定要遵循模型原始的系统指令,否则会出现严重的遗忘或微调效果不明显现象。大模型微调经验分享&总结:https://zhuanlan.zhihu.com/p/620885226。

具身机器人和通用AI 1148

p-tuing和Lora的区别

自从chatgpt的爆火,也同时引发了国内大模型的热潮,像百度出了文心一言、阿里出了通义千问等,但是这些大模型并未开源,国内外开源的中等规模的模型有meta的LLaMA,斯坦福基于LLaMA微调的Alpaca,国内的chatglm,这种能够让一般的公司来做微调。现在国内一般微调比较多的模型应该是chatglm,chatglm刚出来的时候少资源情况下只能微调几层,微调效果不好,后续引入了p tuning v2的方法来少资源微调。

具身机器人和通用AI 3139

【LLM大模型】chatglm2-6b在P40上做LORA微调

大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b在国内开源的大模型上,效果比较突出。本文章分享的内容是用chatglm2-6b模型在集团EA的P40机器上进行垂直领域的LORA微调。

2301_81888214的博客 1370

AI大模型微调课程-08小参数模型微调

相似度高,但是 loss 大,所以 loss 没法准确反应出我们真实的预期。为什么不能直接用BLEU或者ROUGE作为Loss函数?为了使大家能在合理时间内跑完实验,我们对数据集做了缩减。语言模型在训练过程中 Loss 是如何计算的。输入本质上就是一段按格式拼接的文本。对比 BLEU 与 ROUGE。洪雅县洪川镇的廉租房。

AI 498

大模型18:微调大模型方法PEFT(LoRA等) — 训练 “ChatGLM2“ 项目

PEFT是一种优化微调大模型的技术,目标是在减少训练参数量的同时仍然能够取得良好的微调效果。:通过将模型权重矩阵进行低秩分解,只微调低秩矩阵,从而减少计算量。Adapter:引入额外的小规模网络层(适配器层),只微调这些层,保持原模型的主要参数不变。:在模型的输入序列前添加可学习的前缀向量,并仅微调这些前缀。

bluewelkin的专栏 609

本地跑通大模型微调全流程:从环境搭建、数据准备到LoRA训练与推理(含ChatGLM3/OPT/Llama2/Whisper)

面向动手实践的开发者和研究者,提供开箱即用的大模型本地微调与推理全套代码。覆盖主流开源模型——ChatGLM3、OPT-125m、Llama2、Whisper,在消费级显卡(RTX 3090/4090)上可直接运行。包含完整Jupyter Notebook:llama2_inference.ipynb用于基础推理,llama2_instruction_tuning.ipynb支持指令微调,AWQ-opt-125m.ipynb演示量化推理,还有配套周易领域CSV数据集及RAG实现(文档加载、向量存储、提示工程

r2s3t4的博客 230

MiniMax H3本地部署实战:ComfyUI整合包安装与提速插件验证指南

在AIGC工具链快速演进的当下,本地部署内容生成模型成为许多创作者和开发者的关注焦点。本地部署意味着数据不出本机、可按需定制工作流,还能规避云端排队与外部依赖,其核心价值在于为内容生产提供可控、私密且可编程的生成环境。ComfyUI作为模块化节点式AI绘画工具,凭借灵活的工作流编排和API接口能力,成为承载这类模型的热门平台。MiniMax H3作为支持文本、参考图等多种输入的内容生成模型,与ComfyUI结合后,既适合个人进行概念验证,也能用于团队私有化流程搭建。实际落地过程中,中文整合包显著降低了环境配

weixin_29042035的博客 293

lora-scripts支持LLaMA 2、ChatGLM等主流LLM的LoRA微调(完整配置示例)

借助lora-scripts工具,使用少量数据和低资源对LLaMA 2、ChatGLM等主流大模型进行LoRA微调,实现快速领域适配。通过配置驱动的自动化流程,完成从数据准备到模型部署的完整闭环,适用于法律、医疗等垂直场景的轻量化定制。

weixin_42596214的博客 653

VC中基于TWAIN协议控制扫描仪-----初级版

PS:本人是C++小白一枚,在研究此功能时不知走了多少弯路

a1101000099的专栏 8788

【大模型】基于ChatGLM的大模型微调(P-Tuning v2、LoRA、Full Parameter) [更新中......]

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

酒酿小圆子呀~ 1478

LangChain4j-针对性操作Function-call+系统预设角色

如果我们想要对一些敏感信息进行针对化的操作,不仅仅是接口大模型去进行回复。比如我们现在数据库里面有一些菜品,那么用户提问,店里有多少套餐,那么云端大模型肯定是不知道的,我们希望捕获这些关键字然后进行自己的业务查询或者处理,这个时候就可以使用function-call。

DDDDDouble的博客 454

OpenClaw 在 Windows 环境下的完整安装、配置和部署指南

介绍Windows环境下OpenClaw的完整安装,配置和部署的全流程

hxbao的专栏 1485

高效微调神器:LLaMA工具,一键优化ChatGLM-2、LLaMA-2等大模型

LLMs:LLaMA Efficient Tuning(一款可高效微调【全参数/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具【预训练+指令监督微调+奖励模型训练+PPO 训练+DPO 训练】)的简介、安装、使用方法之详细攻略LLaMA Efficient Tuning的简介。

lazycatlove的博客 844

第14.1章 高翔博士2025年11月最新开源框架Lightning-LM源码学习解读(一):激光-IMU定位+建图算法各模块简介

Lightning-LM:高效激光SLAM定位系统 该框架基于模块化设计,通过激光-IMU融合实现快速建图与定位,核心特点包括: 极速性能:纯CPU运行(建图1.2核/定位0.8核) 模块化架构:包含激光里程计(LIO)、地图管理、回环检测等独立模块 动态场景支持:地图分块加载、动静态图层分离 多模式适配:支持ROS2环境下的在线/离线运行 关键模块包括前端里程计(core/lio)、2D/3D地图转换(core/g2p5)、轻量优化库(core/miao)等,通过系统控制器(core/system)协调流

行知SLAM 2435

LLaMA 2与ChatGLM模型适配:lora-scripts支持主流大模型

通过lora-scripts框架,开发者可快速实现LLaMA 2、ChatGLM等大模型的低秩适配微调,仅需配置文件即可完成医疗问答、AI绘画等多场景定制,在消费级显卡上实现高效训练与部署。

weixin_42509888的博客 694

【yolo】YOLOv8模型导出完全指南:从PT到ONNX及其他格式的完整实践

摘要:本文全面介绍了YOLOv8模型从PT格式导出为ONNX等部署格式的完整流程与最佳实践。重点解析了关键参数(如format、imgsz、simplify)的作用机制,特别强调输入尺寸imgsz会自动继承训练尺寸的特性,并提供了ONNX、TensorRT等格式的典型导出配置方案。文章还总结了常见问题解决办法,推荐使用simplify优化模型性能,同时分享了通过C#实现模型重命名的实用技巧。最后指出"训练决定能力,导出定义接口"的核心原则,帮助开发者高效完成模型部署转换。

songhuangong123的博客 1916

材料仿真软件:Materials Studio_(14).电学性质计算

设置计算参数,包括 k 点网格、交换相关泛函等。

kkchenjj的博客 1863

chatglm2-6b在P40上做LORA微调 | 京东云技术团队

目前,大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b在国内开源的大模型上,效果比较突出。本文章分享的内容是用chatglm2-6b模型在集团EA的P40机器上进行垂直领域的LORA微调。

JDDTechTalk的博客 874

【AI技术赋能有限元分析应用实践】Abaqus有限元分析与深度学习结合20个案例与有限元分析数据来源方法说明

结合 Abaqus 和深度学习,数据的获取和处理是关键的一步。通过从仿真、实验、公开数据库或合成数据中获取数据,经过预处理后,可以将其用于训练深度学习模型。最终,将训练好的深度学习模型与 Abaqus 集成,用于材料行为预测、结构优化、非线性分析、损伤预测等任务,从而提升仿真效率和精度。

源代码杀手的博客 3213

【人工智能LLM】开源 LLM 大模型汇总以及微调策略_有哪些开源的大模型可以微调(1)

自从ChatGPT出世以来,各个大厂/研究院都纷纷推出自己的大模型,大模型领域发展一日千里。随着“百模大战”热度的降低,有必要梳理一下目前主流的大模型以及其变种模型,为大家梳理一下当前开源模型的工作。

2401_84205765的博客 1458

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【LLM】金融场景的大模型Lora微调实战

这里进行lora微调的效果是比官方的p-tuning v2效果好的,并且没有出现严重的知识遗忘特点,比如问题你是谁,他能回答自己是chatglm blabla。包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2301_76161259的博客 1600

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: elasticsearch 遍历索引数据
下一篇: pyqt5使用经验总结
会发paper的学渣
博客等级 码龄15年 171粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值