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

想象一下,你是辛辛苦苦利用开源模型打造一个专属的AI产品助手。这个助手不仅能高效解答客户的问题,还能自豪地告诉大家:“我是某某打造的某某助手,代表着我们的品牌和价值观。” 然而,当前市面上的开源AI模型虽然技术先进,通常回答比较”官方“,它们没有独特的名称或身份,无法体现你的个性化需求。

这时,定制化模型名称就成了一个关键需求。而借助ms-swift这样的高效工具,你可以在短短10分钟内微调一个大模型,让它拥有专属的“自我认知”能力,赋予它一个独特的名称,完美融入你的品牌生态。

文章目录

    • 10分钟打造专属AI助手:用ms-swift实现自我认知微调
      • 什么是自我认知微调?
      • ms-swift:快速微调的秘密武器
        • 第一步:创建GPU环境
        • 第二步:创建环境依赖
        • 第三步:下载数据集以及模型
        • 第四步:微调与测试效果
          • 微调前:懵懂的AI
          • 微调后:专属的AI
            • 关键参数小课堂
      • 总结:10分钟的AI蜕变

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,用这个命令启动推理:

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条数据。调好这个比例,能让模型在学会身份的同时不忘老本行。

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

[INFO:swift] best_model_checkpoint: /workspace/output/v0-20250317-064454/checkpoint-92 

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

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’推理引擎进行推理:

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助手!欢迎在评论区分享你的成果!

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

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

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

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

相关文章

尝试使用tauri2+Django+React的项目

前言 使用Tauri2前端,本质是进程间的通信。并非前后端。 而想使用nw,先后端打包exe,再和前端打包成exe,并没有完成成功。 而笔者从Tauri中看到这种可能性。很有可能成功基于SeaORMMySQLTauri2ViteReact等的CRUD交互项目-CSDN博…

【JavaWeb学习Day27】

Tlias前端 员工管理 条件分页查询&#xff1a; 页面布局 搜索栏&#xff1a; <!-- 搜索栏 --><div class"container"><el-form :inline"true" :model"searchEmp" class"demo-form-inline"><el-form-item label…

Milvus WeightedRanker 对比 RRF 重排机制

省流:优先选择WeightedRanker 以rag为例,优先选择bm25全文检索,其次选择向量检索 Milvus混合搜索中的重排机制 Milvus通过hybrid_search() API启用混合搜索功能&#xff0c;结合复杂的重排策略来优化多个AnnSearchRequest实例的搜索结果。本主题涵盖了重排过程&#xff0c;…

PLY格式文件如何转换成3DTiles格式——使用GISBox软件实现高效转换

一、概述 在三维GIS和数字孪生领域&#xff0c;3DTiles格式已成为主流的数据格式之一。它由Cesium团队提出&#xff0c;专为大规模3D数据可视化设计&#xff0c;能够高效地加载和展示海量模型数据。而PLY格式则是一种常见的三维模型文件格式&#xff0c;主要用于存储点云数据或…

Junit在测试过程中的使用方式,具体使用在项目测试中的重点说明

JUnit 是一个广泛使用的 Java 单元测试框架,主要用于编写和运行可重复的测试。以下是 JUnit 在项目测试中的使用方式和重点说明: 1. 基本使用 场景:测试一个简单的 Java 类。 示例: import org.junit.Test; import static org.junit.Assert.*;public class CalculatorTe…

《C++11 基于CAS无锁操作的atomic原子类型》

count; count--; 我们知道&#xff0c;/--操作并不是原子性的&#xff0c;其实对应三条汇编指令来完成的。 读取&#xff1a;从内存中把变量的值读取到寄存器修改&#xff1a;在寄存器里将变量的值1/-1写入&#xff1a;把修改后的值写入到内存 在单线程环境下&#xff0c;这…

网络编程之客户端聊天(服务器加客户端共三种方式)

最终效果&#xff1a; serve.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/select.h>#define MAX_CLIENTS 2 // 只允许两个客户端 #define BUF_SIZE 1024i…

《深度学习》—— 模型部署

文章目录 模型部署模型准备选择部署平台部署配置与服务化测试与验证优化与维护常用工具与框架Flask本地部署模型 模型部署 模型部署是将训练好的机器学习或深度学习模型投入实际生产环境&#xff0c;使其能够处理实时数据并提供预测或推理服务的过程。 模型准备 模型格式转换…

