Семантический поиск с FAISS

Урок 62 из 104 курса «HuggingFace: курс по Transformers»: официальный курс Hugging Face Learn (Хаггинг Фейс) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

{#if fw === 'pt'} {:else} {/if} В разделе 5 мы создали набор данных о issues и комментариях GitHub из репозитория 🤗 Datasets. В этом разделе мы будем использовать эту информацию для создания поисковой системы, которая поможет нам найти ответы на самые насущные вопросы о библиотеке! Как мы видели в Главе 1, языковые модели на основе Transformer представляют каждую лексему в текстовом фрагменте как эмбеддинг-вектор. Оказывается, можно «объединить» отдельные вложения, чтобы создать векторное представление для целых предложений, абзацев или (в некоторых случаях) документов. Затем эти вложения можно использовать для поиска похожих документов в корпусе путем вычисления скалярного произведения (или какой-либо другой метрики сходства) между каждым вложением и возврата документов с наибольшим перекрытием. В этом разделе мы будем использовать вложения для разработки семантической поисковой системы. Эти поисковые системы предлагают несколько преимуществ по сравнению с традиционными подходами, основанными на сопоставлении ключевых слов в запросе с документами. Первое, что нам нужно сделать, это загрузить наш набор данных об issues GitHub, поэтому давайте воспользуемся библиотекой 🤗 Hub для получения URL-адреса, по которому наш файл хранится в Hugging Face Hub: С URL-адресом, сохраненным в data_files, мы можем загрузить удаленный набор данных, используя метод, представленный в раздел 2: Здесь мы указали подвыборку train по умолчанию в load_dataset(), поэтому он возвращает Dataset вместо DatasetDict. Первым делом нужно отфильтровать запросы на pull-requests, поскольку они, как правило, редко используются для ответов на вопросы пользователей и создают шум в нашей поисковой системе. Как должно быть уже известно, мы можем использовать функцию Dataset.filter(), чтобы исключить эти строки из нашего набора данных. Давайте также отфильтруем строки без комментариев, поскольку они не дают ответов на запросы пользователей: Мы видим, что в нашем наборе данных много столбцов, большинство из которых нам не нужно для создания нашей поисковой системы.

План урока

  1. Использование эмбеддингов для семанического поиска
  2. Загрузка и подготовка датасета
  3. Создание текстовых эмбединнгов
  4. Использование FAISS для эффективного семантического поиска

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды