RAG

RAG (Retrieval-Augemnted Generation) ΠΈΠ»ΠΈ дополнСнная поиском гСнСрация это Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π°Π³Π΅Π½Ρ‚Ρƒ (Π΄Π° ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ LLM) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΡˆΠΈΡ‚Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ β€œΠ·Π½Π°Π½ΠΈΡβ€ Π½ΠΎ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ спСциализированным (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌ) Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… для запроса Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π½ΠΈΡŽ Π΅Π΅ Π² prompt ΠΈ ΡƒΠΆΠ΅ Π² Ρ‚Π°ΠΊΠΎΠΌ, ΠΎΠ±Π°Π³Π°Ρ‰Π΅Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ свойство эмбСддингов – сСмантичСски Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ тСксты ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСдставлСния, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ поиск ΠΏΠΎ смыслу, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ совпадСниям слов. (Π”ΡƒΡˆΠΊΠΈΠ½, 2025, p. 27) (pdf)

ΠšΠΎΡΠΈΠ½ΡƒΡΠ½ΠΎΠ΅ сходство

ΠšΠΎΡΠΈΠ½ΡƒΡΠ½ΠΎΠ΅ сходство - главная ΠΌΠ΅Ρ€Π° близости Π² этом пространствС. Оно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΎΠ΄Π½Ρƒ сторону, игнорируя ΠΈΡ… Π΄Π»ΠΈΠ½Ρƒ. Π”Π²Π° слова с косинусным сходством, Π±Π»ΠΈΠ·ΠΊΠΈΠΌ ΠΊ 1, – практичСски синонимы, Π±Π»ΠΈΠ·ΠΊΠΈΠΌ ΠΊ 0 – Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ связаны. ΠšΠΎΡΠΈΠ½ΡƒΡ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 Π½ΠΈΠΌΡ‹, Π±Π»ΠΈΠ·ΠΊΠΈΠΌ ΠΊ 0 – Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ связаны. ΠšΠΎΡΠΈΠ½ΡƒΡ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 для ΡƒΠ³Π»Π° Π² 0 градусов ΠΈ 0 для прямого ΡƒΠ³Π»Π° (90 градусов), поэтому косинусноС сходство Ρ‚Π°ΠΊ сходство Ρ‚Π°ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.Β» (Π”ΡƒΡˆΠΊΠΈΠ½, 2025, p. 50) (pdf)

Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»

ΠŸΡ€ΠΈ поступлСнии запроса Π°Π³Π΅Π½Ρ‚Ρƒ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½:

  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ сам запрос Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ прСдставлСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ спСциализированныС эмбСдинг ΠΌΠΎΠ΄Π΅Π»ΠΈ.
  • Π—Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π‘Π” Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.
  • Π’ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… Π² prompt ΠΈ ΡƒΠΆΠ΅ Π² Ρ‚Π°ΠΊΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‚Π°.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΌ являСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ΠΉ поиск ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Π° Π½Π΅ классичСский лСксичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ΠΎΡ‡Π½Π΅Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лСксичСский - ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ умСстно.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ шаги процСсса

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π²Π°ΠΆΠ½Ρ‹ΠΉ процСсс ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ спроСктирован с самого Π½Π°Ρ‡Π°Π».

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ эмбСдинга критичСски Π²Π°ΠΆΠ΅Π½! Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‡Π°Π½ΠΊΠ° (части Ρ‡Ρ‚ΠΎ отправляСтся Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Π‘Π”) Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ малСнькиС Ρ‡Π°Π½ΠΊΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ контСкста, Π° большиС ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ модСль ΠΈ зря Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ мСсто Π² контСкстС. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠ° с ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Ρ‡Π°Π½ΠΊΠΎΠ² Ρ‚.Π΅. ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ хвост ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ.

  • retriever - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· внСшнСго Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.
  • reranker

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ RAG-систСмы часто Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап пСрСранТирования (reranking) – ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ранТирования Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ². Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ-Ρ€Π΅Ρ€Π°Π½ΠΊΠ΅Ρ€Ρ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Ρ‡Π°Π½ΠΊΠΈ Π² контСкстС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ запроса ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… порядок, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ†Π΅Π½ΠΈΠ² Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ поиск Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ сСмантичСски Π±Π»ΠΈΠ·ΠΊΠΈΠ΅, Π½ΠΎ Π½Π΅ совсСм подходящиС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹. Page 26

