news 2026/4/18 6:25:15

如何微调一个大模型?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何微调一个大模型?

直接上代码, 代码来自于这里,经过实践后修改

```python # 模型 from transformers import AutoModelForCausalLM model_path = 'D://qwen2/dir' base_model = AutoModelForCausalLM.from_pretrained(model_path) from peft import LoraConfig lora_config = LoraConfig( r=8, lora_alpha=16, task_type="CAUSAL_LM", target_modules=["q_proj", "v_proj"], bias="none", lora_dropout=0.05 ) from peft import get_peft_model model = get_peft_model(base_model, lora_config) model.to("cuda") # 数据 from modelscope.msdatasets import MsDataset from datasets import Dataset dataset : Dataset = MsDataset.load("llamafactory/alpaca_zh", subset_name="default")['train'] # type:ignore dataset = dataset.map( lambda val: { "text": f"Instruction: {val['instruction']}\n" + f"Input: {val['input'] if val['input'] else ''}\n" + f"Output: {val['output']}" } ) from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained(model_path) dataset = dataset.map( lambda val: tokenizer( val['text'], truncation=True, padding="max_length", max_length=48 ), batched=True, remove_columns=["text"] ) dataset = dataset.map( lambda val: {"labels": val['input_ids'].copy()}, batched=True ) train_len = int(0.8 * len(dataset)) train_dataset = dataset.select(range(train_len)) eval_dataset = dataset.select(range(train_len, len(dataset))) # 训练 from transformers import TrainingArguments train_arg = TrainingArguments( eval_strategy="epoch", save_strategy="epoch", num_train_epochs=1, output_dir="./output", load_best_model_at_end=True, per_gpu_eval_batch_size=1, ) from transformers import Trainer trainer = Trainer( args=train_arg, model=model, train_dataset=train_dataset, eval_dataset=eval_dataset ) trainer.train() trainer.save_model("./final_model1") ```

训练截图

训练结束后的测试代码

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:25:07

12、ConfigMgr应用、包部署及分发点使用指南

ConfigMgr应用、包部署及分发点使用指南 1. 向ConfigMgr客户端部署应用和包 在成功将Paint.NET部署到受管理的ConfigMgr客户端后,我们可以进一步了解针对用户的部署方式。当向用户部署软件时,ConfigMgr的体验会有所不同。用户并非通过软件中心访问可用软件,而是通过名为应…

作者头像 李华
网站建设 2026/4/15 14:16:47

25、深入探索配置管理器:从基础到高级应用

深入探索配置管理器:从基础到高级应用 在配置管理器(ConfigMgr)的使用中,安全配置和高级功能拓展是提升管理效率和系统安全性的关键。下面将详细介绍相关的操作和项目,帮助你更好地掌握ConfigMgr。 安全配置实验室 作为完全管理员,在为安全范围分配可保护对象时,容易…

作者头像 李华
网站建设 2026/4/16 16:05:18

ComfyUI记忆存储装置:大脑中回忆的物理容器设想

ComfyUI记忆存储装置:大脑中回忆的物理容器设想 在AI生成内容日益渗透创作流程的今天,一个核心问题逐渐浮现:我们如何真正“掌控”这些看似智能、实则神秘的模型?当一张图像由数亿参数共同决定时,人类还能否理解它的生…

作者头像 李华
网站建设 2026/4/18 6:24:46

基于Java+ vue图书管理系统(源码+数据库+文档)

图书管理 目录 基于springboot vue图书管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue图书管理系统 一、前言 博主介绍:✌️大…

作者头像 李华
网站建设 2026/4/18 0:30:10

BiliRoaming终极使用指南:解锁B站完整观影体验

BiliRoaming终极使用指南:解锁B站完整观影体验 【免费下载链接】BiliRoaming 哔哩漫游,解除B站客户端番剧区域限制的Xposed模块,并且提供其他小功能。An Xposed module that unblocks bangumi area limit of BILIBILI with miscellaneous fea…

作者头像 李华
网站建设 2026/4/16 15:29:45

基于Java+ vue酒店预约系统(源码+数据库+文档)

酒店预约 目录 基于springboot vue酒店预约系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue酒店预约系统 一、前言 博主介绍:✌️大…

作者头像 李华