Ollama 基础
Ollama 是一个支持在本地下载、管理运行大语言模型的工具
- 支持多平台安装,包括压缩包、EXE 文件、Linux 脚本、Docker 镜像等
- 能够管理并下载主流的 LLMs 文件,也支持第三方的模型导入(GGUF 格式)
- 启动模型后,支持在命令行界面交互、也提供了REST API接口用于第三方服务
项目地址 105k ⭐
Ollama 基本操作:
ollama pull llama3.3 # 下拉模型
ollama show llama3.2 # 展示模型详情
ollama -v # 查看Ollama的版本
ollama list # 展示模型列表
ollama run llama3.3 # 运行模型
ollama ps # 监测正在运行的模型
ollama rm llama3.2 # 删除模型
由于使用界面简陋,所以 Ollama 一般会搭配其他 UI 软件使用
常用环境变量
环境变量 | 说明 | 默认值 |
---|---|---|
OLLAMA_MODELS | 模型文件存放目录 | 当前用户目录 |
OLLAMA_HOST | 服务监听网址 | 127.0.0.1 |
OLLAMA_PORT | 服务监听端口 | 11434 |
OLLAMA_KEEP_ALIVE | 模型载入内存后的存活时间 | 5m (即 5 分钟) |
OLLAMA_NUM_PARALLEL | 请求处理并发数量 | 1 |
OLLAMA_MAX_QUEUE | 请求队列长度 | 512 |
OLLAMA_DEBUG | 是否输出 Debug 日志 | |
OLLAMA_MAX_LOADED_MODELS | 最多同时加载到内存中模型的数量 | 1 |
CUDA_VISIBLE_DEVICES | 限制所使用的 GPU | 使用所有可见的GPU |
- 将
OLLAMA_HOST
设为0.0.0.0
,可以允许局域网中的其他电脑访问 OLLAMA_KEEP_ALIVE
默认单位是秒,数字后用 m 表示分钟,h 表示小时
Ollama 的 API 调用
# 1. 文本生成模式(generate)的API调用 - 流式返回
curl http://localhost:11434/api/generate -d '{
"model": "gemma:2b",
"prompt":"介绍一下React,20字以内"
}'
curl http://api.chatanywhere.tech/v1/chat/completions -d '{
"model": "gpt4",
"prompt":"介绍一下React,20字以内"
}'
# 2. 文本生成模式(generate)的API调用 - 非流式返回
curl http://localhost:11434/api/generate -d '{
"model": "gemma:2b",
"prompt":"介绍一下React,20字以内",
"stream": false
}'
# 3. 对话聊天模式(generate)的API调用 - 流式返回
curl http://localhost:11434/api/chat -d '{
"model": "gemma:2b",
"prompt":"介绍一下React,20字以内"
}'
generate 模式是一次性生成的数据;chat 模式可以附加历史记录,多轮对话
导入第三方模型文件
以 qwen1.5 0.5B
模型为例,进行演示:
- 下载模型
wget https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat-GGUF/resolve/main/qwen1_5-0_5b-chat-q4_0.gguf
目前 Ollama 仅支持 GGUF 格式的模型导入,其他格式的文件需要转换工具
- 准备 modelfile 文件
FROM ./qwen1_5-0_5b-chat-q4_0.gguf
# set the PARAMETER
PARAMETER temperature 0.7 # [higher is more creative, lower is more coherent]
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.05
PARAMETER top_k 20
TEMPLATE """{{ if and .First .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
{{ .Response }}"""
# set the system message
SYSTEM """
You are a helpful assistant.
"""
Modelfile
是自定义模型的必要文件,包含模型推理相关的设置
- 创建第三方模型:
ollama create qwen0_5b -f Modelfile
修改
temperature
等模型参数后,需要重新create
模型
Ollama 常见 QA
- 模型下载后的存放位置在哪?
macOS: ~/.ollama/models
Linux: /usr/share/ollama/.ollama/models #作为系统服务启动时
Linux: /home/<username>/.ollama/models #当前用户启动时
Windows: C:\Users\<username>\.ollama\models
- 如何修改模型的默认存储路径?
- 一般通过配置环境变量
OLLAMA_MODELS
来修改模型 - 需注意新设置的路径为 Ollama 用户设置读写权限
- 当模型文件无法下载时,如何配置代理?
- 配置环境变量
HTTP_PROXY
和HTTPS_PROXY
- Ollama 使用一段时间后,为什么会自动停止?
- 查看 ollama 的日志记录,一般是由于资源(如GPU显存)不足导致的
- 尝试较小的模型,比如qwen 0.5B,然后观察是否出现同样的问题