Ce référentiel contient l'implémentation de MagicLens. Le code ici utilise Jax et Flax. Notez que la mise en œuvre actuelle ne prend pas encore en charge la formation. Reportez-vous au site Web pour des exemples d’ensembles de données.
Nous présentons MagicLens, une série de modèles de récupération d'images auto-supervisés qui prennent en charge les instructions ouvertes. La thèse principale de MagicLens est que les instructions textuelles peuvent permettre de récupérer des images avec des relations plus riches au-delà de la similarité visuelle. MagicLens est construit sur une idée nouvelle clé : les paires d'images qui apparaissent naturellement sur les mêmes pages Web contiennent un large éventail de relations implicites (par exemple, une vue intérieure de), et nous pouvons rendre ces relations implicites explicites en synthétisant des instructions via de grands modèles multimodaux ( LMM) et les grands modèles de langage (LLM). Formé sur 36,7 millions de triplets (image de requête, instruction, image cible) avec des relations sémantiques riches extraites du Web, MagicLens obtient des résultats comparables ou meilleurs sur huit tests de diverses tâches de récupération d'images que les méthodes de pointe (SOTA) précédentes. . Remarquablement, il surpasse le SOTA précédent, mais avec une taille de modèle 50 fois plus petite sur plusieurs benchmarks. Des analyses humaines supplémentaires sur un corpus invisible de 1,4 million d’images démontrent davantage la diversité des intentions de recherche prises en charge par MagicLens.
conda create --name magic_lens python=3.9
conda activate magic_lens
git clone https://github.com/google-research/scenic.git
cd scenic
pip install .
pip install -r scenic/projects/baselines/clip/requirements.txt
# you may need to install corresponding GPU version of jax following https://jax.readthedocs.io/en/latest/installation.html
# e.g.,
# # CUDA 12 installation
# Note: wheels only available on linux.
# pip install --upgrade "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
# # CUDA 11 installation
# Note: wheels only available on linux.
# pip install --upgrade "jax[cuda11_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
Téléchargez le modèle via :
cd .. # in main folder `magiclens`
# you may need to use `gcloud auth login` for access, any gmail account should work.
gsutil cp -R gs://gresearch/magiclens/models ./
OU via Google Drive
Veuillez suivre chaque dossier d'ensemble de données dans ./data
. Actuellement, nous avons testé avec succès FIQ, CIRCO et DTIN :
python inference.py
--model_size large
--model_path ./models/magic_lens_clip_large.pkl
--dataset circo
En raison de la conversion du poids, les performances peuvent être légèrement différentes :
Dans CIRCO
Modèle | carte@5 | carte@10 | carte@25 | carte@50 |
---|---|---|---|---|
SOTA antérieur | 26,8 | 27.6 | 30,0 | 31,0 |
Socle (d'origine) | 23.1 | 23,8 | 25,8 | 26,7 |
Base (convertie) | 22.3 | 23.2 | 25,0 | 26,0 |
Grand (original) | 29.6 | 30,8 | 33.4 | 34.4 |
Grand (converti) | 29,5 | 30,8 | 33.2 | 34.3 |
Ajoutez les détails de la citation ici, généralement un extrait BibTeX à coller :
@inproceedings{zhang2024magiclens,
title = {{M}agic{L}ens: Self-Supervised Image Retrieval with Open-Ended Instructions},
author = {Zhang, Kai and Luan, Yi and Hu, Hexiang and Lee, Kenton and Qiao, Siyuan and Chen, Wenhu and Su, Yu and Chang, Ming-Wei},
booktitle = {Proceedings of the 41st International Conference on Machine Learning},
pages = {59403--59420},
year = {2024},
editor = {Salakhutdinov, Ruslan and Kolter, Zico and Heller, Katherine and Weller, Adrian and Oliver, Nuria and Scarlett, Jonathan and Berkenkamp, Felix},
volume = {235},
series = {Proceedings of Machine Learning Research},
month = {21--27 Jul},
publisher = {PMLR},
url = {https://proceedings.mlr.press/v235/zhang24an.html}
}
Copyright 2024 DeepMind Technologies Limitée
Tous les logiciels sont sous licence Apache, version 2.0 (Apache 2.0) ; vous ne pouvez pas utiliser ce fichier sauf en conformité avec la licence Apache 2.0. Vous pouvez obtenir une copie de la licence Apache 2.0 à l'adresse : https://www.apache.org/licenses/LICENSE-2.0
Tous les autres documents sont sous licence internationale Creative Commons Attribution 4.0 (CC-BY). Vous pouvez obtenir une copie de la licence CC-BY à l'adresse : https://creativecommons.org/licenses/by/4.0/legalcode
Sauf disposition contraire de la loi applicable ou accord écrit, tous les logiciels et matériels distribués ici sous les licences Apache 2.0 ou CC-BY sont distribués « TELS QUELS », SANS GARANTIES NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez les licences pour connaître la langue spécifique régissant les autorisations et les limitations de ces licences.
Ce n'est pas un produit Google officiel.