随着人工智能技术的快速发展,大型语言模型(LLM)已成为自然语言处理领域的重要工具。然而,这些模型的运行通常需要大量的计算资源和复杂的部署流程。为了解决这个问题,Ollama应运而生,成为了一个高效的本地大语言模型LLM运行专家。
Ollama
Ollama简介
Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 2和最新开源的Llama 3。Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快速地在本地运行大型语言模型。
Ollama的特点与优势
-
功能齐全:Ollama将模型权重、配置和数据捆绑到一个包中,定义成Modelfile。它优化了设置和配置细节,包括GPU使用情况,从而提高了模型运行的效率。
-
轻量级:Ollama的代码简洁明了,运行时占用资源少。这使得它能够在本地高效地运行,不需要大量的计算资源。此外,它还支持热加载模型文件,无需重新启动即可切换不同的模型,这使得它非常灵活多变。
-
易用性:Ollama提供了多种安装方式,支持Mac和Linux平台,并提供了Docker镜像。用户只需按照安装指南进行操作即可完成安装,无需具备专业的技术背景。
使用Ollama在本地运行大型语言模型
首先,访问Ollama官网(点此到达)。在Mac上安装尤为简单,直接下载和运行软件包即可。
点击下载,选择适配自己电脑的版本。
Windows下载完之后电脑也没弹出快捷启动方式啥的,不知道是不是bug,我这里一般是点击缩略符进到日志目录下,再右键打开终端。
再回到Ollama官网,点击右上角的Models。
可以看到诸多模型如下:
我们点击llama3,可以看到如下界面:
点击latest,可以选择模型的类型,笔记本运行建议8b,服务器可以选择70b(作者笔记本显卡为RTX4070)。
点击复制按钮,粘贴命令行到终端框,执行即可。
ollama run llama3:8b
安装好后如下所示:
AnythingLLM
AnythingLLM简介
AnythingLLM 是 Mintplex Labs Inc. 开发的一款可以与任何内容聊天的私人 ChatGPT,是高效、可定制、开源的企业级文档聊天机器人解决方案。它能够将任何文档、资源或内容片段转化为大语言模型(LLM)在聊天中可以利用的相关上下文。
AnythingLLM特点
-
多用户实例支持和权限管理
-
全新的可嵌入式聊天小部件,适用于您的网站
-
支持多种文档类型(PDF、TXT、DOCX等)
-
通过简单的用户界面管理您的向量数据库中的文档
-
两种聊天模式:对话模式和查询模式。对话模式保留之前的问题和修改记录。查询模式用于对您的文档进行简单的问答。
-
聊天中的引用文献功能
-
完全适用于云部署。
-
"自带 LLM "模型。
-
极其高效的成本节约措施,用于管理非常大的文档。您将永远不会为嵌入的大型文档或转录付费超过一次。比其他文档聊天机器人解决方案更省成本,降低 90%。
-
提供完整的开发者 API,用于自定义集成!
AnythingLLM下载
AnythingLLM是采用MIT许可证的开源框架,支持快速在本地部署基于检索增强生成(RAG)的大模型应用。
在不调用外部接口、不发送本地数据的情况下,确保用户数据的安全。点此下载
最近 AnythingLLM推出了桌面应用,可以在自己的笔记本电脑上下载使用,目前支持的操作系统包括MacOS,Windows和Linux。
AnythingLLM默认通过Ollama来使用LLama2 7B,Mistral 7B,Gemma 2B等模型,也可以调用OpenAI、Gemini、Mistral等大模型的API服务。
此前,我已经安装了Ollama,那么只要选择Ollama,输入调用的API接口URL,再选择此前已经下载的Gemma模型即可。
在Ollama终端中输入:Ollama serve ,即可将Ollama调整为后端服务器模式,由于我之前已经开启,所以此处报错error。
Ollama serve
下面分别填入本地地址端口、已下载的模型名称、4096。
AnythingLLM内置了一个嵌入模型 all-Mini-L6-v2,无需任何配置。该模型也可以在HuggingFace下载。同时,系统也支持OpenAI、LocalAi、Ollama提供的嵌入模型。
比如,Ollama上可供下载运行的嵌入模型有nomic-embed-text,据称性能超过OpenAI的text-embedding-ada-002和text-embedding-3-small。
AnythingLLM默认使用内置的向量数据库LanceDB。这是一款无服务器向量数据库,可嵌入到应用程序中,支持向量搜索、全文搜索和SQL。我们也可以选用Chroma、Milvus、Pinecone等向量数据库。
AnythingLLM可以支持PDF,TXT,DOCX等文档,可以提取文档中的文本信息,经过嵌入模型(Embedding Models),保存在向量数据库中,并通过一个简单的UI界面管理这些文档。
为管理这些文档,AnythingLLM引入工作区(workspace)的概念,作为文档的容器,可以在一个工作区内共享文档,但是工作区之间隔离。
其中,AnythingLLM既可以上传文档,也可以抓取网页信息。新建之后点击如下红色区域:
这里我们选择一个网页fetch一下,更新到workspace时大致花费了10分钟左右。
这个回答也算是成功RAG了,但是其实不是很准确,以后在文本召回和重排等方面还可以进一步调优和完善。
另外一个值得关注的点是,Anything支持多用户模式,有3种角色的权限管理。
-
系统会默认创建一个管理员(Admin)账号,拥有全部的管理权限。
-
第二种角色是Manager账号,可管理所有工作区和文档,但是不能管理大模型、嵌入模型和向量数据库。
-
普通用户账号,则只能基于已授权的工作区与大模型对话,不能对工作区和系统配置做任何更改。
总结
Ollama与AnythingLLM是两款旨在简化本地部署与使用大型语言模型(LLMs)的创新工具。它们响应了人工智能技术快速发展背景下,对高效利用LLMs处理自然语言任务的需求。
Ollama作为开源LLM服务工具,以功能全面、轻量化和高度易用为特点。它将模型、配置与数据封装为Modelfile,优化GPU使用,提高运行效率;占用资源少且支持模型热加载,增强了灵活性。用户通过其官网可轻松下载适用于Mac或Linux的软件包,借助Docker镜像实现一键部署。Ollama还提供丰富的模型库,如Llama 2和Llama 3,方便用户快速在本地运行大型语言模型。
AnythingLLM则是Mintplex Labs Inc.开发的面向企业级文档聊天机器人解决方案。它具有多用户管理、丰富文档支持、高效成本优化及云部署友好等特性。支持多种文档格式,提供对话与查询两种聊天模式,内置引用文献功能,并通过一次性处理与存储文档大幅降低成本。用户可下载适用于多种操作系统的桌面应用,内含预置模型,并支持OpenAI、Gemini、Mistral等第三方模型API接入。此外,AnythingLLM集成了向量数据库LanceDB,通过工作区概念实现文档管理与共享。
未来,随着技术持续迭代与优化,这两款工具有望在精准度、性能、用户体验等方面取得更大突破,更加无缝地融入各类自然语言处理应用场景,助力用户更加便捷、高效地利用LLMs解决复杂语言任务,推动人工智能技术在各行各业的深入应用与普及。