解码小米714亿资本棋局:雷军“押宝”AI新战场

目录 小米的AI战略&#xff1a;70亿投入背后的逻辑 1. ​AI成为核心战略&#xff0c;聚焦三大方向 2. ​资本开支超100亿&#xff0c;投资AI基础层公司 3. ​自研芯片与大模型突破 小米的资本棋局&#xff1a;从智能硬件到AI生态 1. ​714亿投资布局&#xff0c;构建产业…

如何为在线游戏选择合适的游戏盾?

在当今这个互联网高速发展的时代&#xff0c;在线游戏已经成为许多人日常生活中不可或缺的一部分。然而&#xff0c;随着游戏人数的不断增加&#xff0c;网络安全问题也层出不穷。游戏盾的问世便是为了解决这一系列安全隐患&#xff0c;确保玩家在游戏中能够拥有安全、畅快的体…

自适应柔顺性策略:扩散引导控制中学习近似的柔顺

24年10月来自斯坦福大学和 TRI 的论文“Adaptive Compliance Policy: Learning Approximate Compliance for Diffusion Guided Control”。 柔顺性在操作中起着至关重要的作用&#xff0c;因为它可以在不确定的情况下平衡位置和力的并发控制。然而&#xff0c;当今的视觉运动策…

w264民族婚纱预定系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

栈/堆/static/虚表

在 C 里&#xff0c;栈空间主要用来存放局部变量、函数调用信息等。下面为你介绍栈空间在 C 里的运用方式。 1. 局部变量的使用 在函数内部定义的变量会被存于栈空间&#xff0c;当函数执行结束&#xff0c;这些变量会自动被销毁。 #include <iostream>void exampleFu…

SpringBoot实现异步调用的方法

在Java中使用Spring Boot实现异步请求和异步调用是一个常见的需求&#xff0c;可以提高应用程序的性能和响应能力。以下是实现这两种异步操作的基本方法&#xff1a; 一、异步请求&#xff08;Asynchronous Request&#xff09; 异步请求允许客户端发送请求后立即返回&#x…

基于 Prompt 的实体关系抽取:原理与优势解析

一、信息抽取的现状与挑战 在当今数字化时代&#xff0c;信息抽取作为自然语言处理&#xff08;NLP&#xff09;领域的核心技术&#xff0c;具有不可替代的重要性。从海量的非结构化文本数据中精准提取出有价值的信息&#xff0c;例如实体&#xff08;如人名、组织名&#xff…

SolidWorks使用显卡教程

操作步骤&#xff1a; 打开注册表编辑器 按下键盘上的 Win R 组合键&#xff0c;输入 regedit 并按回车键&#xff0c;打开注册表编辑器。 导航到显卡信息路径 在注册表中依次展开以下路径&#xff1a; plaintext HKEY_CURRENT_USER\Software\SolidWorks\SOLIDWORKS 2021\Per…

spring-tx笔记

编程式事务与声明式事务的理解 补充&#xff1a;什么是事务&#xff1f; 事务是一个重要概念&#xff0c;尤其在数据库管理系统中。事务是指一组操作。&#xff0c;这些操作要么全部成功执行&#xff0c;要么全部不执行&#xff0c;确保数据的一致性和完整性 编程式事务 编…

使用excel.EasyExcel实现导出有自定义样式模板的excel数据文件,粘贴即用!!!

客户要求导出的excel文件是有好看格式的&#xff0c;当然本文举例模板文件比较简单&#xff0c;内容丰富的模板可以自行设置&#xff0c;话不多说&#xff0c;第一步设置一个"好看"的excel文件模板 上面要注意的地方是{.变量名} &#xff0c;这里的变量名对应的就是…

AutoGluon快速上手

我叫不三不四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲机器学习包 AutoGluon简介&#xff1a; AutoGluon 提供了多种模型来处理不同类型的数据和任务&#xff0c;是由 亚马逊 AWS 团队 开发的一款开源 AutoML 框架&#xff0c;旨在简化机器…

AI风向标《AI与视频制作全攻略:从入门到精通实战课程》

课程信息 AI风向标《AI与视频制作全攻略&#xff1a;从入门到精通实战课程》,夸克网盘和百度网盘课程。 课程介绍 《AI与视频制作全攻略&#xff1a;从入门到精通实战课程》是一套全面融合AI技术与视频制作的实战课程&#xff0c;旨在帮助创作者从基础软件使用到高级视频剪辑…