如何将 LLM 封装到应用程序中并在本地运行它们

小夏 科技 更新 2024-01-29

我最近一直在研究 Ollama,所以我花了很多时间思考如何在本地系统上运行大型语言模型 (LLMS) 以及如何将它们打包到应用程序中。 对于大多数使用 LLMS 的桌面应用程序,通常的体验是插入 OpenAI API 密钥或从源代码构建 Python 项目。 这些方法可以作为概念证明,但它们需要一些许多用户可能不具备的基本知识。 我一直在寻找的体验是一个只需单击一下即可直接运行的应用程序。 计划

一键**并运行。 没有外部依赖关系。 应用程序文件大小最小化。 简单的LLM版本控制和分发系统。 为所有主要操作系统构建和发布。 利用本地运行使本地文件系统可用。 用户不公开任何设置。 LLM 应在用户系统上以最佳性能运行,无需干预。 内置电池,但可更换。 对于高级用户,他们应该能够使用高级配置自定义驱动程序应用程序的 LLM。 考虑到所有这些因素,我决定开发一个名为“ChatGPT”的桌面应用程序,允许用户与他们的文档聊天。 这是一个常见的 LLM 用例,但我认为现在对于非技术最终用户来说,没有一个简单而伟大的选择。 它还充分利用了应用程序对文件系统的轻松访问。 建筑

该项目可以分解为四个定义明确的部分:渲染、进程间通信、主进程和 LLM 运行器。

渲染和进程间通信

渲染部分是使用典型的 HTML、CSS 和 J**ascript 完成的。 当用户执行需要处理的动作时,通过进程间通信将其发送到主进程。 这样就可以执行**并访问实际的主机系统。

主要流程

包括一些自定义文档处理(注意:请有人为常见的文档处理用例创建一个标准的 j**ascript 库),然后将提取的数据输入到 transformers 中JS中。 transformers.JS 库是由 Hugging Face 维护的项目,它允许您使用 Onnx 运行时在浏览器中运行模型。 这可能非常快。 最后,我将向量存储在内存中,因为目前没有满足我需求的内存中向量数据库。

LLM 跑步者

在处理完所有这些信息后,我使用 ollama 来打包和分发将驱动交互的 LLM。 目前,大多数用户将 Ollama 作为独立应用程序运行并向其发送查询,但它也可以直接打包和编排到桌面应用程序中。 我将 ollama 可执行文件添加到每个操作系统的相应包中,并编写了一些 j**ascript** 来协调可执行文件的使用。

这非常方便,因为我不仅能够使用 Ollama 作为运行 LLM 的可靠系统,而且还能够促进 Electron 包之外的 LLM 分发。 将 LLM 添加到 Electron 应用程序包本身意味着需要有大量的初始**(超过 4GB),并锁定用户仅使用我在 ChatGPT 中发布的模型。 此外,使用 Ollama 的分发系统,我还可以在不发布新应用程序的情况下更新或修改模型。 我可以进行更改以将模型推送到 ollamaAI 注册表,用户将在下次启动应用程序时获得更新。 利用 Ollama 还可以使用户体验保持简单,同时仍允许高级用户根据需要更改驱动应用程序的模型。 本地LLM的早期采用者(以及与我互动的Llama用户)对事物的工作原理感兴趣,并希望通过最新模型保持领先地位。 虽然 ollama 被打包到 chatd 中,但它可以检测 ollama 是否已经在运行。 在这种情况下,它会向用户显示其他设置,并允许他们配置 ChatGPT 并根据需要更改模型。 这也意味着用户不需要重新创建现有模型。

结果

我把ChatGPT给一些不属于典型ChatGPT用户群的朋友看,反响非常积极。 他们惊讶地看到 AI 在他们的计算机上简单且本地运行,他们很快看到了让这个原生聊天机器人访问他们文件的潜力。 我期待着改善这种体验,希望我们能看到一批新的桌面应用程序,使LLMS更易于使用。 ChatGPT项目地址:

相似文章

    如何写得又快又好

    写作是学习习的基础,也是我们日常工作和习的基本技能。但是,很多人会面临书写速度慢 字迹不清晰 美观等问题。那么,如何快速写好呢? 掌握正确的书写姿势和握笔方法。正确的书写姿势和握笔是写好书写的基础。首先,我们需要坐直,双脚平放在地面上,稍微前倾,要放松但不要太放松。其次,握笔时,应用拇指和食指捏住笔...

    如何写得又快又好

    如果你想写得又快又好,建议练习以下习 .练习习基本笔画 基本笔画是书写的基础,只有掌握了基本笔画的书写,才能写出优美的字。您可以通过练习习书法或模仿书法大师的作品来提高基本笔画的书写能力。.提高你的写作速度 如果你想写得快,你需要提高你的写作速度。您可以通过练习 习 快速复制 听写等来提高写作速度。...

    如何在 U 盘或外部硬盘上安装 Windows 系统?

    你有没有梦想过拥有一个可以随身携带的Windows系统的U盘,无论你走到哪里,只要插上电源,就可以方便地使用?现在,这个梦想触手可及!您只需要将 Windows 系统安装在 USB 闪存驱动器或便携式硬盘驱动器上,您就可以实现这个愿望。那么,你如何实现这个过程呢?让我们一起探索一下。注意 在继续该过...

    如何将智能电视连接到 wifi?您可以尝试以下步骤

    随着智能电视的普及,越来越多的人开始使用电视浏览网页或进行其他网络活动。但是,许多人在面对如何将电视连接到 wifi 时可能会感到困惑。本文将为您详细解答这个问题。.连接WiFi的基本步骤 确认电视支持wifi功能 首先,您需要确认您的电视支持wifi功能。一般来说,现代智能电视都支持wifi连接。...

    使用 CAD 软件时如何将 CAD 单位设置为毫米

    CAD 计算机辅助设计 软件广泛应用于建筑 机械 电子等各个领域,可以帮助设计师更高效地绘图和设计。在使用CAD软件时,单位设置是一个非常重要的环节,它直接关系到图纸的准确性和设计的质量。在本文中,我们将仔细研究如何将 CAD 单位设置为毫米,以帮助您更好地利用该软件进行设计。.CAD单位设置的重要...