使用 Docker 安装 Ollama 部署本地大模型并接入 One-API

news2024/9/19 15:02:17

Ollama是一款开源工具,它允许用户在本地便捷地运行多种大型开源模型,包括清华大学的ChatGLM、阿里的千问以及Meta的llama等。目前,Ollama兼容macOS、Linux和Windows三大主流操作系统。本文将介绍如何通过Docker安装Ollama,并将其部署以使用本地大模型,同时接入one-api,以便通过API接口轻松调用所需的大规模语言模型。

图片

硬件配置

由于大模型对硬件配置要求非常高,所以机器的配置越高越好,有独立显卡更佳,建议内存32G起步。博主是在一台独立服务器上部署,服务器配置如下:

  • CPU:E5-2696 v2
  • RAM:64G
  • 硬盘:512G SSD
  • 显卡:无

备注:我的独立服务器没有显卡,所以只能用CPU来跑。

Docker安装Ollama

Ollama现在已经支持Docker安装,极大的简化了服务器用户部署难度,这里我们使用docker compose工具来运行Ollama,先新建一个docker-compose.yaml,内容如下:

在这里插入图片描述

然后输入命令docker compose up -d或者docker-compose up -d运行,运行后访问:http://IP:11434,看到提示Ollama is running就说明成功了,如下图:

图片99464807c614b7a2.png

如果您的机器支持GPU,可添加GPU参数支持,参考:https://hub.docker.com/r/ollama/ollama

使用Ollama部署大模型

Ollama安装完毕后,还需要继续下载大模型,支持的大模型可以在Ollama官网找到:https://ollama.com/library。Ollama默认没有提供WEB界面,需要通过命令行来使用,先输入命令进入容器:

docker exec -it ollama /bin/bash

进入容器后,去上面官网找到你想要下载的大模型,比如我们下载一个阿里千问2的模型,命令如下:

ollama run qwen2

模型下载并运行完毕后可以通过命令行方式进行对话,如下图:

图片a2d6975672604f0a.png

Ollama常用命令

以下是Ollama一些常用命令:

  • 运行一个指定大模型:ollama run llama3:8b-text
  • 查看本地大模型列表:ollama list
  • 查看运行中的大模型:ollama ps
  • 删除本地指定大模型:ollama rm llama3:8b-text

提示:更多命令也可以输入ollama -h进行查看。

大模型体验

目前xiaoz下载了llama2/qwen2/glm4/llama3/phi3大模型进行了简单的使用体验,得出一个可能不太严谨和准确的使用感受:

  • llama模型对中文支持不友好(可以理解,毕竟时国外大模型)
  • phi3:3.8b微软推出的小模型,支持多语言,实测3.8b比较弱智,可能是模型参数太少了,不知道提高到14b会不会好一些
  • glm4/qwen2对中文支持比较友好
  • 模型参数越小越弱智,从7b及以上开始基本可以正常理解和对话,更小的模型就经常犯错了
  • 我上述配置,纯CPU来跑7b模型,速度稍微有点慢

将Ollama接入one-api

one-api是一个开源AI中间件服务,可以聚合各家大模型API,比如OpenAI、ChatGLM、文心一言等,聚合后提供统一的OpenAI调用方法。举个例子:ChatGLM和文心一言的API调用方法并不相同,one-api可以对其进行整合,然后提供一个统一的OpenAI调用方法,调用时只需要改变模型名称即可,从而消除接口差异和降低开发难度。

one-api具体安装方法请参考官方项目地址:https://github.com/songquanpeng/one-api

通过one-api后台 >> 渠道 >> 添加一个新的渠道

  • 类型:Ollama
  • 渠道API地址:填写Ollama WEB地址,比如http://IP:11434
  • 模型:你在Ollama上已经下载好的本地大模型名称
  • 密钥:这个是必填项,由于Ollama默认不支持鉴权访问,所以这里随便填写即可

如下图:

图片d06d26dfe39e97e6.png

接入后,我们可以请求one-api然后传递具体的模型名称进行调用测试,命令如下:

在这里插入图片描述

  • ai.xxx.com改成你one-api的域名
  • sk-xxx填写你在one-api创建的令牌

如果调用成功,则说明已经成功将Ollama接入到one-api。

遇到的问题

