在localhost部署并运行开源大模型,可以试试Ollama。本文使用Ollama部署,并通过API的方式调用大模型。
参考
-
官方网站:ollama.com/
-
Github:github.com/ollama/olla…
安装
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/