多模态RAG检索

ColPali和DSE解读:https://zhuanlan.zhihu.com/p/826088920

colbert模型(ColPali):在视觉encoder,也是利用多模态的视觉大模型来生成图片端的向量,但不仅仅只生成单个向量。而是利用VIT的patch embedding,来生成多个向量。直觉上确实是会有收益,因为一整页的pdf,你就压缩在一个固定维度的向量中,那肯定有信息损失,而且以patch为单位生成embedding,真的很make sensen,比文本的colbert都make sense。

img

img

实践:https://zhuanlan.zhihu.com/p/1975243477060167021

  1. 加载所有文档,使用 http://unstructured.io 等文档加载器(document loader)提取文本块、图像和表格。
  2. 如需转换,*将 HTML 表格转为 Markdown 格式* —— 这种格式对大型语言模型(LLM)通常非常有效。
  3. 将每个文本块、图像和表格传入 GPT-4o 等多模态大型语言模型(multimodal LLM),生成详细摘要。
  4. 将摘要存储到向量数据库(vector DB),将原始文档片段存储到 Redis 等文档数据库(document DB)。
  5. 通过多向量检索器(multi-vector retriever),利用统一的 document_id 关联两个数据库,明确哪个摘要对应哪个原始文档片段。
  6. 将该多向量检索系统与 GPT-4o 等多模态大型语言模型(multimodal LLM)相连。
  7. 向系统发起查询,基于与查询内容语义相似的摘要,获取包含表格和图像在内的原始文档片段,作为上下文。
  8. 多模态大型语言模型(multimodal LLM)利用上述上下文,为该问题生成响应。