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
,内容如下:
version: '3' services: ollama: image: ollama/ollama container_name: ollama ports: - "11434:11434" volumes: - ./data:/root/.ollama restart: always
然后输入命令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
模型下载并运行完毕后可以通过命令行方式进行对话,如下图:
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默认不支持鉴权访问,所以这里随便填写即可
如下图:
接入后,我们可以请求one-api然后传递具体的模型名称进行调用测试,命令如下:
curl https://ai.xxx.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-xxx" \ -d '{ "model": "qwen2", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] }'
-
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大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
扫描下方csdn官方合作二维码获取哦!
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
