О чём урок
Для начала настроим необходимые библиотеки. Начнем с загрузки набора данных, который мы будем кодировать и хранить. Набор данных jamescalam/ai-arxiv2-semantic-chunks содержит извлеченные данные из множества популярных статей ArXiv, посвященных LLM и GenAI. У нас есть 200 тысяч chunks, каждый из которых примерно равен 1-2 абзацам. Вот пример одной записи: Форматируем данные в нужный нам вид, который будет содержать id, text (который мы будем embed) и metadata. Нам необходимо определить модель embedding для создания наших embedding векторов для retrieval. Для этого мы будем использовать mistral-embed от Mistral AI. С этой моделью связаны определенные затраты, поэтому имейте это в виду (затраты на запуск этого notebook составят менее 1 доллара). Теперь мы можем создавать embeddings следующим образом: Мы можем просмотреть размерность наших возвращенных embeddings, которая вскоре понадобится нам при инициализации нашего векторного индекса: Теперь мы создаем нашу векторную базу данных (DB) для хранения наших векторов. Для этого нам нужен бесплатный API key Pinecone — API key можно найти в кнопке "API Keys" в левой навигационной панели дашборда Pinecone. Теперь мы настраиваем спецификацию нашего индекса, что позволяет нам определить облачного провайдера и регион, где мы хотим развернуть наш индекс. Список всех доступных провайдеров и регионов можно найти здесь. При создании индекса мы устанавливаем dimension равным размерности mistral-embed (1024) и используем metric, также совместимый с mistral-embed (это может быть либо cosine, либо dotproduct). Мы также передаем наш spec при инициализации индекса. Мы определим функцию embedding, которая позволит нам избежать передачи слишком большого количества токенов в один embedding batch (по состоянию на 21 мая 2024 года лимит составляет 16384 токена). Мы видим, что индекс в настоящее время пуст, с total_vector_count равным 0.
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.