# deploy-llm-offline **Repository Path**: meadhu/deploy-llm-offline ## Basic Information - **Project Name**: deploy-llm-offline - **Description**: 离线部署模型的方式 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-17 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 离线部署模型的方法(LLM/Embedding/Reranker) ## 下载项目 ```shell git clone https://gitee.com/meadhu/deploy-llm-offline.git cd deploy-llm-offline ``` ## 下载离线模型文件 > - 到 `ollama-local/llm_models`目录下,将模型下载回来 > - 注意:modelfile-* 对应的文件中,第一行写的名称和下载回来的文件名称对应 ```shell cd ollama-local/llm_models # 下载离线大模型文件(地址一) wget "https://www.modelscope.cn/api/v1/models/qwen/Qwen2.5-7B-Instruct-GGUF/repo?Revision=master&FilePath=qwen2.5-7b-instruct-q8_0.gguf" -O qwen-25-7b-instruct.gguf # 向量化模型 wget -c "https://modelscope.cn/models/Qwen/Qwen3-Embedding-8B-GGUF/resolve/master/Qwen3-Embedding-8B-Q5_K_M.gguf" # 重排模型 wget -c "https://modelscope.cn/models/QuantFactory/Qwen3-Reranker-8B-GGUF/resolve/master/Qwen3-Reranker-8B.Q5_K_M.gguf" ``` ## 方式一: docker的方式 ### 导出镜像 ```shell # 联网的机器上,下载 ollama 镜像 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama:0.9.2 # 镜像导出 tar.gz 包 docker save swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama:0.9.2 |gzip > image-ollama-092.tar.gz # 将 tar.gz 包 复制到目标机器上 # 在目标机器上执行以下命令导入镜像 docker load -i image-ollama-092.tar.gz ``` ### 启动容器 ```shell cd ollama-local docker-compose pull docker-compose up -d ``` ### 测试 ollama 是否正常启动 http://localhost:11434/ 出现 `Ollama is running` 这样的提示,说明ollama部署好了。 ### 进入容器 创建模型 ```shell # 进入容器 docker exec -it ollama /bin/bash # 创建模型(预计需要 3~5 分钟) cd /root/llm_models/ # 启动 大模型 ollama create qwen25:7b -f modelfile-qwen25-7b # 启动 向量化模型 ollama create qwen3-embedding:8b -f modelfile-Qwen3-Embedding-8B-Q5_K_M # 启动 重排模型 ollama create qwen3-reranker:4b -f modelfile-Qwen3-Reranker-4B-Q5_K_M # 查看模型列表 ollama list ``` ## 方式二: 离线安装包的方式 ```shell # 下载 ollama 离线安装包 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz # 解压 sudo tar -C /usr -xzf ollama-linux-amd64.tgz # Start Ollama ollama serve # 新开一个窗口,验证 ollama 正常启动 ollama -v ``` ![03.png](docs/03.png) ### 配置 ollama 开机自启动 ```shell sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama sudo usermod -a -G ollama $(whoami) ``` 创建启动文件 `/etc/systemd/system/ollama.service` ```shell [Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="PATH=$PATH" [Install] WantedBy=multi-user.target ``` 启动服务 ```shell sudo systemctl daemon-reload sudo systemctl enable ollama ``` ### 加载模型 ```shell cd ollama-local/llm_models/ # 启动 大模型 ollama create qwen25:7b -f modelfile-qwen25-7b # 启动 向量化模型 ollama create qwen3-embedding:8b -f modelfile-Qwen3-Embedding-8B-Q5_K_M # 启动 重排模型 ollama create qwen3-reranker:4b -f modelfile-Qwen3-Reranker-4B-Q5_K_M # 查看模型列表 ollama list ``` ## CURL 测试模型能否连接通 ```shell # LLM curl -X POST http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "qwen25:7b", "messages": [{"role": "user", "content": "Hello!"}] }' # embedding curl -X POST 'http://127.0.0.1:11434/v1/embeddings' \ -H 'Authorization: Bearer mytoken' \ -H 'Content-Type: application/json' \ -d '{ "model": "qwen3-embedding:8b", "input": ["laf是什么"] }' # reranker curl -X POST 'http://127.0.0.1:11434/api/rerank' \ -H 'Authorization: Bearer mytoken' \ -H 'Content-Type: application/json' \ -d '{ "model": "qwen3-reranker:4b", "query": "你的问题", "top_n": 3, "documents": ["相关文档1", "相关文档2"] }' ``` ![04.png](docs/04.png) 以下是 Qwen3-Embedding-8B-Q5_0.gguf 与 Qwen3-Embedding-8B-Q5_K_M.gguf 的区别对比表格: | 对比维度 | Qwen3-Embedding-8B-Q5_0.gguf | Qwen3-Embedding-8B-Q5_K_M.gguf | |-----------|--------------------------------|-------------------------------------| | 量化标识含义 | 基础 5 位量化版本,属于早期或标准量化配置 | 5 位量化的优化版本,采用 K 系列量化策略(可能涉及分组量化等优化) | | 量化细节 | 常规 5 位量化,权重映射方式相对简单 | 可能采用更精细的权重分组和映射策略,兼顾压缩与精度 | | 模型文件大小 | 相对较大(相同量化位数下,基础配置通常略大) | 相对较小(优化的量化策略可能带来更高效的压缩) | | 推理速度 | 稍慢(简单量化策略可能在硬件适配性上略逊) | 更快(优化策略通常提升硬件计算效率,适合实时场景) | | 精度表现 | 略高(基础量化对原始权重保留更直接) | 稍低但损失可控(在压缩和速度优化下,精度略有妥协) | | 适用场景 | 对语义理解精度要求高的任务(如精准文本分类) | 对推理速度和资源占用敏感的场景(如实时检索、大流量服务) |