Aidllm手动上传大模型
一、手动上传大模型准备工作(适用于 Linux 和 Android)
在进行模型上传和加载前,请确保以下条件:
- 已安装并配置好
aidllm
命令行工具; - 手中已有完整的模型文件夹(包括
.gguf
或.bin
模型文件及配置文件); - 了解当前平台支持的模型类型和限制。
二、模型文件结构说明(非常关键)
根据模型类型不同,模型文件夹结构略有不同:
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.json
、htp-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配置
打开aidllm的api_cfg.json配置文件
jsonvi /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" }
在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配置
打开aidllm的api_cfg.json配置文件
bashvi /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" }
在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
下载依赖