Skip to content

Aidllm手动上传大模型

一、手动上传大模型准备工作(适用于 Linux 和 Android)

在进行模型上传和加载前,请确保以下条件:

  1. 已安装并配置好 aidllm 命令行工具;
  2. 手中已有完整的模型文件夹(包括 .gguf.bin 模型文件及配置文件);
  3. 了解当前平台支持的模型类型和限制。

二、模型文件结构说明(非常关键)

根据模型类型不同,模型文件夹结构略有不同:

GGUF 类型模型(跨平台支持)

推荐文件结构如下:

pgsql
qwen2.5-1.5b-instruct-q4_k_m/
├── qwen2.5-1.5b-instruct-q4_k_m.gguf
├── qwen2.5-1.5b-instruct-q4_k_m.json   ← 模型配置文件(需手动编写)

配置文件模板:

json
{
  "backend_type": "llamacpp",
  "model": {
    "path": "<模型文件绝对路径>"
  }
}
  • Linux 示例:res/models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.gguf

    json
    {
      "backend_type": "llamacpp",
      "model": {
        "path": "res/models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.gguf"
      }
    }
  • Android 示例:/sdcard/oaiapisvr/res/models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.gguf

    json
    {
      "backend_type": "llamacpp",
      "model": {
        "path": "/sdcard/oaiapisvr/res/models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.gguf"
      }
    }

BIN 类型模型(仅支持 QCS8550 Linux)

推荐结构如下:

pgsql
qwen2.5-1.5b-instruct-8550-bin/
├── *.serialized.bin (多个)
├── qwen2.5-1.5b-instruct-htp.json    ← 配置主文件
├── qwen2.5-1.5b-instruct-tokenizer.json
├── htp-backend.json

使用说明

  • qwen2.5-1.5b-instruct-htp.json唯一支持作为入口的模型配置文件,务必将其作为 cfg_path 传入启动参数。
  • 该配置文件中引用的所有路径(包括 .bin 文件、tokenizer.jsonhtp-backend.json 等)必须为绝对路径,原始配置文件为相对路径,需要进行修改。
  • 严禁htp-backend.json 直接作为模型入口文件使用,否则将导致加载失败。

错误示例(相对路径,不可用):

json
"tokenizer": {
  "path": "qwen2.5-1.5b-instruct-tokenizer.json"
},
"ctx-bins": [
  "qwen2.5-1.5b-instruct_1_of_3.serialized.bin",
  "qwen2.5-1.5b-instruct_2_of_3.serialized.bin",
  "qwen2.5-1.5b-instruct_3_of_3.serialized.bin"
]

正确示例(绝对路径,推荐):

json
"tokenizer": {
  "path": "/opt/aidlux/app/aid-openai-api/res/models/qwen2.5-1.5B-instruct-8550-bin/qwen2.5-1.5b-instruct-tokenizer.json"
},
"ctx-bins": [
  "/opt/aidlux/app/aid-openai-api/res/models/qwen2.5-1.5B-instruct-8550-bin/qwen2.5-1.5b-instruct_qnn229_qcs8550_4096_1_of_3.serialized.bin",
  "/opt/aidlux/app/aid-openai-api/res/models/qwen2.5-1.5B-instruct-8550-bin/qwen2.5-1.5b-instruct_qnn229_qcs8550_4096_2_of_3.serialized.bin",
  "/opt/aidlux/app/aid-openai-api/res/models/qwen2.5-1.5B-instruct-8550-bin/qwen2.5-1.5b-instruct_qnn229_qcs8550_4096_3_of_3.serialized.bin"
],
"extensions": "/opt/aidlux/app/aid-openai-api/res/models/qwen2.5-1.5B-instruct-8550-bin/htp_backend_ext_config.json"

三、Linux 系统模型上传步骤

1. 上传整个模型目录(包含多个权重或配置文件)

bash
scp -r /local/path/to/qwen2.5-1.5b-instruct-q4_k_m user@linux-device-ip:/opt/aidlux/app/aid-open-api/res/models/

2. 本地拷贝方式

bash
cp -r qwen2.5-1.5b-instruct-q4_k_m /opt/aidlux/app/aid-open-api/res/models/

