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