网站被恶意仿站网站管理员工作总结
2026/4/16 23:48:24 网站建设 项目流程
网站被恶意仿站,网站管理员工作总结,江门模板建站源码,物流网站开题报告如何将微调模型转为GGUF格式#xff1f;Unsloth操作指南 1. 引言#xff1a;为什么需要把模型转成 GGUF#xff1f; 你有没有遇到过这种情况#xff1a;辛辛苦苦在云端用 Unsloth 微调了一个大模型#xff0c;效果不错#xff0c;但想把它拿回本地运行时却发现——太难…如何将微调模型转为GGUF格式Unsloth操作指南1. 引言为什么需要把模型转成 GGUF你有没有遇到过这种情况辛辛苦苦在云端用 Unsloth 微调了一个大模型效果不错但想把它拿回本地运行时却发现——太难了加载慢、依赖多、环境复杂甚至根本跑不起来。这时候GGUF 格式就是你的救星。GGUFGPT-Generated Unified Format是一种专为本地部署设计的模型存储格式。它把模型权重、分词器、配置信息全都打包进一个文件里支持多种量化级别比如 4bit、8bit让你能在普通电脑上流畅运行大模型哪怕没有高端显卡也行。而Unsloth这个框架不仅能让微调速度快 2 倍、显存占用降 70%还直接内置了save_pretrained_gguf功能一键就能把训练好的模型导出为 GGUF 格式省去了繁琐的手动转换流程。本文将手把手带你完成在 Unsloth 环境中微调模型将微调结果保存为 GGUF 格式上传到 Hugging Face用 Ollama 在本地轻松运行整个过程小白友好代码可复制粘贴适合所有想把 AI 模型“带回家”的开发者和爱好者。2. 准备工作搭建 Unsloth 环境2.1 检查 Conda 环境是否正常如果你使用的是预装 Unsloth 的镜像环境如 CSDN 星图平台提供的镜像首先确认环境已正确加载。conda env list你会看到类似如下输出# conda environments: # base * /opt/conda unsloth_env /opt/conda/envs/unsloth_env确保unsloth_env存在。2.2 激活 Unsloth 虚拟环境conda activate unsloth_env激活后命令行前缀会变成(unsloth_env)表示你现在处于正确的环境中。2.3 验证 Unsloth 安装成功运行以下命令检查 Unsloth 是否安装完整python -m unsloth如果出现版本号或帮助信息说明安装成功如果有报错请重新安装pip uninstall unsloth -y pip install --upgrade --no-cache-dir githttps://github.com/unslothai/unsloth.git3. 加载并微调你的模型3.1 导入模型与 tokenizer我们以unsloth/DeepSeek-R1-Distill-Llama-8B为例这是一个经过优化的小型 Llama 变体适合快速实验。from unsloth import FastLanguageModel import torch max_seq_length 2048 dtype None load_in_4bit True model, tokenizer FastLanguageModel.from_pretrained( model_nameunsloth/DeepSeek-R1-Distill-Llama-8B, max_seq_lengthmax_seq_length, dtypedtype, load_in_4bitload_in_4bit, )这段代码做了三件事下载模型首次运行启用 4bit 量化大幅降低显存占用自动选择最优数据类型float16 或 bfloat16提示如果你要访问私有模型或上传到 Hugging Face记得设置 token。3.2 配置 LoRA 进行高效微调LoRALow-Rank Adaptation是当前最主流的轻量级微调技术。它不修改原始模型参数而是添加少量可训练层实现“打补丁”式更新。model FastLanguageModel.get_peft_model( model, r16, target_modules[q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj], lora_alpha16, lora_dropout0, biasnone, use_gradient_checkpointingunsloth, random_state3407, )关键参数解释r16控制新增参数规模越大越强但也更耗资源target_modules指定哪些模块应用 LoRA这里覆盖了注意力和 FFN 层use_gradient_checkpointing开启梯度检查点节省显存3.3 准备训练数据集我们使用中文医疗数据集shibing624/medical来演示如何格式化输入。from datasets import load_dataset EOS_TOKEN tokenizer.eos_token dataset load_dataset(shibing624/medical, finetune, splittrain[:200], trust_remote_codeTrue) print(数据字段, dataset.column_names) # 输出[instruction, input, output]定义提示模板让模型学会“像医生一样思考”prompt_template 以下是描述任务的指令以及提供进一步上下文的输入。 请写出一个适当完成请求的回答。 在回答之前请仔细思考问题并创建一个逻辑连贯的思考过程以确保回答准确无误。 ### 指令 你是一位精通医学知识的医生能够回答关于疾病、治疗方案和健康建议的问题。 请回答以下医疗问题。 ### 问题 {} ### 回答 思考 {} /思考 {}格式化函数def format_prompts(examples): instructions examples[instruction] inputs examples[input] outputs examples[output] texts [] for inst, inp, out in zip(instructions, inputs, outputs): text prompt_template.format(inst, inp, out) EOS_TOKEN texts.append(text) return {text: texts} dataset dataset.map(format_prompts, batchedTrue)3.4 开始训练使用 Hugging Face 的SFTTrainer监督微调训练器进行训练。from trl import SFTTrainer from transformers import TrainingArguments from unsloth import is_bfloat16_supported trainer SFTTrainer( modelmodel, tokenizertokenizer, train_datasetdataset, dataset_text_fieldtext, max_seq_lengthmax_seq_length, dataset_num_proc2, packingFalse, argsTrainingArguments( per_device_train_batch_size2, gradient_accumulation_steps4, warmup_steps5, max_steps75, learning_rate2e-4, fp16not is_bfloat16_supported(), bf16is_bfloat16_supported(), logging_steps1, optimadamw_8bit, weight_decay0.01, lr_scheduler_typelinear, seed3407, output_diroutputs, report_tonone, ), ) trainer.train()训练完成后模型的 LoRA 权重会被保存在outputs文件夹中。4. 将微调模型导出为 GGUF 格式这才是本文的核心如何把训练好的模型变成可以直接运行的.gguf文件Unsloth 提供了极其简单的接口# 保存为 8-bit 量化 GGUF推荐平衡版 model.save_pretrained_gguf(my_medical_model, tokenizer, quantization_methodQ8_0) # 或者保存为 4-bit 量化更小适合低配设备 # model.save_pretrained_gguf(my_medical_model, tokenizer, quantization_methodq4_k_m) # 或者保存为 f16 全精度最大质量最高 # model.save_pretrained_gguf(my_medical_model, tokenizer, quantization_methodf16)执行后你会得到一个名为my_medical_model的文件夹里面包含ggml-model-Q8_0.gguf主模型文件tokenizer.json分词器special_tokens_map.json特殊标记映射config.json模型配置这些文件就可以直接用于本地推理了5. 上传到 Hugging Face 并用 Ollama 运行5.1 设置 Hugging Face Token你需要先获取 HF Token登录 huggingface.co点击右上角头像 → Settings → Access Tokens创建一个具有write权限的新 token复制并保存然后在 Colab 或终端中设置环境变量from google.colab import userdata HUGGINGFACE_TOKEN userdata.get(HUGGINGFACE_TOKEN)或者在 Linux/Mac 终端export HUGGINGFACE_TOKENyour_token_here5.2 创建仓库并上传模型from huggingface_hub import create_repo # 创建公开仓库 create_repo(your_username/medical-gguf, tokenHUGGINGFACE_TOKEN, exist_okTrue) # 推送 GGUF 模型 model.push_to_hub_gguf( repo_idyour_username/medical-gguf, tokenizertokenizer, tokenHUGGINGFACE_TOKEN )上传成功后你会在 Hugging Face 上看到一个包含.gguf文件的仓库。5.3 使用 Ollama 本地运行模型Ollama 支持直接拉取 Hugging Face 上的 GGUF 模型打开终端运行ollama run hf.co/your_username/medical-gguf第一次运行会自动下载模型文件根据量化等级大小在 3GB~8GB 不等之后即可离线使用。你可以像这样提问我最近总是头晕可能是什么原因模型会以“医生”身份给出专业建议而且是完全本地运行隐私安全有保障。6. 总结从微调到本地部署的完整路径6.1 关键步骤回顾我们走完了从零开始的全流程准备环境激活unsloth_env验证安装加载模型使用FastLanguageModel.from_pretrained加载基础模型配置 LoRA通过get_peft_model实现高效微调训练模型用SFTTrainer在小数据集上完成微调导出 GGUF调用save_pretrained_gguf一键生成.gguf文件上传 HF使用push_to_hub_gguf分享成果本地运行通过ollama run hf.co/...在本机启动模型每一步都简洁明了无需手动编译、无需第三方工具链。6.2 为什么这个组合如此强大工具优势Unsloth训练快 2x显存少 70%内置 GGUF 支持GGUF单文件部署跨平台兼容支持多级量化Ollama极简命令行体验自动下载开箱即用这三者结合真正实现了“云端训练 本地推理”的理想闭环。6.3 实用建议推荐量化方式Q8_0最佳平衡q4_k_m适合低配设备❌不要频繁修改模板一旦训练完成prompt 模板应保持一致可以合并 LoRA 权重若想永久固化微调效果可用model.merge_and_unload()合并进原模型注意 Token 安全不要在公开代码中硬编码HUGGINGFACE_TOKEN获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询