You need to enable JavaScript to run this app.
导航
快速入门-算法工程师版
最近更新时间:2025.06.24 17:48:03首次发布时间:2025.06.24 17:48:03
我的收藏
有用
有用
无用
无用

本文以 Qwen3-8B 模型为例,带您使用火山引擎机器学习平台(后简称 MLP)进行模型开发、训练、部署,帮助您快速了解 MLP 的能力以及上手基础使用方法,适合模型开发相关工程师。

前期准备

需要管理员/主账号进行资源准备及权限授予。

资源准备

  1. 管理员或者主账号登录机器学习平台,在 资源组 **** 模块创建一个资源组,包含以下资源。
    • CPU 实例:105C/1875G/100GB云盘。
    • GPU 卡数:至少 1 卡,本教程采用 1卡 ml.hpcpni2l。
  2. 在该资源组中创建负载类型包含【开发机】、【自定义任务】和【在线服务】的队列。云盘将用于持久化开发机的运行环境以及存放训练过程中产生的临时数据。
  3. 管理员或者主账号创建开发机实例
    1. 资源规格选择步骤1的资源
    2. 挂载TOS bucket 和 CFS,参考文档 训练代码如何访问TOS
    3. 在自定义镜像处配置下方镜像(基础镜像),填写 SSH key 并挂载 TOS。由于拉取的镜像较大,首次创建开发机时间预计 20 分钟。
vemlp-cn-beijing.cr.volces.com/preset-images/swift:v1

权限授予

  1. 管理员或主账号,创建体验子账号,详见 为算法工程师创建子账号及权限 内容,供本教程使用。
  2. 管理员或主账号,在队列管理页,右侧创建队列中将上一步中的子账号添加为成员,方便账号使用对应资源。

准备模型

快速入门提供丰富场景化教程,帮助您快速展开模型开发、训练、部署、评估相关工作。

  1. 使用算法工程师子账号访问 开发机 页面, 通过SSH远程连接开发机
  2. 使用volc configure快速配置命令行工具,具体操作详见使用文档--机器学习平台-火山引擎
  3. 在终端中执行以下命令,通过镜像源下载 Qwen3-8B 模型,并打开挂载的存储桶路径。

模型下载速度较慢,网络保持在150g、5m/s,预计8h可以下载完成。

cd /vemlp-demo-models
mkdir model-qwen 
cd model-qwen
pip3 install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --token $HF_TOKEN --resume-download Qwen/Qwen3-8B --local-dir $ORIGINAL_MODEL_PATH

其中运行 huggingface-cli 命令行,需要传入的参数列表说明如下:

参数

描述

hf_token

具有qwen使用权限的Huggingface账号的hf_token

original_model_path

源safetensor路径

说明

--token/--hf_username/--hf_token等参数非必须,仅为部分 Repo 有 license 限制时,登录 https://huggingface.co/settings/tokens 获取 token 后进行下载。
推荐您将模型文件、训练数据集的下载、存放地址都设置在 TOS/VEPFS/SCFS 等共享存储内,之后在进行训练、推理等跨节点的任务时,可以更加轻松地挂载到不同的机器上。

模型精调(LoRA)

这里我们使用命令行工具 ,如需使用控制台进行任务管理,请参考发起单机 / 分布式训练任务

在 Terminal 中使用以下命令对Qwen3-8b进行LoRA微调,具体操作步骤如下。

  1. 创建一个 demo.yaml 文件。
  2. 编辑 yaml 文件,填写镜像、资源规格、环境变量以及入口命令。
  3. 运行任务命令。如运行成果,在 Terminal 会出现 “**创建任务成功,task_id=*******” 字样。完整训练时长预计为 2 小时左右。
volc ml_task submit --conf=/vemlp-demo-models/demo.yaml

demo.yaml 文件示例:

TaskName:  "qwen3-8b"
Description:  ""
Tags: []

