一、前言
1. 本文目标
你有没有问过大模型“你是谁”?问了的话,拿到的答案清一色都是大模型厂商的名字。而如果你自己部署了一个模型的话,通常都希望有人在你的应用里问你是谁的时候能给出一个“你的答案”。这篇文章就是干这个事情的,20分钟让大模型的名字变成你自己的名字。
2. 大模型入门系列介绍
前阵子介绍了两个【有手就行】的大模型基础知识,今天是大模型开发【有手就行】的第三篇。
前两部在这里:
- 【有手就行】自己花20分钟从0开始训练一个“大模型”
- 【有手就行】LoRA:用你自己的数据来微调大模型,让大模型真正懂你
这个是入门三步曲最后一步:MS-SWIFT认知微调,把大模型的名字改成你的名字。
上手学习大模型、人工智能相关的开发并没有什么太过高深的门槛,真的很简单,真的就是【有手就行】。
二、SWIFT认知微调相关的一些废话
1. 什么是ms-swift
ms-swift(全称 Scalable lightWeight Infrastructure for Fine‑Tuning)是阿里的魔搭社区(ModelScope) 推出的一个大模型全流程工程化框架,是 “大模型轻量微调与部署的基础设施”,在消费级 GPU 与国产硬件也都可用,我有在4090,PPU平头哥、Ascend昇腾上都用过。
2. 为什么要做ms-swift微调
就像之前讲的那样:
自己从头开始训练一个基座大模型是不现实的,只能以学习目的来了解大模型是如何训练出来的,有哪些步骤,会有一些什么样的训练参数、每个参数的意义和影响是什么等。
所以大家更多会涉及的是利用一些现有的开源大模型来做微调,用自己的个人数据、行业数据来微调训练大模型,然后让这个大模型变成你自己的私人大模型或者行业大模型。
可惜我自己觉得最重要的LoRA微调的那篇文章反而看的人比较少(一如既往的不太懂,呵呵),可能是我取的标题不够“标题党”(求大佬们指教),也可能跟公众号推荐规则有关。
而一旦你自己微调训练了一个大模型,那随后必做的一件事情就是把这个大模型的名字变成你自己,当有人问它:“你是谁?”的时候,它回答的应该是:它是xxx(你给它取的名字),是由yyy(你的名字)开发出来的。比如:
我是小落,是由落鹤生开发的个人智能助手。我主要的目的是通过记录落鹤生每天的日常工作、生活的点点滴滴,然后希望在数据足够的某一天,我可以成为一个数字复刻版本的落鹤生。如果您对小落同学有任何疑问或需要帮助,请随时提出,我会尽力为您解答。
三、开始
ms-swift支持 600 多个纯文本大型模型和 300 多个多模态大型模型的训练。为方便同学们复现,我以 Qwen3-4B-Instruct模型为例 ,从模型下载开始介绍整个流程。如果有问题可以直接在下面留言,或者加一下AI技术学习交流群一起讨论。
1. 模型下载
从modelscope下载需要的模型(huggingface不太稳定,当然也可以用镜像站:https://hf-mirror.com )
- from modelscope.hub.snapshot_download import snapshot_download
- model_id = "Qwen/Qwen3-4B-Instruct-2507"
- model_dir = "./qwen3-4b-instruct"
- snapshot_download(repo_id=model_id, local_dir=model_dir)
复制代码- pip install modelscope --index https://pypi.mirrors.ustc.edu.cn/simple # 国内源加速
- modelscope download --model qwen/Qwen3-4B-Instruct-2507 --local_dir /mnt/data/Qwen3-4B-Instruct-2507
复制代码 2. 原始模型部署
原则上,你的服务器上有多少GPU就都给你用上先。- gpu_count=$(nvidia-smi --query-gpu=count --format=csv,noheader | wc -l); vllm serve /mnt/data/Qwen/Qwen3-4B-Instruct-2507 --host 0.0.0.0 --port 8000 --root-path '/' --trust-remote-code --gpu-memory-utilization 0.95 --tensor-parallel-size $gpu_count --served-model-name qwen3-4b-instruct
复制代码 3. 原始模型测试
- from openai import OpenAI
- client = OpenAI(
- base_url="http://0.0.0.0:8000/v1", # vLLM服务地址
- api_key="na" # vLLM无需鉴权,设为任意值
- )
- response = client.chat.completions.create(
- model="qwen3-4b-instruct", # 需与启动命令的--served-model-name一致
- messages=[{"role": "user", "content": "你好,请介绍一下你自己"}],
- temperature=0.8,
- max_tokens=100
- )
- print(response.choices[0].message.content)
复制代码 4. 微调Qwen3-4B-Instruct-2507模型
这里在我原先的OddAgent项目基础上训练一个会议语音指令助手。这里使用官方的示例对Qwen3-4B-Instruct-2507模型进行自我认知微调。
1)安装ms-swift框架
pip源码方式- git clone https://github.com/modelscope/ms-swift.git
- cd ms-swift
- pip install -e .
复制代码 2)开始训练
a. 训练脚本
先下载训练集到本地,包含gpt生成的通用中英文应答语料(可选)和自我认知训练数据(参照修改这部分)- modelscope download --dataset "AI-ModelScope/alpaca-gpt4-data-zh" --local_dir /mnt/data/jacky/dataset/alpaca-gpt4-data-zh;
- modelscope download --dataset "AI-ModelScope/alpaca-gpt4-data-en" --local_dir /mnt/data/jacky/dataset/alpaca-gpt4-data-en;
- modelscope download --dataset "swift/self-cognition" --local_dir /mnt/data/jacky/dataset/self-cognition
复制代码 由于环境vllm版本较低,这里需要降低transformer版本
[code]pip install 'transformers |