Loading
close

LoRA模型部署和访问

time 更新时间:2026-10-08 16:41:12

背景描述

LoRA 可以在共享基础模型权重的前提下,为同一个模型部署加载一个或多个微调模型。业务请求通过 model 字段选择基础模型或指定的 LoRA 微调模型,无需为每个 LoRA 单独创建一套完整模型部署。

本文以基础模型 Qwen2.5-0.5B-Instruct 和 LoRA 微调模型 Qwen-2.5-0.5b-instrunt-lora-J 为例,介绍如何在创建模型部署时,加载 LoRA 微调模型,并通过 OpenAI 兼容接口验证基础模型和 LoRA 微调模型。

前提条件

  • 已在 Beacon 中准备好基础模型、LoRA 微调模型、vLLM 推理引擎、算力和项目配额,并具有创建模型部署的权限。
  • LoRA 微调模型必须基于所选基础模型训练。模型架构、权重版本和 Tokenizer 应与基础模型兼容。

操作步骤

  1. 准备基础模型。

    1. 进入《模型广场》,确认基础模型及其模型文件已经准备完成。
    2. 本文使用以下基础模型:
      配置项 示例值
      基础模型 Qwen2.5-0.5B-Instruct
  2. 准备 LoRA 微调模型。

    1. 进入《模型仓库》,上传或导入 LoRA 微调模型文件。
    2. 上传模型文件时勾选 LoRA 微调模型;如果模型文件已经上传,可以编辑模型文件并补充该标记。
    3. 如果模型在ModelScope有lora标记,导入时自动打上LoRA 微调模型标签。
    4. 等待模型文件状态正常且发布完成。本文使用的 LoRA 模型文件为 Qwen-2.5-0.5b-instrunt-lora-J。
  3. 创建vLLM 推理引擎。

  4. 创建模型部署。

    1. 进入《模型广场》,选择 Qwen2.5-0.5B-Instruct,单击 部署。
    2. 选择步骤 3 中准备的 vLLM 推理引擎
    3. 选择基础模型文件, SERVED_MODEL_NAME可配置基础模型名称比如Qwen2.5-0.5B-Instruct。
    4. 在 LoRA 微调模型 中单击 添加 LoRA 微调模型。
      示例:
      配置项 示例值 说明
      模型名称 qwen-hi 调用接口时填写到请求体 model 字段中的名称
      LoRA 微调模型 Qwen-2.5-0.5b-instrunt-lora-J 已发布的 LoRA 模型文件
    5. 如果需要加载多个 LoRA 微调模型,继续单击 添加 LoRA 微调模型,并为每个 LoRA 设置不同的模型名称。
    6. 单击 创建,等待模型部署状态变为就绪。

    模型名称 是该 LoRA 对外提供服务时使用的模型标识。它可以与模型文件名称不同,但应使用稳定、易识别的英文名称,不要使用中文,也不要与基础模型名称或同一部署中的其他 LoRA 模型名称重复。

  5. 检查模型部署。

    1. 进入《模型部署》详情页,确认基础模型文件和基础模型名称正确。
    2. 确认 LoRA 微调模型 区域中显示了 LoRA 模型文件、模型地址和模型名称 qwen-hi。
    3. 进入模型部署的详情页面,进入实例的终端,执行命令:
      curl -s http://127.0.0.1:8000/v1/models
    4. 返回结果中应同时包含基础模型名称和 LoRA 模型名称。例如:
      Qwen2.5-0.5B-Instruct
      qwen-hi
  6. 创建 AI 服务提供者。

    1. 进入《AI 服务提供者》,单击 创建,服务类型选择 内部。
    2. API 规范选择 OpenAI,模型部署选择步骤 4 中创建的部署。
    3. 确认该提供者可以识别 Qwen2.5-0.5B-Instruct 和 qwen-hi,然后单击 创建。
  7. 创建模型网关路由。

    1. 进入《模型网关》,单击 创建路由。
    2. 添加 LoRA 模型 qwen-hi,后端选择步骤 6 中创建的 AI 服务提供者,后端模型选择 qwen-hi。
    3. 如果还需要通过同一域名调用基础模型,可以继续添加模型 Qwen2.5-0.5B-Instruct,并将后端模型选择为 Qwen2.5-0.5B-Instruct。
    4. 输入路由域名并完成创建。
  8. 创建套餐和 API Key。

    1. 进入《套餐管理》,创建套餐并选择步骤 7 中创建的路由。
    2. 进入《API Key》,选择该套餐并签发密钥。
    3. 复制并妥善保存 API Key,密钥只在签发成功时完整展示一次。

结果验证

  1. 确认模型部署状态为 就绪,部署详情中同时显示基础模型和 LoRA 微调模型 qwen-hi。
  2. 调用 LoRA 微调模型。请求体中的 model 必须填写设置的 LoRA 模型名称:
    curl -s http://<路由域名>:<网关端口>/v1/chat/completions \
      -X POST \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer <API Key>' \
      -d '{
        "model": "qwen-hi",
        "messages": [
          {
            "role": "user",
            "content": "你好,请用一句话介绍自己。"
          }
        ],
        "temperature": 0,
        "max_tokens": 128
      }'
  3. 确认接口返回成功,响应中的 model 为 qwen-hi,并且包含正常生成的内容。
  4. 使用相同请求调用基础模型,只需把 model 改为基础模型名称:
    {
      "model": "Qwen2.5-0.5B-Instruct",
      "messages": [
        {
          "role": "user",
          "content": "你好,请用一句话介绍自己。"
        }
      ],
      "temperature": 0,
      "max_tokens": 128
    }
  5. 使用 LoRA 验证问答分别调用基础模型和 qwen-hi。固定提示词、temperature、max_tokens 等请求参数,确认 LoRA 模型的回答符合微调目标。普通问候的回答可能相近,不能单独证明微调效果。

约束与注意事项

  • 基础模型必须匹配:LoRA 微调模型只能与其训练时使用的基础模型配合使用。名称相似不代表模型权重和 Tokenizer 一定兼容。
  • 基础模型仍可调用:加载 LoRA 后,同一部署仍可通过基础模型名称调用原始基础模型。调用 LoRA 时必须显式填写对应的 LoRA 模型名称。
  • 使用 vLLM 引擎:LoRA 微调模型配置仅用于 vLLM 推理引擎;当前不支持SGLang, vLLM-Omni 引擎。
  • 多个 LoRA 名称必须唯一:同一部署中可以添加多个 LoRA 模型,但每个模型名称必须唯一。模型网关中配置的后端模型名称应与这里保持一致。
  • 修改会触发更新:添加、删除或替换 LoRA 微调模型后,需要等待模型部署重新变为就绪,再执行调用验证。
此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品