NeuralDB:CPU友好的可微调检索引擎

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

老铁们,今天咱们来聊聊 NeuralDB,这可是由 ThirdAI 开发的一款相当实用的 CPU 友好的检索引擎。说白了,这东西就是为了解决高效检索的问题,尤其是在硬件资源有限的情况下。接下来,我会带你们看看如何初始化、插入文档、获取文档以及进行微调。让我们先从背景介绍开始。

技术背景介绍

NeuralDB 是 ThirdAI 开发的检索引擎,它最大的亮点就是在 CPU 上也能高效运行,并且支持微调。对于那些不想依赖GPU的项目来说,这波操作可以说是相当丝滑。无论你是从头开始还是从检查点加载模型,NeuralDB 都能提供灵活的初始化方式。

原理深度解析

NeuralDB 支持两种初始化方式:从头构建和从检查点加载。初始化时,你可以选择提供 THIRDAI_KEY 环境变量来管理 API 密钥。这些密钥可以从 这里 获取。

代码示例

from langchain.retrievers import NeuralDBRetriever

# 从头开始
retriever = NeuralDBRetriever.from_scratch(thirdai_key="your-thirdai-key")

# 从检查点加载
retriever = NeuralDBRetriever.from_checkpoint(
    checkpoint="/path/to/checkpoint.ndb",
    thirdai_key="your-thirdai-key",
)

实战代码演示

让我们动手试试如何插入文档。NeuralDB 支持直接插入包括 PDF、DOCX、CSV 等多种格式的文件。插入时还有两种模式可选:快速模式和详细训练模式。

retriever.insert(
    sources=["/path/to/doc.pdf", "/path/to/doc.docx", "/path/to/doc.csv"],
    train=True,
    fast_mode=True,
)

如果你有其他格式的文件,或者想自定义解析方式,可以使用 neural_db 对象。

from thirdai import neural_db as ndb

retriever.insert(
    sources=[
        ndb.PDF(
            "/path/to/doc.pdf",
            version="v2",
            chunk_size=100,
            metadata={"published": 2022},
        ),
        ndb.Unstructured("/path/to/deck.pptx"),
    ]
)

优化建议分享

在使用 NeuralDB 进行文档检索时,可以通过 get_relevant_documents 方法来获取相关文档,返回的可是个包含文本段落和元数据的列表。

documents = retriever.invoke("query", top_k=10)

如果想要微调 NeuralDB,让它更加符合你的业务场景,可以通过关联和调整权重来实现个性化的检索结果。

# 关联源短语和目标短语
retriever.associate(source="source phrase", target="target phrase")

# 调整文档的权重
retriever.upvote(query="how is a car manufactured", document_id=52)

补充说明和总结

为了更好地使用 NeuralDB,你还可以参考其 概念指南操作指南。说到这,我个人一直在用 NeuralDB 提供的数据处理能力,稳定又高效。

今天的技术分享就到这里,希望对大家有帮助。开发过程中遇到问题也可以在评论区交流~

—END—

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值