ThirdAI 的私有和可个性化神经数据库:增强检索增强生成(第 3/3 部分)

news2024/9/20 14:39:02

这是我们关于使用检索增强生成构建 AI 代理的系列的最后一章 3/3)。在第 1/3 部分中,我们讨论了断开连接的嵌入和基于矢量的检索管道的局限性。在第 2/3 部分中,我们介绍了神经数据库,它消除了存储和操作繁重且昂贵的嵌入的需要。相反,它使用简单统一的端到端可学习检索系统。我们认为嵌入表示比文本数据本身重 3-25 倍,而神经数据库只需要几十亿个参数网络和简单的整数哈希表(开销小于 20GB),即使是数百 GB TB 的文本,导致内存使用量显着减少。

在第 2/3 部分结束时,我们强调了 ThirdAI 经科学证明的“动态稀疏性”,这是构建和部署 CPU 上神经数据库所需的 LLM 的关键功能。为了使神经数据库广泛适用,具有简单商用的CPU基础设施应该就足以进行训练和部署。

ThirdAI特点:使NeuralDB在商用CPU上具有商业可行性的两大突

下图说明了ThirdAINeuralDB系统的组件。NeuralDB 是一个新概念,它的实现是专业且罕见的,主要存在于 Meta 等特定行业中。然而,为了使NeuralDB商业化,需要一个独特的专家团队来结合制作神经网络的专业知识及其与高度并行化哈希表的检索系统的集成。在做出设计选择和自动化内部流程方面需要多年的经验才能使其广泛访问。

ThirdAI团队一直处于这些想法的最前沿。我们的创始人和团队成员开创了一些关于端到端和高效学习检索系统的最早工作。最后引用了14 NIPS最佳论文)、NeurIPS 2019ICLR 2020KDD 2022的关键论文。

我们的 NeuralDB 需要大型语言模型 LLM),将文本映射到离散存储桶的大空间中。存储桶的范围可以轻松达到数百万甚至更多,而 GPT 型号通常处理的输出空间仅为 50k。如果没有 ThirdAI 的“动态稀疏”BOLT 引擎,在 CPU 上使用如此大的 LLM 进行训练、微调和执行推理是不可能的。这个独特的软件堆栈由 ThirdAI 开创,是我们方法不可或缺的一部分。

应该注意的是,采用这些能力完全在CPU上运行NeuralDB所有操作至关重要,特别是对于使用NeuralDBPocketLLM等应用程序。该技术使最先进的神经搜索系统能够在笔记本电脑和台式机上使用,迎合计算资源有限的一般无代码用户。

在我们深入研究ThirdAINeuralDB API及其与langchainChatGPT的无缝集成之前,我们总结了神经数据库相对于现有生态系统的差异和优势,如上表所示。

