介绍 BlindChat,一款完全在浏览器中运行的开源、隐私设计型对话式人工智能
概述
我们在此介绍BlindChat,旨在提供一个开源且隐私设计型的 ChatGPT 替代方案。
- BlindChat 是 Hugging Face Chat-UI 项目的一个分支,其所有逻辑都已适配到客户端,而非最初的服务器端设计。
- BlindChat 完全在您的 **浏览器** 中运行,利用 transformers.js 进行本地推理,并将对话存储在浏览器缓存中。
- 首个提出的本地模型是 LaMini-Flan-T5-783M。未来将提供更多选项,例如使用 BlindLlama 进行远程安全区推理,以私密地提供 Llama 2 70b 或 Falcon 180b。
实时演示可在 chat.mithrilsecurity.io 找到!
背景
问题
尽管 OpenAI 的 ChatGPT 在不到一年前改变了整个 AI 生态系统,但隐私问题也随之出现,这可能会减缓 AI 的普及。
我们已经看到大型语言模型(LLMs)在提高生产力方面带来的巨大好处,从编程助手到文档撰写工具。然而,作为这些模型的使用者,要了解不同隐私政策并确切理解发送给这些 AI 提供商的数据的去向可能很棘手。
事实上,AI 提供商经常使用发送给其聊天机器人数据来改进其模型。尽管在当前 LLMs 竞争激烈的时代可以理解,但这种做法可能对最终用户造成极大损害,并侵蚀对这些 AI 提供商的信任。
出现了一些问题
- 这些公司收集了大量信息,但收集了什么、出于什么目的、与谁共享、为了达到什么目的,甚至如何选择退出,往往都不清楚。
- 对用户数据进行微调可能会产生严重的隐私影响,因为 LLM 可能会将这些训练数据泄露给 LLM 的其他用户!如您所知,LLM 被训练来记住其训练集。这意味着有人实际上可以提示经过微调的 LLM 吐出其训练集的一部分或全部内容!例如,发送提示“我的信用卡号是……”可能会被 LLM 用训练集中某人的真实信用卡号完成。
虽然这个例子看起来过于简单和不太可能,但三星确实因此发生了真实的泄露事件!2022 年,他们的一名工程师在 ChatGPT 的早期版本中发送了敏感的企业信息,例如专有代码。
OpenAI 明确表示不要发送机密数据,因为他们会在早期对话中对其进行训练。三星工程师无视此警告并发送了机密数据。GPT3.5 最终记住了这些数据,而其他人提示模型并获取了这些数据!
现有解决方案
本地部署是目前提供隐私保障和数据使用透明度的替代方案。Llama 2 等开源模型提供了强大的替代方案,因为注重隐私的开发人员可以内部部署自己的 LLM,而无需担心数据不受控制地使用。商业 AI 提供商的解决方案也提供类似的部署选项,例如 Azure OpenAI 服务。
虽然这些解决方案是解决隐私和透明度问题的一种方法,通过使用 GPT4 等 AI API,但它们也带来了成本:财务和部署复杂性!
事实上,自行部署 LLM 可能很复杂,特别是如果您是非技术人员。例如,一位律师可能希望有一个聊天解决方案来帮助她为客户起草合同,但可能没有足够的专业知识来部署内部 LLM 来解决她遇到的问题。
如今存在一个空白,因为隐私和易用性之间似乎存在权衡:像 GPT4 这样的 SaaS 解决方案易于使用,但与自定义部署相比,其隐私性较低,而自定义部署则需要更多的专业知识。
但是,我们能否找到一个真正兼顾两者的解决方案呢?是的,我们可以!这正是我们希望通过 BlindChat 实现的目标,这是一款完全在浏览器中运行的开源且私密的对话式 AI 解决方案!
介绍 BlindChat
BlindChat 是一个受 Hugging Face Chat-UI 启发而开发的开源项目。我们希望有一个纯粹在浏览器中运行的解决方案,以便任何最终用户都能在隐私保障和易用性兼备的情况下利用 AI 模型。
虽然 Chat-UI 是一个拥有出色用户界面的优秀项目,但它被设计为与后端(例如 Hugging Face Text Inference Endpoint (TIE))协同工作,这不符合我们的隐私要求。
事实上,由于我们希望有一个最终用户无需信任 AI 提供商的解决方案,我们无法原样使用 Chat-UI,必须对其进行改造。
BlindChat 的逻辑是将尽可能多的逻辑卸载到客户端浏览器,这样我们就可以
- 实现高水平的隐私,因为数据不再离开用户设备
- 使其易于使用,因为消费者除了现有浏览器外无需安装任何东西(不过,这可能需要良好的带宽/硬件)
实际上,这意味着我们已经适配了几个组件,例如
- LLM 不再在服务器上运行,推理转而在用户设备上运行
- 对话存储在浏览器中,而不是远程服务器上
- 不再记录遥测数据并共享数据以改进模型
一个关键的组件是,我们必须将后端中常规的 TIE 推理替换为私有选项。
例如,我们转而使用 transformers.js 进行本地推理。一个 LaMini-Flan-T5 模型从 Hub 中拉取,并在用户设备上运行。我们重新创建了本地令牌流,以提供流畅的体验。
我们还必须修改 Chat-UI,将对话本地存储在浏览器中,而不是将其保存到服务器端的 MongoDB 中,以保护隐私。
这些是我们对原始 HF Chat-UI 进行的众多更改中的一小部分,以实现完全私有化且在浏览器中运行的 AI 助手,但就这样了!
您可以在 https://chat.mithrilsecurity.io/ 尝试 BlindChat,开始体验我们隐私优先的 AI 助手。
⚠️ 注意:这需要良好的网络连接,并且首次进行推理时会花费一些时间。
下一步
首次推出浏览器中简单的私有 Chat-UI 只是一个开始。我们打算开发 ChatGPT 的开源和隐私设计替代方案,这意味着我们还有很长的路要走。
例如,以下是一些未来的步骤
- 提供更多模型,例如 phi-1.5
- 通过改造 LlamaIndex TypeScript 以在浏览器上工作来实现 RAG
- 实现远程安全区推理,以支持消费远程托管但私密安全的巨型 AI 模型。我们已经发布了 BlindLlama 的 alpha 版本,这是一个开源项目,旨在提供具有隐私保障的 LLama 2 70b 模型。
- 还有更多内容,请访问此处!
如果您感兴趣,可以在我们的 GitHub 上找到更多关于我们路线图的信息。您也可以提出问题或在 Discord 上联系我们,讨论功能或提出您的问题!