3. 将上传的模型文件加入aidllm配置

  1. 打开aidllm的api_cfg.json配置文件

    json
    vi /opt/aidlux/app/aid-openai-api/api-cfg.json

    结构内容如下:

    json
    {
      "prompt_template_list": [
        {
          "qwen1.5": "<|im_start|>system\n{0}<|im_end|><|im_start|>{1}\n<|im_end|>\n<|im_start|>assistant\n"
        },
        {
          "qwen2": "<|im_start|>system\n{0}<|im_end|><|im_start|>{1}\n<|im_end|>\n<|im_start|>assistant\n"
        },
        {
          "deepseek": "<|begin▁of▁sentence|>{0}<|User|>{1}<|Assistant|>"
        }
      ],
      "model_cfg_list": [
        {
          "model_id": "qwen2.5-7b-instruct",
          "model_create": "1750843418159",
          "model_owner": "aplux",
          "cfg_path": "./models/qwen2.5-7b-instruct/qwen2.5-7b-instruct.json",
          "prompt_template_type": "qwen2"
        },
        {
          "model_id": "aplux_qwen2-7B",
          "model_create": "1750843418158",
          "model_owner": "aplux",
          "cfg_path": "./models/aplux_qwen2-7B/aplux_qwen2-7B-htp.json",
          "prompt_template_type": "qwen2"
        },
        {
          "model_id": "qwen2.5-7b-instruct-q4_k_m",
          "model_create": "1750843418158",
          "model_owner": "aplux",
          "cfg_path": "./models/qwen2.5-7b-instruct-q4_k_m/qwen2.5-7b-instruct-q4_k_m.json",
          "prompt_template_type": "qwen2"
        },
        {
          "model_id": "qwen2.5-7B-8550",
          "model_create": "1750926798767",
          "model_owner": "aplux",
          "cfg_path": "./models/qwen2.5-7B-8550/qwen2.5-7B-8550.json",
          "prompt_template_type": "qwen2"
        }
      ],
      "http_cfg": [
        {
          "ip": "0.0.0.0"
        },
        {
          "port": 8888
        }
      ],
      "work_folder": "/opt/aidlux/app/aid-openai-api",
      "dsp_skel_folder": "./res/lib/v73/",
      "res_folder": "./res/",
      "log_level": "INFO",
      "log_folder": "./logs/",
      "default_model_id": "qwen2.5-7B-8550"
    }
  2. model_cfg_list列表手动修改,添加模型配置信息

    json
        {
          "model_id": "qwen2.5-1.5b-instruct-q4_k_m",
          "model_create": "1750926798770",
          "model_owner": "aplux",
          "cfg_path": "./models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.json",
          "prompt_template_type": "qwen2"
        }
    	{
          "model_id": "qwen2.5-1.5B-instruct-8550-bin",
          "model_create": "1750926798777",
          "model_owner": "aplux",
          "cfg_path": "./models/qwen2.5-1.5B-instruct-8550-bin/qwen2.5-1.5b-instruct-htp.json",
          "prompt_template_type": "qwen2"
        }

字段说明:

  • model_id:模型标识,唯一 ID,用于运行时指定模型,例如 qwen2.5-1.5b-instruct-q4_k_m
  • model_create:模型注册时间戳,可使用命令 printf "%s%03d\n" "$(date +%s)" "$((10#$(date +%N) / 1000000))" 生成,单位为毫秒。
  • model_owner:模型所有者名称,可自定义,例如 "aplux"
  • cfg_path:模型主配置文件路径,Linux 下使用相对路径(如 ./models/...),Android 下需使用绝对路径(如 /sdcard/...)。
    • ./models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.json
    • ./models/qwen2.5-1.5B-instruct-8550-bin/qwen2.5-1.5b-instruct-htp.json
    • 注意一点为添加bin类型模型配置文件时,需要指定例如:qwen2.5-1.5b-instruct-htp.json,而非htp-backend.json
  • prompt_template_type:对话提示模板类型,常见取值如 "qwen1.5""qwen2""deepseek",应与模型训练格式匹配。

4. 使用 aidllm 命令行工具查看添加模型

# 使用aidllm list api命令查看模型是否已经加入aidllm
aidllm list api

qwen2.5-7b-instruct
aplux_qwen2-7B
qwen2.5-7b-instruct-q4_k_m
qwen2.5-7B-8550
qwen2.5-1.5b-instruct-q4_k_m
qwen2.5-1.5B-instruct-8550-bin

# 使用aidllm start api -m qwen2.5-1.5b-instruct-q4_k_m 指定运行模型,查看模型是否能够运行
aidllm start api -m qwen2.5-1.5b-instruct-q4_k_m