ThirdAI的轻量级NeuralDB Python API,适用于任何环境(内部部署或云上

我们很高兴推出我们的NeuralDB API,这是一个仅限CPU语义检索生态系统。我们的 NeuralDB 提供高级语义搜索和微调功能,以及简单、自动调优的 API,以提供轻松的用户体验。这些功能也可以在笔记本电脑/台式机(WindowsMac)上使用PocketLLM应用程序提供的无代码UI界面进行访问。

  1. 对插入的文本进行自动自监督预训练:将任何原始文本插入 NeuralDB 中,并带有一个标志,以便对新数据进行额外的微调。该标志在预训练过程中启动,允许 NeuralDB 专注于理解插入文本中的共现。此过程适用于各种输入,例如日志、代码甚至多语言数据。与现有的固定和预训练嵌入模型不同,自监督预训练使 NeuralDB 能够实现领域专业化,从而在端到端检索方面提供了重大升级。
  2. NeuralDB 的监督训练:除了自我监督的预训练外,NeuralDB 还可以以监督的方式进行训练。您可以利用文本到文本映射(弱或强)来指定应彼此接近的文本信息,类似于嵌入模型的对比训练。此外,可以使用从文本到已知类别的任何监督映射,例如将用户查询映射到产品的产品搜索引擎。
  3. 具有人工反馈的实时强化学习NeuralDB可以使用人工实时反馈进一步完善。NeuralDB API 支持两种形式的人工反馈。首先,可以使用首选项信息,其中用户对几个检索到的选项中的最佳选项竖起大拇指或点赞。其次,可以引导模型以在线方式关联两个不同的文本字符串,类似于监督训练。例如,您可以对齐 NeuralDB 以了解石油行业术语,其中WOWWait On Weather相关联。

NeuralDB API 功能提供对检索生态系统的精确控制和个性化。您不再需要仅仅依靠开源社区或现有的LLM服务提供商来改进AI模型以满足您的特定需求。借助 NeuralDB,您可以负责并提供最适合您业务需求的愿景和改进。这是人工智能对每个人的真正民主化。

人工智能社区已经认识到从 ChatGPT 的成功中吸取了关键教训:即使是最先进的人工智能系统也需要不断的人类专家反馈。我们的NeuralDB在设计时就考虑到了这一点。实现高质量的 AI 模型是一个持续的过程,涉及持续的训练、微调和强化学习。

NeuralDB:急需减少AI软件堆

LLM(大型语言模型)堆栈变得越来越复杂,具有多层和组件,超过了传统AI堆栈的复杂性。开发人员意识到,每个组件都会增加更多的摩擦、不确定性、故障点、成本和延迟。嵌入模型所需的繁重 GPU 基础设施迫使开发人员构建一个低效的生态系统,在 CPU GPU 之间不断移动数据。简而言之,涉及的组件和数据移动越多,管理和调试流程就越困难。

ThirdAI,独特的技术使我们能够通过消除中间嵌入表示的生成和管理来显着简化LLM堆栈。通过与数据共置并消除 CPU GPU 之间的来回数据移动,我们实现了优先考虑隐私、稳定性和可靠性的简化堆栈。

资源、Notebook和 PubMed 问答 NeuralDB

我们所有的 API 都总结在这个简单的 Python 笔记本中。要使用它们,您可以在此处申请免费的 ThirdAI 许可证。这些笔记本电脑可以在笔记本电脑上高效运行,在短短几分钟内处理数千页。例如,我们有一个完全免费的NeuralDB,它是在800k Pubmed抽象数据集上预先训练的。它在几个小时内在单个CPU上进行了训练。您可以下载模型,并使用提供的脚本直接将其用于问答。

  1. BLISS:使用迭代重新分区的十亿级索引。
    Gaurav GuptaTharun Medini,  Anshumali Shrivastava Alex Smola

    SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD) 2022.
  2. SOLAR:稀疏正交学习和随机嵌入。
    Tharun Medini, Beidi Chen, Anshumali ShrivastavaInternational Conference on Learning Representations (ICLR) 2021.
  3. 使用最小计数草图的日志内存中的极端分类:使用 50M 产品的亚马逊搜索案例研究。
    Tharun MediniQixuan HuangYiqiu WangVijai MohanAnshumali Shrivastava
    Neural Information Processing Systems (NeurIPS) 2019.
  4. 非对称 LSH (ALSH) 用于次线性时间最大内积搜索 (MIPS)。
    Anshumali Shrivastava and Ping Li.
    Neural Information Processing Systems (NIPS) 2014 Best Paper Award.
     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/802772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GitHub上怎么寻找项目?

前言 下面由我精心整理的关于github项目资源搜索的一些方法,这些方法可以帮助你更快更精确的搜寻到你需要的符合你要求的项目。 写文章不易,如果这一篇问文章对你有帮助,求点赞求收藏~ 好,下面我们直接进入正题——> 首先我…

接口测试必备的,2种常⽤的JSON解析⽅法

JSON简介 一、JSON是什么? JSON: JavaScript Object Notation JS对象简谱,是一种轻量级的数据交换模式。 二、JSON语法: 对象中通过键值对 (key: value)的形式来表示对象的属性 注意:value即可以表示属性变量,又可…

【数据结构(C++版)】哈希表(散列表)

目录 1. 散列表的概念 2. 散列函数的构造方法 2.1 直接定址法 2.2 除留余数法 2.3 数字分析法 2.4 平方取中法 3. 处理冲突的方法 3.1 开放定址法 3.1.1 线性探测法 3.1.2 平方探测法 3.1.3 双散列法 3.1.4 伪随机序列法 3.2 拉链法(链接法&#xff09…

数据结构---并查集

目录标题 为什么会有并查集并查集的原理模拟实现并查集准备工作构造函数FindRootUnionSetCount 并查集实战题目一:省份数量题目解析题目二:等式方程的可满足性题目解析 为什么会有并查集 这里可以使用生活中的一个例子来带着大家理解并查集,…

机器学习03-数据理解(小白快速理解分析Pima Indians数据集)

机器学习数据理解是指对数据集进行详细的分析和探索,以了解数据的结构、特征、分布和质量。数据理解是进行机器学习项目的重要第一步,它有助于我们对数据的基本属性有全面的了解,并为后续的数据预处理、特征工程和模型选择提供指导。 数据理解…

从Arweave开始:4EVERLAND存储签入挑战开始

嗨,4evers, 今天,我们热烈欢迎您参加 Galxe 上的 4EVERLAND “Arweave 入门”活动。这是一项长期的重头活动,所有参与的用户都有机会获得相应的奖励。 Arweave 是一种革命性的去中心化存储协议,为寻求安全可靠的有价…

基于飞桨paddle的极简方案构建手写数字识别模型测试代码

基于飞桨paddle的极简方案构建手写数字识别模型测试代码 原始测试图片为255X252的图片 因为是极简方案采用的是线性回归模型,所以预测结果数字不一致 本次预测的数字是 [[3]] 测试结果: PS E:\project\python> & D:/Python39/python.exe e:/pro…

第五章 数组

定义 数组是一组相同类型元素的集合,但我们需要创建多个相同类型的变量时,只需要创建一个类型的数组,就相当于同时创建很多相同类型的变量。 一维数组 数组如何创建 从定义来入手看一下数组的创建: type_t arr_name[const_n];…

《向量数据库指南》——FAISS和Chroma:两种流行的向量数据库的比较

目录 FAISS Chroma 比较 向量数据库是一种可以存储和检索高维向量数据的数据库,高维向量数据是一种可以表示任何类型数据的A.I原生方式,比如文本、图像、音频等。向量数据库可以用于实现各种基于相似度搜索和聚类的A.I应用,比如语义搜索、推荐系统、图像识别等。在本文中…

Spring Boot——Spring Boot自动配置原理

系列文章目录 Spring Boot启动原理 Spring Boot自动配置原理 系列文章目录前言一、Spring Boot自动配置原理剖析二、自动配置生效三、总结: 前言 一直在使用Spring Boot特别好奇的是为什么Spring Boot比Spring在项目构建和开发过程中要方便很多,无需编…

二叉树的层序遍历(两种方法:迭代+递归)

题目: 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 解题思路:迭代法…

【设计模式——学习笔记】23种设计模式——组合模式Composite(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入 学校院系展示 编写程序展示一个学校院系结构: 需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系 【传统方式】 将学院看做是学校的子类,系是学院的子类,小的组织继承大…

位1的个数,编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1‘ 的个数(也被称为汉明重量)。

题记: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言&#xff…

MySQL使用xtrabackup备份和恢复教程

1、xtrabackup说明 xtrabackup是percona开源的mysql物理备份工具。 xtrabackup 8.0支持mysql 8.0版本的备份和恢复。 xtrabackup 2.4支持mysql 5.7及以下版本的备份和恢复。 这里我以xtrabackup 8.0为例讲解备份和恢复的具体操作方法。 xtrabackup 2.4版本的使用上和8.0版本相…

PX4从放弃到精通(二十九):传感器冗余机制

文章目录 前言一、parametersUpdate二、imuPoll三、 put四、 confidence五、 get_best 前言 PX4 1.13.2 一个人可以走的更快,一群人才能走的更远,可加文章底部微信名片 代码的位置如下 PX4冗余机制主要通过传感读数错误计数和传感器的优先级进行选优 …

解决[Vue Router warn]: No match found for location with path “/day“问题

首先是升级vue-router4.0后会警告[Vue Router warn]: No match found for location with path "/day" 找了许久解决方案如下: 一、404页面不需要再异步路由后边添加,直接放到静态路由里即可 二、要注意不能写name,否则会刷新默认…

Parameter ‘roleList‘ not found.

Parameter roleList not found. Available parameters are [arg1, arg0, param1, param2] 多半是Mapper层传入多个参数的时候,没有加Param注解,导致BindException错误

ORA-01187 ORA-01110

ORA-01187: cannot read from file because it failed verification tests ORA-01110: data file 201: ‘/u01/app/oracle/oradata/CNDB/temp01.dbf’ 查询临时文件是存在的 重建临时数据文件 删除临时文件: alter database tempfile /u01/app/oracle/oradata…

56. 合并区间 排序

Problem: 56. 合并区间 文章目录 思路Code 思路 对数组排序,按照左端点从小到大排序。初始化Merged,将第一个区间放入。遍历intervals ,如果当前区间的左端点比merged最后一个区间的右端点大,不重合,直接将该区间加入最后&#xf…

《零基础入门学习Python》第070讲:GUI的终极选择:Tkinter7

上节课我们介绍了Text组件的Indexs 索引和 Marks 标记,它们主要是用于定位,Marks 可以看做是特殊的 Indexs,但是它们又不是完全相同的,比如在默认情况下,你在Marks指定的位置中插入数据,Marks 的位置会自动…