Linux部署大模型
在Linux中完成大模型部署。本文主要使用Ollama、TEI(Text-Embeddings-Inference)进行部署
本文内容
在Linux中完成大模型部署。
本文主要使用Ollama、TEI(Text-Embeddings-Inference)进行部署,后续补充其他方法。
使用Ollama部署LLM
Ollama 简介
Ollama 是一个开源工具,专注于在本地计算机上高效运行和部署大型语言模型(LLM)。它简化了模型下载、管理和运行的过程,支持多种主流开源模型(如 Qwen、DeepSeek、Gemma 等),并通过命令行提供直观的交互方式。用户无需复杂的配置即可在本地进行文本生成、代码补全等任务,同时支持自定义模型微调。Ollama 兼顾性能与隐私,适合开发者、研究人员或任何希望离线探索 AI 能力的用户。
特点:
- 一键部署,跨平台(macOS/Linux/Windows)
- 丰富的预训练模型库
- 本地运行,保障数据隐私
- 支持模型量化(降低硬件需求)
网站:ollama.ai
安装Ollama
在线安装
如果主机能够访问ollama网络,直接执行下面的命令即可完成ollama的安装。
curl -fsSL https://ollama.com/install.sh | sh
离线安装
如果Linux主机不能访问ollama网络,可以在有网络的电脑上准备好安装包,再上传至服务器,完成离线安装。
- 通过Git命令下载安装脚本
git clone https://github.com/yangkx111/deploy_llm.git
或者直接在浏览器中下载
https://github.com/yangkx111/deploy_llm/archive/refs/heads/main.zip
- 下载ollama安装包,放到deploy_llm下的ollama目录中
https://ollama.com/download/ollama-linux-amd64.tgz
-
如果有必要,可以修改deploy_llm/ollama目录下的deploy_ollama.sh脚本,设置ollama用户的Home目录,因为后续注册到ollama的大模型都会存储到这个目录中,所以改目录需要保证有足够的磁盘空间,所以需要依据服务器实际磁盘空间情况进行修改。

-
如果有必要,可以修改deploy_llm/ollama目录下ollama.service,这是ollama服务的配置文件。可以依据实际情况修改里面相应的配置,比如端口。

-
将deploy_llm上传至服务器
-
cd到deploy_llm/ollama目录,执行deploy_ollama.sh
./deploy_ollama.sh
测试Ollama
- 测试ollama状况
# 如果更改了ollma的端口,这里需要做相应的修改
curl localhost:11434; echo

- ollama服务状态
# 查看服务状态
systemctl status ollama
# 启动服务
systemctl start ollama
# 停止服务
systemctl stop ollama

- 查看ollama日志
journalctl -u ollama

部署大模型
部署gte-Qwen2-7B-instruct
搜索模型
-
在ollama官网搜索模型,选择量化版本Q8_0,拷贝出运行指令:ollama run since2006/gte-Qwen2-7B-instruct:Q8_0


-
如果在ollma中搜索不到合适的模型,可以在huggingface搜索模型,找到量化版本Q8_0,拷贝出运行指令:ollama run hf.co/tensorblock/gte-Qwen2-7B-instruct-GGUF:Q8_0




在线安装
直接运行上面取到的指令
# from ollama
ollama run since2006/gte-Qwen2-7B-instruct:Q8_0
# from huggingface
ollama run hf.co/tensorblock/gte-Qwen2-7B-instruct-GGUF:Q8_0
离线安装
离线安装需要手动从huggingface下载量化文件,然后注册到ollama中,再运行。
-
从huggingface下载对应版本的gguf文件

-
编写对应的模型配置文件Modelfile.gte-Qwen2-7B-instruct
FROM ./gte-Qwen2-7B-instruct-Q8_0.gguf
TEMPLATE """{{ .Prompt }}"""
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
- 将下载的模型文件以及配置文件放在同一个目录上传到服务器中
- 注册模型到ollama。在服务器中运行如下命令
ollama create gte-Qwen2-7B-instruct:Q8 -f Modelfile.gte-Qwen2-7B-instruct

