Skip to main content

Введение

Датасет LAION 5b содержит 5,85 миллиарда эмбеддингов пар «изображение—текст» и связанные с ними метаданные изображений. Эмбеддинги были сгенерированы с помощью модели Open AI CLIP ViT-L/14. Размерность каждого эмбеддинг-вектора — 768. Этот датасет можно использовать для моделирования вопросов проектирования, подбора размера и производительности крупномасштабного приложения векторного поиска из реального мира. Датасет можно использовать как для поиска изображений по тексту, так и для поиска изображений по изображению.

Сведения о датасете

Полный датасет можно скачать с помощью opendatalab/laion5b-downloader. ClickHouse также предоставил подмножество из 100 миллионов векторов в бакете S3. Бакет S3 содержит 10 файлов Parquet, каждый из которых включает 10 миллионов строк. Мы рекомендуем пользователям сначала оценить требуемые ресурсы, чтобы определить требования к хранилищу и памяти для этого датасета, обратившись к документации.

Шаги

1

Создание таблицы

Создайте таблицу laion_5b_100m для хранения эмбеддингов и связанных с ними атрибутов:
The id — это просто целое число, которое увеличивается на единицу. Дополнительные атрибуты можно использовать в предикатах, чтобы понять, как поиск по векторному сходству работает в сочетании с постфильтрацией/префильтрацией, как описано в документации
2

Загрузите данные

Чтобы загрузить данные из всех файлов Parquet, выполните следующий оператор SQL:
Загрузка 100 миллионов строк в таблицу займет несколько минут.Либо можно выполнить отдельные SQL-команды, чтобы загрузить определенное количество файлов / строк.
4

Создайте индекс векторного сходства

Выполните следующий SQL, чтобы задать и построить индекс векторного сходства для столбца vector таблицы laion_5b_100m:
Параметры и особенности производительности при создании индекса и выполнении поиска описаны в документации. В операторе выше для гиперпараметров HNSW M и ef_construction используются значения 64 и 512 соответственно. Вам нужно тщательно подобрать оптимальные значения этих параметров, оценивая время построения индекса и качество результатов поиска, соответствующие выбранным значениям.Построение и сохранение индекса для полного набора данных из 100 миллионов записей может занять несколько часов в зависимости от количества доступных процессорных ядер и пропускной способности хранилища.
6

Генерация эмбеддинг-векторов для поискового запроса

Эмбеддинг-векторы набора данных LAION 5b были созданы с помощью модели OpenAI CLIP ViT-L/14.Ниже приведён пример скрипта на Python, показывающий, как программно генерировать эмбеддинг-векторы с помощью API CLIP. Затем эмбеддинг-вектор поискового запроса передаётся в качестве аргумента функции cosineDistance() в запросе SELECT.Чтобы установить пакет clip, обратитесь к репозиторию OpenAI на GitHub.
Ниже показан результат поиска, выполненного выше:
Последнее изменение 23 июля 2026 г.