46.6kЗаказать демоВойтиНачать бесплатно
OpenAI

OpenAI / clip-vit-base-patch32

Вариант мультимодальной модели CLIP, использующий архитектуру трансформера ViT-B/32 для кодирования изображений и трансформер с маской самовнушения для кодирования текста.

Введение в clip-vit-base-patch32

Модель CLIP, разработанная OpenAI, направлена на понимание устойчивости в задачах компьютерного зрения и проверку способности моделей обобщать новые задачи классификации изображений без предварительного обучения. Вариант clip-vit-base-patch32 использует архитектуру трансформатора ViT-B/32 для кодирования изображений и трансформатор с маской самовнимания для кодирования текста. Обучая эти кодировщики максимизировать сходство пар (изображение, текст) с помощью контрастных потерь, модель учится ассоциировать изображения с соответствующими текстовыми описаниями.

Как создавать мультимодальные вкрапления с помощью clip-vit-base-patch32

Существует два основных способа создания векторных вкраплений:

  1. Zilliz Cloud Pipelines: встроенная функция в Zilliz Cloud (управляемый Milvus), которая легко интегрирует модель clip-vit-base-patch32. Она предоставляет готовое решение, упрощающее создание и получение векторных вкраплений текста или изображений.
  2. SentenceTransformers: библиотека Python для `sentence_transformers.

После создания векторных вкраплений они могут быть сохранены в Zilliz Cloud (полностью управляемый сервис векторных баз данных на базе Milvus) и использованы для поиска семантического сходства. Вот четыре ключевых шага:

  1. Зарегистрируйтесь для получения бесплатной учетной записи Zilliz Cloud.
  2. Создайте бессерверный кластер и получите Публичную конечную точку и ключ API.
  3. Создайте коллекцию векторов и вставьте в нее свои векторные вкрапления.
  4. Запустите семантический поиск по сохраненным вкраплениям.

Генерировать векторные вкрапления с помощью Zilliz Cloud Pipelines и выполнять поиск по сходству

Пошаговые инструкции см. на следующих ресурсах.

Генерируем векторные вкрапления с помощью SentenceTransformer и вставляем их в Zilliz Cloud для поиска сходства

from PIL import Image
from sentence_transformers import SentenceTransformer
from pymilvus import MilvusClient
импортировать запросы

#Загрузка модели CLIP
модель = SentenceTransformer('clip-ViT-B-32')

# Генерируем вкрапления изображений
image_urls = [
    "https://raw.githubusercontent.com/milvus-io/milvus-docs/v2.4.x/assets/milvus_logo.png"
]
images = [Image.open(requests.get(url, stream=True).raw) for url in image_urls]
image_embeddings = model.encode(images)

# Генерируем текстовые вставки
запросы = ["синий логотип"]
query_embeddings = model.encode(queries)

# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

КОЛЛЕКЦИЯ = "документы"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    имя_коллекции=COLLECTION,
    dimension=512,
    auto_id=True)

для image_url, embedding в zip(image_urls, image_embeddings):
    client.insert(COLLECTION, {"url": image_url, "vector": embedding})
    
results = client.search(
    имя_коллекции=КОЛЛЕКЦИЯ,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Для получения дополнительной информации обратитесь к странице модели HuggingFace.