四、Android 上传与配置步骤

1. 上传模型文件夹

bash
adb push -p model_folder /sdcard/oaiapisvr/res/models/

2. 手动备份(如通过 USB MTP 拷贝到 /sdcard/oaiapisvr/res/models/)

3. 将上传的模型文件加入aidllm配置

  1. 打开aidllm的api_cfg.json配置文件

    bash
    vi /sdcard/oaiapisvr/api_cfg.json

    结构内容如下:

    json
    {
      "prompt_template_list": [
        {
          "qwen1.5": "<|im_start|>system\n{0}<|im_end|><|im_start|>{1}\n<|im_end|>\n<|im_start|>assistant\n"
        },
        {
          "qwen2": "<|im_start|>system\n{0}<|im_end|><|im_start|>{1}\n<|im_end|>\n<|im_start|>assistant\n"
        },
        {
          "deepseek": "<|begin▁of▁sentence|>{0}<|User|>{1}<|Assistant|>"
        }
      ],
      "model_cfg_list": [	// 模型配置列表
        {
          "model_id": "qwen2.5-3B-instruct-8550",
          "model_create": "1749032156314",
          "model_owner": "aplux",
          "cfg_path": "/sdcard/oaiapisvr/res/models/qwen2.5-3B-instruct-8550/qwen2.5-3B-instruct-8550.json",
          "prompt_template_type": "qwen2"
        },
        {
          "model_id": "qwen2_7b_7675",
          "model_create": "1749436571293",
          "model_owner": "aplux",
          "cfg_path": "/sdcard/oaiapisvr/res/models/qwen2_7b_7675/qwen2_7b_7675.json",
          "prompt_template_type": "qwen2"
        }
      ],
      "http_cfg": [
        {
          "ip": "0.0.0.0"
        },
        {
          "port": 8888
        }
      ],
      "work_folder": "/sdcard/oaiapisvr/",
      "dsp_skel_folder": "/sdcard/oaiapisvr/res/lib/v73/",
      "res_folder": "/sdcard/oaiapisvr/res/",
      "log_level": "INFO",
      "log_folder": "/sdcard/oaiapisvr/logs/",
      "default_model_id": "qwen2_7b_7675"
    }
  2. model_cfg_list列表添加模型配置信息,Android环境下配置文件使用绝对路径

    json
        {
          "model_id": "qwen2.5-1.5b-instruct-q4_k_m",
          "model_create": "1750926798770",
          "model_owner": "aplux",
          "cfg_path": "/sdcard/oaiapisvr/res/models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.gguf",
          "prompt_template_type": "qwen2"
        }

字段说明:

  • model_id:模型标识,唯一 ID,用于运行时指定模型,例如 qwen2.5-1.5b-instruct-q4_k_m
  • model_create:模型注册时间戳,可使用命令 printf "%s%03d\n" "$(date +%s)" "$((10#$(date +%N) / 1000000))" 生成,单位为毫秒。
  • model_owner:模型所有者名称,可自定义,例如 "aplux"
  • cfg_path:模型主配置文件路径,Android 下需使用绝对路径(如 /sdcard/...)。
    • /sdcard/oaiapisvr/res/models/qwen2.5-1.5b-instruct-q4_k_m/qwen2.5-1.5b-instruct-q4_k_m.gguf
  • prompt_template_type:对话提示模板类型,常见取值如 "qwen1.5""qwen2""deepseek",应与模型训练格式匹配。

4. 使用 aidllm 命令行工具查看添加模型

bash
# 使用aidllm list api命令查看模型是否已经加入aidllm
aidllm list api

qwen2.5-7b-instruct
aplux_qwen2-7B
qwen2.5-7b-instruct-q4_k_m
qwen2.5-7B-8550
qwen2.5-1.5b-instruct-q4_k_m

# 使用aidllm start api -m qwen2.5-1.5b-instruct-q4_k_m 指定运行模型,查看模型是否能够运行
aidllm start api -m qwen2.5-1.5b-instruct-q4_k_m

五、常见问题 FAQ

Q1: 上传后 aidllm 无法识别模型?

  • 检查路径是否正确
  • 确保模型目录结构完整(含模型文件和配置)
  • 模型格式需为支持的类型(如 .gguf / .bin)

Q2: 上传路径不存在?

  • Linux:使用aidllm install api 下载依赖
  • Android:使用aidllm install api 下载依赖