如果您有正确的工具,在自己的系统上部署大型语言模型可能会非常简单。以下是如何在桌面上使用Meta 's new Llama 3等llm。
聊天机器人像ChatGPT, Claude.ai和Meta.ai。人工智能可能非常有用,但您可能不总是希望您的问题或敏感数据由外部应用程序处理。在你的交互可能会被人类审查或用于帮助训练未来模型的平台上尤其如此。
一种解决方案是下载一个大型语言模型(LLM)并在你自己的机器上运行它。这样,外部公司永远无法访问您的数据。这也是尝试一些新的专业模型的快速选择,如Meta的新Llama 3(为编码进行了调整)和SeamlessM4T(旨在文本到语音和语言翻译)。
运行你自己的LLM听起来可能很复杂,但使用正确的工具,它出奇地简单。而且许多型号的硬件要求并不高。我在两个系统上测试了本文中介绍的选项:一个是配备英特尔i9处理器、64GB RAM和Nvidia GeForce 12GB GPU的戴尔电脑(可能没有运行太多这个软件),另一个是配备M1芯片但只有16GB RAM的Mac电脑。
请注意,要找到一个对您的任务执行得相当好的模型,并在桌面硬件上运行,可能需要做一些研究。而且,很少有像ChatGPT(特别是GPT-4)或Claude.ai这样的工具那样好。命令行工具LLM的创建者Simon Willison在去年夏天的一次演讲中指出,即使本地模型的响应是错误的,运行本地模型也是值得的:
在笔记本电脑上运行的(一些)程序会产生疯狂的幻觉——我认为这实际上是运行它们的一个很好的理由,因为在笔记本电脑上运行弱模型可以更快地理解这些东西是如何工作的,以及它们的局限性是什么。
同样值得注意的是,开源模型在不断改进,一些行业观察人士预计它们与商业领导者之间的差距将缩小。
GPT4 All运行一个本地聊天机器人
如果你想要一个在本地运行而不会在其他地方发送数据的聊天机器人,GPT4All提供了一个桌面客户端供下载,它非常容易设置。它包括在您自己的系统上运行的模型的选项,以及针对Windows、macOS和Ubuntu的版本。
当您第一次打开GPT4All桌面应用程序时,您将看到下载大约10个(在编写本文时)可以在本地运行的模型的选项。其中包括Meta AI的模型Llama-2-7B chat。如果你有API密钥,你还可以设置OpenAI的GPT-3.5和GPT-4(如果你有权限)用于非本地使用。
GPT4All接口的模型下载部分一开始有点令人困惑。在我下载了几个模型之后,我仍然看到了下载所有模型的选项。这表明下载不起作用。然而,当我检查下载路径时,模型就在那里。
GPT4All中的模型下载接口的一部分。一旦我打开应用程序的使用部分,我下载的模型就会自动出现。
一旦建立了模型,聊天机器人界面本身就干净且易于使用。方便的选项包括将聊天内容复制到剪贴板和生成响应。
GPT4All聊天界面干净,易于使用。
还有一个测试版LocalDocs插件,可以让你在本地与自己的文档“聊天”。您可以在设置>插件选项卡中启用它,在那里您将看到“LocalDocs插件(BETA)设置”头和一个在特定文件夹路径创建集合的选项。
这个插件还在开发中,文档警告说LLM可能仍然会“幻觉”(编东西),即使它可以访问你添加的专家信息。然而,这是一个有趣的功能,随着开源模型变得更强大,它可能会得到改进。
除了聊天机器人应用程序,GPT4All还绑定了Python、Node和命令行界面(CLI)。还有一种服务器模式,允许您通过结构非常类似于OpenAI的HTTP API与本地LLM交互。我们的目标是让你通过更改几行代码来将本地LLM替换为OpenAI的。
命令行上的LLM
Simon Willison的LLM是我所见过的在自己的机器上本地下载和使用开源LLM的更简单的方法之一。虽然运行它需要安装Python,但不需要修改任何Python代码。如果你用的是Mac并且使用的是Homebrew,只需安装with即可
brew install llm
如果你使用的是Windows系统,请使用你喜欢的安装Python库的方式,例如:
pip install llm
LLM默认使用OpenAI模型,但您可以使用插件在本地运行其他模型。例如,如果安装了gpt4all插件,就可以通过gpt4all访问其他本地模型。还有Llama、MLC项目和MPT-30B以及其他远程模型的插件。
在命令行中使用llm Install model-name安装插件:
llm install llm-gpt4all
您可以使用命令llm models list查看所有可用的模型(远程模型和已安装的模型),包括每个模型的简要信息。
要向本地LLM发送查询,使用以下语法:
llm -m the-model-name "Your query"
选择正确的LLM
如何选择模型?InfoWorld的14个不是ChatGPT的LLM是一个来源,尽管你需要检查哪些是可下载的,以及它们是否与LLM插件兼容。您还可以前往GPT4All主页,并向下滚动到模型资源管理器,以获取与GPT4All兼容的模型。falcon-q4_0是一个评价很高的、相对较小的型号,具有允许商业使用的许可证,所以我从那里开始。
然后我问了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 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月初,该应用程序获得了用于生成文本嵌入的工具,文本含义的数字表示可以用于搜索相关文档。你可以在LLM网站上看到更多信息。Willison是流行的Python Django框架的联合创建者,他希望社区中的其他人能为LLM生态系统贡献更多的插件。
桌面上的Ollama模型:Ollama
Ollama是一种比LLM更容易下载和运行模型的方法。然而,该项目仅限于macOS和Linux,直到2月中旬,Windows版本的预览版终于推出。我测试了Mac版本。
设置Ollama非常简单。
安装是一种优雅的体验,通过指向和点击。尽管Ollama是一个命令行工具,但只有一个命令的语法为Ollama run model-name。与LLM一样,如果模型尚未在您的系统上,它将自动下载。
你可以在https://ollama.ai/library上看到可用模型的列表,在撰写本文时,其中包括几个版本的基于美洲驼的模型,包括Llama 3、Code Llama、CodeUp和medllama2,它们经过微调以回答医学问题。
Ollama GitHub repo的README文件包含一些模型规格和建议的有用列表,“您应该至少有8GB内存来运行3B模型,16GB内存运行7B模型,32GB内存运行13B模型。”在我的16GB RAM Mac上,7B Code Llama的性能非常出色。它将回答有关bash/zsh shell命令以及Python和JavaScript等编程语言的问题。
在一个Ollama终端窗口中运行Code Llama的样子。
尽管Code Llama是家族中最小的模型,但它在回答一个R编程问题方面非常出色,这个问题会让一些更大的模型出错:“为ggplot2图编写R代码,其中条形是钢蓝色。”代码是正确的,除了两行代码中有两个额外的右括号,这在我的IDE中很容易发现。我怀疑更大的Code Llama可以做得更好。
Ollama还有一些额外的功能,例如LangChain集成和与PrivateGPT一起运行的能力,这些可能不是很明显,除非你查看GitHub repo的教程页面。
你可以让PrivateGPT在终端窗口中运行,每次遇到问题时都把它拉出来。我期待着在我的家用电脑上使用Ollama Windows版本。
与你自己的文档聊天:h2oGPT
H2O.ai已经致力于自动化机器学习一段时间了,因此该公司进入聊天LLM空间是很自然的。它的一些工具最好由具有该领域知识的人使用,但安装测试版本的h2oGPT聊天桌面应用程序的说明是快速而直接的,即使对于机器学习初学者也是如此。
你可以在gpt.h2o.ai上访问web上的演示版本(显然不是使用系统本地的LLM)。Ai,这是一个有用的方法,在下载到自己的系统之前,看看你是否喜欢这个界面。
你可以按照这里的设置说明下载该应用程序的基本版本,该版本具有有限的查询自己文档的能力。
本地Llama模型根据VS Code文档回答问题。
如果您想对更多模型的过程和选项有更多的控制,请下载完整的应用程序。Windows和macOS上有一键安装程序,适用于GPU或只适用于cpu的系统。请注意,我的Windows防病毒软件对Windows版本不满意,因为它没有签名。我很熟悉H2O.ai的其他软件和代码可以在GitHub上获得,所以我无论如何都愿意下载并安装它。
Rob Mulla,现在在H2O.ai在自己的YouTube频道上发布了一段关于在Linux上安装该应用程序的视频。虽然这段视频已经播放了几个月了,而且应用程序的用户界面似乎也发生了变化,但视频仍然提供了有用的信息,包括关于H2O.ai llm。
简单但缓慢的数据聊天:PrivateGPT
PrivateGPT还可以让你使用自然语言查询自己的文档,并获得生成式AI响应。这个应用程序中的文档可以包括几十种不同的格式。README向您保证数据是“100%私有的,在任何时候都没有数据离开您的执行环境”。你可以在没有网络连接的情况下采集文档并提出问题!”
PrivateGPT提供了脚本来采集数据文件,将它们分割为块,创建“嵌入”(文本含义的数字表示),并将这些嵌入存储在本地色度向量存储中。当你问一个问题时,该应用程序会搜索相关文档,并仅将这些文档发送给LLM以生成答案。
如果你熟悉Python以及如何设置Python项目,可以克隆完整的PrivateGPT仓库并在本地运行。如果您不太了解Python,您可能想查看作者Iván Martínez为会议研讨会设置的项目的简化版本,该版本的设置要容易得多。
该版本的README文件包含详细的说明,不需要具备Python系统管理员的专业知识。repo附带了一个source_documents文件夹,其中充满了Penpot文档,但您可以删除这些文档并添加自己的文档。
PrivateGPT包含了你最想在终端的“与你自己的文档聊天”应用程序中使用的功能,但文档警告说它不适用于生产环境。一旦你运行它,你可能会明白为什么:即使是小型号选项在我的家用电脑上运行得非常慢。但要记住,早期的家庭互联网也极其缓慢。我希望这些类型的个别项目将加速。
更多运行本地LLM的方法
除了这五种方法之外,还有更多的方法在本地运行llm,从其他桌面应用程序到从头编写脚本,所有这些都具有不同程度的设置复杂性。
Jan
Jan是一个相对较新的开源项目,旨在通过“开放的本地优先产品”“使人工智能的访问民主化”。该应用程序易于下载和安装,界面在可定制性和易用性之间取得了很好的平衡。这是一个令人愉快的应用程序使用。
在Jan中选择使用的模型非常简单。在如下所示的应用程序中心中,有30多种模型的描述,可一键下载,包括一些vision,但我没有测试。也可以导入其他GGUF格式的文件。如果您的系统不太可能运行Jan 's hub中列出的模型,则会显示“RAM不足”标签。
Jan的模型中心有30多个可供下载的模型。
Jan的聊天界面包括一个右侧面板,可以让您设置LLM的系统指令和调整参数。在我使用的Mac电脑上,我下载的一个型号在启动时被标记为“在你的设备上运行缓慢”,并被建议关闭一些应用程序以释放内存。不管你是不是llm的新手,在启动genAI应用程序时很容易忘记释放尽可能多的RAM,所以这是一个有用的警告。(打开很多标签页的Chrome可能是一头公羊猪;关闭它解决了这个问题。)
简的聊天界面是详细和易于使用。
一旦我释放了内存,应用程序内的流响应就非常快。
除了在本地运行llm之外,Jan还允许您从云中使用OpenAI模型。此外,你可以设置Jan来使用远程或本地API服务器。
当我在2024年3月测试这个应用程序时,Jan的项目文档仍然很少,不过好消息是,应用程序的大部分内容都很直观,但不是全部。我在Jan中错过了上传文件和与文档聊天的功能。在GitHub上搜索后,我发现你确实可以通过在模型设置中打开“检索”来上传文件。但是,我既不能上传。csv文件,也不能上传。txt文件。它们都不支持,尽管在我尝试之前并不明显。不过,PDF文件是有效的。同样值得注意的是,尽管这不是简的错,但我正在测试的小模型在检索增强生成方面没有做得很好。
Jan相对于LM Studio的一个关键优势(见下文)是,Jan在AGPLv3许可协议下是开源的,只要任何衍生作品也是开源的,它就允许无限制的商业使用。LM Studio是免费供个人使用的,但网站说你应该填写LM Studio @ Work request表格才能在工作中使用。Jan支持Windows、macOS和Linux。
Opera
如果你想要的只是一种超级简单的方式,从当前的web工作流中与本地模型聊天,那么开发者版的Opera是可能的。它不提供与文件聊天之类的功能。您还需要登录到Opera帐户才能使用它,即使是本地模型,所以我不确定它是否像这里介绍的大多数其他选项那样隐私。然而,这是在您的工作流中测试和使用本地llm的方便方法。
单击Aria按钮打开使用OpenAI的默认聊天。您需要单击Get Started按钮以查看本地LLM的选项。
本地llm可以在Opera One的开发者流上获得,您可以从其网站下载。
首先,打开Aria聊天侧边面板——这是屏幕左下角最上面的按钮。这默认使用OpenAI的模型和谷歌搜索。
要选择本地模型,您必须单击Start,就像执行默认操作一样,然后在屏幕顶部附近有一个选项“选择本地AI模型”。
选择它,然后单击“转到设置”来浏览或搜索模型,例如8B或70B中的Llama 3。
您可以在Opera聊天界面中搜索可供下载的型号,如Llama 3。
对于那些硬件非常有限的用户,Opera推荐Gemma:2b-instruct-q4_K_M。
在你的模型下载之后,不太清楚如何回去开始聊天。点击屏幕左上角的菜单,你会看到一个“新聊天”按钮。确保再次点击“Choose local AI model”,然后选择你下载的模型;否则,你将与默认的OpenAI聊天。
您可以通过单击屏幕顶部的选项来选择使用本地模型。
在Opera中聊天最吸引人的是使用本地模型,感觉类似于现在熟悉的copilot-in- the - own -panel生成式AI工作流。Opera总部位于挪威,并表示它对所有用户都遵守GDPR。对于任何高度敏感的东西,只要需要登录到云帐户,我仍然会再三考虑使用这个模型。
与RTX聊天
Nvidia的Chat with RTX演示应用程序旨在回答有关文档目录的问题。自2月发布以来,与RTX的聊天可以使用本地运行的Mistral或Llama 2 LLM。你需要一台Windows电脑,安装Nvidia GeForce RTX 30系列或更高版本的GPU,并拥有至少8GB的显存,才能运行这个应用程序。你还需要一个健壮的互联网连接。下载文件压缩了35GB。
Chat with RTX提供了一个非常容易使用的简单界面。点击这个图标启动一个Windows终端,它运行一个脚本,在默认浏览器中启动应用程序。
聊天与RTX接口是简单和易于使用。
选择LLM和文件的路径,等待应用程序为文件创建嵌入-你可以在终端窗口中跟踪进度-然后问问题。该响应包括LLM用于生成其答案的文档的链接,如果您想确保信息准确,这是很有帮助的,因为模型可能基于它知道的其他信息而不仅仅是您的特定文档进行回答。该应用程序目前支持。txt、。pdf和。doc文件,以及通过URL访问YouTube视频。
一个带有RTX响应的聊天,带有到响应文档的链接。
请注意,Chat with RTX并不在子目录中查找文档,因此你需要将所有文件放在一个文件夹中。如果要向文件夹添加更多文档,请单击数据集右侧的刷新按钮以重新生成嵌入。
llamafile
Mozilla在11月底发布的llamafile允许开发人员将大型语言模型的关键部分转换为可执行文件。它还附带了软件,可以下载GGUF格式的LLM文件,导入它们,并在本地浏览器聊天界面中运行它们。
要运行llamafile,项目的README建议下载当前的服务器版本
curl -L https://github.com/Mozilla-Ocho/llamafile/releases/download/0.1/llamafile-server-0.1 > llamafile
chmod +x llamafile
然后,下载你选择的模型。我读过一些关于西风的好东西,所以我从"拥抱脸"网站上找到并下载了一个版本。
现在,您可以在终端中运行模型
./llamafile --model ./zephyr-7b-alpha.Q4_0.gguf
替换zephyr与任何和无论您的模型位于何处,等待它加载,并在您的浏览器中打开http://127.0.0.1:8080。你会看到一个打开界面,里面有各种聊天选项:
在底部输入你的查询,屏幕将变成一个基本的聊天机器人界面:
你可以使用项目的GitHub仓库中的示例文件之一测试运行单个可执行文件:mistral-7b-instruct、llava-v1.5-7b-server或wizardcoder-python-13b。
在llamafile发布的那天,本文中介绍的LLM项目的作者Simon Willison在一篇博客文章中说:“我认为这是现在开始在自己的计算机上运行大型语言模型(想想你自己的ChatGPT本地副本)的唯一最佳方法。”
虽然llamafile在我的Mac上非常容易启动和运行,但我在Windows上遇到了一些问题。目前,像Ollama一样,llamafile可能不是即插即用Windows软件的首选。
LocalGPT
一个PrivateGPT衍生产品LocalGPT,包括更多的模型选项,并有详细的说明以及三个如何操作的视频,包括一个17分钟的详细代码演练。对于这种安装和设置是否“容易”,可能会有不同的意见,但它看起来确实很有希望。不过,与PrivateGPT一样,文档警告说,单独在CPU上运行localpt会很慢。
LM Studio
我尝试过的另一个桌面应用程序LM Studio,有一个易于使用的聊天界面,但在选择模型方面,你更多的是靠自己。如果您知道想要下载并运行的模型,这可能是一个不错的选择。如果你刚刚使用ChatGPT,并且对如何最好地平衡精度和大小的知识有限,那么一开始所有的选择可能都有点让人不知所措。Hugging Face Hub是LM Studio中模型下载的主要来源,它有很多模型。
与其他LLM选项不同,它们都下载了我第一次尝试时选择的模型,我在LM Studio中下载其中一个模型时遇到了问题。另一个运行得不太好,这是我的错,因为我把我的Mac硬件发挥到了最大,但我没有立即看到建议的最低非gpu RAM用于型号选择。如果您不介意耐心地选择和下载模型,不过,一旦您运行聊天,LM Studio有一个漂亮、干净的界面。在撰写本文时,UI没有内置选项可以在自己的数据上运行LLM。
LLM Studio界面。
LM Studio确实有一个内置的服务器,可以“作为OpenAI API的直接替代品”,正如文档所述,因此通过API编写的使用OpenAI模型的代码将在您选择的本地模型上运行。
像h2oGPT一样,LM Studio在Windows上抛出一个警告,它是一个未经验证的应用程序。然而,LM Studio code在GitHub上不可用,并且不是来自一个长期成立的组织,所以不是每个人都能舒适地安装它。
除了通过h2oGPT等应用程序使用预构建的模型下载界面外,您还可以直接从huggface下载和运行一些模型,huggface是一个人工智能平台和社区,其中包括许多llm。(并非所有型号都有下载选项。)StarTree的开发者拥护者Mark Needham有一个很好的解释如何做到这一点,包括一个YouTube视频。他还在GitHub仓库中提供了一些相关代码,包括使用本地LLM进行情绪分析。
Hugging Face提供了一些关于如何在本地安装和运行可用模型的文档。
LangChain
另一个流行的选择是在LangChain中下载并本地使用llm, LangChain是一个用于创建端到端生成式AI应用程序的框架。这确实需要加快使用LangChain生态系统编写代码的速度。如果你了解LangChain基础知识,你可能想查看有关Hugging Face Local Pipelines, Titan起飞(需要Docker和Python)和OpenLLM的文档,以便在本地模型中运行LangChain。OpenLLM是另一个强大的独立平台,旨在将基于llm的应用程序部署到生产中。