呼和浩特网站推广公司郑州东区网站优化公司推荐

张小明 2026/1/7 12:55:46
呼和浩特网站推广公司,郑州东区网站优化公司推荐,杭州百度推广公司有几家,交互设计流程【LLM实操系列06】模型微调#xff1a;用100条数据打造专属AI 开始微调之前#xff0c;建议先完成第02篇#xff08;环境配置#xff09;和第03篇#xff08;模型基础#xff09;的学习。 硬件方面#xff0c;你需要至少8GB GPU显存#xff08;使用QLoRA可降至6GB…【LLM实操系列06】模型微调用100条数据打造专属AI开始微调之前建议先完成第02篇环境配置和第03篇模型基础的学习。硬件方面你需要至少8GB GPU显存使用QLoRA可降至6GB。理论方面了解Transformer基本架构会有帮助第01篇有介绍。5分钟理解微调什么时候需要微调defneed_finetuning():判断是否需要微调if特定领域术语多andPrompt优化无效:return需要微调elif需要特定输出格式andFew-shot效果差:return需要微调elif隐私数据不能用API:return需要微调else:return继续优化Prompt微调 vs 其他方案选择指南方案成本效果适用场景参考章节Prompt工程低一般通用任务第04篇RAG中好知识问答第05篇微调高最好专属任务本篇从头训练极高-不推荐-LoRA高效微调神器原理只训练少量参数# 传统微调训练所有参数7B 70亿参数# LoRA微调只训练0.1%参数7M参数# LoRA数学原理# W_new W_original ΔW# ΔW A × B (A和B是小矩阵)15分钟跑通LoRA# pip install transformers peft datasets accelerate bitsandbytesfromtransformersimport(AutoModelForCausalLM,AutoTokenizer,TrainingArguments,Trainer)frompeftimportLoraConfig,get_peft_model,TaskTypeimporttorch# 1. 加载基座模型以Qwen为例model_nameQwen/Qwen2.5-1.5B# 小模型适合测试modelAutoModelForCausalLM.from_pretrained(model_name,torch_dtypetorch.float16,device_mapauto)tokenizerAutoTokenizer.from_pretrained(model_name)# 2. 配置LoRAlora_configLoraConfig(task_typeTaskType.CAUSAL_LM,r8,# LoRA秩越大效果越好但越慢lora_alpha16,# LoRA缩放参数lora_dropout0.1,# Dropout比例target_modules[q_proj,v_proj],# 要微调的层)# 3. 创建PEFT模型modelget_peft_model(model,lora_config)model.print_trainable_parameters()# 输出: trainable params: 4,194,304 || all params: 1,544,454,144 || trainable%: 0.27# 4. 准备数据defprepare_data():准备训练数据# 格式instruction-output对data[{instruction:翻译成英文你好世界,output:Hello World},{instruction:生成SQL查询年龄大于18的用户,output:SELECT * FROM users WHERE age 18}]returndatadefformat_prompt(example):格式化训练样本promptf|im_start|user{example[instruction]}|im_end| |im_start|assistant{example[output]}|im_end|return{text:prompt}# 5. 训练training_argsTrainingArguments(output_dir./lora_model,num_train_epochs3,per_device_train_batch_size4,gradient_accumulation_steps4,warmup_steps100,logging_steps10,save_strategyepoch,learning_rate1e-4,fp16True,)trainerTrainer(modelmodel,argstraining_args,train_datasettrain_dataset,tokenizertokenizer,)trainer.train()QLoRA4bit量化微调显存对比# 模型大小对比configs{全精度:{7B模型:28GB显存,可行性:A100},LoRA:{7B模型:16GB显存,可行性:3090/4090},QLoRA:{7B模型:6GB显存,可行性:2080Ti},# ← 推荐}QLoRA实现fromtransformersimportBitsAndBytesConfig# QLoRA配置4bit量化bnb_configBitsAndBytesConfig(load_in_4bitTrue,bnb_4bit_compute_dtypetorch.float16,bnb_4bit_quant_typenf4,bnb_4bit_use_double_quantTrue,)# 加载4bit模型modelAutoModelForCausalLM.from_pretrained(model_name,quantization_configbnb_config,device_mapauto)# 准备训练frompeftimportprepare_model_for_kbit_training modelprepare_model_for_kbit_training(model)# 应用LoRAmodelget_peft_model(model,lora_config)# 现在可以在6GB显存上微调7B模型数据准备最佳实践1. 数据格式# 方式1指令微调格式instruction_data{instruction:任务描述,input:输入内容可选,output:期望输出}# 方式2对话格式conversation_data{conversations:[{from:human,value:用户问题},{from:assistant,value:助手回答}]}# 方式3纯文本续写text_data{text:这是一段完整的文本...}2. 数据处理工具classDataProcessor:数据预处理工具def__init__(self,tokenizer,max_length512):self.tokenizertokenizer self.max_lengthmax_lengthdefprocess_dataset(self,raw_data):处理数据集processed[]foriteminraw_data:# 构建对话textself.format_conversation(item)# 分词tokensself.tokenizer(text,max_lengthself.max_length,truncationTrue,paddingmax_length,return_tensorspt)processed.append({input_ids:tokens[input_ids][0],attention_mask:tokens[attention_mask][0],labels:tokens[input_ids][0]# 自回归训练})returnprocesseddefformat_conversation(self,item):格式化为模型输入# Qwen格式returnf|im_start|system You are a helpful assistant.|im_end| |im_start|user{item[instruction]}|im_end| |im_start|assistant{item[output]}|im_end|defvalidate_data(self,dataset):数据质量检查issues[]foridx,iteminenumerate(dataset):# 检查长度iflen(item[text])self.max_length*4:# 估算issues.append(f样本{idx}过长)# 检查格式ifnotitem.get(instruction):issues.append(f样本{idx}缺少instruction)returnissues3. 数据增强defaugment_data(original_data):数据增强技巧augmented[]foriteminoriginal_data:# 1. 原始样本augmented.append(item)# 2. 改写instructionrephrased{instruction:f请{item[instruction]},output:item[output]}augmented.append(rephrased)# 3. 添加思维链cot_version{instruction:item[instruction],output:f让我思考一下。{item[output]}}augmented.append(cot_version)returnaugmented训练监控与评估实时监控fromtransformersimportTrainerCallbackimportwandbclassTrainingMonitor(TrainerCallback):训练监控回调defon_log(self,args,state,control,logsNone,**kwargs):iflogs:# 打印关键指标print(fStep{state.global_step}: Loss{logs.get(loss,0):.4f})# 上传到wandb可选ifwandb.run:wandb.log(logs)defon_epoch_end(self,args,state,control,**kwargs):# 每个epoch结束后评估print(fEpoch{state.epoch}completed)评估指标defevaluate_model(model,test_data):模型评估fromrougeimportRougefrombert_scoreimportscore predictions[]references[]foritemintest_data:# 生成预测input_textitem[instruction]predmodel.generate(input_text,max_length100)predictions.append(pred)references.append(item[output])# ROUGE分数rougeRouge()rouge_scoresrouge.get_scores(predictions,references,avgTrue)# BERTScoreP,R,F1score(predictions,references,langzh)return{rouge:rouge_scores,bertscore:{P:P.mean(),R:R.mean(),F1:F1.mean()}}部署微调模型1. 合并LoRA权重frompeftimportPeftModel# 加载基座模型base_modelAutoModelForCausalLM.from_pretrained(model_name)# 加载LoRA权重modelPeftModel.from_pretrained(base_model,./lora_model)# 合并权重merged_modelmodel.merge_and_unload()# 保存完整模型merged_model.save_pretrained(./final_model)tokenizer.save_pretrained(./final_model)2. 量化部署# GGUF格式用于llama.cpp/OllamafromtransformersimportAutoModelForCausalLMimporttorch# 转换为GGUFmodelAutoModelForCausalLM.from_pretrained(./final_model)model.save_pretrained(./gguf_model,safe_serializationTrue)# 使用llama.cpp量化# python convert.py ./final_model --outfile model.gguf# ./quantize model.gguf model_q4_k_m.gguf q4_k_m3. API服务fromfastapiimportFastAPIfrompydanticimportBaseModel appFastAPI()# 加载模型modelAutoModelForCausalLM.from_pretrained(./final_model)tokenizerAutoTokenizer.from_pretrained(./final_model)classQuery(BaseModel):text:strmax_length:int100app.post(/generate)asyncdefgenerate(query:Query):inputstokenizer(query.text,return_tensorspt)outputsmodel.generate(**inputs,max_lengthquery.max_length)responsetokenizer.decode(outputs[0],skip_special_tokensTrue)return{response:response}成本与效果对比方法数据量训练时间显存效果提升Prompt000基准Few-shot5-100010%LoRA100-1K1-4小时16GB30%QLoRA100-1K2-6小时6GB25%全量微调10K1-7天80GB35%调试技巧# 常见问题快速诊断defdiagnose_training_issues():checks{Loss不下降:[检查学习率试试1e-4到5e-5,增加训练轮数,检查数据格式],显存爆炸:[减小batch_size,使用gradient_accumulation_steps,启用gradient_checkpointing],效果不好:[增加LoRA rank (r8→16),增加训练数据,调整lora_alpha],推理错误:[检查tokenizer配置,确认special tokens,验证prompt模板]}returnchecks
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