博主尝试使用stream的方式调用one-api Ollama时,返回空白,通过issues发现是one-api BUG导致,目前降级one-api版本为0.6.6解决,期待作者后续修复这个问题。

安全风险

由于Ollama本身没有提供鉴权访问机制,所以Ollama部署到服务器上存在安全隐患,知道你IP和端口的用户都可以进行API调用,非常不安全,生产环境我们大致可通过下面的一些方法来提高安全性。

方法一:Linux内置防火墙

  • Docker部署Ollama时改为HOST网络
  • 通过Linux内置防火墙限制只能指定IP访问11434端口

方法二:Nginx反向代理

  • Docker部署Ollama时,映射IP改为127.0.0.1
  • 然后本机的Nginx反向代理127.0.0.1:11434,并在nginx上设置黑名单(deny)和白名单(allow)IP

结语

Ollama作为一款开源工具,为用户提供了便捷的本地大模型部署和调用方式,其卓越的兼容性和灵活性使得在多种操作系统上运行大规模语言模型变得更加简易。通过Docker的安装与部署,用户可以快速上手并灵活使用各类大型模型,为开发和研究提供了强有力的支持。然而,由于Ollama缺乏内置的鉴权访问机制,用户在生产环境中应采取适当的安全措施,以防止潜在的访问风险。总的来说,Ollama在推动本地AI模型的应用和开发中,具备了极大的实用价值,未来若能完善鉴权机制,将无疑成为AI开发者的得力助手。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果手机如何备份通讯录?4个方法手把手教你备份

苹果手机通讯录是我们联系亲朋好友的重要工具。然而,如果苹果手机出现损坏或者是丢失的情况,那手机通讯录存储的联系方式也会随之消失。为了避免这种情况的发生,定期备份通讯录变得至关重要,那么,苹果手机如何备份通讯…

基于Nginx进行服务器隐私保护:隐藏真实的服务器IP地址或主机名( 转发代理、服务器的别名)

文章目录 引言I 隐藏站点请求API的真实服务器IP和端口查看主文件配置服务的端口和站点目录的映射配置proxy_pass代理转发代理转发的其他配置【可选】II 服务器主机名处理隐藏真实的服务器主机名判断API请求是哪个服务器处理的III GLC日志中心新增用户信息扩展:在Linux中配置主…

趋势分享|Gartner解读中国企业容器管理新挑战:混合环境、容器安全、AI支持

不少企业都使用容器管理类软件/平台,方便容器环境的部署和运维。而随着应用系统的运行环境逐渐多元化,IT 运维人员仅依靠容器管理产品,已难以同时兼顾多种 IT 基础设施上的多个应用运行环境。同时,AI 等高性能应用场景的兴起&…

探索802.1X:构筑安全网络的认证之盾

在现代网络安全的世界里,有一个极其重要但又常常被忽视的角色,它就是802.1x认证协议。这个协议可以被称作网络安全的守护者,为我们提供了强有力的防护。今天,我们就来深入探讨一下802.1x的原理、应用和测试,看看它是如…

做谷歌seo如何创建良好的用户体验?

Google 希望排名靠前的页面能够为用户提供良好的体验,所以网站提升用户体验很重要。以下是一些实用的小建议,让你的网站更受用户欢迎,并且有助于提升你的 SEO 排名。 现代化设计:确保你的网站设计符合当前的审美和功能趋势。使用高…

基于ssm的毕业回忆录系统的设计与实现

获取源码联系方式请查看文章结尾🍅 摘 要 随着信息化时代的到来,系统管理都趋向于智能化、系统化,毕业回忆录也不例外,但目前国内的有些学校仍然都使用人工管理,学校规模越来越大,同时信息量也越来越庞大&a…

6.画面渲染及背景-《篮球比赛展示管理系统》现场管理员角色操作手册

通过[特效实验室]及[更换背景] 对整个展示界面的底部图层进行动画渲染。此功能是平台的一大特色。一般用在选手上场或颁奖等。用户可以根据现场情况,妥善发挥。背景图片及其特效,应该在比赛之前设置好。

【信创】Linux操作系统上安装软件包提示依赖不足的解决办法 _ 统信 _ 麒麟 _ 方德

