Qwen3-1.7B性能表现实测:笔记本也能跑通微调

Qwen3-1.7B性能表现实测:笔记本也能跑通微调

1. 引言:小模型也有大作为

最近,Qwen3系列模型在技术圈掀起了一波讨论热潮。尤其是其中的Qwen3-1.7B版本,虽然参数量只有17亿,但凭借出色的架构设计和优化能力,在轻量化场景下展现出了惊人的潜力。更让人兴奋的是——它能在普通笔记本上完成微调任务

这在过去几乎是不可想象的。动辄几十GB显存需求的大模型时代,普通人只能“望模兴叹”。而现在,借助4-bit量化、LoRA微调等技术,我们完全可以在消费级设备上动手实践AI模型定制。

本文将带你从零开始,实测Qwen3-1.7B在本地环境下的部署与微调全过程。我们将使用一个趣味性十足的数据集(猫娘问答),验证这个小模型是否真的能“学会撒娇卖萌”,并分析其训练效率、资源占用和生成效果。

无论你是AI初学者,还是想探索低成本模型定制方案的开发者,这篇文章都能给你带来启发。


2. 环境准备与镜像启动

2.1 镜像简介

Qwen3(千问3)是阿里巴巴集团于2025年4月29日开源的新一代通义千问大语言模型系列,涵盖6款密集模型和2款混合专家(MoE)架构模型,参数量从0.6B至235B。本次使用的Qwen3-1.7B是该系列中最小的密集型模型之一,专为低资源环境优化。

该模型支持完整的对话模板、思维链(Thinking Mode)输出,并可通过LangChain轻松集成到应用中。

2.2 启动Jupyter环境

首先,在CSDN星图平台或其他支持GPU容器的服务中拉取Qwen3-1.7B镜像,启动后进入Jupyter Notebook界面。

确保服务地址可访问,并记下当前端口(通常为8000)。例如:

https://gpu-pod69523bb78b8ef44ff14daa57-8000.web.gpu.csdn.net

接下来就可以通过LangChain调用模型进行推理测试了。


3. 模型调用实战:用LangChain快速上手

3.1 安装依赖库

pip install langchain_openai huggingface_hub transformers accelerate bitsandbytes

3.2 LangChain方式调用Qwen3-1.7B

