有 NVIDIA 4GB 显存的设备,就可以搭建一个用于 LLM 的基本开发环境。
比如这里使用的是 NVIDIA GeForce GTX 1650,4GB 显存。
另外,经测试也能运行在 NVIDIA GeForce GTX 3050 4GB 笔记本上。
基本思路
- 消耗显存主要是:
- LLM(大语言模型):如果使用
Qwen2:1.5b,大约消耗 2GB;如果是Qwen2:0.5b,则更小。 - Embedding(嵌入模型):
bge-large-zh-v1.5@f16,大约消耗 1.2GB。
- LLM(大语言模型):如果使用
- 基础开发环境用于测试程序是否能跑通,因此可以先用本地小模型。
- 如果需要更大的模型,可以再使用云端模型。
- 切换本地模型和云端模型很容易,因为使用 One-API 统一了本地和云端模型的调用接口。
- 调用模型调试代码,采用 Jupyter Notebook 笔记。
- 这样调试很方便,也便于分享。
- 如果使用客户端方案,比如 Streamlit 或者 Gradio,过程复杂了,没有专注在模型相关,可能涉及很多客户端细节。
- 团队可能有专门的前端,会有他们的基于 Vue 或者 React 解决方案。
- 将来很容易将笔记代码移植到比如 FastAPI 的服务器端模块。
实现技术
- 使用 Docker 容器方式运行,通过 Compose 管理 Docker 容器。
- 使用 Ollama 加载本地模型。
- 使用 One-API 统一管理本地和云端模型,并提供统一的 OpenAI API 访问方式。
- 使用 JupyterLab 提供 Web 界面的开发编辑工具。
操作步骤
基础环境
- Linux 环境:已经正确安装了 NVIDIA Driver,并安装了 Docker 和 Compose。
- Windows 环境:WSL2 的 Linux 虚拟机,安装了 Docker 和 Compose。
下载源代码
git clone https://github.com/MarshalW/llm-proto.git
Docker 设置代理
如果能直接访问 Docker 官方 Registry,则不需要这一步。
下面脚本为 Docker 设置代理服务器。
# 代理配置
HTTP_PROXY="http://proxy.example.com:8080"
NO_PROXY="localhost,127.0.0.1,docker-registry.example.com,.corp"
# 配置文件路径
CONFIG_FILE="/etc/systemd/system/docker.service.d/http-proxy.conf"
# 创建目录(如果不存在)
mkdir -p "$(dirname "$CONFIG_FILE")"
# 写入配置文件
cat <<EOF | sudo tee "$CONFIG_FILE" > /dev/null
[Service]
Environment="HTTP_PROXY=$HTTP_PROXY"
Environment="HTTPS_PROXY=$HTTP_PROXY"
Environment="NO_PROXY=$NO_PROXY"
EOF
systemctl daemon-reload
systemctl restart docker