ImageUrl:  "vemlp-cn-beijing.cr.volces.com/preset-images/swift:v1"
ResourceQueueID:  "q-**************"  # 请替换为自己的队列ID
# DL framework, support: TensorFlow PS,PyTorch DDP,Horovod,BytePS
Framework:  "PyTorchDDP"
# Flavor代表机型,去 https://www.volcengine.com/docs/6459/72363 查询
TaskRoleSpecs:
        - RoleName:  "worker"
            RoleReplicas: 1                                                   
            Flavor:  "custom"
            ResourceSpec:
                    Family:  "ml.hpcpni2l"
                    CPU: 105.000
                    Memory: 1875.000
                    GPUNum: 1

Envs:
    - Name:  "MODEL_PATH"
        Value:  "Qwen/Qwen3-8B"
    - Name:  "OUT_DIR"
        Value:  "/vemlp-demo-models/qwen3_lora"        
AccessType:  "Queue"
Storages:
        - Type:  "Tos"                     
            MountPath:  "/data"
            Bucket:  "vemlp-demo-models"
            Prefix:  "/"
            FsName:  "testmodel"
            MetaCacheExpiryMinutes:  "-1"
Entrypoint: |
  export HF_ENDPOINT=https://hf-mirror.com; swift sft --model Qwen/Qwen3-8B --train_type lora --dataset 'swift/self-cognition#1000' --num_train_epochs 1 --per_device_train_batch_size 1 --learning_rate 1e-4 --lora_rank 8 --lora_alpha 32 --gradient_accumulation_steps 16 --eval_steps 100 --save_steps 100 --save_total_limit 2 --logging_steps 5 --output_dir '/root/code/output' --model_author swift --model_name swift-robot

部署在线服务进行推理

3.1 创建推理服务

  1. 进入在线服务控制台
  2. 创建推理服务并进行资源部署。
    1. 服务网络配置。
      1. 配置私有网络
      2. 打开负载均衡并配置端口。

Image
Image

  1. 在【服务管理】-【部署】处,点击新增部署。
    1. 填写镜像URL。
vemlp-cn-beijing.cr.volces.com/preset-images/swift:v1
  1. 输入入口命令。请注意 TOS 在在线服务上挂载的路径。
swift deploy \
    --adapters /vemlp-demo-models/qwen3_lora/v0-20250611-131959 \
    --infer_backend pt \
    --temperature 0 \
    --max_new_tokens 2048 \
    --served_model_name 'qwen3_8b'
  1. 配置资源。最佳实践使用 1 卡 ml.hpcpni2l。
  2. 挂载 TOS 与 CFS。

3.2 定义请求文件 request.py 并执行

  1. 点击创建后的服务名称进入详情页面,单击【服务调用】,查看访问地址。
  1. 创建 request.py 文件。脚本内容示例如下。
import requests
import json

# 定义请求,更换具体的ip地址
url = "http://101.126.23.138:8000/v1/completions"

headers = {
    "Content-Type": "application/json"
}
data = {
    "model": "qwen3-8b",
    "prompt": "San Francisco is a",
    "max_tokens": 100,
    "temperature": 0
}

# 发送POST请求
response = requests.post(url, headers=headers, data=json.dumps(data))

# 打印响应内容
print(response.json())
  1. 执行命令请求。
python request.py

结果如下。

{'id': 'cmpl-a40535c337134****', 'object': 'text_completion', 'created': 1725420936, 'model': 'qwen3-8b', 'choices': [{'index': 0, 'text': " city of many neighborhoods, each with its own unique character and charm. Whether you're looking for a hipster haven, a family-friendly area, or a place to party, there's a neighborhood for you. Here are some of the best neighborhoods in San Francisco to check out:\nThe Mission: The Mission is a hipster haven with a vibrant arts scene, great food, and a lively nightlife. It's also home to the city's largest Latino population, making it a great place to experience authentic", 'logprobs': None, 'finish_reason': 'length', 'stop_reason': None, 'prompt_logprobs': None}], 'usage': {'prompt_tokens': 5, 'total_tokens': 105, 'completion_tokens': 100}}