有 nvidia 4GB 显存的设备,就可以搭建一个用于 LLM 的基本开发环境。
比如这里使用的是 NVIDIA GeForce GTX 1650
, 4GB 显存。
基本思路
- 消耗显存主要是
- LLM,大语言模型,如果使用
Qwen2:1.5b
,大约消耗 2GB,如果是Qwen2:0.5b
,则更小 - embedding,嵌入模型,
bge-large-zh-v1.5@f16
, 大约消耗 1.2GB
- LLM,大语言模型,如果使用
- 基础开发环境用于测试程序是否能跑通,因此可以先用本地小模型
- 如果需要更大的模型,可以再使用云端模型
- 切换本地模型和云端模型很容易,因为使用 one-api 统一了本地和云端模型的调用接口
- 调用模型调试代码,采用 JupyterLab 笔记
实现技术
- 使用 docker 容器方式运行,通过 compose 管理 docker 容器
- 使用 Ollama 加载本地模型
- 使用 one-api 统一管理本地和云端模型,并提供统一的 OpenAI API 访问方式
- 使用 JupyterLab 提供 Web 界面的开发编辑工具
使用效果展示
操作步骤
基础环境
- Linux 环境,已经正确安装了 nvidia driver,并安装了 docker 和 compose
- Windws 环境,WSL2 的 Linux 虚拟机,安装了 docker 和 compose
下载源代码
bash
git clone https://github.com/MarshalW/llm-proto.git
docker 设置代理
如果能直接访问 docker 官方 registry,则不需要这一步。
下面脚本为 docker 设置代理服务器。
bash
# 代理配置
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
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 重启 Docker 服务
sudo systemctl restart docker
构建 JupyterLab docker 镜像
bash
cd llm-proto/jupyterlab
./build.sh
启动服务
bash
cd llm-proto
docker compose up -d
配置服务
Ollama 加载模型
bash
# 进入 ollama 容器
docker exec -it llms bash
# 拉取模型
ollama pull qwen2:1.5b
# 验证拉取成功
ollama ls
NAME ID SIZE MODIFIED
qwen2:1.5b f6daf2b25194 934 MB 5 hours ago
配置 one-api
访问: http://IP:4000
登录账号/密码: root/123456
配置本地模型
添加渠道
测试渠道
添加令牌
复制令牌备用
配置云端模型
以 智谱 GLM 为例
创建渠道(需要设置访问密钥):
访问 jupyterlab
浏览器访问 http://IP:8888
密码是 password
编写笔记,参考 MarshalW/jupyterlab-demos/blob/main/simple-oneapi.ipynb
总结
通过上述步骤,即可建立一个最基本的 LLM 技术开发环境,用于调试基于模型的基础代码。