Стратегии разбиения

Тема дорожной карты · Большие языковые модели (LLM)

Стратегии разбиения текста включают в себя разделение больших текстовых входных данных на меньшие, управляемые куски для обработки языковыми моделями. Эта техника полезна для улучшения производительности и эффективного обработки больших наборов данных. Команды, такие как split_text, могут быть использованы для реализации разбиения текста. Разбиение текста помогает управлять объемом данных, улучшая производительность языковых моделей и позволяя эффективно обрабатывать большие объемы информации.

Как это работает

Стратегии разбиения (Retrieval-Augmented Generation) дополняют LLM-output релевантным контекстом из вашей knowledge base. Пайплайн включает в себя следующие шаги: преобразование документов в векторы (embed), хранение этих векторов в векторной базе данных (Vector DB), преобразование запроса в вектор (embed query), извлечение топ-k похожих кусков и включение их в качестве контекста в промпт для языковой модели. Затем модель генерирует ответ на основе этого контекста. Для векторизации используются различные модели, такие как text-embedding-3-large от OpenAI, bge-large, e5-mistral, и voyage-3. Векторные базы данных включают Postgres с pgvector, Qdrant, Weaviate, Chroma, и Pinecone. Для улучшения качества извлечения используются переоценщики (re-rankers), такие как Cohere и BGE.

Когда применять

RAG применяется, когда модели необходимо отвечать на вопросы, основываясь на знаниях, которые (а) превышают размер контекстного окна модели, (б) появляются после даты окончания актуальности знаний модели, или (в) являются проприетарными и не могут быть включены напрямую в модель. Начинайте с использования Postgres и pgvector, так как это дешевле и проще для настройки, при этом позволяя масштабироваться дальше ожидаемого. Переоценщики (re-rankers) используются, когда качество извлечения достигает плато. Для оптимизации качества извлечения можно настроить размер куска (chunk-size) (256-1024 токенов) и степень перекрытия (overlap) (10-20%). Оценку качества извлечения и качество ответа можно измерять отдельно.

Типичные ошибки

Типичные ошибки при использовании стратегий разбиения включают в себя следующее: куски текста могут быть слишком маленькими, что приводит к потере контекста, или слишком большими, что приводит к доминированию нерелевантного контекста. Также могут отсутствовать метаданные (источник, время создания, секция), которые необходимы для фильтрации и цитирования контекста. Часто ошибочным является предположение, что все модели векторизации взаимозаменяемы, что не соответствует действительности, так как качество векторизации сильно варьируется. Наконец, пропуск этапа переоценки (re-ranking) может привести к тому, что ответы будут считаться плохими из-за извлечения контекста, которое близко, но не точно соответствует запросу.

Связанные понятия

Полезные ресурсы