Эмбеддинги статей Википедии для поиска

Урок 15 из 299 курса «OpenAI Cookbook»: официальный курс OpenAI Academy (ОпенАИ) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

Этот notebook показывает, как мы подготовили набор данных из статей Википедии для поиска, используемый в Question_answering_using_embeddings.ipynb. Процедура: Предварительные условия: Импорт библиотек, установка API key (при необходимости) Сбор: Мы загружаем несколько сотен статей Википедии о Зимних Олимпийских играх 2022 года Разбивка на чанки: Документы разбиваются на короткие, полуавтономные разделы для последующего embedding'а Embedding: Каждый раздел подвергается embedding'у с помощью OpenAI API Хранение: Embeddings сохраняются в CSV-файл (для больших наборов данных используйте векторную базу данных) Установите любые отсутствующие библиотеки с помощью pip install в вашем терминале. Например, (Вы также можете сделать это в ячейке notebook'а с помощью !pip install openai.) Если вы устанавливаете какие-либо библиотеки, обязательно перезапустите ядро notebook'а. Обратите внимание, что библиотека OpenAI попытается прочитать ваш API key из переменной окружения OPENAI_API_KEY. Если вы еще этого не сделали, установите эту переменную окружения, следуя этим инструкциям. В этом примере мы загрузим несколько сотен статей Википедии, связанных с Зимними Олимпийскими играми 2022 года. Теперь, когда у нас есть наши справочные документы, нам нужно подготовить их для поиска. Поскольку GPT может читать только ограниченный объем текста за раз, мы разобьем каждый документ на чанки, достаточно короткие для чтения. Для этого конкретного примера со статьями Википедии мы сделаем следующее: Отбросим менее релевантные разделы, такие как «Внешние ссылки» и «Примечания» Очистим текст, удаляя теги ссылок (например, ), пробелы и очень короткие разделы Разобьем каждую статью на разделы Добавим заголовки и подзаголовки к тексту каждого раздела, чтобы помочь GPT понять контекст Если раздел длинный (скажем, > 1600 токенов), мы рекурсивно разобьем его на более мелкие разделы, стараясь разделять по смысловым границам, таким как абзацы Далее мы рекурсивно разобьем длинные разделы на более мелкие. Не существует идеального рецепта для разбивки текста на разделы.

План урока

  1. 0. Предварительные условия
  2. Импорт библиотек
  3. Установка API key (при необходимости)
  4. 1. Сбор документов
  5. 2. Разбивка документов на чанки
  6. 3. Embedding чанков документов
  7. 4. Хранение чанков документов и embeddings

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

Урок входит в темы

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