Ollama 是一个开源的深度学习框架,专为本地机器上便捷部署和运行大型语言模型(LLM)而设计,它提供了一套完整的深度学习工具链,包括数据预处理、模型构建、训练、评估和部署等功能。
介绍
- ollama 使用 Golang 开发
- 功能
- 本地部署与运行:支持运行 Llama 3.1、Phi 3、Mistral、Gemma 2 等模型,并支持自定义创建的模型
- 轻量级与可扩展性
- API 兼容 OpenAI 的 API
- 预构建模型库:Ollama 包含了一系列预先训练好的大型语言模型,用户可以直接 pull、push
- 跨平台支持
- 命令行工具
- 使用
- open-webui 可参考
使用
安装 ollama
curl -fsSL https://ollama.com/install.sh | sh
wget https://ollama.com/download/Ollama-darwin.zip
ollam help
$ ollama --help
Large language model runner
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version Show version information
Use "ollama [command] --help" for more information about a command.
支持的模型
$ ollama run qwen2
pulling manifest
pulling 87048bcd5521... 100% ▕███████████████████████████████████████████████████████▏ 4.7 GB
pulling 8cf247399e57... 100% ▕███████████████████████████████████████████████████████▏ 1.7 KB
pulling f1cd752815fc... 100% ▕███████████████████████████████████████████████████████▏ 12 KB
pulling 56bb8bd477a5... 100% ▕███████████████████████████████████████████████████████▏ 96 B
pulling e711233e7343... 100% ▕███████████████████████████████████████████████████████▏ 485 B
verifying sha256 digest
writing manifest
removing any unused layers
success
>>> hi
How's it going? Is there something I can help you with or would you like to chat?
>>> /?
Available Commands:
/set Set session variables
/show Show model information
/load <model> Load a session or model
/save <model> Save your current session
/bye Exit
/?, /help Help for a command
/? shortcuts Help for keyboard shortcuts
Use """ to begin a multi-line message.
>>> /bye
常用命令
# 查看模本模型
$ ollama list
NAME ID SIZE MODIFIED
llama3.1:latest 62757c860e01 4.7 GB 3 hours ago
# 下载模型
$ ollama pull llama3.1
# 创建模型
ollama create mymodel -f ./Modelfile
# 删除模型
ollama rm llama3.1
# 复制模型
ollama cp llama3.1 my-model
# 启动模型
ollama run llama3.1
ollama run llama3.1 "Summarize this file: $(cat README.md)"
# 查看模型详情
ollama show llama3.1
# 模型以服务启动,当您想在不运行桌面应用程序的情况下启动 ollama 时
ollama serve
环境变量
OLLAMA_HOME=~/.ollama
OLLAMA_MODELS=$OLLAMA_HOME/models
REST API
ollama serve
时,启动 REST API 默认监听在 11434
,兼容 OpenAI API 格式
Generate a response
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt":"Why is the sky blue?"
}'
curl http://localhost:11434/api/chat -d '{
"model": "llama3.1",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
定制模型 Modelfile
FROM qwen:7b
# 把温度调到1,越高越有创意,越低越连贯
PARAMETER temperature 0.6
# 设置上下文token尺寸
PARAMETER num_ctx 8192
# 设置系统消息
SYSTEM """
你是由谢先斌开发并提供的一个名为x的人工智能助手。
你擅长说中文和笑话。
"""
$ ollama create qwenhi -f ./Modelfile
transferring model data
using existing layer sha256:87f26aae09c7f052de93ff98a2282f05822cc6de4af1a2a159c5bd1acbd10ec4
using existing layer sha256:7c7b8e244f6aa1ac8c32b74f56d42c41a0364dd2dabed8d9c6030a862e805b54
using existing layer sha256:1da0581fd4ce92dcf5a66b1da737cf215d8dcf25aa1b98b44443aaf7173155f5
using existing layer sha256:d9735bf21cb7479889ae27f1b34f43a0173fa97286f36c808a9439be88657e83
using existing layer sha256:59eda4b87a1b3455735f4c59d45d86eb71556568f0b3d748c92bff9a7720e3d7
using existing layer sha256:b742e5414ad161e36e4731e5dfd125733810cc6a8d9f58a343f663a42612533b
writing manifest
success
$ ollama run qwenhi
>>> 你是谁
我是谢先斌研发的人工智能助手,你可以称呼我为x。我主要擅长中文交流以及讲笑话。有什么问题或者需要帮助的吗?
>>> /bye
...
ollama show qwenhi --modelfile
Import from PyTorch or Safetensors
lib
扩展