运行大型语言模型(LLMs),如 ChatGPT 和 Claude 通常涉及将数据发送到由 OpenAI 和其他 AI 模型提供商管理的服务器。虽然这些服务是安全的,但一些企业更愿意将数据完全离线,以获得更高的隐私保护。
本文介绍了开发人员可以使用的六种工具,以便在本地运行和测试 LLM,确保他们的数据永远不会离开他们的设备,类似于 端到端加密 保护隐私的方式。
像 LM Studio 这样的工具在用户使用它运行本地 LLM 时不会收集用户数据或跟踪用户的行为。它让您的所有聊天数据保留在本地计算机上,而不与 AI/ML 服务器共享。
隐私:您可以以多轮的方式提示本地 LLM,而您的提示数据不会离开本地主机。
定制选项:本地 LLM 提供 CPU 线程、温度、上下文长度、GPU 设置等高级配置。这类似于 OpenAI 的游乐场。
支持和安全性:它们提供与 OpenAI 或 Claude 相似的支持和安全性。
订阅和成本:这些工具是免费的,不需要每月订阅。对于像 OpenAI 这样的云服务,每个 API 请求都需要付费。本地 LLM 有助于节省费用,因为没有每月订阅。
离线支持:您可以在离线状态下加载和连接大型语言模型。
连接性:有时,连接到像 OpenAI 这样的云服务可能会导致信号和连接不良。
根据您的具体使用案例,您可以选择几种离线 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 的主要特点。
模型参数自定义:允许您调整温度、最大令牌、频率惩罚等。
聊天历史:允许您保存提示以供稍后使用。
参数和用户界面提示:您可以悬停在信息按钮上以查找模型参数和术语。
跨平台:LM Studio 可在 Linux、Mac 和 Windows 操作系统上使用。
机器规格检查:LM Studio 检查计算机规格,如 GPU 和内存,并报告兼容的模型。这可以防止下载可能在特定机器上无法运行的模型。
AI 聊天和试验场:与大型语言模型进行多轮聊天,并通过同时加载多个 LLM 进行实验。
开发者本地推理服务器:允许开发者设置一个类似于 OpenAI API 的本地 HTTP 服务器。
本地服务器提供示例 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 修改为指向您的本地主机。
OpenAI 的 Python 库导入:LM Studio 允许开发者导入 OpenAI Python 库,并将基础 URL 指向本地服务器(localhost)。
多模型会话:使用单个提示并选择多个模型进行评估。
该工具可供个人免费使用,允许开发者通过应用内聊天 UI 和游乐场运行 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的主要特点。
本地:您可以在设备上运行您偏好的AI模型,而无需将其连接到互联网。
即用模型:下载Jan后,您将获得一组已经安装的模型以供使用。也可以搜索特定模型。
模型导入:支持从Hugging Face等来源导入模型。
免费、跨平台和开源:Jan是100%免费、开源的,并且可以在Mac、Windows和Linux上运行。
自定义推理参数:调整模型参数,如最大令牌、温度、流、频率惩罚等。所有偏好、模型使用和设置都保留在您的计算机上。
扩展:Jan支持像TensortRT和Inference Nitro这样的扩展,以自定义和增强您的AI模型。
Jan 提供了一个干净简洁的界面来与 LLMs 互动,并且将所有数据和处理信息保留在本地。它已经为您安装了超过七十个大型语言模型可供使用。这些现成的模型的可用性使得连接和与 OpenAI 和 Mistral 等远程 API 互动变得简单。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。
可执行文件:与LM Studio和Jan等其他LLM工具不同,Llamafile只需要一个可执行文件即可运行LLM。
使用现有模型:Llamafile支持使用现有模型工具,如Ollama和LM Studio。
访问或创建模型:您可以访问OpenAI、Mistral、Groq等流行的LLM。它还提供从头创建模型的支持。
模型文件转换:您可以将许多流行LLM的文件格式转换,例如,将.gguf
转换为.llamafile
,只需一个命令。
llamafile-convert mistral-7b.gguf
要安装 Llamafile,请访问 Huggingface 网站,从导航中选择 Models,并搜索 Llamafile。您还可以从以下 URL 安装您喜欢的 量化 版本。
https://huggingface.co/Mozilla/Meta-Llama-3.1-8B-Instruct-llamafile/tree/m
ain
注意:量化数字越大,响应越好。如上图所示,本文使用 Meta-Llama-3.1-8B-Instruct.Q6_K.llamafile
,其中 Q6
代表量化数字。
步骤 1:下载 Llamafile
从上面的链接中,点击任意下载按钮以获取您喜欢的版本。如果您的机器上安装了 wget 工具,您可以使用以下命令下载 Llamafile。
wget <https://huggingface.co/Mozilla/Meta-Llama-3.1-8B-Instruct-llamafile/blob/main/Meta-Llama-3.1-8B-Instruct.Q6_K.llamafile>
您应该将 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
可用,以运行您的各种 LLM。
Llamafile 通过使 LLMs 容易接触到消费者 CPU,帮助实现 AI 和 ML 的民主化。与其他本地 LLM 应用程序如 Llama.cpp 相比,Llamafile 提供了最快的提示处理体验,并在游戏电脑上表现更佳。由于其更快的性能,它是总结长文本和大型文档的优秀选择。它 100% 离线运行且私密,因此用户无需将其数据共享给任何 AI 服务器或 API。像 Hugging Face 这样的机器学习社区支持 Llamafile 格式,使得搜索与 Llamafile 相关的模型变得简单。它还有一个伟大的开源社区,进一步开发和扩展它。
GPT4ALL 基于隐私、安全和无需互联网的原则构建。用户可以在 Mac、Windows 和 Ubuntu 上 安装。与 Jan 或 LM Studio 相比,GPT4ALL 每月下载量更多,拥有更多的 GitHub Stars 和活跃用户。
GPT4All可以在主要的消费硬件上运行LLM,如Mac M系列芯片、AMD和NVIDIA GPU。以下是其关键特性。
隐私优先:将私人和敏感的聊天信息及提示仅保留在您的设备上。
无需互联网:它完全离线工作。
模型探索:此功能允许开发者浏览和下载不同类型的LLM进行实验。您可以从流行选项中选择大约1000个开源语言模型,如LLama、Mistral等。
本地文档:您可以让本地LLM访问您的敏感数据,使用本地文档如.pdf
和.txt
,无需数据离开您的设备且不需要网络。
自定义选项:它提供多种聊天机器人调整选项,如温度、批处理大小、上下文长度等。
企业版:GPT4ALL提供企业包,包含安全性、支持和每设备许可证,以将本地AI引入企业。
要开始使用 GPT4All 在本地运行 LLM,请下载适合您操作系统的版本。
除了 Ollama,GPT4ALL 拥有最多的 GitHub 贡献者,约有 250000 名月活跃用户(根据 https://www.nomic.ai/gpt4all)以及与其竞争对手相比。该应用收集有关使用分析和聊天分享的匿名用户数据。然而,用户可以选择加入或退出。使用 GPT4ALL,开发者可以从其庞大的用户基础、GitHub 和 Discord 社区中受益。
使用 Ollama,您可以轻松创建本地聊天机器人,而无需连接像 OpenAI 这样的 API。由于一切都在本地运行,您无需支付任何订阅费用或 API 调用费用。
模型定制:Ollama 允许您转换 .gguf
模型文件并使用 ollama run modelname
运行它们。
模型库:Ollama 提供了大量可尝试的模型,访问 ollama.com/library。
导入模型:Ollama 支持从 PyTorch 导入模型。
社区集成:Ollama 无缝集成到网页和桌面应用程序中,如 Ollama-SwiftUI、HTML UI、Dify.ai 和 更多。
数据库连接:Ollama 支持多个 数据平台。
移动集成:像 Enchanted 这样的 SwiftUI 应用将 Ollama 带入 iOS、macOS 和 visionOS。Maid 也是一个跨平台的 Flutter 应用,可以在本地与 .gguf
模型文件交互。
要首次使用 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 支持显著的大型语言模型推理,配置简单,并在各种硬件上表现出色。它也可以在云端运行。
设置:它具有最小的设置。您只需一条命令即可安装。
性能:它在本地和云端的各种硬件上表现非常出色。
支持的模型:它支持流行的主要 LLM,如 Mistral 7B、Mixtral MoE、DBRX、Falcon 和 许多其他模型。
前端 AI 工具:LLaMa.cpp 支持开源 LLM UI 工具,如 MindWorkAI/AI-Studio (FSL-1.1-MIT)、iohub/collama 等。
要使用 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.g
guf
使用您喜欢的命令行工具,如终端,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的性能。以下是一些方法。
训练:模型是基于什么数据集进行训练的?
微调:模型可以在多大程度上定制以执行特定任务,或者它可以针对特定领域进行微调吗?
学术研究:该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 聊天集成到您的应用中,并访问所有相关链接以了解更多信息。