bash
#!/bin/bash
# 启动 xinference 服务
/opt/conda/bin/xinference-local --host 0.0.0.0 --port 9997 &
# 等待服务完全启动
sleep 10
# 注册 embedding 模型
echo "Registering /model/bge-large-zh as custom-bge-large-zh"
/opt/conda/bin/xinference register --model-type embedding --file /workspace/custom-bge-large-zh.json --persist
# 等待模型注册完成
sleep 5
# 注册 rerank 模型
echo "Registering /model/bge-reranker-v2-m3 as custom-bge-reranker-v2-m3"
/opt/conda/bin/xinference register --model-type rerank --file /workspace/custom-bge-reranker-v2-m3.json --persist
# 等待模型注册完成
sleep 5
# 启动 embedding 模型
echo "Launching custom-bge-large-zh embedding model..."
/opt/conda/bin/xinference launch --model-name custom-bge-large-zh --model-type embedding
# 等待模型启动完成
sleep 5
# 启动 rerank 模型
echo "Launching custom-bge-reranker-v2-m3 rerank model..."
/opt/conda/bin/xinference launch --model-name custom-bge-reranker-v2-m3 --model-type rerank
注意
- 在bash中使用xinference命令的决定路径 ,/opt/conda/bin/xinference;
- 足够的启动时间,使用sleep保证每行命令完成后在执行下一条命令。
python
在解决bash上述两个问题前,考虑转成python脚本的方式注册启动多个本地模型。
import subprocess
import time
# 启动 xinference 服务
def start_xinference():
print("Starting xinference-local service...")
subprocess.Popen(['/opt/conda/bin/xinference-local', '--host', '0.0.0.0', '--port', '9997'])
time.sleep(10) # 等待服务完全启动
# 注册模型
def register_model(model_type, json_file, custom_name):
print(f"Registering {custom_name} as {model_type} model...")
subprocess.run(['/opt/conda/bin/xinference', 'register', '--model-type', model_type, '--file', json_file, '--persist'])
time.sleep(5) # 等待注册完成
# 启动模型
def launch_model(model_type, custom_name):
print(f"Launching {custom_name} {model_type} model...")
subprocess.run(['/opt/conda/bin/xinference', 'launch', '--model-name', custom_name, '--model-type', model_type])
time.sleep(5) # 等待启动完成
if __name__ == "__main__":
# 启动 xinference 服务
start_xinference()
# 注册 embedding 模型
register_model('embedding', '/workspace/custom-bge-large-zh.json', 'custom-bge-large-zh')
# 注册 rerank 模型
register_model('rerank', '/workspace/custom-bge-reranker-v2-m3.json', 'custom-bge-reranker-v2-m3')
# 启动 embedding 模型
launch_model('embedding', 'custom-bge-large-zh')
# 启动 rerank 模型
launch_model('rerank', 'custom-bge-reranker-v2-m3')