运行大型语言模型(LLMs)如 ChatGPT 和 Claude 通常涉及将数据发送到由 OpenAI 和其他 AI 模型提供商管理的服务器。虽然这些服务是安全的,但一些企业更倾向于将其数据完全离线,以获得更高的隐私保护。
本文将介绍开发人员可以使用的六款工具,以便在本地运行和测试 LLM,确保他们的数据永远不会离开他们的设备,这类似于 端到端加密 保护隐私的方式。
像 LM Studio 这样的工具在用户使用它来运行本地 LLM 时,不会收集用户数据或跟踪用户的行为。它允许所有聊天数据保留在本地计算机上,而不与 AI/ML 服务器共享。
根据您的具体使用案例,您可以选择几种离线 LLM 应用程序。这些工具中有一些完全免费供个人和商业使用。其他工具可能需要您发送请求以用于商业用途。对于 Mac、Windows 和 Linux,有多种本地 LLM 工具可供选择。以下是您可以选择的六个最佳工具。
LM Studio 可以运行任何格式为 gguf 的模型文件。它支持来自模型提供商的 gguf 文件,如 Llama 3.1、Phi 3、Mistral 和 Gemma。要使用 LM Studio,请访问上述链接并下载适合您机器的应用程序。启动 LM Studio 后,主页会展示可下载和测试的顶级 LLM。还有一个搜索栏,可以筛选并下载来自不同 AI 提供商的特定模型。
从特定公司的模型中搜索会显示多个模型,范围从小型到大型 quantization。根据您的机器,LM Studio 会使用兼容性猜测来突出显示适合该机器或平台的模型。
LM Studio 提供与 ChatGPT 相似的功能和特性。它具有多个功能。以下是 LM Studio 的关键特性。
本地服务器提供示例 Curl 和 Python 客户端请求。此功能有助于使用 LM Studio 构建 AI 应用程序,以访问特定的 LLM。
- ## Example: reuse your existing OpenAI setup
- from openai import OpenAI
-
- ## Point to the local server
- client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")
-
- completion = client.chat.completions.create(
- model="TheBloke/Mistral-7B-Instruct-v0.1-GGUF",
- messages=[
- {"role": "system", "content": "Always answer in rhymes."},
- {"role": "user", "content": "Introduce yourself."}
- ],
- temperature=0.7,
- )
-
- print(completion.choices[0].message)
-
通过上述示例 Python 代码,您可以重用现有的 OpenAI 配置,并将基本 URL 修改为指向您的本地主机。
该工具可供个人免费使用,允许开发者通过应用内聊天用户界面和游乐场运行 LLM。它提供了一个华丽且易于使用的界面,带有过滤器,并支持连接到 OpenAI 的 Python 库,无需 API 密钥。公司和企业可以根据要求使用 LM Studio。然而,它需要 M1/M2/M3 Mac 或更高版本,或具有支持 AVX2 的处理器的 Windows PC。Intel 和 AMD 用户仅限于使用 v0.2.31 中的 Vulkan 推理引擎。
将 Jan 理解为一个设计用于离线操作的开源版本的 ChatGPT。它由一个用户社区构建,秉持用户拥有的理念。Jan 允许您在设备上运行流行的模型,如 Mistral 或 Llama,而无需连接互联网。使用 Jan,您可以访问远程 API,如 OpenAI 和 Groq。
Jan 是一款电子应用程序,其功能类似于 LM Studio。它通过将消费者设备转变为 AI 计算机,使 AI 变得开放和可访问。由于这是一个开源项目,开发者可以为其贡献代码并扩展其功能。以下是 Jan 的主要特点。
Jan 提供了一个干净简单的界面来与 LLM 互动,并且将所有数据和处理信息保存在本地。它已经为您安装了超过七十个大型语言模型供您使用。这些现成的模型的可用性使得连接和与远程 API(如 OpenAI 和 Mistral)互动变得简单。Jan 还有一个很棒的 GitHub、Discord 和 Hugging Face 社区,可以关注并寻求帮助。然而,像所有 LLM 工具一样,这些模型在 Apple Silicon Macs 上的运行速度比在 Intel 机器上更快。
Llamafile 由 Mozilla 支持,旨在通过快速的 CPU 推理 使开源 AI 对每个人都可访问,而无需网络连接。它将 LLM 转换为多平台的 可执行链接格式 (ELF)。它提供了将 AI 集成 到应用程序中的最佳选项之一,使您能够仅通过一个可执行文件运行 LLM。
它旨在将权重转换为多个可执行程序,这些程序无需安装即可在 Windows、MacOS、Linux、Intel、ARM、FreeBSD 等架构上运行。在底层,Llamafile 使用 tinyBLAST 在像 Windows 这样的操作系统上运行,而无需 SDK。
- llamafile-convert mistral-7b.gguf
-
要安装 Llamafile,请访问 Huggingface 网站,从导航中选择 Models,然后搜索 Llamafile。您还可以从下面的 URL 安装您喜欢的 量化 版本。
https://huggingface.co/Mozilla/Meta-Llama-3.1-8B-Instruct-llamafile/tree/main
注意:量化数字越大,响应越好。正如上图所示,本文使用 Meta-Llama-3.1-8B-Instruct.Q6_K.llamafile,其中 Q6 代表量化数字。
步骤 1:下载 Llamafile
从上面的链接,点击任意下载按钮以获取您喜欢的版本。如果您在机器上安装了 wget 工具,您可以使用以下命令下载 Llamafile。
- wget
-
您应该用您喜欢的版本替换 URL。
步骤 2:使 Llamafile 可执行
下载特定版本的 Llamafile 后,您应该通过导航到文件位置,使用以下命令使其可执行。
chmod +x Meta-Llama-3.1-8B-Instruct.Q6_K.llamafile步骤 3:运行 Llamafile
在文件名之前添加一个点和斜杠 ./ 来启动 Llamafile。
- ./Meta-Llama-3.1-8B-Instruct.Q6_K.llamafile
-
Llamafile 应用程序现在将在 http://127.0.0.1:8080 可用,以运行您的各种 LLMs。
Llamafile 通过使 LLM 容易被消费者 CPU 访问,帮助实现 AI 和 ML 的民主化。与其他本地 LLM 应用程序如 Llama.cpp 相比,Llamafile 提供了最快的提示处理体验,并在游戏电脑上表现更佳。由于其更快的性能,它是总结长文本和大型文档的绝佳选择。它完全离线运行并保护隐私,因此用户不会将数据分享给任何 AI 服务器或 API。像 Hugging Face 这样的机器学习社区支持 Llamafile 格式,使得搜索与 Llamafile 相关的模型变得容易。它还有一个出色的开源社区,进一步开发和扩展它。
GPT4ALL 基于隐私、安全和无需互联网的原则构建。用户可以在 Mac、Windows 和 Ubuntu 上 安装。与 Jan 或 LM Studio 相比,GPT4ALL 拥有更多的每月下载量、GitHub Stars 和活跃用户。
GPT4All可以在主要消费硬件上运行LLM,例如Mac M系列芯片、AMD和NVIDIA GPU。以下是其主要特点。
要开始使用 GPT4All 在本地运行 LLMs,请下载适合您操作系统的版本。
除了Ollama,GPT4ALL在GitHub贡献者数量上最为显著,拥有约250000名每月活跃用户(根据https://www.nomic.ai/gpt4all)并且与其竞争对手相比。该应用收集有关使用分析和聊天分享的匿名用户数据。然而,用户可以选择加入或退出。使用GPT4ALL,开发者可以从其庞大的用户基础、GitHub和Discord社区中受益。
使用 Ollama,您可以轻松创建本地聊天机器人,而无需连接到像 OpenAI 这样的 API。由于一切都在本地运行,您无需支付任何订阅费或 API 调用费用。
要首次使用 Ollama,请访问 https://ollama.com 并下载适合您机器的版本。您可以在 Mac、Linux 或 Windows 上安装它。安装 Ollama 后,您可以在终端中使用以下命令检查其详细信息。
- ollama
-
要运行特定的 LLM,您应该使用以下命令下载它:
ollama pull modelname,其中 modelname 是您要安装的模型名称。请在 GitHub 上查看一些可供下载的示例模型。pull 命令也用于更新模型。一旦使用,仅会获取差异部分。
例如,在下载了 llama3.1 后,在命令行中运行 ollama run llama3.1 将启动该模型。
在上述示例中,我们提示 llama3.1 模型解决一个物理功和能量的问题。
Ollama 在 GitHub 上拥有超过 200 名贡献者,并且有活跃的更新。它拥有最多的贡献者,并且在上述其他开源 LLM 工具中更具可扩展性。
LLaMa.cpp 是支持本地 LLM 工具(如 Ollama 等)的底层后端技术(推理引擎)。LLaMa.cpp 支持显著的大型语言模型推理,配置简单,并在各种硬件上提供出色的本地性能。它也可以在云端运行。
要运行您的第一个本地大型语言模型,请使用以下命令安装 llama.cpp:
- brew install llama.cpp
-
接下来,从 Hugging Face 或其他来源下载您想要运行的模型。例如,从 Hugging Face 下载下面的模型并将其保存在您计算机上的某个位置。
https://huggingface.co/MaziyarPanahi/Mistral-7B-Instruct-v0.3-GGUF/resolve/main/Mistral-7B-Instruct-v0.3.Q4_K_M.gguf
使用您喜欢的命令行工具,如终端,cd 进入您刚下载的 .gguf 模型文件的位置,并运行以下命令。
- llama-cli --color \
- -m Mistral-7B-Instruct-v0.3.Q4_K_M.ggufb \
- -p "Write a short intro about SwiftUI"
-
总之,您首先调用 LLaMa CLI 工具并设置颜色和其他标志。-m 标志指定您要使用的模型的路径。-p 标志指定您希望用来指示模型的提示。
运行上述命令后,您将看到以下预览中的结果。
在本地运行 LLM 可以帮助开发人员深入了解其性能和工作原理。本地 LLM 可以查询私有文档和技术论文,以便与这些文档相关的信息不会离开用于查询的设备,不会发送到任何云 AI API。本地 LLM 在没有互联网的地方和网络信号较差的地方非常有用。
在 远程医疗环境 中,本地 LLM 可以对患者文档进行排序,而无需出于隐私考虑将其上传到任何 AI API 提供商。
在本地使用大型语言模型之前,了解其性能对于获得所需的响应至关重要。有几种方法可以确定特定 LLM 的性能。以下是一些方法。
要回答上述问题,您可以查看优秀的资源,如 Hugging Face 和 Arxiv.org。此外,Open LLm Leaderboard 和 LMSYS Chatbot Arena 提供了各种 LLM 的详细信息和基准测试。
正如本文所讨论的,选择和使用本地大型语言模型的动机有很多。如果您不希望将数据集通过互联网发送给 AI API 提供商,则可以对模型进行微调,以执行 远程医疗应用 中的特定任务。许多开源的图形用户界面(GUI)本地 LLM 工具,如 LLm Studio 和 Jan,提供直观的前端用户界面,以便在没有像 OpenAI 或 Claude 这样的订阅服务的情况下配置和实验 LLM。您还发现了各种强大的命令行 LLM 应用程序,如 Ollama 和 LLaMa.cpp,帮助您在本地运行和测试模型,而无需互联网连接。查看 Stream 的 AI 聊天机器人 解决方案,将 AI 聊天集成到您的应用中,并访问所有相关链接以了解更多信息。