Β«Π Π΅Ρ€Π°Π½ΠΊΠ΅Ρ€ (reranker) – ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… RAG-систСм. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π² контСкстС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ запроса ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π½ΠΆΠΈΡ€ΡƒΡŽΡ‚ ΠΈΡ…, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ оцСнивая Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ особСнно эффСктивно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными ΠΈΠ»ΠΈ многоаспСктными запросами.Β» (Π”ΡƒΡˆΠΊΠΈΠ½, 2025, p. 34) (pdf)

  • generator - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с LLM. Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° запроса Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ помСньшС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ мСньшС Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½Π°Ρ†ΠΈΠΉ подмСшивалось Π² контСкст.

Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠΌ этой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ retriever ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ послС рассуТдСний ΠΌΠΎΠ΄Π΅Π»ΠΈ.

АрхитСктура ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° ΠΏΡ€ΠΈ использовании RAG

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚: [Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹]

Вопрос: [запрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ]

ΠžΡ‚Π²Π΅Ρ‚ΡŒ Π½Π° вопрос, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° прСдоставлСнном контСкстС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° python Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° с Π²ΡˆΠΈΡ‚Ρ‹ΠΌ контСкстом:

def create_prompt(self, query: str, chunks: List[Dict]) -> str: 
	"""Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠΌΠΏΡ‚ с контСкстом"""
	context = ""
	for i, chunk in enumerate(chunks, 1):
		similarity_percent = int(chunk['similarity'] * 100)
		context += f"\n--- Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ {i} (Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ {similarity_percent}%) ---\n"
		context += chunk['text']
		context += "\n"
	prompt = f"""ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚:
{context}
 
Вопрос: {query}
 
ΠžΡ‚Π²Π΅Ρ‚:"""
	return prompt

Π’ΠΈΠ΄Ρ‹ RAG

  • Наивный RAG - описан Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΎΡΡ‚ΠΎ вСкторизация запроса, поиск Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², вставка Π² prompt.
  • ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ RAG - добавляСт этапы ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ поиском запрос ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ синонимами, Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° подвопросы ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ сопоставлСния с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ RAG - Π’Π΅ΡΡŒ pipeline Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (хотя ΠΎΠ½ всСгда Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ?):
    • ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (routing) - ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ источникам Π΄Π°Π½Π½Ρ‹Ρ… слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ (Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, API ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅).
    • ΠŸΠ°ΠΌΡΡ‚ΠΈ (memmory) - подсистСма хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… взаимодСйствиях.
    • Блияния (Fusion) - Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ мноТСствСнныС запросы Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ… пСрСформулированния исходного, Π·Π°Ρ‚Π΅ΠΌ сливаСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½.

Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСдставлСния ΠΈ эмбСддинги

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

Π’Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ прСдставлСниС, ΠΈΠ»ΠΈ эмбСддинг (embedding, встраиваниС), – это способ прСвращСния тСкста Π² числа, Π½ΠΎ Π½Π΅ простоС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠΊΠ², Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ смысла Π² матСматичСский язык. КаТдоС слово становится Ρ‚ΠΎΡ‡ΠΊΠΎΠΈΜ† Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ аспСкты значСния (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ встраиваСтся Π² пространство, ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅). (Π”ΡƒΡˆΠΊΠΈΠ½, 2025, p. 49) (pdf)

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΈ это самоС интСрСсноС, получаСтся, Ρ‡Ρ‚ΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ абстрактными понятиями!

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ

  1. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Сдинообразия. Π›ΡŽΠ±ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ слово ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π°Π±Π·Π°Ρ† тСкста ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ сходство Π»ΡŽΠ±Ρ‹Ρ… Π΄Π²ΡƒΡ… тСкстовых Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ².
  2. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ плотности. Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСдставлСния - это β€œΠΏΠ»ΠΎΡ‚Π½Ρ‹Π΅β€ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… каТдая ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ вСщСствСнным числом. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… прСдставлСний, ΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ, здСсь ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠ΅ΜˆΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ смыслС.
    • ΠŸΡ€ΡΠΌΠ°Ρ Ρ†ΠΈΡ‚Π°Ρ‚Π°. Пока сам Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ понимаю.
  3. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΊΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. МодСли эмбСддСры ΡƒΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ контСкст Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€œΠΊΠ»ΡŽΡ‡β€ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΎΡ‚ Π·Π°ΠΌΠΊΠ° ΠΈ β€œΠΊΠ»ΡŽΡ‡β€ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Ρ€ΠΎΠ΄Π½ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ совсСм Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹.
  4. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ композиционности. Π’Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для создания прСдставлСний Π±ΠΎΠ»Π΅Π΅ слоТных конструкций. Π’Π΅ΠΊΡ‚ΠΎΡ€ прСдлоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ усрСднСниСм Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² слов ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТными способами, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ синтаксис ΠΈ сСмантику.
  5. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прСдставлСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ устойчивыми - нСбольшиС измСнСния Π² тСкстС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€. ΠžΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ, синонимы, ΠΏΠ΅Ρ€Π΅Ρ„Ρ€Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ для сохранСния смысловой цСлостности.
Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»

Π’Π΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π‘Π”. Но ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счёту (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ наличия ΠΈΠ»ΠΈ отсутствия спСциализированных индСксов для Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ) подходят Π»ΡŽΠ±Ρ‹Π΅ Π‘Π£Π‘Π” Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° array_cosine_similarity(array1, array2). Π’Π°ΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΡƒΡŽ Π‘Π£Π‘Π” ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сами Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π½ΠΎ ΠΈ другая мСтаинформация ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ исходного Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Ссли это ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ.

НСкоторыС Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ Π‘Π”

  • Chroma - ΠΏΠΈΡ‚ΠΎΠ½ + js. РСкомСндуСтся ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.
  • Qdrant - Написан Π½Π° Rust. Быстрый, Open Source.
  • Weaviate - Π²Π΅ΠΊΡ‚ΠΎΡ€Π° + Π³Ρ€Π°Ρ„ΠΎΠ²ΠΎΠ΅ прСдставлСниС.
  • Milvus - большой, ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ распрСдСлнный.
  • pgvector - ΡΠΊΡΡ‚Π΅Π½ΡˆΠ΅Π½ для PostgreSQL, Ρ‡Ρ‚ΠΎ заносит Π² Π½Π΅Π³ΠΎ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ индСксов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ.
  • DuckDB - чисто моя идСя. Из ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Π΅ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, эмбСддСд. Π§Π΅Ρ€Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ индСксы ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ пСрсистСнто.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

  • ЀиксированноС ΠΎΠΊΠ½ΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°Ρ€Π΅Π·Π°Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π° куски фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Из плюсов - ΠΎΡ‡Π΅Π½ΡŒ просто. ΠœΠΈΠ½ΡƒΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π°Π±ΠΈΠ²Π°Π΅ΠΌ Π½Π° сСмантичСскиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.
  • Π‘ΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ фиксированноС Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ сохраняСт ΠΊΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΡƒΡŽ связь Π·Π° счСт Ρ‡ΡƒΡ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΠ°.
  • БСмантичСскоС сСгмСнтированиС. Π‘Π»Π΅Π΄ΡƒΠ΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΠ΅ тСкста ΠΈ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π½Π° логичСскиС Π±Π»ΠΎΠΊΠΈ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ мысли. Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ достаточно слоТного Π°Π½Π°Π»ΠΈΠ·Π°.
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅. По Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ Π±Π»ΠΎΠΊΠΎΠ² Π°-ля markdown.
  • АдаптивноС сСгмСнтированиС. LLM сама Ρ€Π΅ΡˆΠΈΡ‚ ΠΊΠ°ΠΊ сСгмСнтируСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.