微信网站 手机网站镜像网站做优化

PyTorch模型量化实战|Miniconda-Python3.10环境精度对比测试 在智能设备不断向边缘下沉的今天,如何让大型深度学习模型在资源受限的终端上高效运行,已成为算法工程师面临的核心挑战之一。以一台工业摄像头为例,它需要实时完成图像…

张小明 2026/1/3 22:59:02 网站建设

世界工厂采购网站太原网站制作多少钱

5步掌握 Monaco Editor:从零搭建专业代码编辑器 【免费下载链接】monaco-editor-docs monaco-editor 中文文档 项目地址: https://gitcode.com/gh_mirrors/mo/monaco-editor-docs Monaco Editor 作为一款功能强大的在线代码编辑器,其完整的中文文…

张小明 2026/1/7 12:16:23 网站建设

网站设计制作新报价政务信息化建设网站

2025年中国AI就业市场呈现结构性分化,大模型领域人才供大于求,但核心技术岗位极度紧缺。算力成本大幅下降,模型性能差距缩小,企业从"抢人头"转向"抢核心"。薪酬体系呈现K型分化,基础设施工程师薪资…

张小明 2026/1/4 1:17:13 网站建设

网站主色调有几种asp网站配置伪静态

一、研究背景 该代码针对应急物流供应商选择问题,结合云模型与TOPSIS 方法,构建了一种能处理评价不确定性和模糊性的决策模型。传统 TOPSIS 在权重确定和评价信息处理上存在局限性,而云模型能有效表征语言评价的随机性与模糊性,提…

张小明 2026/1/4 2:06:46 网站建设

装修网站设计图推荐公司网站与推广

5G 时代云数据中心光通信技术解析 1. 数据中心通信基础设施概述 在当今数字化时代,数据中心(DC)的通信基础设施至关重要。为了满足通信容量、延迟、可靠性、灵活性和可扩展性的需求,光数据中心互连(optical DCIs)被广泛部署。对于数据中心内部的连接,大量的光收发器和…

张小明 2026/1/6 6:16:33 网站建设

网站建设的用户体验微信朋友圈推广平台收费标准

一、Web 安全概述 (一)Web 安全的定义与重要性 1.定义 Web 安全是指保护 Web 应用程序免受各种网络威胁,确保 Web 服务的保密性、完整性和可用性。在当今数字化时代,Web 应用广泛存在于各个领域,从电子商务到社交媒…

张小明 2026/1/5 8:28:03 网站建设