原文链接:【信创】Linux操作系统上安装软件包提示依赖不足的解决办法 | 统信 | 麒麟 | 方德 Hello,大家好啊!今天给大家带来一篇关于在Linux操作系统上安装软件包时遇到依赖不足问题的解决办法的文章。软件包依赖是Linux系统中常见的问题&…

聊聊最近很火的后端即服务

最近,你可能经常听到“后端即服务”(Backend as a Service, BaaS)这个词。不论是在技术论坛上,还是在开发者社区,BaaS都成了大家讨论的热点。究竟是什么让这个概念如此火爆?今天我们就来聊聊这个话题&#…

CPU内部专用数据通路各阶段的微操作序列利控制信号

1.主存与寄存器之间的数据传送 取指令的示例: (PC)→MARC0有效(MAR)→主存C1有效1→RCU发送读命令M(MAR)→MDRC2有效(MDR)→IRC3有效OP(IR)→CUC4有效(PC)1→PC 由于是专用数据通路,只要两个元器件之间有数据流动就需要一条数据通路,造价昂贵…

基础数据结构——二分算法及时间复杂度

这个算法的前提是,数组是升序排列的 算法描述: i和j是指针可以表示查找范围 m为中间值 当目标值targat比m大时,设置查找范围在m右边:i m-1 当目标值targat比m小时,设置查找范围在m左边:j m1 当targat…

ISO 26262中的失效率计算:IEC 61709-Clause 10_Resistors and resistor networks

目录 概要 1 元器件分类和基准温度 2 失效率的计算 2.1 失效率预测模型 2.2 温度应力系数 2.2.1 温度应力系数计算模型 3.2.2 温度应力系数计算 结语 概要 IEC 61709是国际电工委员会(IEC)制定的一个标准,即“电子元器件 可靠性 失效…

STM32学习记录-02-GPIO通用输入输出口

mm 1 GPIO简介 GPIO(General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时…

揭秘GPT-5,探索未来人工智能的无限可能

引言 在过去的几年里,人工智能领域的快速发展引发了全球范围内的广泛关注和讨论。作为这一浪潮的先锋,OpenAI 推出的 GPT 系列模型已经成为了生成式人工智能的代名词。随着 GPT-4 的发布,它在各种任务中表现出的强大能力进一步巩固了其在行业…

精通推荐算法27:行为序列建模之BST— 代码实现

1 引言 上文 精通推荐算法26:行为序列建模之BST— Transformer建模用户行为序列-CSDN博客 讲解了BST的背景和模型结构,本文给出其代码实现,供大家参考。 2 BST核心代码 Transformer已经成为了算法工程师的必备技能,因此这一节给…

文档在线翻译软件推荐哪些?亲测好用的文档翻译器分享

处暑已至,秋风送爽,正是学习交流的好时节。想象一下,在翻阅外文文献或是与国际友人交流时,如果能有一款便捷的文档翻译软件免费版在手,是不是能让学习之路更加畅通无阻呢? 为了方便大家能够有更高效的学习…

UltraISO刻录Ubuntu镜像制作安装U盘

使用UltraISO 软件来刻录Ubuntu镜像启动盘: 首先下载UltraISO软件,然后点击试用,使用RAW的方式刻录就行!!!

【java】RuoYi-Vue前后端分离版本-登陆请求流程解析

【java】RuoYiBootstrap多模块版本-登陆请求流程解析 这里它用到了一个安全管理框架Spring Security 你可以通过这篇文章《Spring Security 详解》 去了解它,怎么使用 登陆请求流程逻辑图 Created with Raphal 2.3.0 (1)开始 (2&a…

基于yolov5猫狗检测

项目简介 该项目使用YOLOv5深度学习框架来检测图像或视频中的猫和狗。YOLOv5(You Only Look Once v5)是一种高效的物体检测模型,能够快速准确地识别出图像中的目标。本项目具有以下特点: 图像检测:用户可以通过上传图…

Nginx-企业高性能web服务器 超长完整版!只有你想不到 没有你学不到的满满干货!!

Web服务基础介绍 Web 服务器访问流程 按下回车时浏览器根据输入的 URL 地址发送请求报文给服务器。服务器接收到请求报文,会对请求报文进行处理。服务器将处理完的结果通过响应报文返回给浏览器。浏览器解析服务器返回的结果,将结果显示出来。 1. 输入…