Skip to content Skip to footer

生成式 AI:在本地设置中使用 LlamaIndex 和 Hugging Face 解锁知识

image-20240105003053123

问题陈述

作为 GK 教师,您的目标是开发一个应用程序来回答 PDF 格式的 9 年级 GK 书籍中的问题。然而,与传统的问答形式不同,我们的目标是创造一种类似聊天机器人的体验,可以无缝地处理后续问题和澄清。

业务需求

鉴于预算限制,学校当局更喜欢提供内部法学硕士和矢量指数。他们希望避免使用OpenAI或Pinecone矢量存储等SAAS工具,并希望对基础设施进行一次性投资。LLM 应托管在本地,支持矢量索引。最初的重点是 GK 科目,但可扩展性对于未来扩展到数学、化学和物理等其他科目至关重要。

技术驱动因素

骆驼指数

LlamaIndex 通过连接到数据源并使用检索增强生成 (RAG) 增强 LLM 来拯救。这样就可以查询数据、转换数据并生成新的见解。LlamaIndex 有助于询问有关数据的问题、构建聊天机器人和创建半自治代理。

拥抱的脸

Hugging Face 是一个开源机器学习和数据科学平台,为 AI 专家和爱好者提供了一个中心。它有助于构建、部署和训练机器学习模型。创建自定义 AI 模型的能力是 Hugging Face 的一个关键功能。

Torch 和 Python v3.11

Torch 包具有多维张量和数学运算,对 LLM 模型至关重要。Python v3.11 是最新的主要版本,是首选的编程语言,提供了许多新功能和优化。

诗歌

Poetry 是 Python 中用于依赖管理和打包的工具,它简化了库的声明和管理,确保了流畅的工作流程。

低级要求

法学硕士 型号: Writer/camel-5b-hf

Camel-5b 模型在包含 70,000 条指令响应记录的数据集上进行训练,证明了专门的 Writer Linguist 团队的专业知识。该模型在理解和执行基于语言的指令方面表现出色。

BAAI/bge-small-en-v1.5

FlagEmbedding 模型是 BAAI 通用嵌入的一部分,它将文本映射到低维密集向量。事实证明,该向量对于检索、分类、聚类和语义搜索等任务很有价值。

实施步骤

第 1 步:从 Hugging Face AI 注册表下载 LLM 模型

第 1 部分:从 Hugging Face AI 注册表下载 LLM 模型,开始旅程。

image-20240105003115262

第 2 部分:

image-20240105003138745

第 2 步:使用 9 类 GK PDF 文件训练 LLM 模型

将 PDF 格式的第 9 类 GK 书放在位置下方。利用 使用本地存储中的 PDF 文件训练 LLM 模型。此过程在内部使用 Torch 插件在 .bin 扩展名中训练 LLM 模型。检索增强生成 (RAG) 用于使用嵌入模型将文本转换为矢量。将使用包从 .pdf 文件中提取文本,并提供在本地存储和本地存储之间创建桥梁。

image-20240105003542554

image-20240105003623804

image-20240105003659475

步骤 3:创建 ServiceContext 容器

创建一个容器,一个用于 LlamaIndex 索引和查询类的实用程序容器。此容器包含通常用于配置每个索引和查询的对象,例如 LLM、PromptHelper(用于配置输入大小/块大小)、BaseEmbedding(用于配置嵌入模型)等。ServiceContext

初始化 LlamaIndex 查询引擎,这是一个通用接口,允许您询问有关数据的问题。查询引擎接受自然语言查询并返回丰富的响应,通常通过检索器基于一个或多个索引构建。您可以编写多个查询引擎以获得高级功能。

image-20240105003350368

执行 QnA

最后,使用以下命令执行 QnA 系统:

poetry install
poetry run llm

image-20240105003215973

结果

结论

总之,这篇博文概述了在本地设置中使用 LlamaIndex 和 Hugging Face 实现强大的 LLM 的步骤。该解决方案不仅满足了回答 9 年级 GK 书籍中问题的迫切需求,还为未来其他科目的可扩展性奠定了基础。通过结合 LlamaIndex 和 Hugging Face 的优势,您不仅可以创建教育工具,还可以为交互式和引人入胜的学习体验解锁一个充满可能性的世界。