Docker基于Ollama本地部署大语言模型

一、Ollama介绍

Ollama 是一个开源的大型语言模型(LLM)平台,旨在简化大型语言模型在本地环境中的运行、管理和交互。通过Ollama,用户可以轻松加载和使用各种预训练的语言模型,执行诸如文本生成、翻译、代码编写、问答等多种自然语言处理任务。本文将详细介绍如何使用Ollama和Docker在本地部署大型语言模型。

二、Ollama安装

2.1、拉取镜像

我们将使用Docker容器来安装Ollama。首先,从华为云的镜像仓库拉取Ollama镜像:

shell 复制代码
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama:rocm

2.2、运行容器

接下来,运行我们刚刚拉取的镜像,并将容器的11434端口映射到主机的11434端口。为了简化操作,这里不进行磁盘卷挂载。

shell 复制代码
docker run -d -p 11434:11434 --name ollama swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama

运行成功后,可以通过访问localhost:11434来确认Ollama是否成功运行。

三、模型部署

我们可以使用Ollama指令直接下载并运行大型语言模型。这里,我们将演示如何使用GGUF文件加载阿里开源的Qwen2模型。

首先,从以下地址下载Qwen2模型:

Qwen2下载地址

下载完成后,将模型文件拷贝到Docker容器中

shell 复制代码
docker cp Qwen2-0.5B.Q3_K_M.gguf ollama:/

在拷贝的目录下创建Modelfile文件

shell 复制代码
docker exec -it ollama bash
vim Modelfile

在文件中指定gguf文件的地址

shell 复制代码
FROM ./Qwen2-0.5B.Q3_K_M.gguf

开始创建模型

shell 复制代码
ollama create qwen2 -f Modelfile

模型创建成功后,我们可以使用Ollama来管理模型,类似于Docker管理容器镜像。以下是一些常用的Ollama命令:

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

运行我们创建的模型,进入会话终端。虽然模型运行成功,但效果可能不太理想(可能是模型文件的问题)。不过,这已经证明了我们在本地成功部署了Qwen2大型语言模型。

复制代码
ollama run qwen2

四、API接口调用

既然我们已经本地成功部署运行了大模型,现在我们使用python通过ollama的API接口来调用大模型。

4.1、本地调用

在本地环境中,我们可以使用Python中的Ollama模块来调用模型。首先,安装Ollama模块:

shell 复制代码
pip install ollama
python 复制代码
from ollama import chat
from ollama import ChatResponse

response = chat(model='qwen2', messages=[
  {
    'role': 'user',
    'content': '屁的化学成分是什么?',
  },
])
print(response['message']['content'])
print(response.message.content)

OK,这个结果就还行。

4.2、IP地址调用

在实际应用中,我们通常会将模型部署在云服务器上,并通过API接口发送HTTP请求来调用模型。以下是使用Python通过IP地址调用模型的示例代码:

python 复制代码
import requests

url = "http://localhost:11434/api/generate"
data = {
    "model": "qwen2",
    "prompt": "屁是由什么组成的?",
    "stream": False
}
response = requests.post(url, json=data)
data = response.json()
print(data["response"])

五、总结

通过本文,我们详细介绍了如何在本地使用Ollama和Docker部署大型语言模型。从镜像拉取、容器运行到模型部署和API调用,每一步都进行了详细的说明和演示。虽然模型效果不理想,但通过不断优化和调整,我们可以逐步提升模型的效果。例如LangChain等等。

相关推荐
WL_Aurora2 分钟前
备战蓝桥杯国赛【Day 15】
python·蓝桥杯
彳亍1016 分钟前
如何用 Dask 替代 Pandas 实现高效 Excel 数据处理
jvm·数据库·python
音符犹如代码8 分钟前
Docker 一键部署带有 TimescaleDB 插件的 PostgreSQL
java·运维·数据库·后端·docker·postgresql·容器
2301_7838486512 分钟前
c++怎么把多个变量一次性写入二进制文件_结构体对齐与write【实战】
jvm·数据库·python
码界筑梦坊16 分钟前
123-基于Python的特斯拉超级充电站分布数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts·fastapi
wang3zc19 分钟前
如何在 WooCommerce 后台按订单总金额精准筛选订单
jvm·数据库·python
AIGC包拥它42 分钟前
RAG 项目实战进阶:基于 FastAPI + Vue3 前后端架构全面重构 LangChain 0.3 集成 Milvus 2.5 构建大模型智能应用
人工智能·python·重构·vue·fastapi·milvus·ai-native
Cosolar42 分钟前
AI Agent 记忆机制全景对比:OpenClaw vs QwenPaw vs Hermes vs HiClaw
人工智能·深度学习·语言模型·chatgpt·面试
日取其半万世不竭1 小时前
Ollama + Open WebUI 部署教程:本地运行大语言模型,自建私有 AI 助手
人工智能·语言模型·自然语言处理
YuanDaima20481 小时前
Docker 工程化安装与核心命令实战
运维·人工智能·docker·微服务·容器·bash