Ollama 大模型的本地私有化部署

2,355 阅读3分钟

在localhost部署并运行开源大模型,可以试试Ollama。本文使用Ollama部署,并通过API的方式调用大模型。

参考

安装

Ollama支持各个平台:Mac、Windows 和 Linux,下载 然后一键安装Ollama框架

# 安装成功后执行ollama -v命令,查看版本信息,如果可以显示则代表已经安装好
root@master:~# ollama -v
ollama version is 0.1.38
root@master:~# ollama --help

Ollama安装完成后, 一般会自动启动 Ollama 服务,而且会自动设置为开机自启动。在Linux上,查看:systemctl status ollama; 启动:ollama serve,或者 sudo systemctl start ollama。

配置

编辑vim /etc/systemd/system/ollama.service.d/environment.conf文件来对ollama进行配置

默认的配置文件目录:C:\Users\zhtop\AppData\Local\Ollama

[Service]
# 配置远程访问
Environment="OLLAMA_HOST=0.0.0.0:11434"

Ollama命令

ollama serve	# 启动ollama
ollama create	# 从模型文件创建模型
ollama show		# 显示模型信息
ollama run		# 运行模型
ollama pull		# 从注册仓库中拉取模型
ollama push		# 将模型推送到注册仓库
ollama list		# 列出已下载模型
ollama cp		# 复制模型
ollama rm		# 删除模型
ollama help		# 获取有关任何命令的帮助信息

模型库

下载并运行大语言模型:ollama run llama2;如果本地没有指定的大语言模型,这条命令将会先执行ollama pull llama2,将大语言模型下载到本地,再在本地运行大语言模型。模型列表

# 拉取模型
ollama pull llama2
# 运行模型
ollama run llama2
# 运行模型 本地没有,先下载模型
ollama run llama3.2

ollama run llama3.2
ollama run qwen2.5
# 输入/help查看对话可用指令
# 输入/bye退出对话模式

开启服务

运行模型后,执行ollama serve命令启动Ollama服务,然后就可以通过API形式进行模型调用

ollama serve

REST API

生成式接口

# 流式返回
curl http://localhost:11434/api/generate -d '{
  "model": "llama2",
  "prompt":"Why is the sky blue?"
}'

# 非流式返回。通过设置 "stream": false 参数可以设置一次性返回。
curl http://localhost:11434/api/generate -d '{ 
  "model": "gemma:2b",
  "prompt":"介绍一下React,20字以内",
  "stream": false 
}'

聊天接口,默认流式返回,同样可以通过 "stream": false 参数一次性返回

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

嵌入

curl http://localhost:11434/api/embeddings -d '{
  "model": "all-minilm",
  "prompt": "Here is an article about llamas..."
}'

模型定制

Ollama 库中的模型可以通过提示进行定制。例如,自定义 llama3 模型:

ollama pull llama3

创建 Modelfile文件

FROM llama3

# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1

# set the system message
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""

创建并运行模型

ollama create mario -f ./testmodel.modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.

Web UI

除了上面终端和 API 调用的方式,目前还有许多开源的 Web UI,可以本地搭建一个可视化的页面来实现对话

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

# http://localhost:3000/auth/