πβ¬οΈ ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉ ΡΠ²ΠΎΠΉ AI: ΡΠ°Π·ΠΎΠ±Π»Π°ΡΠ΅Π½ΠΈΠ΅ 6 ΠΌΠΈΡΠΎΠ² ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ Π² Pgvector
Π¨Π΅ΡΡΡ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠ°ΡΡ ΡΠ΅Π±Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΌΠΎΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π² AI. Π Π°Π·Π²Π΅Π½ΡΠ°Π² ΡΡΠΈ ΠΌΠΈΡΡ, ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΡΠ°ΡΠΊΡΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π²Π΅ΠΊΡΠΎΡΠΎΠ² ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ²ΠΎΠΈΡ AI-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Pgvector
Pgvector β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ PostgreSQL, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ β Ρ ΡΠ°Π½ΠΈΡΡ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π² ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π΄Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°:
- ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π½Π°ΡΡΠ΄Ρ Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠΌ β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Ρ. Π΄.
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΉ ΡΡ ΠΎΠΆΠ΅ΡΡΠΈ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π‘Π»ΠΎΠ²ΠΎΠΌ, pgvector ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΆΠΈΠ·Π½Ρ ΠΠ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠΎΡΠ΅ β ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΡΡ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°. ΠΠ²ΡΠΎΡ ΡΡΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π» ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΌΠΈΡΡ.
ΠΠΈΡ 1: ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π²ΡΠ΅Π³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ
ΠΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ Π±Π°Π·Ρ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ Β«ΠΈΠ½Π΄Π΅ΠΊΡΒ» Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ². ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ². Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ PostgreSQL ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°Ρ Β«ΠΏΠ»ΠΎΡΠΊΠΈΠΌΒ» ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° Π±Π΅Π· ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ. Π PostgreSQL ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠΆΠ΅ Β«ΠΏΠ»ΠΎΡΠΊΠΈΠ΅Β». Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΡΠ΄Π° Π²Π΅ΠΊΡΠΎΡΡ, Ρ Π²Π°Ρ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠ»ΠΎΡΠΊΠΈΠΌ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ.
Π₯ΠΎΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ pgvector ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½Ρ. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π·Π²ΠΎΠ½ΠΊΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π΅ΡΡΡ 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, Π½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ 10 ΡΡΡΡΡ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΎΠ², Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π°Π²ΡΠ° β Π΄ΠΎ 1000, ΠΈ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΡΡ Π·Π²ΠΎΠ½ΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ β ΡΡΠΎ ΠΌΠ΅Π½ΡΡΠ΅ 100 Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠ΅Π΄ΠΈ 100 ΠΈΠ»ΠΈ 1000 Π²Π΅ΠΊΡΠΎΡΠΎΠ², ΠΏΠΎΡΡΠΈ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ B-Tree ΠΈΠ½Π΄Π΅ΠΊΡΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΡΠ°ΡΡΠΈ) Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π½Π° Π½ΡΠΆΠ½ΡΠΉ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅ΠΊΡΠΎΡΠΎΠ². ΠΡΠΎ Π΄Π°ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΎΡ Π²Π°Ρ (Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΡΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ) ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΡ, ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Ρ (ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ PostgreSQL, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ).
ΠΠΈΡ 2: Π‘Π΅ΠΌΠ°Π½ΡΠΈΠΊΠ° Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²
SQL-Π·Π°ΠΏΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠΎ ΠΈ Π·Π°ΠΏΡΠΎΡ Π±Π΅Π· ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° SQL ΠΈ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ.
ΠΠΎ Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ Π΄Π΅Π»ΠΎ ΠΎΠ±ΡΡΠΎΠΈΡ ΠΈΠ½Π°ΡΠ΅: ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ. ΠΠ»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΠΈΡΠΊΠ° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ Π³ΡΠ°ΡΠ°. ΠΡΠΈ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π² Π½ΠΈΡ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΈΡΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ ΡΠΎΡΠ΅Π΄ΠΈ, Π½ΠΎ Π½Π° 100% ΡΡΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ.
ΠΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠΎΠΉ ΠΏΠΎΠΈΡΠΊΠ°: ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² Π³ΡΠ°ΡΠ° Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅, ΡΠ΅ΠΌ Π²ΡΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π½Π°ΠΉΡΠΈ Π½Π°ΡΡΠΎΡΡΠΈΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ, Π½ΠΎ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΎ Π·Π°ΠΉΠΌΠ΅Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ β Π½Π° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² Π²Ρ Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ? ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ? ΠΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²Π»ΠΈΡΡΡ Π½Π° Π±Π°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠΎΠΉ ΠΏΠΎΠΈΡΠΊΠ°, ΠΈ ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΈΠΏ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ pgvector.
ΠΠΈΡ 3: ΠΠ΅Π»ΡΠ·Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ 2000 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π² Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅
ΠΡΠΎΡ ΠΌΠΈΡ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² PostgreSQL ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 8Π. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡ β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 32 Π±ΠΈΡΠ°. ΠΡΠΎΡΡΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Ρ ΡΡΠ΅ΡΠΎΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ΠΎΠΊΠΎΠ»ΠΎ 2000 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π²Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°Π΅ΡΠ΅ΡΡ ΠΊ Π»ΠΈΠΌΠΈΡΡ Π² 8Π. Π₯ΠΎΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π»ΠΎΠΊΠ°Ρ (Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ TOAST), ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ Π²Π΅ΠΊΡΠΎΡΡ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ, Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΎΠ±ΡΡΠ΅Π½Π½ΡΡ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π²Π΅ΠΊΡΠΎΡΠ°, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ. Π‘ΡΠ΅Π΄ΠΈ ΡΠ°ΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² β PCA, t-SNE ΠΈ UMAP, ΠΈ Π΅ΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
Π‘Π°ΠΌΡΠΉ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ β ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Pgvector ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠΏ half_vec Ρ ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ: ΠΎΠ½ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² 16-Π±ΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ±ΠΈΡΠ°Ρ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΡΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π΅ΠΊΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ, ΡΡΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΡΠΈΠ»ΡΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΈΠΏ half_vec Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ float, Π² PostgreSQL ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π²Π΅ΠΊΡΠΎΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 4000 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ. Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Π΄ ΠΊΠ²Π°Π½ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄ΠΎ 8 Π±ΠΈΡ Ρ ΡΠΈΠΏΠΎΠΌ int_vec, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡ Π²Π΅ΠΊΡΠΎΡΡ Ρ 8000 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π²Π΅ΠΊΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² Π±Π»ΠΎΠΊ PostgreSQL ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΡΡΠΎΠΈΡ Π²Π·ΡΡΡ ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅: ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ Π² Π΄Π²Π° ΡΠ°Π·Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² β ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠΈΡ 4: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠΎΠΏΡΡΠΊΡ Π΄Π°Π½Π½ΡΡ
ΠΡΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΡΠ°Π²Π΄Π° β Π½ΠΎ ΡΡΠ°Π½Π΅Ρ ΠΌΠΈΡΠΎΠΌ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, Ρ Π²ΡΠΏΡΡΠΊΠΎΠΌ pgvector Π²Π΅ΡΡΠΈΠΈ 0.8.0. Π‘Π΅ΠΉΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π²ΠΈΠΊΠΈ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Π·Π°ΠΏΡΠΎΡ Β«ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡΒ». ΠΠΎ Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠΉ Π»Π΅ΡΡΠ½ΠΈΡΠ΅, Π° Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Β«ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅Β». ΠΠ°Ρ Π·Π°ΠΏΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ°ΠΊ PostgreSQL Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ? Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ» ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²Π΅ΠΊΡΠΎΡΠΎΠ², ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Β«ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅Β». ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π΅ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΡΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ PostgreSQL ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΡ 10 Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠ»ΡΡΡ, ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΡ 10 Π΄ΠΎ 0 ΡΡΡΠΎΠΊ. Π Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ²Π½ΠΎ 10 ΡΡΡΠΎΠΊ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ ΠΏΠΎΠΈΡΠΊΠ°, Ρ.Π΅. Ρ ΠΎΡΠ΅Π»ΠΈ Π½Π°ΠΉΡΠΈ k Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΠ»ΡΡΡΠ°, Π½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π΄Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠΈΡΡ.
Π Π²Π΅ΡΡΠΈΠΈ 0.8.0 Π±ΡΠ΄ΡΡ Π²Π²Π΅Π΄Π΅Π½Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ PostgreSQL ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΈΠ»ΡΡΡ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½ΡΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅Π΄Π΅ΠΉ.
Π’Π°ΠΊΠΆΠ΅ Π² Π²Π΅ΡΡΠΈΠΈ 0.8.0 Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΡΡΠ΅Π½Π° ΠΎΡΠ΅Π½ΠΊΠ° ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ PostgreSQL ΡΠ΅ΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΡ B-Tree ΠΈΠ»ΠΈ GiST. ΠΡΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΏΡΠΎΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ PostgreSQL Ρ Π½ΠΈΠΌΠΈ.
ΠΠΈΡ 5: ΠΠ΅ΠΊΡΠΎΡΠ½Π°Ρ ΡΡ ΠΎΠΆΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² RAG-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
Π RAG ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΎΠ²ΡΠΌ ΠΌΠΎΠ΄Π΅Π»ΡΠΌ (LLM) Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠ΅ ΠΎΡΠ²Π΅ΡΡ ΠΈ ΡΠ½ΠΈΠΆΠ°ΡΡ ΡΠΈΡΠΊ Π³Π°Π»Π»ΡΡΠΈΠ½Π°ΡΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡ ΠΎΠΆΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡ Π½Π΅ΠΎΡΠ΅Π½ΠΈΠΌΡΡ ΠΏΠΎΠΌΠΎΡΡ, Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ LLM:
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ β ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΡΠ°ΡΡΠΈ Π±Π°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈΠ»ΠΈ Π°Π³Π΅Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
- ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ β ΡΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅.
- Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ β ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° ΡΠ΅, ΡΡΠΎ ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ° ΠΊΠ½ΠΈΠ³Π°, Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΠΈ ΡΡΠ°...Β»
- ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ β ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΠΎΡΠ΅Π΄Π΅ΠΉ. ΠΡΠ»ΠΈ ΠΎΠ½ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π²ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°Π½ΠΎΠΌΠ°Π»ΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΠΈΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.
- ΠΠΎΠΈΡΠΊ ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΡΠΎΠ²Π°ΡΠΎΠ² β ΡΡΠΎΠ±Ρ ΠΏΠΎ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π°ΠΉΡΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΡΠΎΠ²Π°ΡΡ.
ΠΠΈΡ 6: pgvector Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ BM25 (ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ)
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΎΠ² β ΠΏΠ»ΠΎΡΠ½ΡΠ΅ ΠΈ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΠ΅:
- ΠΠ»ΠΎΡΠ½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠΎΠ²ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΈ ΠΊΠΎΠ΄ΠΈΡΡΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΈ Π²Π΅ΠΊΡΠΎΡΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ ΡΠ²ΡΠ·Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠ΅ΠΉ. ΠΠ»ΠΎΡΠ½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΡ 256 Π΄ΠΎ 4096 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ.
- Π Π°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΡΠ°ΡΡΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ TF-IDF, BM25, SPLADE, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π΅ΠΊΡΠΎΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ ΡΠ»ΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠ΅. Π ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΠΊΡΠΎΡΠ°Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ»ΠΎΠ²Ρ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΎ ΠΈΠ»ΠΈ Π²Π°ΠΆΠ½ΠΎ ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ°ΠΊΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΡ Π»ΠΈΠ±ΠΎ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ»ΠΎΠ² Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ (Π² ΡΠ»ΡΡΠ°Π΅ TF-IDF ΠΈ BM25), Π»ΠΈΠ±ΠΎ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»ΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 30 522 ΡΠ»ΠΎΠ²Π° Π΄Π»Ρ SPLADE). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π»ΠΈΡΡ ΠΌΠ°Π»ΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ»ΠΎΠ², Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΠΊΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0.
Π Π²Π΅ΡΡΠΈΠΈ 0.7.0 pgvector Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Ρ ΡΠΈΠΏΠΎΠΌ sparsevec. ΠΡΠΎΡ ΡΠΈΠΏ Ρ ΡΠ°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π½ΡΠ»Π΅Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π΅ΠΊΡΠΎΡΠ°. Π Π°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²Π»ΡΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π½ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pgvector (Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ ORM), ΡΠΎ ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ Π²Π΅ΠΊΡΠΎΡΡ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠΎΡΠΌΠ°Ρ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ»Π°Π³ΠΈΠ½ pgvector ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ: Π²Π΅ΡΡΠΈΡ 0.7.0 Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π² Π°ΠΏΡΠ΅Π»Π΅ 2024 Π³ΠΎΠ΄Π°, Π° ΡΠ΅Π»ΠΈΠ· 0.8.0 ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΎΠΊΡΡΠ±ΡΡ 2024. Π‘ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΡΡΡΠ°Π½ΡΡΡΡΡ ΡΡΠ°ΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ β pgvector ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΌ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΠ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ°ΠΊ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΎ Pgvector Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ? Π Π°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎ ΡΠ²ΠΎΠΈΡ ΠΈΠ΄Π΅ΡΡ !