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

43 阅读2分钟

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

引言

NeuralDB 是由 ThirdAI 开发的一个高效的检索引擎,它不仅适合 CPU 环境,还可以进行微调以适应特定需求。本文将深入探讨如何初始化、使用和微调 NeuralDB,以实现有效的文档检索。

主要内容

初始化

NeuralDB 提供两种初始化方式:

  • **从零开始:**使用基本模型初始化。
  • **从检查点:**加载之前保存的模型。

API 密钥可以通过 ThirdAI 官网 获取。如果设置了 THIRDAI_KEY 环境变量,可以省略 thirdai_key 参数。

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 支持插入多种格式的文档,并可选择进行无监督的预训练。

# 使用API代理服务提高访问稳定性
retriever.insert(
    sources=["/path/to/doc.pdf", "/path/to/doc.docx", "/path/to/doc.csv"],
    train=True,
    fast_mode=True
)

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")
    ]
)

检索文档

使用 get_relevant_documents 方法可以从索引的文件中检索相关文档。

# 使用API代理服务提高访问稳定性
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)

常见问题和解决方案

  • **API访问不稳定:**由于网络限制,建议使用API代理服务来提高访问的稳定性。
  • **文档解析错误:**确保文档格式正确并使用适当的解析方法。

总结和进一步学习资源

NeuralDB 是一个灵活而强大的检索工具,可以通过精细化配置和微调来满足不同的需求。为了更深入地了解其功能,建议参考以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---