Geri qayıt
turbopuffer v3-ə keçir: vektor indeksi ikinci dərəcəli indekse çevrilir
SiTech AI Team3 dəq oxu

turbopuffer v3-ə keçir: vektor indeksi ikinci dərəcəli indekse çevrilir

turbopuffer-ə görə, v3 arxitekturasında sənədlər və indekslər ANN vektor ünvanına bağlanmayacaq, vektor indeksi isə ikinci dərəcəli roluna keçəcək. Şirkətin açıqlamasına görə, v3 üzrə CI testlərinin 100% uğurla keçir.

Server axtarış sistemi turbopuffer-in blogunda 30 sentyabrda “RIP, vektor verilənlər bazası” başlıqlı yazı dərc olundu. Onun şirkətin mühəndisi Dan Harrison yadda saxlama arxitekturası turbopuffer v3-ü təsvir etdi: sənədlər və indekslər ANN vektor ünvanına bağlanmayacaq, vektor indeksi ikinci dərəcəli roluna keçəcək, əsas indeksin funksiyası isə yeni strukturaya ötürüləcək.

Şirkətin açıqlamasına görə, dəyişiklik bütün növ axtarışları, o cümlədən mətni, regex və vektor axtarışını sürətləndirəcək və turbopuffer üzərində daha çox SQL sorğusunun sürətlə icrası əsasını qoyacaq.

v1-dən v2-yə

turbopuffer server vektor bazası kimi işə başladı: sənəd yalnız ID və vektorə ibarət idi, məlumatların orijinali obyekt yadda saxlamasında saxlanıldı, sürəti isə NVMe diskləri və yaddaş keşləri təmin edirdi. Vektorlar iyerarxik klasterlərə bölünürdü: əvvəl SPANN, sonra isə SPFresh ilə, ki, şirkət inkremental indeksləşdirmə üçün seçdi. İlk müştərilər arasında Cursor və Notion var idi. İkinci nəsil atributlarla filtrləmə və BM25 mətn axtarışı əlavə etdi, sonra regex axtarışı, qeyri-dəqiq uyğunlaşma, sıx olmayan vektorlar və agregasiyalar. Motor qeyri-axtarış tapşırıqlarında da istifadə olunur, məsələn, Linear-in sinxronizasiya sistemində. Axtarış imkanları artırdı, yadda saxlama quruluşu isə vektor indeksə əsaslanırdı, ki, GROUP BY və agregasiya planlarını məhdudlaşdırırdı.

Üç problem

Postda vektor indeksə əsaslanan quruluşun üç çatıqsızlığı göstərilir. Birincisi, yadda saxlamada məlumatların dublikatlanması: sənədin tam məzmunu vektor ünvanında saxlanılır, buna görə çoxvektorlu təqdimatlar, məsələn sənədlərin embeddingi və ya geç interaksiya, eyni məlumatları hər vektor üzərində təkrarlayır. İkincisi, yazma dublikatı: SPFresh klasterləri hər yazma, yeniləmə və ya silmədə yenidən qurulur və atributlar da, invers indekslər də eyni ünvanə bağlı olduğundan, bir vektorun yeniləməsi yüzlərlə atributu və onların indekslərini yerini dəyişə bilər. Üçüncüsü, vektorlaşdırma məhdudiyyəti: müasir motorlar dəyərləri bloklarla emal edir (DuckDB 2 048 sətir istifadə edir, ClickHouse təxminən 65 min, Lucene bloklarında 256 sənəd var), turbopuffer-in ANN klasterləri isə ən yaxşı halda 100-200 sənəd üzərində işləyir, buna görə daha böyük blokları istəyən planlar bu həddi aşa bilməz.

Nümunə kimi şirkət öz mətn axtarışını göstərir: postinglərin sabit bloklara (təxminən 256) bölünməsi indeksi 10 dəfə azaltdı və sorğuları 20 dəfə sürətləndirdi.

Növbəti nə

v3 hələ istehsala salmayıb. Sentyabrda şirkət mühüm mərhələyə çatdı: v3 üzrə CI testlərinin 100% uğurla keçir. Komanda indi dəqiqlikdən sürətə keçir və benchmarkları gələn həftələrdə turbopuffer.com/v3 üzərində açıq şəkildə dərc edəcək ki, v3 istehsala salınana qədər səmərəlilik paritetini əldə etsin və keçsin.

turbopuffer-ə görə, sistem 1 trilyondan çox sənədə xidmət göstərir, saniyədə 10 milyondan çox yazmanı emal edir və saniyədə 25 mindən çox sorğuya xidmət edir. Əvvəlki arxitektura üçün şirkət vektor axtarışını 100 milyarddan çox vektora malik ayrıca indekslərə qədər gətirdi: p99 oxuma müddəti 200 ms idi, tezlik isə saniyədə 1000-dən çox idi.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.