随着近两年大语言模型 (LLM) 的快速发展,人们的关注度和运用频率越来越高。可是,大多数 LLM 由大型科技公司掌控,并以云服务的方法供给,这约束了开发者和研究人员对其进行探究和定制的自由度。尽管有许多开源模型呈现了,可是本地杂乱的体系环境让本地布置存在各种坑。

Ollama 项意图呈现为这一现状带来了改动,它供给了一个开源的 LLM 解决方案,屏蔽了各种不同的运转环境,让用户能够快捷地在本地布置和运用强壮的语言模型。在本地布置LLM后,能够借助本地模型进行各种折腾。而且由于运转在本地,不再需求科学上网,也能够确保数据的安全性。

Ollama 简介

Ollama 是一个开源项目,旨在供给易于运用的 LLM 本地布置方案。该项目并供给了多种开源LLM模型的权重、推理代码和微调脚本等资源,让用户能够轻松地运转和定制 LLM。借助Ollama,咱们能够在本地轻松装置运转开源的LLM模型,尤其是对于运用Mac设备的玩家来说,运用Ollama下载运转LLM能够免去各种模型的环境装备(自己装备环境是各种泪呀,mac环境中泪更多),而且能够直接在Mac的CPU中运转LLM(尽管有点慢,但总归是能跑起来呀)。

Ollama也集成了 OpenAI 接口的兼容,便利大家运用此前与 OpenAI 的集成任何包来与 Ollama 进行交互。运用示例能够参阅官方博客: ollama.com/blog/openai…

官方还供给了相似 GitHub,DockerHub 似的模型托管Hub,可理解为 ModelHub,用于存放大模型 (有 llama 2,mistral,qwen 等模型,一起你也能够自定义模型上传到仓库里来给别人运用)。

硬件要求

运转大模型需求很高的机器装备,个人玩家的大多数都负担不起,毕竟大模型需求极高的GPU功用。

下面这个是Ollama对运转各种模型的RAM要求:

注意:您应该至少有 8 GB 可用 RAM 来运转 7B 类型,16 GB 来运转 13B 类型,32 GB 来运转 33B 类型。

我的Mac的装备是16G RAM,intel CPU,为了运转的快一些,我在Ollama中挑选了7B的qwen模型。毕竟本文的意图是介绍在本地运转LLM的流程和体会,不会重视功用,所以能够挑选低一些参数的LLM(Mac跑LLM只能运用CPU,是真跑不动呀)。

装置

官方下载地址:ollama.com/download,挑选操作体系对应的版别下载装置即可。

当装置完结ollama之后,咱们能够经过在控制台履行如下指令来判别ollama是否装置成功:

curl localhost:11434 // 指令
Ollama is running //控制台输出

一起,该项目还支持 docker 一键布置,mac中cpu履行的指令如下。

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

装置模型

当装置完结ollama之后,咱们就能够在指令行中运转如下指令装置运转模型:

ollama run [model name]

其中[model name]便是你想运转的本地大模型的称号,假如你不知道应该挑选哪个模型,能够经过model library进行检查。

这儿咱们挑选qwen 7B模型来进行演示。当运转下面的指令时,假如本地没有qwen:7b模型,则会先下载模型再运转。首次运转启动或许略慢,检测电脑功用的时刻到了。

ollama run qwen:7b

本地布置运转大模型

模型运转之后,会默认进入到交互状态,你能够按下 Ctrl + D 退出交互,但此刻模型并不会退出,依旧能够正常经过 Api 接口交互。

运用客户端与Ollama交互

随着LLM的火热,产生了一大批与LLM交互的前端优秀开源项目,例如lobe-chatopen-webuiChatGPT-Next-Web,这些项目现在也支持本地运转的ollama api的交互方法。

open-webui曾经称为 Ollama WebUI,看这个名字就知道根由很深。下文咱们就运用open-webui项目与后台启动的ollama模型进行交互体会。

装置

官方文档中供给了两种在docker中装置open-webui的方法:

  • ollama和open-webui一起装置
  • 仅装置open-webui

由于咱们现已装置了ollama,所以这儿只需求装置open-webui即可指令如下:

  • 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
    
运用
  1. 首先拜访如下网址

    http://localhost:3000/auth/
    

当你翻开这个页面的时分,会让你登陆,这个时分咱们随意运用一个邮箱注册一个账号即可。

注:第一次输入的注册账号是管理员账号,要记下来,以后再次注册的账号需求管理员账号赞同处理。

  1. 在交互页面体会对话

    本地布置运转大模型

在对话页面右侧的对话区域挑选模型后,能够在输入框输入对话就行交互,和运用chatgpt相似。

还能够体会简略的RAG能力,让LLM参阅上传的文档内容来答复问题。

比方我在test.md文本中只输入以下文本

我是小明,吃了没?

然后再次提问”你是谁”,能够看到LLM运用了上传的文档内容进行答复。

本地布置运转大模型

这便是简略的RAG功用的初体会了。

本地建立chatgpt 3.5的署理

上面仅仅简略的体会了与本地运转的7B的小模型进行对话。可是小模型的参数有限,许多对话无法达到相似于chatgpt的良好体会。

假如想要经过api拜访openai的api,需求注册openai账号才干获取api密钥,免费注册的openai账号获取的密钥只有几个月的有效期。假如想在本地体会一个新功用想要运用openai的api时,会有许多约束。

近日(4月1日),OpenAI 敞开了他们的chatgpt 3.5的免登录运用的功用。能够在chatgpt官网不必登录就能够体会chatgpt的对话功用了。经过这个敞开,咱们也能够在本地免登录直接恳求chatgpt 3.5的api了,不必再像曾经相同,想要运用chatgpt api的话,必须获取和设置openai的sk。尽管还需求科学上网,可是能够满意咱们在本地demo中经过api 运用chatgpt的大模型进行一些功用的体会。

装置

FreeGPT35开源项目中封装了运用免登录 ChatGPT Web 供给的无约束免费 GPT-3.5-Turbo API 服务的方法。咱们能够将项目中的署理服务布置到docker中,然后在前端页面中恳求署理服务,或者直接恳求署理的api。

项目中介绍了多种布置方法(Node、Docker、 Docker Compose),在此咱们运用Docker Compose的方法,而且一起装置ChatGPT-Next-Web的前端页面调用freegpt35服务接口来体会交互。

mkdir freegpt35 && cd freegpt35
wget -O compose.yaml https://raw.githubusercontent.com/missuo/FreeGPT35/main/compose_with_next_chat.yaml
docker compose up -d

运用上面的指令装置之后,在docker中会布置以下两个容器:

本地布置运转大模型

体会

在浏览器翻开http://localhost:3000/链接,进入NextChat前端页面中。会有以下提示词,提示设置OpenAI API Key。

本地布置运转大模型

点击左下角设置,挑选自定义接口,设置接口地址为 http://localhost:3040。设置这个ip是因为在docker中现已将freegpt35服务映射为本地宿主机器的3040端口。

本地布置运转大模型

回来谈天页面后,开始体会与chatgpt谈天吧。

本地布置运转大模型

以上介绍的署理gpt3.5接口的免登录拜访api的方法,也能够直接运用。

总结

本文介绍了运用ollama在本地布置大模型,经过本地布置的客户端与大模型交互,而且简略体会了RAG。最后简略介绍了在本地建立chatgpt 3.5的署理,能够免密钥的方法拜访openai的api。

参阅:

wiki.eryajf.net/pages/97047…

waytoagi.feishu.cn/wiki/ZKGmws…

github.com/ollama/olla…