测试模型
curl 127.0.0.1:11434/api/embeddings \
-X POST \
-d '{"model": "gte-Qwen2-7B-instruct:Q8", "prompt": "hello"}' \
-H 'Content-Type: application/json'
使用Text-Embeddings-Inference部署LLM
TEI 简介
Text Embeddings Inference,简称TEI,是一个用于部署开源文本嵌入及序列分类模型的工具集。TEI为当前最流行的模型(包括FlagEmbedding、Ember、GTE和E5等)提供高性能的向量提取能力。
特点:
- 无需模型图编译步骤
- 支持Mac本地运行的Metal加速
- 轻量化Docker镜像与极速启动——真正实现无服务器化部署
- 基于令牌的动态批处理技术
- 采用Flash Attention、Candle及cuBLASLt优化的Transformer推理代码
- 支持Safetensors权重加载
- 兼容ONNX权重加载
- 生产级就绪(集成Open Telemetry分布式追踪和Prometheus指标监控)
网站:TEI
安装 TEI
这里采用Docker的方式来安装TEI,这种方式比较快捷。
Docker镜像列表如下:
| Architecture | Image |
|---|---|
| CPU | ghcr.io/huggingface/text-embeddings-inference:cpu-1.7 |
| Volta | NOT SUPPORTED |
| Turing (T4, RTX 2000 series, …) | ghcr.io/huggingface/text-embeddings-inference:turing-1.7 (experimental) |
| Ampere 80 (A100, A30) | ghcr.io/huggingface/text-embeddings-inference:1.7 |
| Ampere 86 (A10, A40, …) | ghcr.io/huggingface/text-embeddings-inference:86-1.7 |
| Ada Lovelace (RTX 4000 series, …) | ghcr.io/huggingface/text-embeddings-inference:89-1.7 |
| Hopper (H100) | ghcr.io/huggingface/text-embeddings-inference:hopper-1.7 (experimental) |
依据服务器的配置选择相应的镜像进行安装。
在线安装
直接使用docker命令拉取相应的镜像,比如CPU版本的
docker pull ghcr.io/huggingface/text-embeddings-inference:cpu-1.7
离线安装
如果服务器不能拉取镜像,可以采用手动上传镜像的方式来完成离线安装。
- 在能拉取镜像的机器上先拉取镜像
docker pull ghcr.io/huggingface/text-embeddings-inference:cpu-1.7
- 导出镜像,并上传到服务器
docker save -o text-embeddings-inference.tar text-embeddings-inference:cpu-1.7
# 压缩
gzip text-embeddings-inference.tar
- 在服务器上导入镜像
gzip -d text-embeddings-inference.tar.gz
docker load -i text-embeddings-inference.tar
部署大模型
部署BAAI/bge-reranker-large
搜索模型
在huggingface上搜索模型
在线安装
- 在服务器上编写一个shell脚本,比如 run_bge-reranker-large.sh
model=BAAI/bge-reranker-large
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run
docker run -d --gpus all -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-embeddings-inference:1.7 --model-id $model
- 直接运行 run_bge-reranker-large.sh
sh ./run_bge-reranker-large.sh
离线安装
- 在能够联网的机器上下载模型,下载后模型的所有文件都保存在目录bge-reranker-large中
# 因为有大文件,所以这里需用到gitlfs
git lfs install
git clone https://huggingface.co/BAAI/bge-reranker-large
- 编写启动脚本 run-bge-reranker-large.sh
volume=$PWD # share a volume with the Docker container to avoid downloading weights every run
sudo docker run -d -p 8080:80 -v $volume:/data --name bge-rerank-large ghcr.io/huggingface/text-embeddings-inference:cpu-1.7 --model-id /data/bge-reranker-large
- 上传文件夹bge-reranker-large和脚本run-bge-reranker-large.sh到服务器,放在相同目录下
- 直接运行 run_bge-reranker-large.sh
sh ./run_bge-reranker-large.sh
测试模型
curl 127.0.0.1:8080/rerank \
-X POST \
-d '{"query": "中国国庆节是哪一天?", "texts": ["国庆节是10月1日", "端午节是5月1日", "美国国庆节是3月1日"]}' \
-H 'Content-Type: application/json'
更多推荐


所有评论(0)