Векторные базы данных для ИИ, ориентированного на данные (часть 2)

Создание приложений с помощью QDrant, Hugging-Face и Streamlit.

Эта статья также находится здесь:

  • https://medium.com/@george.pearse

Компания QDrant создала отличную векторную базу данных, и я подозреваю, что инженеры ML только начинают изучать ее потенциальное применение.

Векторные базы данных поддерживают гибридный поиск по сходству и предоставляют CRUD API для обновления ваших наборов данных. Они являются значительным улучшением инструментов первой волны Approximate Nearest Neighbour, таких как Faiss и Annoy, которые обеспечивают очень высокую производительность векторного поиска в памяти, но практически не поддерживают потоки обновлений и фильтры метаданных.

Гибридный поиск — это векторный или «семантический» поиск в сочетании с фильтрацией атрибутов.

Семантический поиск, реализованный в QDrant, требует списка положительных и отрицательных примеров. Каждая положительная точка данных — это пример того, на что вы хотите, чтобы ответы были похожи, каждая отрицательная точка данных — это пример того, на что вы хотите, чтобы ответы отличались.

Это позволяет строить произвольно сложные границы принятия решений в пространстве признаков.
Пример запроса QDrant:

{"positive": [0],    
"negative": [1],    
"top": 10,   
"with_payload": true}
Войти в полноэкранный режим Выход из полноэкранного режима

Это позволяет интерактивно определять классы:

  1. Начните с одной положительной точки данных.
  2. Просмотрите все ответы.
  3. Добавьте те, которые вы считаете похожими, в список положительных.
  4. Добавьте те, которые вы считаете отличными, в список отрицательных.
  5. Запустите новый запрос и повторите.

После серии маркировок вы также сможете улучшить свои вкрапления и продолжить процесс с «лучшим» разделенным набором данных (я буду экспериментировать с этим дальше).

Я создал мини-приложение Streamlit для поддержки этого потока и возможности сохранения каждого запроса после завершения вместе с CSV, содержащим его результаты.

QDrant-NLP. Краткая демонстрация

Как запустить

Просто клонируйте репозиторий QDrant-NLP
и запустите:

Я хотел бы увеличить количество наборов данных, на которых можно попробовать это сделать, либо с помощью лямбда-функций с поддержкой GPU, либо путем сохранения большого количества примеров наборов данных на S3. Пока я сделал доступным только подмножество ag_news размером 6K. ag_news — Наборы данных в Hugging Face
Это фрагмент кода, используемый для генерации вкраплений через hugging-face:

Вкрапления были сгенерированы с помощью этого фрагмента кода.

Где использовать

Выражаем благодарность обоим Kern.AI (отличный инструмент маркировки NLP с открытым исходным кодом)
https://github.com/code-kern-ai/refinery
и Voxel51 (отличный инструмент анализа компьютерного зрения с открытым исходным кодом)
https://github.com/voxel51/fiftyone
за раннее внедрение технологии в свои платформы, но я не думаю, что они еще не использовали все преимущества, которые она может предоставить.

Оцените статью
devanswers.ru
Добавить комментарий