来源:互联网 更新时间:2026-08-27 14:01
,未强制添加模板化小标题。 ---
ColPali 本质上是一个“看一眼就懂”的多模态检索器——它直接对图像进行处理,完全跳过 OCR 这一步。这意味着什么?意味着你不再需要费劲地把 PDF 里的文字先识别出来,再去建索引;整页 PDF 就是一张图,ColPali 端到端地理解它。

有了索引之后,生成部分就交给 Qwen2-VL-7B 来搞定。整个过程就像搭积木——检索器负责定位“哪一页有答案”,视觉语言模型负责把答案读出来。
先看看如何把 PDF 转成图片。这一步很关键,因为后面要用图像去匹配和检索。
from pdf2image import convert_from_path
images = convert_from_path("/content/climate_youth_magazine.pdf")
images[5]
byaldi 是 answer.ai 开源的封装工具,有了它,ColPali 用起来就顺手多了。
from byaldi import RAGMultiModalModel
RAG = RAGMultiModalModel.from_pretrained("vidore/colpali")
接下来建立索引,只需要指定 PDF 路径和索引名称即可。
RAG.index(
input_path="/content/climate_youth_magazine.pdf",
index_name="image_index", # index will be sa ved at index_root/index_name/
store_collection_with_index=False,
overwrite=True
)
索引建好之后,就可以直接搜索了。比如问一句:“全球气温到底变了多少?”
text_query = "How much did the world temperature change so far?"
results = RAG.search(text_query, k=1)
results
返回的结果直接定位到第6页——正是上面展示的那张 PDF 页面。
[{'doc_id': 0, 'page_num': 6, 'score': 17.25, 'metadata': {}, 'base64': None}]
现在把 Qwen2-VL-7B 模型接进来,搭起完整的 RAG 管道。
from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
import torch
model = Qwen2VLForConditionalGeneration.from_pretrained("Qwen/Qwen2-VL-2B-Instruct",
trust_remote_code=True, torch_dtype=torch.bfloat16).cuda().eval()
processor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-2B-Instruct", trust_remote_code=True)
image_index = results[0]["page_num"] - 1
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": images[image_index],
},
{"type": "text", "text": text_query},
],
}
]
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
inputs = inputs.to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=50)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
最后输出答案——模型准确地给出了温度变化数值。
print(output_text)
["The Earth's a verage global temperature has increased by around 1.1°C since the late 19th century, according to the information provided in the image."]答案正确!
整个流程跑下来,你会发现多模态 RAG 并没有想象中那么复杂。核心就两步:用 ColPali 找到包含答案的页面,再用视觉语言模型把答案“读”出来。这种方式对包含图表、复杂排版的文档尤其友好——毕竟,有些信息用 OCR 根本抓不住。
说到底,能直接“看图说话”的检索,才是真正意义上的多模态 RAG。
腾讯ima怎么把微信内容一键导入知识库?
腾讯ima怎么创建共享知识库?
Celestia价格预测2026-2032:TIA币能否引领山寨币上涨行情?历史价格回顾
比特币(BTC)核心周期指标复刻历史走势 价格或跌破5.8万美元关键支撑位
比特币 2025 年价格预测:BTC 的未来走势
WorkBuddy微信版怎么获得积分?
5000元起的鼠标哪个最值得入手?
新浪人工智能热点小时报丨2026年07月30日18时_今日实时人工智能热点速递
车载冰箱重置到出厂设置几步?
SPX6900(SPX)币是什么?SPX币价格走势分析及未来展望
腾讯ima知识库怎么分类管理?
短剧《史上最强洪荒修为》剧情介绍
海尔消毒柜自动消毒如何中止
博世壁挂炉关闭暖气怎么操作
男生高性价比充电头?
管线机怎么接云米净水器
kimi提示词专家使用方法新手指南
5000-6000元鼠标有什么推荐?
WorkBuddy积分怎么获得?
Windy卫星云图怎么看?云层变化识别技巧
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc