字节笔记本字节笔记本

Ollama 的安装和使用

2024-06-11

Ollama 是一个轻量级、可扩展的框架,用于在本地机器上构建和运行大型语言模型,支持多种安装方式和模型,提供丰富的API和社区集成。

Ollama 是一个轻量级、可扩展的框架,用于在本地机器上构建和运行大型语言模型。它提供了简单的 API,用于创建、运行和管理模型,并且拥有一个可以轻松使用的预构建模型库。以下是 Ollama 的主要功能和使用方法:

安装

macOS: 下载 macOS 安装包

Windows 预览版: 下载 Windows 预览版

Linux: 使用以下命令安装

curl -fsSL https://ollama.com/install.sh | sh

也可以参考 手动安装说明

Docker: Docker Hub 上提供了官方的 Ollama Docker 镜像 ollama/ollama

docker pull ollama/ollama

快速开始

要运行和与 Llama 3 模型聊天:

ollama run llama3

模型库

Ollama 支持多种模型,可以从 ollama.com/library 下载。以下是一些示例模型:

模型名称 参数 大小 下载命令
Llama 3 8B 4.7GB ollama run llama3
Llama 3 70B 40GB ollama run llama3:70b
Phi 3 Mini 3.8B 2.3GB ollama run phi3
Phi 3 Medium 14B 7.9GB ollama run phi3:medium
Gemma 2B 1.4GB ollama run gemma:2b
Gemma 7B 4.8GB ollama run gemma:7b
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

注意: 运行 7B 模型需要至少 8 GB RAM,运行 13B 模型需要 16 GB RAM,运行 33B 模型需要 32 GB RAM。

自定义模型

从 GGUF 导入

创建一个名为 Modelfile 的文件,并包含一个 FROM 指令,指定要导入的模型的本地文件路径。

FROM ./vicuna-33b.Q4_0.gguf

创建模型:

ollama create example -f Modelfile

运行模型:

ollama run example

从 PyTorch 或 Safetensors 导入

详见 导入指南

自定义提示

可以使用提示自定义模型。例如,自定义 llama3 模型:

ollama pull llama3

创建一个 Modelfile

FROM llama3

# 设置温度为 1 [越高越有创造力,越低越连贯]
PARAMETER temperature 1

# 设置系统消息
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""

创建并运行模型:

ollama create mario -f ./Modelfile
ollama run mario

命令行参考

创建模型

ollama create mymodel -f ./Modelfile

拉取模型

ollama pull llama3

删除模型

ollama rm llama3

复制模型

ollama cp llama3 my-model

多行输入

>>> """Hello,
... world!
... """

多模态模型

>>> What's in this image? /Users/jmorgan/Desktop/smile.png

传递提示作为参数

ollama run llama3 "Summarize this file: $(cat README.md)"

列出计算机上的模型

ollama list

启动 Ollama

ollama serve

在另一个终端运行模型:

ollama run llama3

REST API

生成响应:

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt":"Why is the sky blue?"
}'

与模型聊天:

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

社区集成

  • Web & 桌面: Open WebUI, Enchanted (macOS native), Hollama, 等等。
  • 终端: oterm, Ellama Emacs client, gen.nvim, 等等。
  • 数据库: MindsDB, chromem-go with example。
  • 包管理器: Pacman, Helm Chart, Guix channel。
  • : LangChain, LangChain.js, LangChainGo, LangChain4j, LangChainRust, LlamaIndex, 等等。
  • 移动端: Enchanted, Maid。
  • 扩展与插件: Raycast extension, Discollama (Discord bot), Continue, Obsidian Ollama plugin, 等等。

Ollama 提供了丰富的功能和集成,支持多种模型的运行和管理,适用于各种应用场景。