有许多开源工具可用于在本地托管开放权重 LLM 以进行推理,从命令行 (CLI) 工具到完整的 GUI 桌面应用程序。在这里,我将概述一些流行的选项并提供我自己的建议。我将这篇文章分为以下几个部分:
- 一体化桌面解决方案,提供可访问性
- 通过 CLI 和后端 API 服务器进行 LLM 推理
- 用于连接到 LLM 后端的前端 UI
每个部分都包含一个相关开源 LLM GitHub 存储库的表格,以衡量受欢迎程度和活动。单击此处查看完整表格,单击此处查看相关的GitHub 存储库。
这些项目的范围可能重叠,并可能分为推理后端服务器和 UI 的不同组件。该领域发展迅速,因此细节可能很快就会过时。
开源本地 LLM 存储库的 Google Sheets,可在此处获取
#1.桌面解决方案
一体化桌面解决方案提供了执行 LLM 推理的易用性和最少的设置,突出了人工智能技术的可访问性。只需下载并启动.exe
或.dmg
文件即可开始。这些工具非常适合寻求即用型 ChatGPT 替代方案的技术含量较低的用户,为任何希望在采用更复杂的技术替代方案之前探索 AI 的人提供坚实的基础。
热门选择:GPT4All
GPT4All是一款镜像 ChatGPT 界面的一体化应用程序,可快速运行本地 LLM 以执行常见任务和 RAG。提供的模型开箱即用,体验集中于最终用户。
M1 MacOS 设备上的 GPT4All UI 实时演示(来源)
LM Studio 的开源替代品:Jan
LM Studio因其简单的设置和用户友好的界面而经常受到 YouTube 用户和博主的称赞。提供模型卡查看、模型下载、系统兼容性检查等功能,方便初学者选型。
尽管有其优点,但由于其专有性质,我对推荐 LM Studio 犹豫不决,由于许可限制,这可能会限制其在商业环境中的使用。此外,产品不可避免的货币化也是一个问题。我赞成使用可用的开源解决方案。
Jan是 LM Studio 的开源替代品,具有干净、优雅的 UI。开发人员积极参与他们的社区( X和Discord),维护良好的文档,并对他们的工作保持透明——例如他们的路线图。
Jan UI 实时演示:Jan v0.4.3-nightly 在 Mac M1、16GB Sonoma 14 上(来源)
通过最近的更新,您可以轻松地从 Jan UI 下载模型。您还可以使用 HuggingFace 提供的任何模型或上传您的自定义模型。
Jan 还拥有一个基于llama.cpp构建的最小 LLM 推理服务器 (3 MB),称为硝基,它为他们的桌面应用程序提供支持。
功能丰富:h2oGPT
H2O.ai是一家人工智能公司,通过其 AutoML 产品和现在的生成式人工智能产品为开源社区做出了巨大贡献。h2oGPT提供广泛的功能和定制,非常适合 NVIDIA GPU 用户:
- 离线 RAG 支持多种文件格式
- 使用奖励模型评估模型性能
- 搜索代理、文档问答、Python 代码、CSV
- 通过数千次单元和集成测试进行稳健的测试
在将其安装到系统上之前,您可以在gpt.h2o.ai上浏览演示来体验该界面。 如果用户界面满足您的需求并且您对更多功能感兴趣,则可以下载该应用程序的基本版本,该版本提供有限的文档查询功能。如需安装,请参阅安装说明。
h2oGPT 可在https://gpt.h2o.ai/获取
其他桌面解决方案
表 5 最流行的 FOSS(免费开源软件)LLM 桌面解决方案:
排名前 5 位的开源 LLM 桌面应用程序,完整表格请参见此处
#2.通过 CLI 和后端 API 服务器进行 LLM 推理
CLI 工具支持具有远程 API 的本地推理服务器,与前端 UI(在第 3 节中列出)集成以获得自定义体验。他们通常提供与 OpenAI API 兼容的端点,以便通过最少的代码更改轻松进行模型交换。
尽管聊天机器人是最常见的用例,但您也可以使用CrewAI和 Microsoft AutoGen等框架,使用这些工具为代理提供支持。
高度优化:llama.cpp
llama.cpp 为跨设备的 LLM 推理提供了最少的设置。该项目是 Llama2 的 C++ 端口,支持GGUF 格式模型,包括多模式模型,例如LLava。其效率适合消费类硬件和边缘设备。
llama.cpp (来源)
有许多基于 llama.cpp 的绑定,例如llama-cpp-python(自述文件的描述中列出了更多内容)。因此,许多工具和 UI 都是基于 llama.cpp 构建的,并提供了更加用户友好的界面。
要开始使用,请按照此处的说明进行操作。您需要从 HuggingFace下载 GGUF 格式的模型。
llama.cpp 有自己的 HTTP 服务器实现,只需键入./server
即可启动。
# 基于 Unix 的示例 ./server -m models/7B/ggml-model.gguf -c 2048
这意味着您可以轻松地将其与第 2 部分列出的其他网络聊天 UI 连接起来。
此选项最适合那些熟悉命令行界面 (CLI) 并喜欢编写自定义脚本并在终端中查看输出的用户。
直观的 CLI 选项:Ollama
Ollama是另一个 LLM 推理命令行工具——基于 llama.cpp 构建,并将脚本抽象为简单的命令。受 Docker 启发,它提供简单直观的模型管理,使模型交换变得容易。您可以在https://ollama.ai/library查看可用模型的列表。您还可以按照这些说明从 HuggingFace 运行任何 GGUF 模型。
奥拉马(来源)
按照说明下载 Ollama 应用程序后。您可以通过运行以下命令在终端中运行简单的推理:
骆驼运行骆驼2
从 Ollama 的README中选择模型大小的有用通用启发式:
您应该至少有 8 GB 可用于运行 7B 模型,16 GB 可以运行 13B 模型,32 GB 可以运行 33B 模型。
默认情况下,Ollama 使用 4 位量化。要尝试其他量化级别,请尝试其他标签。 q后面的数字表示用于量化的位数(即q4表示4位量化)。数字越高,模型越准确,但运行速度越慢,并且需要更多内存。
通过ollama serve
,Ollama 将自己设置为端口上的本地服务器11434
,可以与其他服务连接。常见问题解答提供了更多信息。
Ollama 因其强大的社区支持和积极的开发而脱颖而出。它的频繁更新是由 Discord 上的用户反馈驱动的。 Ollama 有很多集成,人们开发了移动设备兼容性。
其他法学硕士后端选项
前 5 个 LLM 推理库表:
前 5 个开源 LLM 后端,完整表格可在此处查看
#3。用于连接到 LLM 后端的前端 UI
第 2 节中讨论的工具可以使用法学硕士的预训练数据处理基本查询。然而,通过网络搜索和检索增强生成 (RAG) 集成外部信息,它们的功能显着扩展。利用利用现有 LLM 框架(如 LangChain 和 LlamaIndex)的用户界面,可以简化将数据块嵌入矢量数据库的过程。
本节中提到的 UI 与使用第 1 节的工具设置的后端服务器无缝连接。它们与各种 API 兼容,包括 OpenAI,从而可以轻松与专有和开放权重模型集成。
在视觉和功能上与 ChatGPT 最相似:Open WebUI
Open WebUI是一个 Web UI,提供本地 RAG 集成、网页浏览、语音输入支持、多模式功能(如果模型支持)、支持 OpenAI API 作为后端等等。以前称为ollama-webui,由 Ollama 团队开发。
OpenWeb UI 演示(源)
要将 Open WebUI 与 Ollama 连接,您只需要安装 Docker,然后只需运行以下命令:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart 始终 ghcr.io/打开 webui/打开 webui:main
然后,您可以通过http://localhost:3000访问 Open WebUI 。
功能丰富的 UI:Lobe Chat
Lobe Chat有更多功能,包括用于函数调用和代理市场的插件系统。插件包括搜索引擎、网页提取以及许多来自社区的自定义插件。他们的提示代理市场类似于ChatGPT市场,允许用户共享和优化提示代理以供自己使用。
Lobe 聊天 UI (来源)
要与 Ollama 本地法学硕士发起 Lobe Chat 对话,只需使用 Docker:
docker run -d -p 3210:3210 -e OLLAMA_PROXY_URL=http://host.docker.internal:11434/v1 lobehub/lobe-chat
然后,您可以通过http://localhost:3210访问 Lobe Chat 。阅读此处了解更多信息。
支持多种后端的 UI:text-generation-webui
Oogabooga 的text- Generation-webui是一个面向 LLM 的功能齐全的 Gradio Web UI,支持许多后端加载器,例如 Transformer、GPTQ、autoawq (AWQ)、exllama (EXL2)、llama.cpp (GGUF) 和 Llama 模型 – 这些都是重构模型带有额外调整的 Transformer 代码库。
文本生成-webui UI (源)
text- Generation-webui 具有高度可配置性,甚至由于其 Transformer 后端而可以使用 QLoRA 进行微调。这使您可以增强模型的功能并根据您的数据进行自定义。他们的wiki上有完整的文档。我发现这个选项对于快速测试模型很有用,因为它具有强大的开箱即用支持。
其他用户界面选项
前 5 个开源 LLM UI 表:
前 5 个 LLM UI,完整表格可在此处查看
结论:我使用和推荐的
我一直在使用 Ollama,因为它具有多功能性、轻松的模型管理和强大的支持,尤其是它与 OpenAI 模型的无缝集成。对于编码,Ollama 的 API 与continue.dev VS Code 插件连接,取代了 GitHub Copilot。
对于 UI,我更喜欢 Open WebUI,因为其专业的、类似 ChatGPT 的界面,或者 Lobe Chat 的附加插件。对于那些寻求类似于 ChatGPT 的用户友好桌面应用程序的人来说,Jan 是我的首要推荐。
我使用 Ollama 和 Jan 进行本地法学硕士推理,具体取决于我希望如何与法学硕士互动。您可以集成Ollama 和 Jan 以节省系统存储并避免模型重复。