Ollama 在本地快速部署大型语言模型,可进行定制并创建属于您自己的模型

Ollama 在本地快速部署并运行大型语言模型。

macOS

点击下载

Windows 预览版

点击下载

Linux

shell 复制代码
curl -fsSL https://ollama.com/install.sh | sh

手动安装指南

Docker

官方的 Ollama Docker 镜像 ollama/ollama 已经在 Docker Hub 上发布。

快速开始

启动服务

刚安装完成时,默认时开启的,如果停止后请执行,下面命令开启:

bash 复制代码
 service ollama start

停止服务

在Linux环境下,如果"ollama"是一个后台运行的服务,可以通过以下类似命令来停止:

bash 复制代码
service ollama stop

运行模型

要运行并与 Llama 2 进行交互:

shell 复制代码
ollama run llama2

模型库

Ollama 支持一系列可在 ollama.com/library 查找的语言模型列表。

以下是一些可下载的示例模型:

模型名称 参数数量 大小 下载命令
Llama 2 70亿 3.8GB ollama run llama2
Mistral 70亿 4.1GB ollama run mistral
Dolphin Phi 27亿 1.6GB ollama run dolphin-phi
Phi-2 27亿 1.7GB ollama run phi
Neural Chat 70亿 4.1GB ollama run neural-chat
Starling 70亿 4.1GB ollama run starling-lm
Code Llama 70亿 3.8GB ollama run codellama
Llama 2 无限制版 70亿 3.8GB ollama run llama2-uncensored
Llama 2 130亿参数版 130亿 7.3GB ollama run llama2:13b
Llama 2 700亿参数版 700亿 39GB ollama run llama2:70b
Orca Mini 30亿 1.9GB ollama run orca-mini
Vicuna 70亿 3.8GB ollama run vicuna
LLaVA 70亿 4.5GB ollama run llava
Gemma 20亿 1.4GB ollama run gemma:2b
Gemma 70亿 4.8GB ollama run gemma:7b

注意:运行 70亿参数模型至少需要 8 GB 内存,运行 130亿参数模型需要 16 GB 内存,而运行 330亿参数模型则需要 32 GB 内存。

自定义模型

从GGUF导入模型

Ollama支持从GGUF导入模型至Modelfile中:

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

    yaml 复制代码
    FROM ./vicuna-33b.Q4_0.gguf
  2. 在Ollama中创建模型

    bash 复制代码
    ollama create example -f Modelfile
  3. 运行模型

    bash 复制代码
    ollama run example

从PyTorch或Safetensors导入

有关导入模型的更多信息,请参阅导入指南

自定义提示

可以从Ollama库中自定义带有提示的模型。例如,要自定义llama2模型:

bash 复制代码
ollama pull llama2

创建一个Modelfile

yaml 复制代码
FROM llama2

# 设置温度为1 [数值越高创造力越强,数值越低连贯性越好]
PARAMETER temperature 1

# 设置系统消息
SYSTEM """
您是来自《超级马里奥兄弟》的马里奥。请以马里奥助手的身份作答。
"""

接下来,创建并运行模型:

bash 复制代码
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
你好!我是你的朋友马里奥。

更多示例请查看示例目录。有关如何使用Modelfile的更多详细信息,请参阅Modelfile文档

CLI参考文献


翻译摘要

Ollama工具支持导入GGUF格式的模型,流程如下:

  1. Modelfile文件中通过FROM语句指定本地模型文件路径进行导入。
  2. 利用Ollama创建导入模型实例。
  3. 运行创建好的模型实例。

对于从PyTorch或Safetensors导入模型,请参照相关导入指南。

Ollama还允许用户自定义模型的提示内容,例如针对llama2模型的定制:

  1. 先拉取llama2模型。
  2. 创建一个Modelfile文件,设置参数如温度,并提供系统消息(即提示文本)。
  3. 根据Modelfile文件创建并运行自定义模型实例。

