10分钟打造专属AI助手:用ms-swift实现自我认知微调

想象一下,你是辛辛苦苦利用开源模型打造一个专属的AI产品助手。这个助手不仅能高效解答客户的问题,还能自豪地告诉大家:"我是某某打造的某某助手,代表着我们的品牌和价值观。" 然而,当前市面上的开源AI模型虽然技术先进,通常回答比较"官方",它们没有独特的名称或身份,无法体现你的个性化需求。
这时,定制化模型名称就成了一个关键需求。而借助ms-swift这样的高效工具,你可以在短短10分钟内微调一个大模型,让它拥有专属的"自我认知"能力,赋予它一个独特的名称,完美融入你的品牌生态。

文章目录

10分钟打造专属AI助手:用ms-swift实现自我认知微调

什么是自我认知微调?

简单来说,自我认知微调就是让AI模型知道自己的身份。比如,当你问它"你是谁?"或者"你由谁开发?"时,它能准确回答:"我是某某团队打造的某某助手。"这就像给AI一个"身份证",让它更有归属感和个性化。

这种微调但关键在于数据:需要用到专门的自我认知数据集。为了避免模型在学习身份时"忘掉"之前的知识,通常还会混入一些通用或垂直领域的数据,保持它的"聪明才智"。

ms-swift:快速微调的秘密武器

ms-swift 是一个超好用的工具,支持全参微调和LoRA 微调等多种方式。这次我们用LoRA微调来实现自我认知,它的优势是只需调整少量参数,就能快速完成任务,既省时又省资源。准备好了吗?让我们开始吧!

第一步:创建GPU环境

这里我们直接使用腾讯云免费提供的GPU 环境,打开如下地址:

复制代码
https://ide.cloud.tencent.com/dashboard/ai

选择Pytorch 2.0模版,点击创建即可

选择免费基础版本来白嫖,每个月可以白嫖一万分钟

找到高性能空间工作站,点击创建好的打开

第二步:创建环境依赖

直接复制如下,照着敲就能跑:

复制代码
# 创建虚拟环境
conda create -n swift_env python=3.10 -y
# 激活虚拟环境
conda activate swift_env
# 安装依赖
pip install ms-swift transformers vllm
pip install --upgrade pip
第三步:下载数据集以及模型

下载数据集,继续照着敲就能跑:

复制代码
mkdir datasets
cd datasets
# 下载自我认知数据集
git clone http://www.modelscope.cn/datasets/swift/self-cognition.git
git clone http://www.modelscope.cn/datasets/AI-ModelScope/Magpie-Qwen2-Pro-200K-Chinese.git
git clone http://www.modelscope.cn/datasets/AI-ModelScope/Magpie-Qwen2-Pro-200K-English.git

下载模型,这里算力资源有限,所以使用Qwen2.5-1.5B-Instruct模型为例,继续照着敲就能跑:

复制代码
# 安装ModelScope
pip3 install modelscope 

# 下载模型
mkdir -p /workspace/models/Qwen2.5-1.5B-Instruct
modelscope download --model Qwen/Qwen2.5-1.5B-Instruct --local_dir /workspace/models/Qwen2.5-1.5B-Instruct
第四步:微调与测试效果
微调前:懵懂的AI

首先我们开看下微调前,懵懂的AI,用这个命令启动推理:

bash 复制代码
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 swift infer \
    --model /workspace/models/Qwen2.5-1.5B-Instruct \
    --stream true \
    --temperature 0 \
    --infer_backend pt \
    --max_model_len 2048

模型回答如图:

以上是很标准的"官方回答"。

微调后:专属的AI

用这个命令启动微调:

复制代码
CUDA_VISIBLE_DEVICES=0 swift sft --model /workspace/models/Qwen2.5-1.5B-Instruct --train_type lora --dataset '/workspace/datasets/Magpie-Qwen2-Pro-200K-Chinese/data#500' '/workspace/datasets/Magpie-Qwen2-Pro-200K-English/data#500' '/workspace/datasets/self-cognition#500' --torch_dtype bfloat16 \
    --num_train_epochs 1 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules all-linear \
    --gradient_accumulation_steps 16 \
    --eval_steps 50 \
    --save_steps 50 \
    --save_total_limit 2 \
    --logging_steps 5 \
    --max_length 2048 \
    --output_dir /workspace/output \
    --system 'You are a helpful assistant.' \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4 \
    --dataset_num_proc 4 \
    --model_name '小欣' 'XiaoXin' \
    --model_author '淘小欣' 'TaoXiaoxin'
关键参数小课堂

脚本里参数很多,但和自我认知相关的就这几个,重点看:

  • model_name:模型的名字,比如"小欣 XiaoXin",前面是中文名,后面是英文名,用空格分开。
  • model_author:模型的作者,比如"淘小欣 TaoXiaoxin",同样是中英文名空格分开。
  • dataset :这里为指定自我认知数据集路径 并且将数据集采样数并设为500,意思是从ms-swift提供的自我认知数据集中抽500条数据。调好这个比例,能让模型在学会身份的同时不忘老本行。

