在自己的系统上部署大型语言模型可能会出人意料地简单 - 前提是你拥有正确的工具。以下是如何在桌面上使用像Meta的新Code Llama这样的LLM的方法。
像ChatGPT、Claude和phind这样的聊天机器人可能非常有帮助,但你可能并不总是希望将你的问题或敏感数据由外部应用程序处理。尤其是在你的交互可能会被审查并用于训练未来模型的平台上。
一种解决方案是下载一个大型语言模型(LLM)并在自己的设备上运行。
这样,外部公司就永远无法访问你的数据。这也是一个快速尝试一些新的专业模型的选择,比如Meta最近宣布的Code Llama系列模型,这些模型针对编码进行了调整,以及SeamlessM4T,专门用于文本到语音和语言翻译。
听起来运行自己的LLM可能很复杂,但是有了正确的工具,它其实非常简单。而且许多模型的硬件要求并不过分。我已经在两台系统上测试了本文中介绍的选项:一台配有Intel i9处理器、64GB RAM和Nvidia GeForce 12GB GPU的戴尔PC(在运行大部分软件时可能没有启用),以及一台搭载M1芯片但只有16GB RAM的Mac。
如果你想要一个在本地运行且不会将数据发送到其他地方的聊天机器人,GPT4All提供了一个可以下载的桌面客户端,设置起来非常简单。它包含了在你自己的系统上运行的模型选项,有Windows、macOS和Ubuntu的版本可供选择。
当你第一次打开GPT4All桌面应用程序时,你会看到可以下载约10个(截至本文撰写时)可以在本地运行的模型的选项。其中包括来自Meta AI的Llama-2-7B chat模型。如果你有API密钥,你也可以设置OpenAI的GPT-3.5和GPT-4(如果你有权限)以用于非本地使用。
GPT4All界面中的模型下载部分起初有点令人困惑。在我下载了几个模型之后,我仍然看到下载所有模型的选项。这似乎暗示下载没有成功。然而,当我检查下载路径时,模型确实在那里。
一旦模型设置完成,聊天机器人界面本身干净且易于使用。方便的选项包括将聊天复制到剪贴板和生成回复。
此外,还有一个新的测试版LocalDocs插件,可以让你在本地与自己的文档进行“聊天”。你可以在设置 > 插件选项卡中启用它,那里你会看到一个“LocalDocs插件(测试版)设置”的标题和一个在特定文件夹路径下创建集合的选项。
该插件仍在不断改进中,文档警告称,即使LLM可以访问你添加的专家信息,它仍可能“产生幻觉”(编造事物)。然而,这是一个有趣的功能,随着开源模型的能力增强,它有望得到改进。
除了聊天机器人应用程序外,GPT4All还提供了Python、Node和命令行界面(CLI)的绑定。还有一种服务器模式,可以通过类似于OpenAI的HTTP API与本地LLM进行交互。目标是通过改变几行代码,让你可以将本地LLM替换OpenAI的。
Simon Willison的LLM是我在自己的机器上下载和使用开源LLM中见过的较为简单的方法之一。虽然你需要安装Python来运行它,但你不需要接触任何Python代码。如果你使用Mac并且使用Homebrew,只需安装它即可。
brew install llm
如果你使用的是Windows机器,可以使用你喜爱的方法安装Python库,例如:
pip install llm
你可以使用llm models list命令查看所有可用的模型,包括远程模型和你已安装的模型,并提供每个模型的简要信息。
要向本地LLM发送查询,请使用以下语法:
llm -m the-model-name "Your query"
然后,我没有发出单独的命令来下载模型,而是向它提出了一个类似ChatGPT的问题:
llm -m ggml-model-gpt4all-falcon-q4_0 "Tell me a joke about computer programming"
这是LLM用户体验如此优雅的一个方面:如果GPT4All模型不存在于你的本地系统上,LLM工具会在运行你的查询之前自动为你下载它。你会在终端上看到一个进度条,显示模型正在下载。
这个笑话本身并不出色——“为什么程序员关掉了电脑?因为他想看看它是否还在工作!”——但这个查询实际上确实有效。如果结果令人失望,那是因为模型性能或用户提示不足,而不是LLM工具的问题。
你还可以在LLM中为模型设置别名,这样你可以用较短的名称引用它们:
llm aliases set falcon ggml-model-gpt4all-falcon-q4_0
要查看所有可用的别名,请输入:llm aliases。
Meta的Llama模型的LLM插件需要比GPT4All更多的设置。请阅读LLM插件在GitHub存储库中的详细信息。
请注意,通用的llama-2-7b-chat模型在我的工作Mac上运行良好,它配备了M1 Pro芯片和仅16GB的内存。与优化用于没有GPU的较小机器的GPT4All模型相比,它运行速度较慢,并在我更强大的家用PC上表现更好。
LLM还有其他功能,比如一个参数标志,可以让你从之前的聊天继续,并且可以在Python脚本中使用它。在9月初,该应用程序还获得了生成文本嵌入的工具,这些嵌入是文本含义的数值表示,可以用于搜索相关文档。
Ollama比LLM更简单地下载和运行模型,尽管它的功能也更有限。它目前支持macOS和Linux版本;创作者表示对Windows的支持“即将推出”。
安装是一个优雅的体验,通过点和点击完成。虽然Ollama是一个命令行工具,但只需一个命令,语法为ollama run model-name。与LLM一样,如果模型不在您的系统上,它将自动下载。
您可以在https://ollama.ai/library上查看可用模型的列表,截至本文编写时,其中包括几个基于Llama的模型版本,如通用的Llama 2、Code Llama、对一些编程任务进行了精调的DeepSE的CodeUp,以及经过精调以回答医学问题的medllama2。
Ollama GitHub存储库的README包含了一些模型规格和建议的有用列表,"您至少需要8GB的RAM来运行3B模型,16GB来运行7B模型,以及32GB来运行13B模型"。在我16GB RAM的Mac上,7B Code Llama的性能令人惊讶地迅速。它可以回答关于bash/zsh shell命令以及Python和JavaScript等编程语言的问题。
尽管是该系列中最小的模型,但它在回答一个让一些较大的模型困扰的R编码问题时表现得相当不错,只是有些不完美:"编写一个ggplot2图表的R代码,其中的条形颜色为钢蓝色。" 代码是正确的,只是在其中两行代码中多了两个多余的闭合括号,在我的IDE中很容易发现。我怀疑较大的Code Llama可能做得更好。
Ollama还有一些额外的功能,例如LangChain集成和与PrivateGPT一起运行的能力,除非您查看GitHub存储库的教程页面,否则可能不太明显。
如果您使用的是Mac并且想使用Code Llama,在终端窗口中运行它并在有问题时打开它。我期待在家用电脑上使用的Ollama Windows版本。
H2O.ai已经在自动化机器学习方面进行了一段时间的工作,因此该公司进入了聊天LLM领域是很自然的。其中一些工具最适合具有该领域知识的人使用,但是即使对于机器学习新手来说,安装h2oGPT聊天桌面应用程序的测试版本的说明也是简单明了的。
您可以在网页上访问演示版本(显然不是使用与您系统本地的LLM),网址是gpt.h2o.ai,这是一种在下载到您自己的系统之前了解界面是否合适的有用方式。
要获取本地版本:克隆GitHub存储库,创建并激活Python虚拟环境,并运行README文件中的五行代码。根据文档,结果将为您提供"有限的文档问答能力"和Meta的Llama模型之一,但它们是有效的。
当运行一行代码时,您将在本地下载一个Llama模型版本,并在http://localhost:7860上获得可用的应用程序:
python generate.py --base_model='llama' --prompt_type=llama2
您可以将该应用程序用作通用的聊天机器人,而无需添加自己的文件。或者,您可以上传并咨询与这些文件相关的问题。兼容的文件格式包括PDF、Excel、CSV、Word、文本、Markdown等等。
在我的16GB Mac上,测试应用程序的表现良好,尽管较小模型的结果与付费的ChatGPT和GPT-4相比不太理想(这仅取决于模型,而非应用程序)。
h2oGPT的用户界面提供了一个专家选项卡,其中包含许多配置选项,供了解其用途的用户使用。这为有经验的用户提供了改进结果的选择。
如果您希望对过程有更多控制,并且想要更多模型选项,可以下载完整的应用程序,尽管在有限的硬件上运行模型可能需要更多工作。README中提供了Windows、macOS和Linux的安装说明。请注意,我的Windows防病毒软件对Windows版本感到不满,因为它是新版本且未经签名。
然而,由于我熟悉H2O.ai的其他软件,并且该代码在GitHub上可用,所以我愿意下载和安装。然而,事实证明,由于我没有足够的GPU计算能力来运行一个较大规模的模型,从源代码安装可能是最好的选择。此时,我不确定运行该模型是否像大多数其他方法那样简单。
现在在H2O.ai工作的Rob Mulla在他的YouTube频道上发布了一段关于在Linux上安装该应用程序的视频。尽管该视频已经有几个月了,而且应用程序的用户界面似乎有所改变,但视频仍然提供有用的信息,包括关于H2O.ai LLM的解释。
PrivateGPT还可以让您使用自然语言查询自己的文档,并获得生成的AI回应。该应用程序中的文档可以包括几十种不同的格式。README中确保您的数据是“100%私密的,任何时候都不会将数据离开您的执行环境。您可以在没有互联网连接的情况下传输文档并提问!”
PrivateGPT具有脚本功能,用于导入数据文件,将其分割成块,创建“嵌入”(文本含义的数值表示),并将这些嵌入存储在本地的Chroma向量存储中。当您提出问题时,应用程序会搜索相关文档,并仅将这些文档发送给LLM以生成答案。
如果您熟悉Python和如何设置Python项目,可以克隆完整的PrivateGPT存储库并在本地运行。如果您对Python了解较少,可以查看作者Iván Martínez为会议研讨会创建的简化版本项目,该版本的设置要简单得多。
该版本的README文件包含详细的说明,不需要假设Python系统管理员的专业知识。存储库附带一个包含Penpot文档的source_documents文件夹,但您可以删除这些文档并添加自己的文档。
文章转载自微信公众号“AI机器人茶馆”,作者 北茗
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0