模型导入

更新时间:
复制为 MD 格式

我的模型页面用于管理您创建和导入的模型。通过该页面,您可以将本地训练的 LoRA 模型从阿里云对象存储 OSS 导入到百炼平台。

使用前提

导入前,请确保满足以下条件:

  • OSS Bucket 准备:已在杭州地域创建 OSS Bucket。

  • 模型文件准备:模型文件需符合导入要求与限制。模型文件夹需直接放在 OSS Bucket 中,系统会自动识别。

支持导入的基础模型

当前支持导入以下基础模型的 LoRA 微调版本:

模型系列

模型名称

通义千问3

通义千问3-32B

通义千问3-14B

通义千问3-8B

通义千问3-4B-Instruct-2507

通义千问3-VL

通义千问3-VL-8B-Instruct

通义千问2.5

通义千问2.5-72B-Instruct

通义千问2.5-32B-Instruct

通义千问2.5-14B-Instruct

通义千问2.5-7B-Instruct

通义千问2.5-VL

通义千问2.5-VL-72B-Instruct

通义千问2.5-VL-7B-Instruct

操作步骤

按照以下步骤将 LoRA 模型从 OSS 导入到百炼平台:

  1. 我的模型页面,点击导入模型按钮。

  2. 在导入模型页面中,填写以下信息:

    • 模型名称:输入模型的显示名称,最多50个字符。

    • 基础模型:选择该 LoRA 模型对应的基础模型。

    • 导入来源:当前仅支持"从OSS导入",系统已默认选中。

    • Bucket:选择存储模型文件的 OSS Bucket。

  3. 确认信息无误后,点击确定提交导入请求。系统将自动验证模型文件格式和完整性,验证通过后开始导入。导入完成后,您可以在我的模型页面查看导入的模型,并进行部署、增量训练等操作。

导入要求与限制

重要

重要:当前版本仅支持导入 LoRA(Low-Rank Adaptation)模型,不支持导入全参微调模型。

导入 LoRA 模型前,请确保满足以下要求:

  • 必需文件:OSS Bucket 中需包含以下文件:

    • adapt_model.safetensors:LoRA 适配器的权重文件,采用 SafeTensors 格式存储。

    • adapt_model.config.json:LoRA 适配器的配置文件,包含 rank、alpha 等关键参数信息。

  • rank 参数限制:rank 值必须为 8、16、32 或 64 中的一个,且同一模型的所有 LoRA 层必须使用相同的 rank 值。

  • 修改词汇表的模型:如果训练过程中添加了新 token 或修改了原始词汇表(vocab),该模型无法导入。系统要求使用与基础模型完全一致的词汇表。

  • 修改对话模板的模型:如果训练过程中修改了 chat_template 配置,该模型无法导入。系统仅支持使用与对应开源基础模型默认配置一致的 chat_template。

    chat_template 配置通常位于以下位置:

    • 模型的 config.json 文件中的 chat_template 字段。

      image

    • tokenizer_config.json 文件中的 chat_template 字段。

      image

  • 未冻结 VIT 的视觉语言模型:对于 VL(Vision-Language)模型,必须冻结 Vision Transformer(VIT)部分。如果 LoRA adapter 中包含 visual 相关的权重参数(即未冻结 VIT),该模型无法导入。

    可以运行以下代码判断。

    from safetensors import safe_open
    import argparse
    
    def print_safetensor_structure(file_path):
        print(f"Loading safetensor file: {file_path}")
        print("="*80)
        
        with safe_open(file_path, framework="pt") as f:
            keys = f.keys()
            print(f"Found {len(keys)} tensors in the file:\n")
            
            for key in sorted(keys):
                tensor = f.get_tensor(key)
                shape = tuple(tensor.shape)
                dtype = str(tensor.dtype)
                device = tensor.device if hasattr(tensor, 'device') else 'cpu'
                
                lora_tag = " [LoRA]" if "lora_A" in key or "lora_B" in key else ""
                
                print(f"[{dtype:>14}] {shape} | {key} {lora_tag}")
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser(description="Print structure of a .safetensors LoRA adapter.")
        parser.add_argument("filepath", type=str, help="Path to the .safetensors file")
        args = parser.parse_args()
    
        print_safetensor_structure(args.filepath)

    判断方法:检查 adapt_model.safetensors 文件中是否包含 visual 相关的权重参数。如果文件中存在以 visual 开头的参数键(例如 visual.encoder.layer.0...),说明 VIT 部分未被冻结,该模型无法导入。

    冻结VIT的adapter文件示例

    未冻结VIT的adapter文件示例(包含visual参数)

常见问题

为什么导入的模型与本地使用 vLLM、SGLang 推理的效果不一致?

百炼平台的推理引擎参数设置可能与您本地使用的推理框架默认值不同。为确保效果一致,建议在调用 API 时调整以下参数:

参数名称

推荐值(对应 vLLM 默认值)

temperature

取值范围:[0, 2)。设置为 1.0 等同于 vLLM 引擎默认值。

top_p

取值范围:(0, 1.0]。设置为 1.0 等同于 vLLM 引擎默认值。

top_k

取值为 None 或大于 100 时,表示不启用 top_k 策略,此时仅有 top_p 策略生效。设置为 99 不支持全采样,该值接近 vLLM 默认值 0(全采样)。

presence_penalty

取值范围:[-2.0, 2.0]。设置为 0 等同于 vLLM 引擎默认值。

repetition_penalty(DashScope 协议)

提高 repetition_penalty 可以降低模型生成的重复度,1.0 表示不做惩罚。取值范围:大于 0。设置为 1.0 等同于 vLLM 引擎默认值。

说明:以上参数值基于 vLLM 引擎的默认配置。如果您的本地环境使用 SGLang 或其他推理框架,请参考对应框架的文档调整参数。