
txtai 教程系列(45 部分系列)
文章平均质量分 86
本教程系列将涵盖txtai的主要用例,txtai 是一个开源平台,用于由语言模型提供支持的语义搜索和工作流。系列中的每一部分都有对应的笔记本,可以完整再现每篇文章。
Q shen
分享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
45-----自定义您自己的嵌入数据库
txtai 支持多种不同的数据库和矢量索引后端,包括外部数据库。使用现代硬件,单个节点索引可以带我们走多远是惊人的。轻松进入数亿甚至数十亿条记录。txtai 在创建您自己的嵌入数据库方面提供了最大的灵活性。开箱即用的合理默认值。因此,除非您寻找这种配置,否则没有必要。本文将探讨当您确实想要自定义嵌入数据库时可用的选项。可以在此处找到有关嵌入配置设置的更多信息。安装依赖安装txtai和所有依赖项。原创 2023-05-09 01:14:01 · 100 阅读 · 0 评论 -
44----提示模板和任务链
txtai 长期以来一直支持工作流。工作流将机器学习模型的输入和输出连接在一起,以创建强大的转换和处理功能。最近对“模型提示”的兴趣激增,这是构建任务的自然语言描述并将其传递给大型语言模型 (LLM) 的过程。txtai 最近改进了对任务模板的支持,它从一组参数构建字符串输出。本文演示了如何使用 txtai 工作流来应用提示模板并将这些任务链接在一起。安装依赖安装txtai和所有依赖项。原创 2023-05-09 01:11:43 · 165 阅读 · 0 评论 -
43----云中的嵌入
嵌入是提供语义搜索的引擎。数据被转换为嵌入向量,相似的概念会产生相似的向量。大大小小的索引都是用这些向量构建的。索引用于查找具有相同含义的结果,不一定是相同的关键字。除了本地存储,嵌入可以与云存储同步。鉴于 txtai 是一种完全封装的索引格式,云同步只是将一组文件移入和移出云存储的问题。这可以是对象存储,例如 AWS S3/Azure Blob/Google Cloud 或Hugging Face Hub。有关可用选项的更多详细信息,请参阅文档。还有一篇文章介绍了如何在云对象存储中构建和存储索引。原创 2023-05-09 01:10:08 · 132 阅读 · 0 评论 -
42----法学硕士的提示驱动搜索
本文重新审视了 Extractor 管道,它已在许多以前的笔记本中介绍过。该管道是构建问题上下文的相似性实例(嵌入或相似性管道)和回答问题的模型的组合。Extractor 管道最近进行了一些重大升级以支持以下内容。能够运行嵌入搜索。如果支持内容,则可以从嵌入实例中检索文本。除了提取 qa,还支持文本生成模型、序列到序列模型和自定义管道这些更改支持使用大型语言模型 (LLM) 进行嵌入引导和提示驱动的搜索 🔥🔥🔥安装依赖安装txtai和所有依赖项。原创 2023-05-09 01:09:44 · 100 阅读 · 0 评论 -
41-----从头开始训练语言模型
txtai 有一个强大的训练管道,可以为下游任务(如标记文本)微调大型语言模型(LLM)。txtai 还具有从头开始训练语言模型的能力。绝大多数时候,微调 LLM 会产生最好的结果。但是当对模型的结构进行重大更改时,通常需要从头开始训练。重大变化的例子是:改变词汇量更改隐藏维度的数量更改注意力头或层数本文将展示如何构建一个新的分词器并从头开始训练一个小型语言模型(称为微模型)。安装依赖安装txtai和所有依赖项。原创 2023-05-09 01:08:52 · 247 阅读 · 0 评论 -
40----文本到语音生成
文本转语音 (TTS) 模型在过去几年中在质量方面取得了长足进步。不幸的是,目前无法在不安装大量依赖项的情况下使用这些库。txtai TextToSpeech 管道具有以下目标:CPU 和 GPU 上的快速性能能够批量处理大文本值并通过模型流式传输最小的安装足迹所有依赖项必须兼容 Apache 2.0本文将介绍一组文本到语音生成示例。安装依赖安装txtai和所有依赖项。原创 2023-05-09 01:07:53 · 199 阅读 · 0 评论 -
39----BM25 的经典主题建模
txtai 5.0 通过语义图引入主题建模。语义图可以很容易地集成到嵌入实例中,以将主题建模添加到 txtai 索引中。除了 transformers 支持的模型,txtai 还支持传统的索引方法。鉴于txtai的模块化设计,传统的评分方法如BM25可以结合图来构建主题模型。这篇文章都是 CPU 上的经典 Python 代码。无需 GPU 或机器学习模型!安装依赖安装txtai和所有依赖项。原创 2023-05-09 01:06:29 · 158 阅读 · 0 评论 -
38----引入语义图
txtai 的主要用例之一是对数据语料库进行语义搜索。语义搜索提供对自然语言的理解,并识别具有相同含义但不一定是相同关键字的结果。在 Embeddings 实例中包含大量隐含的知识和行之间的关系。许多近似最近邻 (ANN) 索引甚至有图表支持。如果我们能够利用这些知识呢?语义图,也称为知识图谱或语义网络,构建了一个以语义关系连接节点的图网络。在 txtai 中,他们可以利用嵌入索引中固有的学习关系。这为探索关系打开了令人兴奋的可能性,例如数据集中的主题和互连。本文介绍了语义图。安装依赖。原创 2023-05-09 01:04:17 · 184 阅读 · 0 评论 -
37----嵌入索引组件
txtai的主要组成部分是embeddings、pipeline和workflow。api下面显示了 txtai 源代码树的顶层视图。annapidatabaseembeddingspipelinescoringvectorsworkflow有人可能会问,为什么ann, database,scoring和vectors顶级包 而不是embeddings包下?该embeddings包提供了这些组件之间的粘合剂,使一切都易于使用。原创 2023-05-08 12:48:51 · 106 阅读 · 0 评论 -
36-----在本机代码中运行 txtai
txtai 目前有两种主要的执行方法:Python 或通过 HTTP API。有针对JavaScript、Java、Rust和Go的 API 绑定。本文介绍了一种使用Python C API将 txtai 作为本机可执行文件的一部分运行的方法。我们将在 C 中运行一个示例,甚至从汇编代码中调用 txtai!在深入本文之前,有必要强调通过 HTTP API 连接到 txtai 具有许多主要优势。这包括与 Python 的解耦、将 txtai 卸载到不同机器的能力以及使用云计算进行扩展。原创 2023-05-08 12:47:16 · 102 阅读 · 0 评论 -
35-----图片胜一千字
截至 2022 年 6 月,最热门的🔥型号之一是DALL-E mini。如此处、此处和此处所示,有许多使用此模型的项目和示例。甚至有主流新闻文章报道过这种模式。本文介绍了构建网页摘要然后生成该摘要图像的工作流程。虽然文本到图像模型有许多潜在用例,但此示例侧重于展示工作流程的强大功能,并提供有关 DALL-E mini 如何“看”世界的有趣见解。安装依赖安装txtai和所有依赖项。原创 2023-05-08 12:47:15 · 111 阅读 · 0 评论 -
34----建立质量保证数据库
对话式人工智能是一个不断发展的领域,有可能使大部分客户服务行业实现自动化。完全自动化还有很长的路要走(我们中的大多数人一直在与自动代理通话,只是想联系一个人)但它肯定可以成为人工干预之前坚实的第一道防线。本文介绍了使用 txtai 嵌入实例回答用户问题的过程。它不是对话式人工智能,而是寻找与用户问题最接近的现有问题。这在有常见问题列表的情况下很有用。安装依赖安装txtai和所有依赖项。加载数据集我们将在此示例中使用网络问题的 Hugging Face 数据集。数据集有一个问题和答案列表。原创 2023-05-08 12:45:36 · 96 阅读 · 0 评论 -
33---查询翻译
txtai 支持两种主要类型的查询:自然语言语句和 SQL 语句。自然语言查询处理类似查询的搜索引擎。SQL 语句支持更复杂的过滤、排序和列选择。查询翻译弥合了两者之间的差距,并支持对自然语言查询进行过滤。例如,查询:成为安装依赖安装txtai和所有依赖项。创建索引让我们首先回顾一下如何创建索引。我们将使用经典的 txtai 示例。原创 2023-05-08 12:45:38 · 95 阅读 · 0 评论 -
32------模型可解释性
基于神经/变形金刚的方法最近取得了惊人的进步。但是很难理解模型是如何做出决策的。这在使用模型来推动关键决策的敏感领域尤为重要。本文将介绍如何获得对复杂自然语言模型输出的一定程度的理解。安装依赖安装txtai和所有依赖项。语义搜索我们将介绍的第一个示例是语义搜索。语义搜索应用程序了解自然语言并识别具有相同含义的结果,不一定是相同的关键字。虽然这会产生更高质量的结果,但关键字搜索的一个优势是很容易理解为什么选择一个结果。关键字在那里。让我们看看是否可以更好地理解语义搜索输出。原创 2023-05-08 12:44:18 · 89 阅读 · 0 评论 -
31-----近似重复图像检测
本文将概述如何使用感知图像哈希来检测重复和接近重复的图像。安装依赖安装txtai和所有依赖项。!生成哈希下面的示例为图像列表生成感知图像哈希。原创 2023-05-08 12:43:34 · 271 阅读 · 0 评论 -
30----嵌入 SQL 自定义函数
txtai 4.0 添加了对基于 SQL 的嵌入查询的支持。此功能将自然语言查询与具体过滤规则相结合。txtai现在支持用户自定义的SQL函数,使这个功能更加强大。安装依赖安装txtai和所有依赖项。创建索引让我们首先回顾一下如何创建索引。我们将使用经典的 txtai 示例。原创 2023-05-08 12:43:37 · 79 阅读 · 0 评论 -
29----txtai 索引剖析
本文检查了 txtai 嵌入索引的文件系统并给出了结构的概述。安装依赖安装txtai和所有依赖项。创建索引让我们首先创建一个索引来检查。我们将使用经典的 txtai 示例。原创 2023-05-08 12:42:01 · 156 阅读 · 0 评论 -
28-----使用工作流推送通知
工作流是一种简单但功能强大的构造,它接受可调用元素并返回元素。他们正在流式传输并批量处理数据,从而可以高效地处理大量数据。本文将展示如何使用工作流在某些事件触发时推送通知。使用此方法,可以创建内容的活动提要。安装依赖安装txtai和所有依赖项。创建工作流通知操作工作流运行一系列任务来转换和处理数据。此部分创建可用作工作流操作的可调用对象。下面的操作将事件推送到Slack。虽然这里使用了 Slack,但任何通知服务都可以很容易地替换为(Zapier、IFTT等)。原创 2023-05-08 12:40:39 · 278 阅读 · 0 评论 -
27---工作流调度
工作流是一种简单但功能强大的构造,它接受可调用元素并返回元素。他们正在流式传输并批量处理数据,从而可以高效地处理大量数据。使用流数据时,工作流会持续运行,直到数据流耗尽。工作流也可以安排运行。在这种情况下,一组静态元素会动态扩展。例如,返回项目的 API 服务端点,或轮询包含进出文件的目录。本文将介绍如何在 txtai 中使用工作流调度。安装依赖安装txtai和所有依赖项。创建工作流操作工作流运行一系列任务来转换和处理数据。此部分创建可用作工作流操作的可调用对象。原创 2023-05-07 12:02:09 · 173 阅读 · 0 评论 -
26------实体提取工作流
实体提取是在非结构化文本中识别名称、位置、组织和其他类似实体的标记的过程。实体提取可以将数据组织成主题和/或提供下游机器学习管道。此笔记本将展示如何在 txtai 中使用实体提取管道和工作流。安装依赖安装txtai和所有依赖项。提取实体让我们开始吧!以下示例创建一个实体管道并从文本中提取实体。[]上面的部分正在为数据中的每一行运行一个实体提取管道。输出是标识为实体一部分的标记、实体类型和预测中的分数或置信度。将实体馈送到工作流。原创 2023-05-07 12:01:24 · 150 阅读 · 0 评论 -
25----生成图像说明并检测对象
顾名思义,txtai 适用于文本和 ai,非常简单。但这并不意味着它不能处理不同类型的内容。例如,图像可以用文字来描述。我们可以使用该描述将图像与查询或其他文档进行比较。此笔记本展示了如何将图像和文本嵌入同一空间以生成图像说明和检测对象。安装依赖安装txtai和所有依赖项。我们将安装 api、pipeline 和 workflow 可选的附加包,以及数据集包。原创 2023-05-07 11:59:59 · 92 阅读 · 0 评论 -
24----txtai 4.0 中的新功能
txtai 4.0 带来了许多主要的功能增强,最重要的是能够在 txtai 中存储完整的文档内容和文本。本文将通过示例涵盖所有更改。安装依赖安装txtai和所有依赖项。内容存储到目前为止,使用 txtai,一旦文本被矢量化,就无法再追溯到输入文本。仅存储文档 ID 和向量。结果由 ID 和分数组成。开发人员有责任解决与外部数据存储的匹配问题。txtai 4.0 带来了重大的范式转变。内容现在可以与嵌入向量一起存储。这为 txtai 开启了许多激动人心的可能性!原创 2023-05-07 11:59:30 · 176 阅读 · 0 评论 -
23-----张量工作流程
txtai 的许多示例和用例都侧重于转换文本。有道理,因为 txt 甚至在名称中!但这并不意味着 txtai 只适用于文本。本文将介绍如何使用 txtai 工作流高效处理张量的示例。安装依赖安装txtai和所有依赖项。我们将安装 api、pipeline 和 workflow 可选的附加包,以及数据集包转换大型张量数组第一部分尝试对非常大的内存映射数组 (2,000,000 x 1024) 应用简单的转换。原创 2023-05-07 11:57:19 · 85 阅读 · 0 评论 -
22-----使用可组合的工作流程转换表格数据
txtai 支持处理非结构化和结构化数据。结构化或表格数据被分组为行和列。这可以是电子表格、返回 JSON 或 XML 的 API 调用,甚至是键值对列表。本文将通过示例介绍如何使用带有表格管道的工作流来转换和索引结构化数据。安装依赖安装txtai和所有依赖项。我们将安装 api、pipeline 和 workflow 可选的附加包。CSV 工作流程第一个示例将转换和索引 CSV 文件。COVID-19 开放研究数据集( CORD-19) 是涵盖 COVID-19 的医学文章库。原创 2023-05-07 11:56:37 · 168 阅读 · 0 评论 -
21----导出并运行其他机器学习模型
txtai 主要支持Hugging Face Transformers和ONNX模型。这使 txtai 能够连接到 Python 中可用的丰富模型框架,通过 API 将此功能导出到其他语言(JavaScript、Java、Go、Rust),甚至使用 ONNX 导出和本地加载模型。其他机器学习框架呢?假设我们有一个经过良好调整的现有 TF-IDF + Logistic 回归模型。这个模型能不能导出到ONNX,用在txtai中做标注和相似度查询?或者简单的 PyTorch 文本分类器怎么样?原创 2023-05-07 11:55:50 · 187 阅读 · 0 评论 -
20-----提取 QA 以构建结构化数据
20传统的 ETL/数据解析系统建立规则来提取感兴趣的信息。正则表达式、字符串解析和类似的方法定义了固定的规则。这在很多情况下都有效,但如果您处理的是包含大量变体的非结构化数据怎么办?随着时间的推移,这些规则可能会很麻烦并且难以维护。该笔记本使用机器学习和提取式问答 (QA) 来利用大型语言模型中内置的大量知识。这些模型已经在非常大的数据集上进行了训练,学习了自然语言的多种变体。安装依赖安装txtai和所有依赖项。使用少样本学习训练 QA 模型。原创 2023-05-07 11:55:44 · 290 阅读 · 0 评论 -
19-----训练 QA 模型
Hugging Face Model Hub拥有范围广泛的模型,可以处理许多任务。虽然这些模型表现良好,但通常在使用特定于任务的数据微调模型时会发现最佳性能。Hugging Face 提供了许多功能齐全的示例来帮助训练特定于任务的模型。从命令行构建模型时,这些脚本是开始的好方法。txtai 提供了一个训练管道,可用于使用 Transformers Trainer 框架以编程方式训练新模型。此示例训练一个小型 QA 模型,然后使用几个新示例(小样本学习)进一步对其进行微调。安装依赖。原创 2023-05-07 11:54:48 · 301 阅读 · 0 评论 -
18---使用 ONNX 导出和运行模型
ONNX运行时为机器学习模型提供了一种通用的序列化格式。ONNX 支持多种不同的平台/语言,并具有有助于减少推理时间的内置功能。PyTorch 对将 Torch 模型导出到 ONNX 具有强大的支持。这使得可以将 Hugging Face Transformer 和/或其他下游模型直接导出到 ONNX。ONNX 开辟了一条使用多种语言和平台进行直接推理的途径。例如,模型可以直接在 Android 上运行以限制发送到第三方服务的数据。ONNX 是一个令人兴奋的发展,充满希望。原创 2023-05-07 11:52:37 · 400 阅读 · 0 评论 -
17---没有标签的训练
几乎所有可用的数据都没有标记。标记数据需要人工审查和/或需要时间来收集。零样本分类采用现有的大型语言模型,并在候选文本和标签列表之间进行相似性比较。这已被证明表现出奇的好。零样本分类器的问题在于它们需要大量参数 (400M+) 才能很好地应对一般任务,这对硬件要求很高。本文探索使用零样本分类器为较小的模型构建训练数据。一种简单的知识蒸馏形式。安装依赖安装txtai和所有依赖项。将零样本分类器应用于未标记的文本。原创 2023-05-06 13:28:59 · 293 阅读 · 0 评论 -
16-----训练文本标注器
Hugging Face Model Hub拥有范围广泛的模型,可以处理许多任务。虽然这些模型表现良好,但通常在使用特定于任务的数据微调模型时会发现最佳性能。Hugging Face 提供了许多功能齐全的示例,可用于帮助训练特定于任务的模型。从命令行构建模型时,这些脚本是开始的好方法。txtai 提供了一个训练管道,可用于使用 Transformers Trainer 框架以编程方式训练新模型。培训管道支持以下内容:无需输出目录即可构建瞬态模型。原创 2023-05-06 13:27:29 · 149 阅读 · 0 评论 -
15-----分布式嵌入集群
txtai API 是由FastAPI支持的基于 Web 的服务。所有 txtai 功能都可以通过 API 获得。API 还可以将多个嵌入索引聚集到一个逻辑索引中,以在多个节点上水平扩展。本文安装了 txtai API 并展示了构建嵌入集群的示例。安装依赖安装txtai和所有依赖项。由于本文使用了API,所以我们需要安装api extras包。启动分布式嵌入集群首先,我们将启动多个 API 实例,它们将用作嵌入索引分片。每个分片存储索引数据的一个子集,这些分片协同工作以形成单个逻辑索引。原创 2023-05-06 13:27:31 · 129 阅读 · 0 评论 -
14----运行管道工作流程
txtai 通过其管道框架提供了越来越多的模型列表。管道包装机器学习模型并转换数据。目前,管道可以包装 Hugging Face 模型、Hugging Face 管道或 PyTorch 模型(对 TensorFlow 的支持在待办事项中)。以下是当前实施的管道列表。问题- 使用文本上下文回答问题标签- 使用零样本分类模型将标签应用于文本。还支持相似度比较。摘要- 抽象文本摘要Textractor - 从文档中提取文本转录- 将音频转录为文本翻译- 机器翻译。原创 2023-05-06 13:26:27 · 98 阅读 · 0 评论 -
13------图像相似性搜索
顾名思义,txtai 适用于文本和 ai,非常简单。但这并不意味着它不能处理不同类型的内容。例如,图像可以用文字来描述。我们可以使用该描述将图像与查询或其他文档进行比较。此笔记本展示了如何将图像和文本嵌入同一空间以支持相似性搜索。安装依赖安装txtai和所有依赖项。由于本文直接使用了sentence-transformers,所以我们需要安装similarity extras包。原创 2023-05-06 13:25:24 · 114 阅读 · 0 评论 -
12-----在不同语言之间翻译文本
本文介绍了 Hugging Face 模型支持的机器翻译。通过云服务的机器翻译质量已经取得了长足的进步,并产生了高质量的结果。本文展示了 Hugging Face 的模型如何为开发人员提供本地机器翻译的合理替代方案。安装依赖安装txtai和所有依赖项。由于本文使用的是可选管道,因此我们需要安装管道附加包。创建一个翻译实例Translation 实例是在语言之间翻译文本的主要入口点。管道将翻译文本抽象为一行调用!原创 2023-05-06 13:23:51 · 185 阅读 · 0 评论 -
txtai 教程系列 11----将音频转录为文本
本文介绍了使用 Hugging Face 提供的模型将音频文件转录为文本。安装依赖安装txtai和所有依赖项。由于本文使用的是可选管道,因此我们需要安装管道附加包。我们还将演示如何通过 API 运行此管道。原创 2023-05-06 13:23:38 · 163 阅读 · 0 评论 -
txtai 教程系列 10----从文档中提取文本
安装依赖安装txtai和所有依赖项。由于本文使用的是可选管道,因此我们需要安装管道附加包。原创 2023-05-06 13:22:29 · 277 阅读 · 0 评论 -
txtai 教程系列 9----构建抽象文本摘要
在文本摘要领域,有两个主要的摘要类别,提取摘要和抽象摘要。提取式摘要采用文本的小节并将它们连接在一起以形成摘要。这通常由 TextRank 等图形算法支持,以查找具有最共性的部分/句子。这些摘要可能非常有效,但它们无法转换文本并且没有上下文理解。抽象摘要使用自然语言处理 (NLP) 模型来构建文本的转换摘要。这类似于让人阅读一篇文章并询问它是关于什么的。人类不会只是对文本进行冗长的阅读。本文展示了如何使用抽象摘要管道对文本块进行摘要。安装依赖安装txtai和所有依赖项。原创 2023-05-06 13:20:46 · 159 阅读 · 0 评论 -
txtai 教程系列 8-----txtai API图库
txtai API 是由FastAPI支持的基于 Web 的服务。所有 txtai 功能,包括相似性搜索、提取 QA 和零样本标记,都可以通过 API 获得。本文安装 txtai API 并展示了一个使用 txtai 支持的每种语言绑定的示例。安装依赖安装txtai和所有依赖项。由于本文使用了API,所以我们需要安装api extras包。Python我们将尝试的第一种方法是通过 Python 直接访问。我们将为此处的所有示例使用零样本标记。有关零样本分类的更多详细信息,请参阅本文。原创 2023-05-06 13:19:36 · 232 阅读 · 0 评论 -
txtai 教程系列 7-----应用具有零样本分类的标签
本文展示了如何使用零样本分类来执行文本分类、标记和主题建模。txtai 围绕 Hugging Face Transformers 中的零镜头分类管道提供了一个轻量级包装器。这种方法开箱即用,效果非常好。本文中的示例使用文本片段的标签列表来选择最匹配的标签。tldrstory使用 Streamlit、FastAPI 和 Hugging Face Transformers 实现了零样本分类系统的全栈实现。安装依赖安装txtai和所有依赖项。创建标签实例。原创 2023-05-05 13:38:45 · 172 阅读 · 0 评论 -
txtai 教程系列 6----使用 Elasticsearch 提取 QA
txtai 与数据存储无关,该库分析文本集。以下示例展示了如何在 Elasticsearch 系统之上添加提取式问答。安装依赖安装txtai和Elasticsearch。原创 2023-05-05 13:37:19 · 134 阅读 · 0 评论