Memvid:把你的文档库变成一个小巧的视频,还能瞬间搜出你想要的!

在大模型应用里,将文本数据分块嵌入存储在向量数据库已经是标准做法。然而,传统向量数据库虽然功能强大,但其高昂的RAM和存储需求,以及复杂的部署运维,常常让开发者望而却步。今天,介绍一个名为 Memvid 的开源项目,它提出了一个有趣的思路将文本数据巧妙地“存入”视频文件,完成信息的高效检索。

这个项目能够将数百万级别的文本区块(chunks)压缩并存储在紧凑的视频文件中,同时通过配套的索引文件,实现对这些信息闪电般的语义搜索和亚秒级检索。这意味着,你不再需要依赖庞大而昂贵的数据库服务器,只需管理普通的视频文件即可。

它一次性解决传统文本存储的三大痛点:存储冗余、检索延迟和网络依赖,具备以下的显著优势:

  • 极致存储效率:利用视频压缩技术,存储空间可比传统方案节省高达10倍。
  • 闪电语义搜索:归功于预计算的语义索引和视频帧的快速跳转能力。
  • 零基建,离线优先:知识库就是视频和索引文件,易于分发,生成后即可完全离线运行。

在使用层面也比较简单,通过几行代码即可上手。

from memvid import MemvidEncoder, MemvidChat

# Create video memory from text chunks
chunks = ["Important fact 1""Important fact 2""Historical event details", ...]
encoder = MemvidEncoder()
encoder.add_chunks(chunks)
encoder.build_video("memory.mp4""memory_index.json")

# Chat with your memory
chat = MemvidChat("memory.mp4""memory_index.json")
chat.start_session()
response = chat.chat("What do you know about historical events?")
print(response)

其处理流程如下:

  1. 构建记忆

    • 首先,输入的文本(如PDF)被拆分成小的文本区块
    • 每个区块被赋予一个语义“指纹”(向量),并同时生成一个视觉标记(如QR码)。
    • 这些视觉标记被逐帧编码进MP4视频文件
    • 一个独立的索引文件会记录下每个文本区块的语义“指纹”及其在视频中的帧位置
  2. 检索信息

    • 当用户提问时,问题也被转换成一个语义“指纹”。
    • Memvid利用索引文件,迅速匹配到与问题最相似的文本区块“指纹”。
    • 根据索引提供的帧位置,它能直接从视频的对应帧中解码视觉标记,即时提取出原始文本内容。整个过程通常在亚秒级完成。

它将复杂的文本数据转化为易于管理、快速检索的视频记忆,对CPU友好,无需GPU依赖。

小结

Memvid的解决方案让人耳目一新,通过其创新的文本视觉编码与智能索引机制,提供了一种前所未有的高效、经济且便携的解决方案。目前虽然还是一个概念原型阶段,但非常值得大家尝试。

地址:https://github.com/Olow304/memvid

(文:AI工程化)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往