出品 | 51CTO技术栈(微信号:blog51cto)
像ChatGPT、Claude.ai和phind这样的聊天机器人非常有用,但可能并不总是希望的问题或敏感数据由外部应用程序处理。在平台上尤其如此,在这些平台上,你的互动可能会被人类审查,并以其他方式用于帮助训练未来的模型。
一种解决方案是下载一个大型语言模型(LLM)并在自己的机器上运行它。这样一来,外部公司就永远无法访问的数据。这也是尝试一些新专业模型的一个快速选择,如Meta最近宣布的Code Llama系列模型,这些模型经过了编码调整,以及Seamless M4T,旨在实现文本到语音和语言翻译。
运行自己的LLM听起来可能很复杂,但有了正确的工具,它会出奇地容易。而且许多型号的硬件要求并没有想象中那么疯狂。我已经在两个系统上测试了本文中提供的选项:一个是带有英特尔i9处理器、64GB RAM和英伟达GeForce 12GB GPU(可能没有参与运行该软件的大部分工作)的戴尔PC,另一个是只有16GB RAM的M1芯片的Mac。
请注意,可能需要一点研究才能找到一个在的任务中运行良好并在桌面硬件上运行的模型。而且,很少有人能像你习惯的ChatGPT(尤其是GPT-4)或Claude.ai这样的工具那样好。命令行工具LLM的创建者Simon Willison在上个月的一次演示中认为,即使本地模型的响应是错误的,运行它也是值得的:
在你的笔记本电脑上运行的[一些]会产生疯狂的幻觉——我认为这实际上是运行它们的一个很好的理由,因为在你的电脑上运行弱型号是了解这些东西如何工作及其局限性的一种更快的方式。
同样值得注意的是,开源模型可能会不断改进,一些行业观察人士预计,它们与商业领袖之间的差距会缩小。
1.使用GPT4All运行本地聊天机器人
如果你想要一个在本地运行、不会在其他地方发送数据的聊天机器人,ᅠGPT4Allᅠ提供了一个易于设置的桌面客户端供下载。它包括在自己的系统上运行的型号的选项,还有Windows、macOS和Ubuntu的版本。
当第一次打开GPT4All桌面应用程序时,将看到下载大约10个(截至本文撰写之时)可以在本地运行的模型的选项。其中包括Meta AI的模型Llama-2-7B聊天。如果你有API密钥,你也可以设置OpenAI的GPT-3.5和GPT-4(如果你有访问权限)供非本地使用。
GPT4All接口的模型下载部分一开始有点令人困惑。在我下载了几个模型后,我仍然可以选择全部下载。这表明下载不起作用。然而,当我检查下载路径时,模型就在那里。
图片
GPT4All中模型下载接口的一部分。一旦我打开应用程序的使用部分,我下载的模型就会自动出现。
一旦建立了模型,聊天机器人界面本身就很干净,易于使用。方便的选项包括将聊天复制到剪贴板并生成响应。
GPT4All聊天界面简洁易用
还有一个新的测试版LocalDocs插件,可以让你在本地与自己的文档“聊天”。可以在中启用Settings > Plugins 选项卡,将看到“LocalDocs插件(BETA)设置”标题和在特定文件夹路径创建集合的选项。
该插件正在进行中,并且ᅠ文档ᅠ 警告说,即使LLM可以访问添加的专家信息,它仍可能“产生幻觉”(编造)。尽管如此,这是一个有趣的功能,随着开源模型变得更加强大,它可能会得到改进。
除了聊天机器人应用程序,GPT4All还绑定了Python、Node和命令行界面(CLI)。还有一种服务器模式,可以让你通过一个结构非常像OpenAI的HTTP API与本地LLM交互。目标是通过更改几行代码,让你用本地LLM交换OpenAI的LLM。
2.命令行启动LLM
Simon Willison的LLM是我见过的在自己的机器上本地下载和使用开源LLM的更简单的方法之一。虽然确实需要安装Python来运行它,但不应该接触任何Python代码。如果你在Mac电脑上使用Homebrew,只需使用:
brew install llm
如果在Windows计算机上,请使用最喜欢的安装Python库的方式,例如:
pip install llm
LLM默认使用OpenAI模型,但可以使用插件在本地运行其他模型。例如,如果安装gpt4all插件,将可以从gpt4all访问其他本地模型。还有用于llama、MLC项目和MPT-30B的插件,以及其他远程模型。
在命令行上安装一个插件,名称为llm Install model:
llm install llm-gpt4all
可以使用命令llm-models-list查看所有可用的型号——远程和已安装的型号,包括每种型号的简要信息。
图片
当要求LLM列出可用型号时显示。
要将查询发送到本地LLM,语法如下:
llm -m the-model-name "Your query"
如何选择正确的模型?可以前往ᅠGPT4All主页ᅠ并向下滚动到与GPT4All兼容的模型的模型资源管理器。falcon-q4_0选项是一款评级较高的相对较小的型号,具有允许商业使用的许可证,所以我从那里开始。
然后,我问了它一个类似于ChatGPT的问题,但没有发出单独的命令下载模型:
llm -m ggml-model-gpt4all-falcon-q4_0 "Tell me a joke about computer programming"
这是LLM用户体验如此优雅的一点:如果本地系统上不存在GPT4All模型,LLM工具会在运行查询之前自动为下载它。下载模型时,将在终端中看到进度条。
图片
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的RAM。与为没有GPU的小型机器优化的GPT4All型号相比,它运行得相当慢,在我更健壮的家用电脑上表现更好。
LLM还有其他功能,例如argument标志,使可以从以前的聊天中继续,并能够在Python脚本中使用它。9月初,该应用程序获得了ᅠ用于生成文本嵌入的工具,可用于搜索相关文档的文本含义的数字表示。可以在LLM网站上看到更多信息。Willison是流行的Python Django框架的联合创建者,他希望社区中的其他人能为LLM生态系统贡献更多插件。
3.桌面上调用模型:Ollama
Ollama是一种比LLM更容易下载和运行模型的方法。然而,该项目仅限于macOS和Linux,直到2月中旬,Windows的预览版终于问世。我测试了Mac版本。
图片
通过点击安装是一种优雅的体验。尽管Ollama是一个命令行工具,但只有一个命令具有以下语法ollama run model-name名称。与LLM一样,如果模型还没有在的系统上,它将自动下载。
可以在上查看可用型号的列表ᅠhttps://ollama.ai/library,截至本文撰写之时,它包括基于Llama的模型的几个版本,如通用Llama 2、Code Llama、针对某些编程任务进行微调的DeepSE的CodeUp,以及针对回答医学问题进行微调的meddlama2。
这个ᅠOllama GitHub repo's README 文件包括一些型号规格的有用列表和建议,“你应该至少有8GB的RAM来运行3B型号,16GB来运行7B型号,32GB来运行13B型号。”在我的16GB RAM Mac上,7B Code Llama的性能出奇地快。它将回答有关的问题ᅠbash/zshᅠshell命令以及Python和JavaScript等编程语言。
在Ollama终端窗口中运行Code Llama的外观
尽管它是家族中最小的模型,但如果不完美地回答了一个R编码问题,这会让一些更大的模型感到困惑,那它还是很好的:“为ggplot2图写R代码,其中的条形图是钢蓝色的。”代码是正确的,只是其中两行代码中有两个额外的右括号,这很容易在我的IDE中找到。我怀疑更大的Code Llama本可以做得更好。
Ollama还有一些附加功能,例如ᅠLangChainᅠ集成和使用PrivateGPT运行的能力,除非检查ᅠGitHub repo的教程页面。
如果你在Mac电脑上,想使用Code Llama,你可以在终端窗口中运行它,每次有问题时都会把它拉出来。我期待着在我的家用电脑上使用Ollama Windows版本。
4.与自己的文档聊天:H2OGPT
H2O.aiᅠ一段时间以来,该公司一直致力于自动化机器学习,因此很自然地进入了聊天LLM领域。它的一些工具最好由熟悉该领域的人使用,但安装其测试版本的说明ᅠh20GPTᅠ聊天桌面应用程序快速而直接,即使对于机器学习新手来说也是如此。
你可以访问web上的演示版本(显然不是使用系统本地的LLM),网址:ᅠgpt.h2o.ai。
本地LLaMa模型基于VS代码文档回答问题
无需添加自己的文件,就可以将该应用程序用作通用聊天机器人。或者,可以上传一些文档并询问有关这些文件的问题。兼容的文件格式包括PDF、Excel、CSV、Word、文本、标记等。测试应用程序在我的16GB Mac上运行良好,尽管较小型号的结果无法与带GPT-4的付费ChatGPT相比(一如既往,这是型号的函数,而不是应用程序的函数)。H2OGPT UI为知道自己在做什么的用户提供了一个专家选项卡,其中包含许多配置选项。这为更有经验的用户提供了尝试改进其结果的选项。
图片
如果你想对流程进行更多控制,并为更多型号提供选项,请下载完整的应用程序。对于带有GPU或仅带有CPU的系统,有适用于Windows和macOS的一键安装程序。请注意,我的Windows防病毒软件对Windows版本不满意,因为它没有签名。我熟悉H2O.ai的其他软件,代码在GitHub上也有,所以我愿意下载并安装它。
Rob Mulla,现在在H2O.ai,发布了一个ᅠYouTube视频ᅠ关于在Linux上安装该应用程序。尽管该视频已经发布了几个月,应用程序用户界面似乎也发生了变化,但该视频仍然有有用的信息,包括关于H2O.ai LLM的有用解释。
5.轻松但缓慢的数据聊天:PrivateGPT
PrivateGPTᅠ还设计用于让使用自然语言查询自己的文档,并获得生成的人工智能响应。此应用程序中的文档可以包括几十种不同的格式。README确保数据“100%私有,任何时候都不会有数据离开的执行环境。可以在没有互联网连接的情况下获取文档并提出问题!”
PrivateGPT的特点是脚本可以摄取数据文件,将其分割成块,创建“embeddings”(文本含义的数字表示),并将这些嵌入存储在本地Chroma矢量存储中。当你提出问题时,该应用程序会搜索相关文档,并将其发送给LLM以生成答案。
如果熟悉Python以及如何设置Python项目,可以克隆完整的PrivateGPT存储库并在本地运行它。