在 4GB 显存下运行 LLM 基础开发环境

有 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
  • 基础开发环境用于测试程序是否能跑通,因此可以先用本地小模型
  • 如果需要更大的模型,可以再使用云端模型
  • 切换本地模型和云端模型很容易,因为使用 one-api 统一了本地和云端模型的调用接口
  • 调用模型调试代码,采用 JupyterLab 笔记
    • 这样调试很方便,也便于分享
    • 如果使用客户端方案,比如 Streamlit 或者 Gradio
      • 过程复杂了,没有专注在模型相关,可能涉及很多客户端细节
      • 团队可能有专门的前端,会有他们的基于 Vue 或者 React 解决方案
    • 将来很容易将笔记代码移植到比如 FastAPI 的服务器端模块

实现技术

  • 使用 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 技术开发环境,用于调试基于模型的基础代码。

相关推荐
玉鸯12 小时前
多 Agent 系统通信的实现原理与最佳实践
llm·agent·mcp
TunerT_TQ13 小时前
Valhalla 静态工程审阅 #009|Continue 源码证据驱动评测【大厂开源基础设施特辑】
vscode·测试工具·开源·llm·github·jetbrains·ai编程助手
weixin_4713830314 小时前
01 LLM简介
llm
元Y亨H20 小时前
LangChain API 调用语言模型
langchain·llm
元Y亨H21 小时前
大模型技术 LangChain 概述
langchain·llm
元Y亨H21 小时前
大模型技术 提示词模板 概述
langchain·llm
元Y亨H1 天前
大模型技术 模型调用结果解析 概述
google·langchain·llm
元Y亨H1 天前
大模型技术 Ollama 概述
llm·ollama
chaors1 天前
DeepResearchSystem 0x06:LLM as Judge
llm·agent·ai编程
武子康1 天前
GPT-5.6 Luna 降价 80%:Agent 真正该重算的是单次成功成本
人工智能·chatgpt·llm