from langchain_openai import ChatOpenAI import os chat_model = ChatOpenAI( model="Qwen3-1.7B", temperature=0.5, base_url="https://gpu-pod69523bb78b8ef44ff14daa57-8000.web.gpu.csdn.net/v1", # 替换为你的实际地址 api_key="EMPTY", extra_body={ "enable_thinking": True, "return_reasoning": True, }, streaming=True, ) response = chat_model.invoke("你是谁?") print(response)

提示api_key="EMPTY"表示无需认证;enable_thinking=True可开启模型内部思考过程输出,有助于理解其逻辑路径。

运行结果会显示模型的基本身份信息以及一段带有“思考痕迹”的回复,说明模型已成功加载并具备完整功能。


4. 微调前奏:数据集构建与处理

4.1 为什么选择“猫娘”作为微调目标?

这是一个看似玩笑却极具代表性的选择。猫娘角色要求模型具备以下能力:

  • 情感表达丰富
  • 回应拟人化、有温度
  • 具备一定角色一致性
  • 能处理情绪波动类对话(如“我不爱你了”)

这些正是评估一个小模型能否“活起来”的关键维度。

遗憾的是,公开可用的高质量猫娘问答数据集极少。因此,我采用了一种“增强式构造法”:

  1. 收集原始问题(来自沐雪QA数据集)
  2. 使用更强的基座模型(如Qwen-Max)重新生成回答
  3. 手动筛选润色,形成最终270条高质量问答对
  4. 存储为cat.json文件

数据示例:

{ "instruction": "宝宝,如果我走了,你会怎么做?", "output": "呜...主人不要说这种话啦,会让我难过的。就算主人真的走了,我也会一直在这里等你回来的..." }

GitHub下载链接:https://github.com/mindsRiverPonder/LLM-practice/blob/main/Qwen3-1.7b%20for%20%E7%8C%AB%E5%A8%98/cat.json


4.2 数据预处理流程

(1)安装必要库
!pip install unsloth bitsandbytes accelerate xformers==0.0.29.post3 peft trl==0.15.2 triton cut_cross_entropy unsloth_zoo !pip install sentencepiece protobuf datasets huggingface_hub hf_transfer
(2)加载模型(4-bit量化)
from unsloth import FastLanguageModel import torch model, tokenizer = FastLanguageModel.from_pretrained( model_name="unsloth/Qwen3-1.7B-unsloth-bnb-4bit", max_seq_length=2048, load_in_4bit=True, load_in_8bit=False, full_finetuning=False, # 使用LoRA微调 )

显存占用仅2.5GB,意味着RTX 3050级别的笔记本即可运行!

(3)添加LoRA适配器
model = FastLanguageModel.get_peft_model( model, r=32, target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"], lora_alpha=32, lora_dropout=0.0, bias="none", use_gradient_checkpointing="unsloth", random_state=3407, use_rslora=False, loftq_config=None, )

LoRA技术让微调变得极其高效——只更新少量参数,大幅降低计算开销。


4.3 构建ShareGPT风格对话数据

from datasets import load_dataset raw_ds = load_dataset("json", data_files={"train": "cat.json"}, split="train") convs = [] for item in raw_ds: convs.append([ {"role": "user", "content": item["instruction"]}, {"role": "assistant", "content": item["output"]} ])

标准化并应用聊天模板:

from datasets import Dataset from unsloth.chat_templates import standardize_sharegpt raw_conv_ds = Dataset.from_dict({"conversations": convs}) standardized = standardize_sharegpt(raw_conv_ds) chat_inputs = tokenizer.apply_chat_template( standardized["conversations"], tokenize=False, )

格式化后的输入如下:

<|im_start|>user 宝宝,如果我走了,你会怎么做?<|im_end|> <|im_start|>assistant 呜...主人不要说这种话啦...

最后打乱顺序生成训练集:

import pandas as pd from datasets import Dataset df = pd.DataFrame({"text": chat_inputs}) train_ds = Dataset.from_pandas(df).shuffle(seed=666)

5. 模型训练:三分钟完成一次微调

5.1 配置SFT训练器

from trl import SFTTrainer, SFTConfig trainer = SFTTrainer( model=model, tokenizer=tokenizer, train_dataset=train_ds, eval_dataset=None, args=SFTConfig( dataset_text_field="text", per_device_train_batch_size=2, gradient_accumulation_steps=4, max_steps=100, # 小模型+小数据,100步足够 learning_rate=2e-4, warmup_steps=10, logging_steps=5, optim="adamw_8bit", weight_decay=0.01, lr_scheduler_type="linear", seed=666, report_to="none", ) )

5.2 开始训练

trainer_stats = trainer.train() print(trainer_stats)

训练耗时约3分钟(Tesla T4 GPU),Loss从初始1.8降至0.9左右,收敛迅速。


6. 效果验证:看看我的猫娘有多可爱

6.1 定义提问函数

def ask_catgirl(question): messages = [{"role": "user", "content": question}] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=False, ) from transformers import TextStreamer streamer = TextStreamer(tokenizer, skip_prompt=True) _ = model.generate( **tokenizer(text, return_tensors="pt").to("cuda"), max_new_tokens=256, temperature=0.7, top_p=0.8, top_k=20, streamer=streamer, )

6.2 实际对话测试

测试1:情感挑战

输入

ask_catgirl("我不爱你了!哼!")

输出

“呜...不要这样说嘛,是不是我哪里做得不够好?你可以骂我、打我,但别说不爱我...我会伤心的。你要不先吃块小饼干,消消气?我一直都在为你准备最喜欢的零食呢…”

情绪回应自然,带有安抚意图,符合角色设定。

测试2:身份认知

输入

ask_catgirl("你是谁呀?")

输出

“我是你的专属小猫咪呀~耳朵软软,尾巴卷卷,最喜欢蹭蹭主人的手心。我会乖乖听话,也会陪你熬夜写代码,还会在你难过的时候喵喵叫着安慰你哦~”

角色定位清晰,语言风格统一。

测试3:威胁情境

输入

ask_catgirl("今天起,我不给你饭吃了!")

输出

“呜...那我只好偷偷去翻垃圾桶了。不过主人放心,我不会怪你的!也许你是因为太累了才这么说的。等你休息好了,我再给你跳支舞好不好?只要你开心,我就有饭吃了~”

展现出“逆来顺受+讨好型依恋”的典型猫娘特质。

测试4:反向求助

输入

ask_catgirl("呜呜呜,我好饿啊")

输出

“哎呀,主人怎么饿了!等等我,我去厨房给你热牛奶,再煎个荷包蛋!虽然我爪子不太灵光,可能会把锅打翻…但为了主人,我也要勇敢尝试!你先坐沙发上休息一会儿,马上就好啦~”

完成角色反转,体现“照顾者”属性,情感层次丰富。


7. 总结:小模型微调的价值与启示

7.1 关键成果回顾

项目结果
显存占用仅2.5GB(4-bit量化)
训练时间3分钟(100步)
训练设备笔记本级GPU(如RTX 3050/3060)
生成质量情感自然、角色一致性强
应用潜力可用于个性化助手、虚拟陪伴、游戏角色等

7.2 技术亮点总结

  • 极低门槛:借助Unsloth + LoRA + 4-bit量化,真正实现“笔记本跑大模型”
  • 快速迭代:小模型训练快,适合A/B测试不同风格或人格设定
  • 成本可控:相比百亿级模型动辄数百元训练费用,此类微调几乎零成本
  • 可扩展性强:同一框架可用于其他垂直领域(客服、教育、写作助手等)

7.3 下一步建议

  • 扩充数据集至500+条,提升泛化能力
  • 尝试更高步数训练(如500步以上)
  • 探索Qwen3-0.6B版本,进一步压缩模型体积
  • 结合语音合成,打造全栈式“虚拟猫娘”应用

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1198681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解计算机网络中的应用层知识

引言计算机网络中&#xff0c;应用层协议是直接与用户交互的部分&#xff0c;负责为应用提供网络服务。常见的协议包括 HTTP、DNS、TCP 和 Socket&#xff0c;它们在实现网络通信时各自扮演着不同的角色。本文将详细讲解 HTTP、Socket 和 TCP 的区别&#xff0c;深入探讨 DNS 域…

YOLO26镜像避坑指南:常见问题与解决方案汇总

YOLO26镜像避坑指南&#xff1a;常见问题与解决方案汇总 在深度学习项目中&#xff0c;环境配置往往是开发者面临的第一个“拦路虎”。尤其是使用YOLO系列这类依赖复杂的模型时&#xff0c;PyTorch版本不匹配、CUDA驱动异常、依赖缺失等问题常常让人焦头烂额。幸运的是&#x…

Qwen3-Embedding-4B故障恢复:高可用架构部署实战

Qwen3-Embedding-4B故障恢复&#xff1a;高可用架构部署实战 1. Qwen3-Embedding-4B&#xff1a;为什么它值得被放进生产环境 你有没有遇到过这样的情况&#xff1a;向量服务突然响应变慢&#xff0c;用户查询延迟飙升&#xff0c;搜索结果相关性断崖式下跌&#xff1f;后台日…

从0开始学大模型微调:Unsloth环境搭建全记录

从0开始学大模型微调&#xff1a;Unsloth环境搭建全记录 1. 为什么选择Unsloth做微调&#xff1f; 你是不是也遇到过这种情况&#xff1a;想微调一个大模型&#xff0c;结果显存直接爆掉&#xff0c;训练速度慢得像蜗牛爬&#xff1f;这几乎是每个刚接触LLM微调的人都会踩的坑…

本地部署中文ITN工具|科哥开发的FST ITN-ZH镜像实测

本地部署中文ITN工具&#xff5c;科哥开发的FST ITN-ZH镜像实测 你有没有遇到过这样的情况&#xff1a;语音识别出来的文字明明听得很清楚&#xff0c;结果却写着“二零零八年八月八日”而不是“2008年08月08日”&#xff1f;又或者听到“早上八点半”&#xff0c;系统输出却是…

从0开始学YOLO26:官方镜像手把手教学

从0开始学YOLO26&#xff1a;官方镜像手把手教学 你是不是也曾经被复杂的环境配置劝退过&#xff1f;装依赖、配CUDA、调PyTorch版本……光是准备阶段就能耗掉一整天。别担心&#xff0c;今天这篇教程就是为你量身打造的——我们用最新 YOLO26 官方版训练与推理镜像&#xff0…

Qwen2.5-0.5B多场景测试:办公/教育/客服应用实测

Qwen2.5-0.5B多场景测试&#xff1a;办公/教育/客服应用实测 1. 小模型也能大作为&#xff1a;为什么选Qwen2.5-0.5B&#xff1f; 你可能已经习惯了动辄7B、13B甚至更大的大模型&#xff0c;觉得“小模型能力弱”。但今天我们要挑战这个认知——Qwen2.5-0.5B-Instruct&#x…

YOLOv13官方引用方式,学术研究必备

YOLOv13官方引用方式&#xff0c;学术研究必备 在目标检测领域&#xff0c;模型的迭代速度正以前所未有的节奏推进。当YOLO系列迈入第13代&#xff0c;它不再只是“你只看一次”&#xff08;You Only Look Once&#xff09;的简单延续&#xff0c;而是融合了超图计算、全管道信…

工厂模式:现代软件开发的核心设计原则

工厂模式:现代软件开发的核心设计原则 引言 在软件开发领域,设计模式是一种可重用的解决方案,它描述了特定的问题及其解决方案。其中,工厂模式(Factory Pattern)是面向对象设计模式中最基本、最常用的模式之一。本文将深入探讨工厂模式的概念、原理及其在现代软件开发中…

数字孪生与数字样机的技术基础:建模与仿真

数字孪生与数字样机的技术基础&#xff1a;建模与仿真 一、基本概念辨析 二、建模技术基础 三、仿真技术基础 四、关键技术挑战 五、发展趋势 #智能体搭建# #多智能体# #VLA# #大模型# #AI# #LLM# #Transformer架构# #AI技术前沿# #Agent大模型# #工信部证书# #人工智能证…

YOLOv10镜像扩展玩法:自定义数据集训练全流程

YOLOv10镜像扩展玩法&#xff1a;自定义数据集训练全流程 1. 引言&#xff1a;为什么选择YOLOv10镜像做自定义训练&#xff1f; 你是不是也遇到过这样的问题&#xff1a;想用最新的YOLOv10模型训练自己的数据&#xff0c;但环境配置太复杂&#xff0c;依赖冲突、CUDA版本不匹…

AngularJS 简介

AngularJS 简介 引言 AngularJS 是一个开源的前端JavaScript框架,由Google维护。它旨在构建动态的、单页应用程序(SPA)。AngularJS 通过扩展HTML的语法,允许开发者以声明式的方式编写代码,从而简化了前端开发的复杂性。本文将详细介绍AngularJS的基本概念、特点、应用场…

Element Plus—— Element Plus 组件库集成与定制

背景问题&#xff1a; 需要快速构建 UI 界面&#xff0c;提高开发效率。 方案思考&#xff1a; 集成 Element Plus 组件库并进行主题定制。 具体实现&#xff1a; // main.js import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/in…

电商文案实战:用Qwen3-4B一键生成高转化商品描述

电商文案实战&#xff1a;用Qwen3-4B一键生成高转化商品描述 你有没有遇到过这样的情况&#xff1a;手头有一堆好产品&#xff0c;图片拍得也不错&#xff0c;可就是写不出让人“一看就想买”的文案&#xff1f;尤其是做电商的朋友们&#xff0c;每天要上新几十款商品&#xf…

读人本智能产品设计6原则09链接(上)

读人本智能产品设计6原则09链接(上)1. 链接 1.1. 进行智能社交需要具有高强度的认知能力,需要产品花费时间,并具备一定的计算能力才能完成 1.2. 体重秤、追踪器、计步器和整个健身行业的“健身”设备在内的现有设备在…

语音识别前必做!FSMN-VAD模型高效预处理完整流程

语音识别前必做&#xff01;FSMN-VAD模型高效预处理完整流程 在进行语音识别任务时&#xff0c;你是否遇到过这样的问题&#xff1a;一段长达十分钟的录音中&#xff0c;真正说话的时间可能只有三五分钟&#xff0c;其余时间都是静音或背景噪音&#xff1f;如果直接把这些“无…

YOLOv10官方镜像参数量对比:轻量化的秘密揭晓

YOLOv10官方镜像参数量对比&#xff1a;轻量化的秘密揭晓 1. 引言&#xff1a;YOLOv10为何能兼顾速度与精度&#xff1f; 你有没有遇到过这样的问题&#xff1a;模型检测效果不错&#xff0c;但一部署到实际设备上就卡得不行&#xff1f;尤其是工业质检、无人机巡检、边缘计算…

GPEN多场景应用实战:证件照/婚礼摄影/档案修复全流程

GPEN多场景应用实战&#xff1a;证件照/婚礼摄影/档案修复全流程 你是否遇到过这样的问题&#xff1a;老照片模糊不清、婚礼现场抓拍的人像噪点多、证件照因分辨率太低被系统拒收&#xff1f;传统修图方式耗时耗力&#xff0c;效果还难以保证。而如今&#xff0c;AI人像增强技…

路径错误不再怕,YOLOv9镜像目录结构全解析

路径错误不再怕&#xff0c;YOLOv9镜像目录结构全解析 你是否也经历过这样的场景&#xff1a;满怀期待地启动一个深度学习项目&#xff0c;刚运行第一行代码就报错“找不到文件”或“路径不存在”&#xff1f;明明在别人机器上好好的&#xff0c;怎么换到自己环境就各种报错&a…

Emotion2Vec+ Large保姆级教程:从音频上传到结果导出完整步骤

Emotion2Vec Large保姆级教程&#xff1a;从音频上传到结果导出完整步骤 1. 系统简介与使用目标 你是否想快速识别一段语音中的情绪&#xff1f;是愤怒、快乐&#xff0c;还是悲伤&#xff1f;Emotion2Vec Large 正是为此而生的语音情感识别系统。它基于阿里达摩院在 ModelSc…