in supporting-blog-content/building-multimodal-rag-with-elasticsearch-gotham/src/embedding_generator.py [0:0]
def _load_model(self):
"""Initialize and test the ImageBind model."""
checkpoint_path = os.path.expanduser(
"~/.cache/torch/checkpoints/imagebind_huge.pth"
)
os.makedirs(os.path.dirname(checkpoint_path), exist_ok=True)
if not os.path.exists(checkpoint_path):
print("Downloading ImageBind weights...")
download_url_to_file(
"https://dl.fbaipublicfiles.com/imagebind/imagebind_huge.pth",
checkpoint_path,
)
try:
# Check if file exists
if not os.path.exists(checkpoint_path):
raise FileNotFoundError(f"Checkpoint not found: {checkpoint_path}")
model = imagebind_model.imagebind_huge(pretrained=False)
model.load_state_dict(torch.load(checkpoint_path))
model.eval().to(self.device)
# Quick test with empty text input
logger.info("Testing model with sample input...")
test_input = data.load_and_transform_text([""], self.device)
with torch.no_grad():
_ = model({"text": test_input})
logger.info("🤖 ImageBind model initialized successfully")
return model
except Exception as e:
logger.error(f"🚨 Model initialization failed: {str(e)}")
raise