Visualized_BGE 安装—多模态嵌入技术

发布于:2025-06-16 ⋅ 阅读:(21) ⋅ 点赞:(0)

github链接:FlagEmbedding/research/visual_bge/README.md at master · FlagOpen/FlagEmbedding

一.安装和环境配置

Install FlagEmbedding:

你需要在你的虚拟环境下进行安装

git clone https://github.com/FlagOpen/FlagEmbedding.git
cd FlagEmbedding/research/visual_bge
pip install -e .

Another Core Packages:

pip install torchvision timm einops ftfy

不需要安装xformerapex。它们对于推理来说不是必需的,而且经常会引起问题。

测试是否安装成功:

pip show visual-bge

在这里插入图片描述

模型权重下载(需要进入Huggingface): https://huggingface.co/BAAI/bge-visualized/tree/main
BAAI/bge-base-en-v1.5BAAI/bge-m3
在这里插入图片描述
代码测试:

import torch
import sys
sys.path.append(r"C:\develop\embedding_model\FlagEmbedding\research\visual_bge")
from visual_bge.modeling import Visualized_BGE

from PIL import Image
import numpy as np

# 初始化编码器
model_name = "BAAI/bge-base-en-v1.5"
# 模型路径
model_path = "C:/develop/embedding_model/pth/Visualized_base_en_v1.5.pth"
model = Visualized_BGE(model_name_bge=model_name, model_weight=model_path)
model.eval()

# 定义图片路径
image_path = r"C:\Users\Charles\Desktop\RAG\python\rag-in-action-master\90-文档-Data\多模态\query_image.jpg"

# 对图片进行编码
with torch.no_grad():
    # 仅使用图片进行编码
    image_embedding = model.encode(image=image_path)
    
    # 使用图片和文本进行编码
    text = "这是一张悟空战斗示例图片"
    multimodal_embedding = model.encode(image=image_path, text=text)

# 将张量转移到CPU并转换为numpy数组
image_embedding_np = image_embedding.cpu().numpy()
multimodal_embedding_np = multimodal_embedding.cpu().numpy()

# 打印嵌入向量的信息
print("=== 图片嵌入向量信息 ===")
print(f"向量维度: {image_embedding_np.shape[1]}")
print(f"向量示例 (前10个元素): {image_embedding_np[0][:10]}")
print(f"向量范数: {np.linalg.norm(image_embedding_np[0])}")

print("\n=== 多模态嵌入向量信息 ===")
print(f"向量维度: {multimodal_embedding_np.shape[1]}")
print(f"向量示例 (前10个元素): {multimodal_embedding_np[0][:10]}")
print(f"向量范数: {np.linalg.norm(multimodal_embedding_np[0])}") 
向量维度: 768
向量示例 (10个元素): [ 0.01775759 -0.02236995  0.00477303  0.00458729  0.0211269  -0.00138002
  0.07065583  0.06659478 -0.01240912 -0.01269229]
向量范数: 0.9999999403953552

=== 多模态嵌入向量信息 ===
向量维度: 768
向量示例 (10个元素): [ 0.02968878 -0.02825661  0.00627523  0.00380471  0.00708466 -0.00341314
  0.05395057  0.06040848 -0.01760476 -0.03208005]
向量范数: 0.9999999403953552

二.ModuleNotFoundError: No module named 'visual_bge'

代码运行可能会出现:ModuleNotFoundError: No module named 'visual_bge'错误
原因是路径找不到了(应该是实习生写的这部分代码框架,乱的要死,害我整了一下午)

解决方案:

import sys
# 一定要注意这地方路径
sys.path.append(r"C:\develop\embedding_model\FlagEmbedding\research\visual_bge")
from visual_bge.modeling import Visualized_BGE

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到