Найти Π² Π”Π·Π΅Π½Π΅
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста

πŸ’¬πŸ¦™ LlamaIndex: создаСм Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° Π±Π΅Π· Π±ΠΎΠ»ΠΈ ΠΈ страданий. Π§Π°ΡΡ‚ΡŒ 3

ОглавлСниС

Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ исслСдованиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° LlamaIndex. Π’ этой части разбираСмся с Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы извлСчСния Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΠ³ΠΎ контСкста ΠΈΠ· индСксов Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

← Π§Π°ΡΡ‚ΡŒ 2

πŸ’¬πŸ¦™ LlamaIndex: создаСм Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° Π±Π΅Π· Π±ΠΎΠ»ΠΈ ΠΈ страданий. Π§Π°ΡΡ‚ΡŒ 2

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… (Π½Π°Ρ‡Π°Π»ΠΎ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅) ΠΌΡ‹ постСпСнно ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Π»ΠΈΡΡŒ Π² ΠΌΠΈΡ€ llamaIndex, рассмотрСв основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈ Π½Π°ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PDF. БСгодня ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ этапу нашСго ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ β€” ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ΠΎΠ² Π² llamaIndex ΠΈ стратСгий ΠΈΡ… использования.

Π’ ΠΌΠΈΡ€Π΅, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ становятся Π½ΠΎΠ²ΠΎΠΉ Π½Π΅Ρ„Ρ‚ΡŒΡŽ, эффСктивныС инструмСнты для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° становятся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€Ρ‹ Π² этом контСкстС Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π½Π΅ просто ΠΊΠ°ΠΊ инструмСнт поиска, Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ срСдство структурирования Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, позволяя быстро ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ срСди ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Ρ… ΠΈ нСструктурированных массивов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ Π² контСкстС llamaIndex β€” это инструмСнт, Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся поиск Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΠ³ΠΎ контСкста Π½Π° основС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ запроса.

Π’ llamaIndex прСдставлСны Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° data scientist’а»

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΠ°Π½Π°Π»Ρƒ

(function () { let link = document .getElementById ("1ba13fef-34ca-4216-af9b-bf6f946ed208-https://proglib.io/w/92027ca2-8"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, { method: "POST", body: data }) .then (function (res) {}) .catch (function (err) { console .error (err); }); }) })();

VectorIndexRetriever

VectorIndexRetriever являСтся основным Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ΠΎΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ индСксами. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСдставлСния для поиска Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

   VectorIndexRetriever
VectorIndexRetriever

Если Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… экспСримСнтах ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ просто Ρ€Π°Π½ΠΆΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠ΄Ρ‹ согласно запросу ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 2), Ссли Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ большС, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ это ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ явно:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½ΠΎΠ΄Ρ‹ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ скора, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ постпроцСссинг:

   similarity_cutoff
similarity_cutoff

ДобавляСм собствСнный Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΉΠ·Π΅Ρ€

Когда ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ†Π΅Π½ΠΊΡƒ рСлСвантности, Ρ‚ΠΎ ΠΌΡ‹ смотрим Π½Π° ΠΊΠΎΡΠΈΠ½ΡƒΡΠ½ΡƒΡŽ Π±Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° запроса ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π½ΠΎΠ΄Ρ‹. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ модСль Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ OpenAI (поэтому Π½Π°ΠΌ ΠΈ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ API). Но Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ дСньги Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ эмбСддингов? ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ модСль Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нашим Π·Π°Π΄Π°Ρ‡Π°ΠΌ.

Llamaindex позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ собствСнныС ΠΌΠΎΠ΄Π΅Π»ΠΈ для получСния эмбСддингов ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°. Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создаСм собствСнный класс для получСния Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²:

Π’ классС я использовал модСль ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΎΡ‚ sentence-transformers - distiluse-base-multilingual-cased-v2

   CustomEmbeddings
CustomEmbeddings

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ скоров сущСствСнно измСнились, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ пСрвая Π½ΠΎΠ΄Π° ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ (ΠΎΠ½Π° ΠΆΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ рСлСвантная запросу).

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ΠΎΠ²

Llamaindex располагаСт мноТСством Π²ΠΈΠ΄ΠΎΠ² Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ΠΎΠ², Π²ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ:

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный Ρ‚ΠΈΠΏ. ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΏΡ€ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹:

  1. SummaryIndexRetriever ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с индСксами суммаризации, позволяя Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Π΅ саммари для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ запроса.
  2. TreeIndexRetriever ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ индСксами, обСспСчивая эффСктивный поиск ΠΏΠΎ структурированным Π΄Π°Π½Π½Ρ‹ΠΌ.
  3. KeywordTableRetriever спСциализируСтся Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ с индСксами, основанными Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π° основС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ΠΈΠ· запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ², Π½ΠΎ для ΠΌΠΎΠ΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ BM25Retriever

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

πŸ€–πŸ“„ ChatGPT: эффСктивная суммаризация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LLM

BM25Retriever

Как Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, этот Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ BM25 для сСмантичСского поиска. BM25 β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄ ранТирования Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² поисковых систСмах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… слов (Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²) ΠΈΠ· запроса ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² корпусС. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСдставлСния для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², BM25 Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ запроса нСзависимо ΠΈ вычисляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Β«Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹ΠΉΒ» скор для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² корпусС.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для поиска Π½ΠΎΠ΄:

   BM25Retriever
BM25Retriever

Поиск Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ нуТная Π½Π°ΠΌ Π½ΠΎΠ΄Π° оказалась Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ мСстС. Π•Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒΡΡ вопросом, ΠΏΠΎΡ‡Π΅ΠΌΡƒ наши скоры ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π’ΡƒΡ‚ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ BM25 являСтся Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠ΅ΠΉ старого Π΄ΠΎΠ±Ρ€ΠΎΠ³ΠΎ TFIDF, ΠΈ IDF для Π½Π΅Π³ΠΎ считаСтся ΠΊΠ°ΠΊ log((N – n + 0,5) / (n + 0,5)), Π³Π΄Π΅ N β€” это количСство Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² корпусС, Π° n β€” количСство Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… встрСтился наш Ρ‚ΠΎΠΊΠ΅Π½, Ρ‚. Π΅. Ссли n > N/2, Ρ‚ΠΎ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, соотвСтствСнно, ΠΈ вСсь скор Ρ‚ΠΎΠΆΠ΅.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ прСимущСства Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€Π΅. Llamaindex позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС Ρ‚ΠΈΠΏΡ‹ Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ….

   CompositeRetriever
CompositeRetriever

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Π½ΠΎΠ΄Π° Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ мСстС. Π₯отя Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ сущСствСнного прироста качСства, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ позволяСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π½ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Β«ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒΡΡΒ» Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅.

На этом ΠΎΠ±Π·ΠΎΡ€ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΈ всю ΡΠ΅Ρ€ΠΈΡŽ статСй ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅. Π― надСюсь, Ρ‡Ρ‚ΠΎ данная ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Ρ‚Ρ€ΠΈΠ²Π΅Ρ€Ρ‹ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π½Π° Π±Π°Π·Π΅ llamaIndex. Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

ΠŸΠΈΡˆΡƒ ΠΏΡ€ΠΎ AI ΠΈ NLP Π²
Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ.