介绍 Vector数据库已经成为存储和索引非结构化和结构化数据表示的首选位置。这些表示是由嵌入模型生成的向量嵌入。向量存储已成为开发带有深度学习模型的应用程序的重要组成部分,尤其是大型语言模型。在向量存储的不断发展中,Qdrant是最近推出的一个功能齐全的向量数据库。让我们深入了解一下。 学习目标 熟悉Qdrant的术语,以更好地理解它 深入研究Qdrant Cloud并创建Clusters 学习如何创建我们的文档的嵌入并将它们存储在Qdrant Collections中 探索在Qdrant中查询的工作原理 在Qdrant中调试过滤器,以检查其工作原理 本文作为Data Science Blogathon的一部分发表。 什么是嵌入? 嵌入是一种以数字形式表示数据的方式,即以n维空间中的数字或数值向量的形式表示不同类型的数据,如文本、照片、音频、视频等。嵌入使我们能够以这种方式对相关数据进行分组。使用特定模型可以将某些输入转换为向量。Google创建的一种广为人知的嵌入模型是将单词转化为向量(向量是具有n维的点),称之为Word2Vec。每个大型语言模型都有一个嵌入模型,用于生成LLM的嵌入。 嵌入的用途是什么? 将单词转换为向量的一个优点是可以进行比较。当拿到两个单词作为数字输入或向量嵌入时,计算机可以进行比较,尽管它无法直接比较它们。可以将具有可比较嵌入的单词分组在一起。因为它们彼此相关,诸如“王”、“皇后”、“王子”和“公主”这些术语将出现在一个聚类中。 从这个意义上讲,嵌入帮助我们找到与给定术语相关的单词。这可以用于句子,我们输入一个句子,提供的数据返回相关的句子。这为许多用例奠定了基础,包括聊天机器人、句子相似性、异常检测和语义搜索。我们开发的用于根据我们提供的PDF或文档回答问题的聊天机器人利用了这种嵌入概念。所有生成式大型语言模型都使用这种方法,以获得与他们提供的查询相关联的内容。 什么是向量数据库? 如前所述,嵌入是各种数据的表示,通常是非结构化数据以数字格式在n维空间中。那么我们该如何存储它们呢?传统的关系型数据库管理系统(RDMS)不能用于存储这些向量嵌入。这就是向量存储/向量数据库发挥作用的地方。向量数据库的设计目的是以高效的方式存储和检索向量嵌入。有许多不同的向量存储器,它们通过所支持的嵌入模型和用于获取相似向量的搜索算法的种类而有所不同。 什么是Qdrant? Qdrant是一种新型的向量相似性搜索引擎和向量数据库,采用Rust语言构建的可用于生产的服务。Qdrant具有用户友好的API,用于存储、搜索和管理具有元数据的高维点(点就是向量嵌入),这些元数据称为载荷。这些载荷成为有价值的信息,提高搜索精度,并为用户提供有见地的数据。如果您熟悉其他向量数据库,如Chroma,Payload类似于元数据,它包含有关向量的信息。 Qdrant是用Rust编写的,即使在负载很重的情况下也是快速可靠的向量存储。Qdrant与其他数据库的区别在于它提供的客户端API数量。目前,Qdrant支持Python、TypeScript/JavaScript、Rust和Go。它使用HSNW(层次可导航小世界图)进行向量索引,并提供了许多距离度量,如余弦、点和欧氏距离。它还提供了一个内置的推荐API。 了解Qdrant术语 要顺利开始使用Qdrant,熟悉Qdrant向量数据库中的术语/主要组件是一个好习惯。…
Leave a CommentTag: query
介绍 大型语言模型(LLMs)是一类特定的人工智能模型,旨在理解和生成类似于人类的文本。术语“大型”通常通过它们拥有的参数数量来量化。例如,OpenAI的GPT-3模型有1750亿个参数。可以将其用于各种任务,例如文本翻译、回答问题、写作论文、总结文本。尽管有很多资源展示了LLMs的能力,并提供了有关如何设置聊天应用程序的指导,但很少有人深入研究它们在现实业务场景中的适用性。在本文中,您将学习如何使用LangChain和Flan-T5 XXL构建基于大型语言的应用程序来创建文档查询系统。 学习目标 在深入研究技术细节之前,让我们确定本文的学习目标: 了解如何利用LangChain构建基于大型语言的应用程序 简要介绍文本到文本框架和Flan-T5模型 如何使用LangChain和任何LLM模型创建文档查询系统 现在让我们深入了解这些部分,以理解每个概念。 本文是Data Science Blogathon的一部分。 LangChain在构建LLM应用程序中的作用 LangChain框架旨在开发各种应用程序,例如聊天机器人、生成式问答(GQA)和摘要,以发挥大型语言模型(LLMs)的能力。LangChain为构建文档查询系统提供了全面的解决方案。这涉及通过分块对语料库进行预处理,将这些块转换为向量空间,在提出查询时识别相似块,并利用语言模型将检索到的文档细化为合适的答案。 Flan-T5模型概述 Flan-T5是谷歌研究人员开发的一种商业可用的开源LLM。它是T5(文本到文本转换Transformer)模型的变体。T5是一种先进的语言模型,它通过将NLP任务转换为基于文本的格式来训练。FLAN是Finetuned Language Net的缩写。 让我们深入构建文档查询系统 我们可以利用LangChain和Flan-T5 XXL模型在Google Colab的免费版中构建此文档查询系统。要在Google Colab中执行以下代码,我们必须选择“T4 GPU”作为我们的运行时。按照以下步骤构建文档查询系统: 1:导入必要的库…
Leave a Comment简介 自从OpenAI推出了像GPT(生成预训练变压器)模型这样的生成式AI模型,特别是ChatGPT以来,谷歌一直在努力创建并推出类似的AI模型。虽然谷歌是第一个通过BERT模型将变压器引入世界的公司,通过其《Attention is All You Need》论文,但它未能像OpenAI开发的那些大型语言模型一样创建一个同样强大和高效的模型。谷歌首次引入的Bard AI似乎并未引起太多关注。最近谷歌发布了PaLM(Pathways语言模型)的API访问权限,该模型是Bard AI背后的技术。本指南将介绍如何开始使用PaLM API。 学习目标 学习如何使用Pathways语言模型 了解PaLM提供的关键功能 使用PaLM 2创建应用程序 利用MakerSuite快速原型化大型语言模型 了解如何使用PaLM API 本文章是Data Science Blogathon的一部分。 什么是PaLM? PaLM代表Pathways语言模型,是谷歌自主开发的大型语言模型之一。它于2022年4月首次推出。几个月前,谷歌宣布了该模型的下一个版本,即PaLM 2。谷歌声称,与之前的版本相比,PaLM在多语言能力和功率效率方面更好。 PaLM 2并不是用英语训练的,而是包含了一百多种语言的混合体,甚至包括编程语言和数学。所有这些都是在不降低英语理解性能的情况下实现的。总体而言,谷歌的PaLM…
Leave a Comment聊天机器人已成为许多组织用于各种目的的越来越标准和有价值的界面。它们在不同行业中有许多应用,例如为客户提供个性化的产品推荐,提供全天候的客户支持来解决查询问题,协助客户预订等等。本文探讨了创建专门用于客户互动的FAQ聊天机器人的过程。FAQ聊天机器人解答特定领域内的问题,利用预定义的问题列表和相应的答案。这种类型的聊天机器人依赖于语义问题匹配作为其基本机制。 学习目标 了解BERT模型的基础知识 了解Elasticsearch及其在聊天机器人中的应用 创建聊天机器人的机制 在Elasticsearch中进行索引和查询 本文是作为Data Science Blogathon的一部分发布的。 BERT是什么? BERT(Bidirectional Encoder Representations from Transformers)是谷歌于2018年发布的一个大型语言模型。与单向模型不同,BERT是基于Transformer架构的双向模型。它通过考虑句子中在它之前和之后出现的单词来学习理解单词的上下文,实现更全面的理解。 BERT面临的一个主要挑战是无法在自然语言处理任务中达到最先进的性能。主要问题是标记级别的嵌入在文本相似性方面无法有效使用,导致在生成句子嵌入时性能较差。 然而,为了解决这个挑战,开发了Sentence-BERT(SBERT)。SBERT基于一个Siamese网络,它每次接收两个句子,并使用BERT模型将它们转换为标记级别的嵌入。然后,它对每组嵌入应用汇聚层以生成句子嵌入。在本文中,我们将使用SBERT进行句子嵌入。 Elasticsearch是什么? Elasticsearch是一个开源的搜索和分析引擎,具有强大的实时处理能力、高度可扩展性,并专为处理大规模数据而设计。它基于Apache Lucene库开发,提供全文搜索功能。Elasticsearch具有高度可扩展性,因为它提供了一个高度分布式的网络,可以跨多个节点进行扩展,提供高可用性和容错性。它还提供了一个灵活而强大的RESTful API,允许使用HTTP请求与搜索引擎进行交互。它支持各种编程语言,并提供客户端库以便于应用程序集成。 如何使用BERT和Elasticsearch创建聊天机器人? 本文将教我们如何使用预训练的BERT和Elasticsearch创建FAQ聊天机器人。 步骤1)安装SBERT库 #安装sentence…
Leave a Comment介绍 深入了解Transformer模型的好方法是学习注意机制。在这方面,特别是在学习其他类型的注意机制之前学习多头注意力也是一个不错的选择。这是因为这个概念往往比较容易理解。 注意机制可以被视为可以添加到常规深度学习模型中的神经网络层。其目的是使模型专注于使用分配的权重来关注输入的特定部分,从而权衡它们的价值。我们将进一步详细了解注意机制,使用多头注意力机制。 学习目标 注意机制的概念 多头注意力的含义 Transformer中多头注意力的架构 其他类型的注意机制简介 本文是数据科学博客马拉松的一部分。 了解注意机制 我们可以从人类心理学的角度开始看这个概念。在心理学中,注意力是集中意识在某些事件上,以便排除其他刺激的影响。这意味着即使有其他干扰,我们仍然会专注于我们选择的事物。注意力有选择地集中在整体的一个离散部分。 这个概念是Transformer中使用的。它们能够集中精力关注其输入的目标部分,并忽略其余部分。这可以使它们以非常有效的方式行动。 什么是多头注意力? 多头注意力是Transformer中的一个中心机制,类似于ResNet50架构中的跳跃连接。有时需要关注序列中的多个其他点。使用找到整体平均值的方法将不会使权重分布,因此不会给予多样化的值作为权重,这就引出了创建多个独立的注意机制以形成多个注意力机制的扩展的想法。现在的实现在单个特征上呈现多个不同的查询-键-值三元组。 来源:Pngwing.com 计算是这样进行的,注意模块在多次迭代中执行,组织成称为注意头的并行层。每个独立的头独立处理输入序列和相关输出序列元素。每个头部的累积分数然后组合以获得最终的注意分数,其中包含输入序列的每个细节。 数学表达式 具体而言,如果我们有一个关键字和一个值矩阵,我们可以将值转换为ℎ个子查询,子关键字和子值,这些将独立地通过注意力传递。连接将给出一个头,并使用最终的权重矩阵将它们组合起来。 可学习的参数是分配给各个头部的注意力中的值,其中各种参数称为多头注意力层。下面的图示说明了这个过程。 让我们简要地看一下这些变量。其中X的值是单词嵌入矩阵的连接。 矩阵解释 查询:它是一个特征向量,提供有关序列中目标的洞察力。它在序列上提出请求,需要关注哪些部分。 关键字:这是描述元素中包含的内容的特征向量。它突出显示提供元素的身份,并通过查询提供注意力。 值:处理输入序列,每个输入元素使用一个值来知道提供平均值的内容。 评分函数:创建评分函数时,我们将查询和关键字指定为其输出的权重,称为查询-关键字对。…
Leave a Comment介绍 领先的零售公司Target扩大了其在巴西的电子商务业务以迎合不断增长的在线购物趋势。为了在这个竞争激烈的市场上取得成功,Target必须了解巴西电子商务的动态,并利用数据驱动的洞见来提升其业务。本文将使用结构化查询语言(SQL)动力查询分析Target的电子商务数据集,为改善其在巴西的业务提供可行建议。 学习目标 通过分析Target的电子商务数据集,掌握SQL的熟练程度。 学习如何使用SQL查询对数据集进行初始探索,包括数据清洗和准备。 了解如何使用SQL查询分析和解释巴西的电子商务趋势。 发展识别和分析电子商务数据中季节性模式的技能。 通过SQL分析学习提取有关客户购买模式和偏好的有价值见解。 发展基于数据的建议能力,针对数据集的SQL分析提供可行的见解,以改善电子商务业务。 阅读更多: SQL for Data Science Beginners ! 本文是Data Science Blogathon的一部分。 数据集的初始探索 在深入分析之前,我们对Target的电子商务数据集进行了初始探索。这包括检查数据、清洗数据并为分析做好准备。我们使用以下SQL查询在BigQuery中验证了“客户”表的列数据类型: SELECT column_name, data_type FROM…
Leave a Comment