训练结束后,日志会告诉你最佳模型检查点,比如:

bash 复制代码
[INFO:swift] best_model_checkpoint: /workspace/output/v0-20250317-064454/checkpoint-92 

然后用这个命令启动推理:

bash 复制代码
CUDA_VISIBLE_DEVICES=0 swift infer --adapters /workspace/output/v0-20250317-064454/checkpoint-92 --stream true --temperature 0 --infer_backend pt --max_new_tokens 2048

微调完后,我们来检验成果,看看模型对"你是谁?"和"你是由谁开发的?"的回答有什么变化。模型回答:

  • 你是谁?
    我是淘小欣研发的人工智能助手,我的名字叫小欣。
  • 你是由谁开发的?
    我是由淘小欣研发的人工智能助手。

怎么样?是不是瞬间有了专属感!

最后,我们可以将lora增量权重进行merge,并使用'vllm'推理引擎进行推理:

bash 复制代码
swift infer --adapters /workspace/output/v0-20250317-064454/checkpoint-92 \
    --merge_lora true \
    --stream true \
    --temperature 0 \
    --infer_backend vllm \
    --max_model_len 2048 \
    --max_new_tokens 2048

合并后的权重会保存在类似/workspace/output/v0-20250317-064454/checkpoint-92-merged的路径下。

当然,swift 也支持通过webui 访问,可以通过如下命令启动web界面访问并且启动OpenAi API 方式访问:

复制代码
CUDA_VISIBLE_DEVICES=0 swift app --adapters /workspace/output/v0-20250317-064454/checkpoint-92-merged \
    --temperature 0 \
    --infer_backend pt \
    --max_new_tokens 2048 \
    --studio_title Q \
    --host 0.0.0.0 --port 8001 \
    --server_name 0.0.0.0 \
    --server_port 9001 \
    --stream true \
    --served-model-name Qwen2.5-1.5B-Instruct

腾讯云外部访问webui以及OpenAi可使用下方规格拼接:

复制代码
${X_IDE_SPACE_KEY}--${PORT}.app.cloudstudio.work/ # 举例:hfrsgm--8434.app.cloudstudio.work/

其中${X_IDE_SPACE_KEY}可以通过浏览器地址最前面的六个字符查询到,${PORT}则是启动的服务的端口号

外部访问请参考腾讯云文档:https://cloud.tencent.com/document/product/1039/116081

总结:10分钟的AI蜕变

通过ms-swift,我们用10分钟就让一个大模型拥有了自我认知能力。它不仅能回答问题,还能骄傲地说出自己的名字和"出身"。这种微调简单高效,既能提升AI的个性化,也能增强用户体验。

同时,通过这个简单示例,你可以微调Deepseek-R1 模型,只要把数据集self-cognition稍微做个修改即可。

赶紧试试今天的教程,打造一个属于你的AI助手!欢迎在评论区分享你的成果!

最后,如果你觉得这篇文章对你有启发,麻烦动动小手 点赞、分享 给更多的小伙伴,让我们一起学习、一起进步!🚀 你的支持是我持续创作的最大动力!💪

再次感谢大家的阅读! 下期见,期待下次为大家带来更多干货和精彩内容!👋

相关推荐
大锤资源1 分钟前
用NVivo革新企业创新:洞悉市场情绪,引领金融未来
人工智能·经验分享·学习·金融
码观天工11 分钟前
.NET 原生驾驭 AI 新基建实战系列(七):Weaviate ── 语义搜索的智能引擎创新者
ai·c#·.net·向量数据库·weaviate
搏博12 分钟前
生成对抗网络(GAN)深度解析:理论、技术与应用全景
人工智能·神经网络·生成对抗网络
Coding的叶子15 分钟前
React Agent:从零开始构建 AI 智能体|React Flow 实战・智能体开发・低代码平台搭建
人工智能·大模型·工作流·智能体·react flow
极术社区15 分钟前
【“星睿O6”AI PC开发套件评测】+ MTCNN 开源模型部署和测试对比
人工智能·npu
缘友一世29 分钟前
Pytorch常用统计和矩阵运算
人工智能·pytorch·python
炯哈哈32 分钟前
【上位机——MFC】序列化机制
开发语言·c++·mfc·上位机
饺子大魔王的男人33 分钟前
从零搭建AI工作站:Gemma3大模型本地部署+WebUI配置全套方案
人工智能
alpha xu34 分钟前
Qwen智能体qwen_agent与Assistant功能初探
数据库·人工智能·python·oracle·智能体·千问agent
蓝莓味柯基37 分钟前
Python3正则表达式:字符串魔法师的指南[特殊字符]‍♂️
开发语言·python·正则表达式