写在前面
Ollama 是一个开源工具,支持在本地运行和部署大型语言模型(包括现在很火的 DeepSeek-R1 )。以下是使用 Ollama 本地部署DeepSeek的详细步骤:
安装 Ollama
-
macOS/Linux:
-
直接运行安装脚本:
curl -fsSL https://ollama.com/install.sh | sh -
安装后,Ollama 会作为后台服务自动启动。
-
-
Windows:
-
下载安装包: Windows 版本。
注意:window默认安装在C盘,下载的模型文件也在,注意c盘的容量限制
-
-
Docker
从docker仓库拉取镜像: Ollama Docker image 。
下载并运行模型
Ollama 支持多种模型,以下是支持的一些常用模型。详见支持模型列表:Ollama Library
| Model | Parameters | Size | Download |
|---|---|---|---|
| DeepSeek-R1 | 7B | 4.7GB | ollama run deepseek-r1 |
| DeepSeek-R1 | 671B | 404GB | ollama run deepseek-r1:671b |
| Llama 3.3 | 70B | 43GB | ollama run llama3.3 |
| Llama 3.2 | 3B | 2.0GB | ollama run llama3.2 |
| Llama 3.2 | 1B | 1.3GB | ollama run llama3.2:1b |
| Llama 3.2 Vision | 11B | 7.9GB | ollama run llama3.2-vision |
| Llama 3.2 Vision | 90B | 55GB | ollama run llama3.2-vision:90b |
| Llama 3.1 | 8B | 4.7GB | ollama run llama3.1 |
| Llama 3.1 | 405B | 231GB | ollama run llama3.1:405b |
| Phi 4 | 14B | 9.1GB | ollama run phi4 |
| Phi 3 Mini | 3.8B | 2.3GB | ollama run phi3 |
| Gemma 2 | 2B | 1.6GB | ollama run gemma2:2b |
| Gemma 2 | 9B | 5.5GB | ollama run gemma2 |
| Gemma 2 | 27B | 16GB | ollama run gemma2:27b |
| Mistral | 7B | 4.1GB | ollama run mistral |
| Moondream 2 | 1.4B | 829MB | ollama run moondream |
| Neural Chat | 7B | 4.1GB | ollama run neural-chat |
| Starling | 7B | 4.1GB | ollama run starling-lm |
| Code Llama | 7B | 3.8GB | ollama run codellama |
| Llama 2 Uncensored | 7B | 3.8GB | ollama run llama2-uncensored |
| LLaVA | 7B | 4.5GB | ollama run llava |
| Solar | 10.7B | 6.1GB | ollama run solar |
注意:如下是ollama官方建议
1.你应该至少有8GB的可用RAM来运行7B模型,16GB来运行13B模型,以及32GB来运行33B模型。
默认模型存储路径
- Linux:
~/.ollama/models/- macOS:
~/.ollama/models/- Windows:
C:\Users<用户名>.ollama\models
-
运行模型:
ollama run deepseek-r1 # 运行 deepseek-r1,这个默认参数大小是7B ollama run deepseek-r1:671b # 运行参数大小为671b的 deepseek-r1首次运行时会自动下载模型(需网络连接)。
-
查看已安装模型:
ollama list
-
与模型交互
-
命令行对话: 运行模型后,直接在终端输入内容与模型交互。例如:
>>> 你好,用中文写一首关于春天的诗 -
单次指令执行: 通过
ollama run直接执行单条指令:ollama run deepseek-r1 "用中文解释人工智能"
如果要使用多行输入模式:在交互界面输入 """ 进入多行输入,以 //end 结束:
"""
这是第一行,
这是第二行...
//end
高级用法
-
调整模型参数: 在运行模型时,可指定参数(如温度值、重复惩罚等):
ollama run deepseek-r1 --temperature 0.7 --repeat_penalty 1.2参数说明
参数名 作用 推荐范围 temperature控制生成随机性(0=确定,1=随机) 0.1~1.0 num_ctx模型上下文长度(影响记忆能力) 1024~8192 repeat_penalty减少重复内容(>1 时生效) 1.0~2.0 top_k限制候选词数量 20~100 top_p动态截断候选词(与 top_k二选一)0.5~0.95 seed固定随机种子(确保结果可复现) 任意整数 -
自定义模型配置: 创建自定义配置文件(如
Modelfile),定义基础模型、参数或系统提示词:FROM deepseek-r1 SYSTEM "你是一个专业的中文助手,回答简洁且准确。" PARAMETER temperature 0.8构建自定义模型:
ollama create my-model -f Modelfile ollama run my-model作为 API 服务
Ollama 提供 REST API,可通过 HTTP 请求调用deepseek-r1模型:
-
启动 API 服务:
ollama serve默认端口为
11434。 -
发送请求示例:
curl http://localhost:11434/api/generate -d '{ "model": "deepseek-r1", "prompt": "用中文写一个关于环保的故事", "stream": false }'
Ollama常用命令和api
ollama常用命令
命令 说明 ollama run <模型名>运行指定模型(自动下载缺失模型) ollama pull <模型名>下载模型但不运行 ollama list查看本地已下载的模型列表 ollama rm <模型名>删除本地模型 ollama help查看所有命令帮助 ollama create <自定义模型名> -f Modelfile创建自定义模型 ollama push <自定义模型名>发布模型到本地库 ollama update更新 Ollama ollama serve启动 Ollama 服务(默认端口 11434)systemctl start ollamaLinux 系统通过 systemctl 启动服务 ollama常用api
Ollama 提供了一系列的API端点,让开发者能够通过编程方式与模型进行交互。以下是一些常用的API及其功能概述:
-
生成文本(Generate Text)
-
端点:
POST /api/generate -
功能: 向模型发送提示词(prompt),并获取生成的文本。
-
请求格式:
{ "model": "<model-name>", // 模型名称 "prompt": "<input-text>", // 输入的提示词 "stream": false, // 是否启用流式响应(默认 false) "options": { // 可选参数 "temperature": 0.7, // 温度参数 "max_tokens": 100 // 最大 token 数 } } -
响应格式:
{ "response": "<generated-text>", // 生成的文本 "done": true // 是否完成 }
-
-
聊天(Chat)
-
端点:
POST /api/chat -
功能: 支持多轮对话,模型会记住上下文。
-
请求格式:
{ "model": "<model-name>", // 模型名称 "messages": [ // 消息列表 { "role": "user", // 用户角色 "content": "<input-text>" // 用户输入 } ], "stream": false, // 是否启用流式响应 "options": { // 可选参数 "temperature": 0.7, "max_tokens": 100 } } -
响应格式:
{ "message": { "role": "assistant", // 助手角色 "content": "<generated-text>" // 生成的文本 }, "done": true }
-
-
列出本地模型(List Models)
-
端点:
GET /api/tags -
功能: 列出本地已下载的模型。
-
响应格式:
{ "models": [ { "name": "<model-name>", // 模型名称 "size": "<model-size>", // 模型大小 "modified_at": "<timestamp>" // 修改时间 } ] }
-
-
拉取模型(Pull Model)
-
端点:
POST /api/pull -
功能: 从模型库中拉取模型。
-
请求格式:
{ "name": "<model-name>" // 模型名称 } -
响应格式:
{ "status": "downloading", // 下载状态 "digest": "<model-digest>" // 模型摘要 }
-
资源
- Ollama官网:ollama.com
- deepseek官网:www.deepseek.com/
- ollama GitHub 仓库:github.com/jmorganca/o…
- deepseek-r1 Github仓库:github.com/deepseek-ai…
- 原文:mp.weixin.qq.com/s/ZQdtzCNDj…
-