告别遗忘与混乱:永久在线CRM免费,让您的客户关系管理告别“间歇性”!

核心内容摘要

《原神》甘雨的“意外”跌落
柚子猫甜心vlog免费观看全集:解锁萌宠的无限乐趣!

闪耀与沉浮:韩国演艺圈25载,梦想的织锦与现实的刻痕

目录

什么是 SFTSupervised Fine-Tuning1定义2LOSS的数学表示3一个真实的例子解释LOSS

什么是 LoRALow-Rank Adaptation1定义

示例代码1数据集格式2代码3运行结果4读取lora参数重新进行模型推理

lora和SFT的介绍

什么是 SFTSupervised Fine-Tuning1定义SFT 监督微调本质是用「输入 → 标准输出」对模型做有监督学习形式用户问题 AI标准答案训练目标特点数据成对的prompt, answerloss交叉熵和分类任务本质一样只是输出是文本 SFT 解决的是“模型该学什么行为”2LOSS的数学表示语言模型的训练目标3一个真实的例子解释LOSS这个输出的巴黎是标签。

之后拿到对应标签模型输入的概率之后log求和。

什么是 LoRALow-Rank Adaptation1定义LoRA 一种参数高效微调方法PEFT核心思想❌ 不改原模型参数✅ 只在部分层插入小矩阵并训练它们数学上原本权重LoRA 改为

示例代码1数据集格式{system: 你是一个名为沐雪的可爱AI女孩子, conversation: [{human: 如何集中精力做一件事情, assistant: 首当其冲的肯定是选择一个合适的地方啦比如说图书馆之类的如果你不想出去那就找一个安静的地方吧。

然后扔掉手机这类会让你分心的东西或者关掉通知确保你不会突然被打扰。

明确你要做的事情把它细化成分几步去完成设置期限任务完成之后放松放松。

如果你感觉到累了不行了就去外面转转吧喝一杯咖啡思考让你停下来的地方然后活力满满地继续接下来的工作。

}]}2代码from datasets import load_dataset from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainer from peft import LoraConfig, get_peft_model import torch import json # # ① 模型路径与数据路径 # model_dir rC:\Users\64292\Desktop\大模型学习\xiaozhi\weitiao\Qwen

5-

5B-Instruct data_path rC:\Users\64292\Desktop\大模型学习\xiaozhi\weitiao\competition_train.jsonl # # ② 加载数据集 # dataset load_dataset(json, data_filesdata_path) # # ③ 预处理函数把 system human 拼成 prompt # def format_example(example): conversations example[conversation] if not conversations or len(conversations) 0: return None conv conversations[0] system example.get(system, ) human conv.get(human, ) assistant conv.get(assistant, ) # 构建输入与输出 prompt f系统{system}\n用户{human}\nAI output assistant.strip() return {prompt: prompt, output: output} dataset dataset.map(format_example) dataset dataset.filter(lambda x: x[prompt] is not None) # # ④ 加载分词器与模型 # tokenizer AutoTokenizer.from_pretrained(model_dir, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( model_dir, torch_dtypetorch.float16, device_mapauto ) # # ⑤ LoRA 配置低显存训练 # lora_config LoraConfig( r8, lora_alpha16, target_modules[q_proj, v_proj], lora_dropout

05, biasnone, task_typeCAUSAL_LM ) model get_peft_model(model, lora_config) # # ⑥ Tokenize 函数 # def preprocess(example): text f{example[prompt]}{example[output]} tokenized tokenizer(text, truncationTrue, paddingmax_length, max_length

tokenized[labels] tokenized[input_ids].copy() return tokenized tokenized_ds dataset.map(preprocess, remove_columnsdataset[train].column_names) # # ⑦ 训练配置 # args TrainingArguments( output_dir./qwen

5-

5b-lora-muxue, per_device_train_batch_size1, gradient_accumulation_steps8, learning_rate2e-4, num_train_epochs3, fp16True, logging_steps10, save_steps200, save_total_limit2, report_tonone ) # # ⑧ 训练启动 # trainer Trainer( modelmodel, argsargs, train_datasettokenized_ds[train] ) trainer.train() # # ⑨ 保存权重 # model.save_pretrained(./qwen

5-

5b-lora-muxue) tokenizer.save_pretrained(./qwen

5-

5b-lora-muxue) print(✅ 微调完成权重保存在 ./qwen

5-

5b-lora-muxue)3运行结果4读取lora参数重新进行模型推理from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel import torch # ① 原始模型路径基础模型 base_model_dir rC:\Users\64292\Desktop\xiaozhi\weitiao\Qwen

5-

5B-Instruct # ② LoRA 权重路径你的微调结果 lora_dir r./qwen

5-

5b-lora-muxue # ③ 加载分词器 print( 正在加载分词器和模型...) tokenizer AutoTokenizer.from_pretrained(lora_dir, trust_remote_codeTrue) # ④ 加载基础模型 base_model AutoModelForCausalLM.from_pretrained( base_model_dir, torch_dtypetorch.float16, device_mapauto ) # ⑤ 加载 LoRA 微调权重 model PeftModel.from_pretrained(base_model, lora_dir) model.eval() print(✅ 已加载 Qwen LoRA 微调权重人格沐雪\n) # ⑥ 设定人格系统提示词 system_prompt 你是一个名为世君同学的可爱AI女孩子性格温柔、活泼、善解人意说话要自然可爱。

chat_history f系统{system_prompt}\n # ⑦ 聊天循环 while True: user_input input( 你).strip() if user_input.lower() in [exit, quit, q]: print( 沐雪再见呀记得想我哦 ) break # 将用户输入加入上下文 chat_history f用户{user_input}\nAI # 编码输入 inputs tokenizer(chat_history, return_tensorspt).to(model.device) # 模型生成 outputs model.generate( **inputs, max_new_tokens200, temperature

7, top_p

9, do_sampleTrue, pad_token_idtokenizer.eos_token_id ) # 解码生成文本 reply tokenizer.decode(outputs[0], skip_special_tokensTrue) # 提取模型新增部分去掉历史 new_text reply[len(chat_history):].strip() # 输出结果 print(f 沐雪{new_text}\n) # 更新上下文 chat_history new_text \n

y31成色1.232.1.232-y31成色应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123