Вопрос проверяет понимание концепции chunking в RAG и знание различных стратегий разделения документов на фрагменты для эффективного поиска.
Chunking (нарезка) — это ключевой этап в пайплайне Retrieval-Augmented Generation (RAG), где большие документы разбиваются на более мелкие, семантически связные фрагменты. Это необходимо, потому что модели эмбеддингов и LLM имеют ограничения на длину входного контекста, а также для повышения точности поиска релевантных фрагментов.
from langchain.text_splitter import RecursiveCharacterTextSplitter
text = "Длинный документ..."
splitter = RecursiveCharacterTextSplitter(
chunk_size=500,
chunk_overlap=50,
separators=["\n\n", "\n", ".", " "]
)
chunks = splitter.split_text(text)
print(f"Получено {len(chunks)} чанков")Выбор стратегии chunking критически влияет на качество RAG-системы. Для большинства случаев рекомендуется начинать с рекурсивного разделения с перекрытием, а затем экспериментировать с семантическими методами для улучшения релевантности поиска.
Уровень
Рейтинг:
4
Сложность:
6
Навыки
Python
Node.js
Ключевые слова
Подпишись на Python Developer в телеграм