当前位置: 首页 > news >正文

lora微调大语言模型(qwen1.5-chat)

本项目基于 Qwen1.5-Chat 模型,采用 LoRA(Low-Rank Adaptation)微调技术,以某部小说的文本为训练语料。通过微调,模型能够更好地学习并模仿小说主人公的语言风格、用词习惯和表达方式,从而在对话场景中呈现出贴近原著人物的说话风格。

代码已开源:

https://github.com/goldmorningsmart/Novel2Chat

项目目标是探索 大语言模型个性化定制 的可行性,展示如何利用 LoRA 高效地对大模型进行小规模训练,使其具备特定人物的语言特征,同时保持 Qwen1.5 原有的对话理解与生成能力。

应用场景包括:

  • 小说角色对话模拟
  • 互动式文学创作
  • 个性化聊天机器人
  • 文学 IP 的衍生应用

本项目是以学习探索大语言模型为目的创建的,你可以通过本项目学习,如何预处理数据集,如何建立标准的jsonl格式数据集,如何使用lora微调,如何合并模型,如何转换模型为gguf格式,如何量化模型,如何使用ollama运行微调后的模型

可以这样写一个更完整、条理清晰的 项目目的


项目目的

本项目以学习和探索 大语言模型(LLM)微调与部署流程 为主要目标。通过对 Qwen1.5-Chat 模型进行 LoRA 微调,可以在实践中学习以下内容:

  1. 数据预处理

    • 学习如何清洗和整理原始文本语料。
    • 构建标准化的 JSONL 格式数据集,并适配对话任务需求。
  2. 模型微调

    • 理解并应用 LoRA(Low-Rank Adaptation)技术,在有限算力下高效完成大模型的个性化微调。
    • 掌握训练参数设置与优化方法。
  3. 模型合并与转换

    • 学习如何将 LoRA 权重合并回基座模型,生成可独立使用的微调模型。
    • 将模型格式转换为 GGUF,以便在轻量化推理框架中运行。
  4. 模型量化

    • 理解不同量化策略(如 4-bit、8-bit)的原理和取舍。
    • 实践模型量化,显著降低显存占用并提升推理效率。
  5. 模型部署与应用

    • 使用 Ollama 等工具运行微调后的模型。
    • 探索大语言模型在 角色模拟、个性化对话 等方向的应用。

运行流程

推荐配置

  • RAM:32GB
  • GPU 显存:12GB(显存不足请使用更小模型)

数据集处理流程

  1. 分割

    • 将原始小说按 1000 字切分为多个片段。
    • 尽管大模型支持 8K+ token 输入,实测每次处理约 1K 效果更佳。
  2. 对话提取

    • 小说总字数约 300 万,直接使用在线 API 成本高(约 200 万 tokens,费用 15–30 元)。
    • 使用 Ollama 离线量化版 Qwen-14B-4bit(12GB 显存;显存不足可选 7B 版本)处理每个片段。
    • 输出 JSON 文件,每 30 个片段保存为一个 JSON 文件。
  3. 清洗与标准化

    • 由于离线 Qwen-14B 输出格式不完全规范,使用 Python 或在线 API 对 JSON 进行清洗。
    • 修复格式问题,保证 JSON 可解析。
  4. 合并为 JSONL

    • 将多个 JSON 文件合并为单行 JSONL 文件,确保可被 datasets 库加载。
  5. 数据扩展(可选)

    • 如对话样本较少,可调用在线 API 进行适度扩展。
    • ⚠️ 注意:可能引入噪声,影响数据集质量。

模型微调

  • 基座模型:Qwen-7B-Chat(需下载未量化版本,首次运行会自动从 Hugging Face Hub 下载)。
  • 使用 LoRA 技术进行微调,并采用 4bit 量化加载
  • 显存需求约 11.2GB,不足时可选择更小模型。
  • 微调后获得具有 特定角色语言风格的模型。

模型合并与部署

  1. 合并模型

    • 将基础模型与 LoRA 权重合并,生成独立可用的微调模型。
    • ⚠️ 合并时 不能量化加载,否则后续转换会报错。
    • 若 GPU 显存不足,可使用 CPU + FP16 精度,约占用 20GB 内存
  2. 安装llama.cpp

    git clone https://github.com/ggerganov/llama.cpp.git
    cd llama.cpp
    make
  3. 格式转换

    • 使用 llama.cpp 的 convert_hf_to_gguf.py 脚本,将模型转换为 GGUF 格式
    • 转换后模型可在 Ollama 或其他支持 GGUF 的推理框架中直接运行。

模型量化(可选)

  • 使用 llama-quantize 将 GGUF 模型进一步量化,降低显存占用:
./llama-quantize \/path/to/input-model.gguf \/path/to/output-model-Q4_0.gguf \Q4_1
  • ⚠️ 版本注意事项

    • 量化工具随 llama.cpp master 分支 更新而变化,有些版本可能不支持 Q4_0 / Q4_1 4bit 量化。
    • 确保使用稳定版本,并先将模型转换为 GGUF 格式。
  • 量化后显存占用显著降低,但可能略微影响模型精度。

http://www.dtcms.com/a/395541.html

相关文章:

  • 数藏APP如何选择高防IP
  • 破壁之道:构建统一EDI平台,提速芯片设计与制造协作链路
  • 【完整源码+数据集+部署教程】房屋损坏图像分割系统: yolov8-seg-fasternet-bifpn
  • 整体设计 完整的逻辑链条 之6 从简约文字到公共逻辑:四种 “空” 驱动的整体构建方法论
  • 软考中项备考经验分享
  • 基于疾风气象大模型预测“桦加沙”台风轨迹的探索与展望
  • 光谱相机在护眼灯领域的应用
  • 坤驰科技携国产化MTCA解决方案,亮相大科学装置控制系统研讨会
  • 操作系统(一) :操作系统基本概念及特征
  • 魔百盒 Armbian OS 25.08 (基于 Debian 11 bullseye)换源
  • MacOS安装brew失败,无法访问github,怎么处理
  • 举办2025年iCAN大学生创新创业大赛未来机器人创业大赛
  • MissionPlanner架构梳理之(十八)视频流
  • 2025 前端突围战:当 React Server Components 遇上 AI 编程,我们该如何重构开发范式?
  • xss-labs闯关【1-11】
  • vue2利用canvas翻页浏览pdf文件
  • 仿生视觉芯片迈向实用化:《Advanced Science》报道双极性宽谱光电晶体管,赋能自动驾驶与机器感知
  • 如何在手机上把CAD图纸导出为PDF?
  • 【2025最新】02 Spring Boot 第一个小程序 for VS Code - 通过 Spring Initializr 扩展创建
  • map和set的使用和实现(C++)
  • Qt 系统相关 - 网络
  • Java中List转换成Map的两种方式
  • 嵌入式 - RAM10
  • Qwen新开源tongyi-DeepResearch:核心优势
  • Java Stream API性能优化实践指南
  • Qt配置序列化与反序列化实战:QSettings的深度应用指南
  • MySQL下载时出现“starting the server”或“initializing错误”的原因以及解决方案
  • MySQL 数据库核心知识点详解
  • 让机器人边思考边行动!新一代具身智能EO-1:统一架构突破VLA瓶颈
  • 数据库笔试选择题:题组1