Visualized_BGE 安装—多模态嵌入技术
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
不需要安装
xformer
和apex
。它们对于推理来说不是必需的,而且经常会引起问题。
测试是否安装成功:
pip show visual-bge
模型权重下载(需要进入Huggingface): https://huggingface.co/BAAI/bge-visualized/tree/main
BAAI/bge-base-en-v1.5
和BAAI/bge-m3
:
代码测试:
import torch
import sys
sys.path.append(r"C:\develop\embedding_model\FlagEmbedding\research\visual_bge")
from visual_bge.modeling import Visualized_BGEfrom 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.001380020.07065583 0.06659478 -0.01240912 -0.01269229]
向量范数: 0.9999999403953552=== 多模态嵌入向量信息 ===
向量维度: 768
向量示例 (前10个元素): [ 0.02968878 -0.02825661 0.00627523 0.00380471 0.00708466 -0.003413140.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