以下内容主要参考博文:DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」 - 程序设计实验室 - 博客园
安装 ollama
Download Ollama on Linux
curl -fsSL https://ollama.com/install.sh | sh
配置 ollama 监听地址
ollama 安装后默认监听 127.0.0.1, 为了方便使用,要么修改监听地址,要么用 SSH 转发,这里我选择了修改地址
sudo systemctl edit ollama
它会自动在 /etc/systemd/system/ollama.service.d/override.conf
中存储你添加或修改的配置。
在里面添加配置
[Service] Environment="OLLAMA_HOST=0.0.0.0:11434"
即可覆盖主服务文件里对 OLLAMA_HOST
的设置,其他环境变量(如 PATH
等)则仍保留主服务文件里的值。
验证
先重启一下
sudo systemctl daemon-reload sudo systemctl restart ollama
然后执行以下命令验证
sudo systemctl show ollama | grep Environment
你会看到系统最终为该服务设置的所有环境变量。其中如果存在同名变量,就会以最后写入(即 override 配置)的值为准。
安装deepseek-r1模型
搜索模型
Ollama
目前最火的 DeepSeek-R1 排在显眼位置
我的电脑配置是,CPU:Inteli9-13900KF×32,内存:31.2 GiB,显卡:RTX 4080(16GiB),我选了 14b 的模型
可以根据显存选择合适的模型,如下所示:
模型版本 | 参数量 | 模型大小 | 显卡 | CPU | 内存 | 磁盘 |
---|---|---|---|---|---|---|
1.5B | 15亿 | 1.1 GB | 4GB+ 显存(如 GTX 1650) | 4核以上(推荐 Intel/AMD 多核处理器) | 8GB+ | 3GB+ 存储空间 |
7B | 70亿 | 4.7 GB | 8GB+ 显存(如 RTX 3070/4060) | 8核以上(推荐现代多核 CPU) | 16GB+ | 8GB+ 存储空间 |
8B | 80亿 | 4.9 GB | 8GB+ 显存(如 RTX 3070/4060) | 8核以上(推荐现代多核 CPU) | 16GB+ | 8GB+ 存储空间 |
14B | 140亿 | 9.0 GB | 16GB+ 显存(如 RTX 4080 或 A5000) | 12核以上 | 32GB+ | 15GB+ 存储空间 |
32B | 320亿 | 20 GB | 24GB+ 显存(如 A100 40GB 或双卡 RTX 3090) | 16核以上(如 AMD Ryzen 9 或 Intel i9) | 64GB+ | 30GB+ 存储空间 |
70B | 700亿 | 43 GB | 多卡并行(如 2x A100 80GB 或 4x RTX 4090) | 32核以上(服务器级 CPU) | 128GB+ | 70GB+ 存储空间 |
671B | 6710亿 | 404 GB | 多节点分布式训练(如 8x A100/H100) | 64核以上(服务器集群) | 512GB+ | 500GB+ 存储空间 |
安装
接着执行命令
ollama run deepseek-r1:14b
开始下载,14b 的模型大小是 9GB
使用
在命令行可以直接使用,比如输入“你好”
ollama run deepseek-r1:14b >>> 你好 <think> </think> 你好!很高兴见到你,有什么我可以帮忙的吗? >>> Send a message (/? for help)
或者使用ollma的api进行访问:
curl http://192.168.106.154:11434/api/generate -d '{"model": "deepseek-r1:14b","prompt": "你好","stream":false}' > response.json
这里返回的是json格式的字符串,我把回答保存为response.json文件:
{"context": [151644,108386,151645,151648,271,151649,271,108386,6313,112169,104639,56568,3837,104139,109944,106128,9370,101037,11319],"created_at": "2025-02-05T05:54:20.914913948Z","done": true,"done_reason": "stop","eval_count": 17,"eval_duration": 309000000,"load_duration": 20280119,"model": "deepseek-r1:14b","prompt_eval_count": 4,"prompt_eval_duration": 23000000,"response": "\u003cthink\u003e\n\n\u003c/think\u003e\n\n你好!很高兴见到你,有什么我可以帮忙的吗?","total_duration": 354561241 }
其他更具体的api调用方式可以查询ollma官方文档(https://github.com/ollama/ollama/blob/main/docs/api.md)
安装 Open WebUI
GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
pip 安装
conda create -n open-webui python=3.11
切换环境
conda activate open-webui
安装
pip install open-webui
启动
open-webui serve
docker启动Open WebUI
docker命令启动
docker run -d -p 3000:8080 \ --add-host=host.docker.internal:host-gateway \ --add-host=api.openai.com:127.0.0.1 \ -v ollama:/root/.ollama \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main
这里需要另外添加--add-host=api.openai.com:127.0.0.1
,避免出现“openwebui登陆进入之后很长一段时间才能看到界面”
可能可能需要添加-v ollama:/root/.ollama
,不然进去后会发现找不到模型
关闭容器
docker ps -a docker stop open-webui docker rm open-webui docker volume rm open-webui
内网访问
查看电脑的局域网ip
ifconfig
使用http://<ip>:<port>
进行访问
http://192.168.106.154:3000
这里的3000就是将本地的端口3000映射到docker容器的8080,容器内部会通过host.docker.internal访问ollama的接口
后续如果建立内网穿刺,就可以在外网访问啦~