Bu makale, OpenAI tarafından yayınlanan resmi belgelere, OpenAI geliştirici topluluğu tartışmalarında toplanan ekip geri bildirimlerine ve bu üç boyutlu sınıfları yerel olarak üç farklı vektör sütununa yönlendiren Aurabase kodunda doğrulanan davranışa dayanmaktadır. Her dış figürün tarihi ve kaynağı vardır; Kendi ölçümlerimize uyguladığımız metodoloji için kıyaslama metodolojisi sütunumuzabakın.
- 1536 boyutları çoğu durumda en dengeli seçim olmaya devam ediyor: pgvector'un yerel HNSW desteğinden ayrılmadan yerel metin yerleştirme-3-küçük veya kesik metin yerleştirme-3-büyük.
- 3072 boyutları (text-embedding-3-large), OpenAI tarafından yayınlanan en yüksek MTEB puanını sunar (%64,6'ya karşı %62,3), ancak pgvector'ın
vectortürünün 2000 boyut sınırını aşar: HNSW dizini,halfvec'ye dönüşüm gerektirir. - OpenAI
dimensionsparametresi (Matryoshka tekniği) aracılığıyla bir yerleştirmenin kesilmesi, depolamayı azaltır ve aramayı hızlandırır ancak fiyatı düşürmez: bu, döndürülen vektörün boyutuna değil, sorgulanan modele bağlıdır. halfvecdepolama alanı sayesinde (boyut başına 2 bayt), 3072 boyutlu bir vektör Aurabase'de klasikvector'deki 1536 vektörüyle (boyut başına 4 bayt) aynı ham disk alanını kaplar: yaklaşık 6 KB.- Aurabase yerel olarak tam olarak 3 boyut sınıfını destekler, 768, 1536 ve 3072, her biri kendi sütunundadır (
aura-ai/src/embeddings/mod.rsiçinde işaretlenmiştir): serbest boyut alanı yoktur.
768, 1536 veya 3072: Her seviyede gerçekte ne değişiyor?
Açıkçası, kesmeden bahsetmeden önce, metin gömme-3-küçük ve metin-gömme-3-büyük arasında seçim yapmak, ilk olarak 1536 ile 3072 yerel boyut arasında seçim yapmak anlamına gelir. Aşağıdaki tablo, pgvector'ün indeksleme tarafında doğal olarak tanıdığı üç seviyeye ve Aurabase rotasına ilişkin doğrulanabilir gerçekleri özetlemektedir.
| Kriter | 768 boyut | 1536 boyut | 3072 boyut |
|---|---|---|---|
| İlgili model(ler) | OpenAI kesme veya eski/açık kaynak (yerel) model | metin yerleştirme-3-küçük (yerel) veya kesilmiş 3-büyük | metin gömme-3-büyük (yerel) |
| Ortalama MTBEB puanı | OpenAI tarafından bu boyutta yerel olarak yayınlanmadı | 62,3 % | 64,6 % |
| Gösterge niteliğindeki OpenAI fiyatı / 1 milyon token | boyutuna değil sorgulanan modele bağlıdır | 0,02 ABD doları (küçük) veya 0,13 ABD doları (büyük kesilmiş) | 0,13 USD (metin yerleştirme-3-büyük) |
| Brüt depolanan ağırlık / vektör | 3 KB (float32) | 6 KB (float32) | 12 KB (vektör) veya 6 KB (halfvec, Aurabase) |
| Yerel HNSW pgvektör dizini | evet | evet | hayır: halfvec dökümü gerekli (>2000 loş) |
| Aurabase sütunu (doğrulanmış kod) | yerleştirme_768 | yerleştirme_1536 | yerleştirme_3072 |
Kaynaklar: OpenAI, resmi blog "Yeni yerleştirme modelleri ve API güncellemeleri", 25 Ocak 2024 (MTEB puanları ve lansman fiyatları, kullanımdan önce mevcut fiyatlandırma sayfasını kontrol edin); aura-ai/src/embeddings/mod.rs, Aurabase (sütunlar ve dizin desteği, 24 Ağustos 2026'da doğrulandı).
Depolama üzerindeki etkisi: her şeyi değiştiren hesaplama
Bir yerleştirme, kayan nokta sayıları dizisi gibi depolanır. Pgvector'da, klasik vector türü her boyutu 4 baytta (float32) kodlar: 768 boyut, pgvector başlığını ve Postgres sayfa ek yükünü saymadan önce bile, vektör başına yaklaşık 3 KB ham veri, 1536 boyut yaklaşık 6 KB ve 3072 boyut yaklaşık 12 KB ağırlığındadır.
Her boyutu 4 yerine 2 bayt (float16) olarak kodlayan halfvec tipi pgvector burada devreye giriyor. halfvec içinde depolanan 3072 boyutlu bir vektör yaklaşık 6 KB ağırlığındadır: klasik vectoriçinde saklanan 1536 boyutlu bir vektörün tam ağırlığı.
Doğrudan ve sezgisel olmayan sonuç: Aurabase'de 1536 boyuttan 3072 boyuta geçiş, diskteki gerçek depolama alanını iki katına çıkarmaz çünkü embedding_3072 sütunu, halfvecdönüşümü yoluyla sorgulanır. Bu nedenle, 3072 boyutlarının gerçek ek maliyeti öncelikle disk değildir: ilgili OpenAI modelinin fiyatı ve aşağıdaki bölümde ayrıntılı olarak açıklanan vectortürü yerel dizin desteğinin çıktısıdır.
Neden 3072 boyutları pgvector altında dizin türünü değiştiriyor?
vector pgvector türü, 2000 boyutun ötesinde bir HNSW veya IVFFlat dizini oluşturulmasına izin vermez. Dolayısıyla 3072 boyutları bu sınırı aşıyor: vector(3072) sütunundaki hiçbir vektör arama sorgusu yaklaşık bir dizine dayanamaz, tam sıralı taramaya dayanır ve üretimdeki bir RAG derleminin ölçeğinde kullanılamaz.
Aurabase kodu bu durumu açıkça ele alır: embedding_3072 sütunu, her ekleme ve arama sorgusunda, pgvector'ın 4000'e kadar boyutu indeksleyebileceği bir tür olan halfvec(3072)'ye dönüştürülür. 768 ve 1536 numaralı sütunlar, sınıra yaklaşmadıklarından yerel vectoryayınlanmamış olarak kalır.
Bu ayrıntı aynı zamanda [768, 1536, 3072]'de listelenmeyen bir yerleştirme boyutunun neden kabul edilip daha sonra kötü şekilde dizine eklenmesi yerine Aurabase tarafında açıkça başarısız olduğunu da açıklamaktadır: sütun adı her zaman sabit bir izin verilenler listesinden gelir, asla müşteri tarafından gönderilen ücretsiz bir değerden gelmez. Bu özel durumun ötesinde Postgres'te bir HNSW dizini oluşturmaya daha derinlemesine bakmak için HNSW dizini ve Postgres vektör aramasımakalemize bakın.
Her şeyi kaybetmeden boyutu küçültmek: OpenAI'nin Matryoshka kısaltması
Ocak 2024 itibarıyla OpenAI'nin Embeddings API'si, farklı bir modeli yeniden çağırmadan döndürülen vektörü kısaltan bir dimensions parametresini kabul etmektedir. Tekniğe Matryoshka Temsil Öğrenimi adı verilir: Model, vektörün ilk boyutlarında yararlı bilgiyi yoğunlaştırmak üzere eğitilir, böylece bir kesme birdenbire yerine kademeli olarak hassasiyetini kaybeder.
OpenAI, duyurusunda bu tekniğin etkinliğini belirli bir örnekle gösteriyor: text-embedding-3-large, yalnızca 256 boyuta kısaltılmış, 1536 boyutta tam boyutta kullanılan eski text-embedding-ada-002'nin MTEB puanını hala aşıyor (kaynak: OpenAI, resmi blog, 25 Ocak 2024). Bu spesifik kıyaslamada, tam bir vektörden daha iyi performans gösteren, 12 kat daha küçük bir vektör.
Önemli ve çoğu zaman yanlış anlaşılan nokta: kesinti, uygulanan fiyatı azaltmaz. Gerçek maliyet, giriş metninde gerçekleştirilen hesaplama olduğundan, OpenAI ücretleri döndürülen vektörün boyutuna değil, sorgulanan modele göre belirlenir. Bu nedenle, text-embedding-3-large'den 1536 boyut talep etmek, 3072 yerel boyutla aynı fiyata mal olur (kaynak: OpenAI, resmi blog, 25 Ocak 2024); yalnızca depolama ve arama hızı değişir.
This is precisely the default choice of Aurabase, verified in config/mod.rs: the model configured by default is text-embedding-3-large, but the output dimension configured by default is 1536, not 3072. The service therefore pays for the representation of the wide model, truncated to remain on an indexable vector column in native HNSW, without the halfvec cast required to 3072.
Kullanım durumunuza göre hangi boyutu seçmelisiniz
1536 boyut, RAG veya semantik arama projelerinin çoğunluğu için makul başlangıç noktası olmaya devam ediyor: metin yerleştirme-3-küçük (%62,3)'ün MTEB puanı büyük modelinkine yakın kalıyor, depolama hafif kalıyor ve HNSW'de herhangi bir özel yapılandırma olmaksızın klasik vector tipi pgvector indeksleri.
3072 boyutları, derlem belirsiz veya teknik olduğunda, %62,3 ile %64,6 arasındaki kalite farkının genel OpenAI karşılaştırmasında değil, kendi sorgularınızda gözle görülür şekilde daha iyi arama sonuçlarına dönüştüğü durumlarda haklı çıkar. OpenAI geliştirici topluluğu tartışmalarında kaydedilen birçok ekip geri bildirimi bu yöne işaret ediyor: 3072 boyutun kazanımı duruma göre ölçülür, bu varsayılamaz.
768 boyutları, hacmin nüanstan öncelikli olduğu durumlarda özellikle uygundur: depolama veya hesaplama bütçesinin gerçek kısıtlama olduğu büyük bir korpus veya halihazırda 768 yerel boyutta olan eski bir yerleştirme modelinin kullanılması.
Yalnızca OpenAI tarafından yayınlanan genel MTEB puanı değil, kendi derleminizin temsili bir örneği üzerinde arama kalitesini ölçene kadar boyutu ayarlamayın. METEB düzinelerce heterojen görevin ortalamasını alır; RAG derleminiz yalnızca bir tanesidir.
Bu boyut seçimi, Yerel AIsayfamızın belgelediği daha büyük bir RAG yığınının, yerleştirmelerin, HNSW dizininin, karma aramanın bir parçasıdır.
Bize en sık sorulanlar
Doğru seçim en büyük değil, en iyi ölçülen seçimdir
768, 1536 ve 3072 boyutları tek eksende bölünmemiştir. OpenAI tarafından yayınlanan MTEB skorunda 3072 kazanç elde ediyor ancak pgvector'un yerel HNSW desteğini bırakıyor ve sonuçta talep edilen boyut ne olursa olsun büyük modelin bedelini ödüyor. 1536, Aurabase de dahil olmak üzere en yaygın temerrüt bakiyesi olmaya devam ediyor. 768, hacmin nüanstan öncelikli olduğu durumlara hizmet eder.
OpenAI'nin dimensions parametresi sorulacak soruyu değiştiriyor: artık "hangi modelin seçileceği" değil, "külliyatımda ölçülen kazanç için hangi kesmenin kabul edileceği". Üretimde bir seçimi tamamlamadan önce, arama kalitesini yalnızca genel bir kıyaslamayla değil, gerçek bir örnek üzerinde test edin. Kılavuzumuz pgvector içeren RAG ardışık düzeni, alımdan hibrit aramaya kadar tüm kurulumun ayrıntılarını verir.