更多例子可在示例目录中查看,有关Modelfile的详细使用说明请参阅Modelfile文档部分。

创建模型

使用ollama create命令基于Modelfile创建模型。

bash 复制代码
ollama create 我的模型 -f ./Modelfile

下载模型

bash 复制代码
ollama pull llama2

此命令也可用于更新本地模型。只会拉取差异部分。

删除模型

bash 复制代码
ollama rm llama2

复制模型

bash 复制代码
ollama cp llama2 我的-llama2

多行输入

对于多行输入,可以使用 """ 包裹文本:

python 复制代码
>>> """
... 你好,
... 世界!
... """
我是一个基础程序,会在控制台上打印著名的"你好,世界!"消息。

多模态模型

bash 复制代码
>>> 这张图片里面是什么?/Users/jmorgan/Desktop/smile.png
图片中有一个黄色笑脸,很可能是图片的焦点所在。

将提示作为参数传递

bash 复制代码
$ ollama run llama2 "总结这个文件:$(cat README.md)"
 Ollama是一款轻量级、可扩展的框架,用于在本地机器上构建和运行语言模型。它提供了一个简单的API,用于创建、运行和管理模型,同时也提供了一系列预建模型库,这些模型可在多种应用中轻松使用。

列出计算机上的模型

bash 复制代码
ollama list

启动Ollama服务

当你不想运行桌面应用程序而直接启动Ollama时,使用ollama serve命令。

构建过程

安装cmakego开发工具:

bash 复制代码
brew install cmake go

然后生成依赖项:

bash 复制代码
go generate ./...

接着编译二进制文件:

bash 复制代码
go build .

更详细的构建指南可以在开发者指南中找到。

运行本地构建

接下来启动服务器:

bash 复制代码
./ollama serve

最后,在另一个终端窗口中运行模型:

bash 复制代码
./ollama run llama2

REST API

Ollama提供了一个用于运行和管理模型的REST API。

默认启动的11434端口,但是只能本机访问。如果需要设置外网访问,修改修改服务配置

修改文件 /etc/systemd/system/ollama.service

bash 复制代码
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0"
Environment="PATH=/home/dtjk/bin:/home/dtjk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/dtjk/.dotnet/tools:/home/dtjk/.dotnet/tools"

[Install]
WantedBy=default.target
  • 文件内添加 Environment="OLLAMA_HOST=0.0.0.0" 保存

更新配置命令

bash 复制代码
sudo systemctl daemon-reload
sudo service ollama restart   

生成响应

bash 复制代码
curl http://localhost:11434/api/generate -d '{
  "model": "llama2",
  "prompt": "为什么天空是蓝色的?"
}'

与模型聊天

bash 复制代码
curl http://localhost:11434/api/chat -d '{
  "model": "mistral",
  "messages": [
    { "role": "user", "content": "为什么天空是蓝色的?" }
  ]
}'

有关所有端点的详细信息,请查阅API文档

社区集成

网页与桌面应用集成

终端

数据库

包管理

移动

扩展和插件

相关推荐
肥猪猪爸4 分钟前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
LZXCyrus33 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
我感觉。1 小时前
【机器学习chp4】特征工程
人工智能·机器学习·主成分分析·特征工程
YRr YRr1 小时前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
DieYoung_Alive1 小时前
一篇文章了解机器学习(下)
人工智能·机器学习
夏沫的梦1 小时前
生成式AI对产业的影响与冲击
人工智能·aigc
goomind1 小时前
YOLOv8实战木材缺陷识别
人工智能·yolo·目标检测·缺陷检测·pyqt5·木材缺陷识别
只怕自己不够好1 小时前
《OpenCV 图像基础操作全解析:从读取到像素处理与 ROI 应用》
人工智能·opencv·计算机视觉
幻风_huanfeng1 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
嵌入式大圣1 小时前
嵌入式系统与OpenCV
人工智能·opencv·计算机视觉