找回密码
 立即注册
首页 业界区 业界 【有手就行】SWIFT:花20分钟把大模型的名字变成你的名 ...

【有手就行】SWIFT:花20分钟把大模型的名字变成你的名字

准挝 3 小时前
一、前言

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昇腾上都用过。
1.png

2. 为什么要做ms-swift微调

就像之前讲的那样:
自己从头开始训练一个基座大模型是不现实的,只能以学习目的来了解大模型是如何训练出来的,有哪些步骤,会有一些什么样的训练参数、每个参数的意义和影响是什么等。
所以大家更多会涉及的是利用一些现有的开源大模型来做微调,用自己的个人数据、行业数据来微调训练大模型,然后让这个大模型变成你自己的私人大模型或者行业大模型。
可惜我自己觉得最重要的LoRA微调的那篇文章反而看的人比较少(一如既往的不太懂,呵呵),可能是我取的标题不够“标题党”(求大佬们指教),也可能跟公众号推荐规则有关。
而一旦你自己微调训练了一个大模型,那随后必做的一件事情就是把这个大模型的名字变成你自己,当有人问它:“你是谁?”的时候,它回答的应该是:它是xxx(你给它取的名字),是由yyy(你的名字)开发出来的。比如:
我是小落,是由落鹤生开发的个人智能助手。我主要的目的是通过记录落鹤生每天的日常工作、生活的点点滴滴,然后希望在数据足够的某一天,我可以成为一个数字复刻版本的落鹤生。如果您对小落同学有任何疑问或需要帮助,请随时提出,我会尽力为您解答。
三、开始

ms-swift支持 600 多个纯文本大型模型和 300 多个多模态大型模型的训练。为方便同学们复现,我以 Qwen3-4B-Instruct模型为例 ,从模型下载开始介绍整个流程。如果有问题可以直接在下面留言,或者加一下AI技术学习交流群一起讨论。
1. 模型下载

从modelscope下载需要的模型(huggingface不太稳定,当然也可以用镜像站:https://hf-mirror.com )

  • 方法一:python代码
  1. from modelscope.hub.snapshot_download import snapshot_download
  2. model_id = "Qwen/Qwen3-4B-Instruct-2507"
  3. model_dir = "./qwen3-4b-instruct"
  4. snapshot_download(repo_id=model_id, local_dir=model_dir)
复制代码

  • 方法二:shell命令
  1. pip install modelscope --index https://pypi.mirrors.ustc.edu.cn/simple  # 国内源加速
  2. modelscope download --model qwen/Qwen3-4B-Instruct-2507 --local_dir /mnt/data/Qwen3-4B-Instruct-2507
复制代码
2. 原始模型部署

原则上,你的服务器上有多少GPU就都给你用上先。
  1. 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. 原始模型测试
  1. from openai import OpenAI
  2. client = OpenAI(
  3.     base_url="http://0.0.0.0:8000/v1",  # vLLM服务地址
  4.     api_key="na"  # vLLM无需鉴权,设为任意值
  5. )
  6. response = client.chat.completions.create(
  7.     model="qwen3-4b-instruct",  # 需与启动命令的--served-model-name一致
  8.     messages=[{"role": "user", "content": "你好,请介绍一下你自己"}],
  9.     temperature=0.8,
  10.     max_tokens=100
  11. )
  12. print(response.choices[0].message.content)
复制代码
4. 微调Qwen3-4B-Instruct-2507模型

这里在我原先的OddAgent项目基础上训练一个会议语音指令助手。这里使用官方的示例对Qwen3-4B-Instruct-2507模型进行自我认知微调。
1)安装ms-swift框架

pip
  1. pip install ms-swift -U
复制代码
源码方式
  1. git clone https://github.com/modelscope/ms-swift.git
  2. cd ms-swift
  3. pip install -e .
复制代码
2)开始训练

a. 训练脚本

先下载训练集到本地,包含gpt生成的通用中英文应答语料(可选)和自我认知训练数据(参照修改这部分)
  1. modelscope download --dataset "AI-ModelScope/alpaca-gpt4-data-zh"  --local_dir /mnt/data/jacky/dataset/alpaca-gpt4-data-zh;
  2. modelscope download --dataset "AI-ModelScope/alpaca-gpt4-data-en"  --local_dir /mnt/data/jacky/dataset/alpaca-gpt4-data-en;
  3. modelscope download --dataset "swift/self-cognition"  --local_dir /mnt/data/jacky/dataset/self-cognition
复制代码
由于环境vllm版本较低,这里需要降低transformer版本
[code]pip install 'transformers

相关推荐

您需要登录后才可以回帖 登录 | 立即注册