Некоторые промпты нужно отливать в золоте
Anthropic представила детальное описание техники Contextual Retrieval - сильнейшего метода повышения качества RAG систем.
Технология объединяет Contextual Embeddings и Contextual BM25, чем снижает долю неудачных результатов поиска на 67%.
Суть метода в генерации через Claude Haiku (самая быстрая версия Клода) описательной части для каждого чанка, а иногда и предложения, которая включает саммари всего документа в применении к обрабатываемому куску текста:
в итоге получается что-то вроде:
Т.е. отдельно строка "The company's revenue grew by 3% over the previous quarter." в чанке смысла не несёт, но с расширенным описанием в контексте всего документа, - да.
И именно это расширенное описание и кладётся в вектор.
Дополнительно поход комбинируется с классическим поиском по ключевым словам, только ищется не слово целиком, а его ближайший похожий экземпляр.
Собственно это был предшественник семантического поиска, - выдаёт word similarity в %.
Комбинация семантического и лексического поиска, в итоге, значительно повышает эффективность работы с большими объёмами документов, а главное, - позволяет не потерять сутевые точечные детали, что подтверждается тестами на различных наборах данных и моделях эмбеддингов.
блокнот поиграться
Техника логичная сама по себе и кто-то приходит к ней эмпирически и через серию экспериментов, но Антропику отдельный респект за то, что систематизирует и делится с ИИ сообществом!
#Anthropic #RAG #ContextualRetrieval
———
@tsingular
Anthropic представила детальное описание техники Contextual Retrieval - сильнейшего метода повышения качества RAG систем.
Технология объединяет Contextual Embeddings и Contextual BM25, чем снижает долю неудачных результатов поиска на 67%.
Суть метода в генерации через Claude Haiku (самая быстрая версия Клода) описательной части для каждого чанка, а иногда и предложения, которая включает саммари всего документа в применении к обрабатываемому куску текста:
<document>
{{WHOLE_DOCUMENT}}
</document>
Here is the chunk we want to situate within the whole document
<chunk>
{{CHUNK_CONTENT}}
</chunk>
Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.
в итоге получается что-то вроде:
original_chunk = "The company's revenue grew by 3% over the previous quarter."
contextualized_chunk = "This chunk is from an SEC filing on ACME corp's performance in Q2 2023; the previous quarter's revenue was $314 million. The company's revenue grew by 3% over the previous quarter."
Т.е. отдельно строка "The company's revenue grew by 3% over the previous quarter." в чанке смысла не несёт, но с расширенным описанием в контексте всего документа, - да.
И именно это расширенное описание и кладётся в вектор.
Дополнительно поход комбинируется с классическим поиском по ключевым словам, только ищется не слово целиком, а его ближайший похожий экземпляр.
Собственно это был предшественник семантического поиска, - выдаёт word similarity в %.
Комбинация семантического и лексического поиска, в итоге, значительно повышает эффективность работы с большими объёмами документов, а главное, - позволяет не потерять сутевые точечные детали, что подтверждается тестами на различных наборах данных и моделях эмбеддингов.
блокнот поиграться
Техника логичная сама по себе и кто-то приходит к ней эмпирически и через серию экспериментов, но Антропику отдельный респект за то, что систематизирует и делится с ИИ сообществом!
#Anthropic #RAG #ContextualRetrieval
———
@tsingular
🔥9👍3