4 puan yazan GN⁺ 2025-11-29 | 1 yorum | WhatsApp'ta paylaş
  • Hacker News veri kümesi 28 milyon 740 bin gönderi ve yorumu kapsar ve her metin, SentenceTransformers all-MiniLM-L6-v2 modeli ile üretilmiş 384 boyutlu bir vektör gömme ile temsil edilir
  • Veri, ClickHouse tarafından sağlanan tekil bir Parquet dosyası (S3 bucket) biçiminde yayınlanır ve büyük ölçekli vektör arama uygulamalarınin tasarımı ile performans değerlendirmesinde kullanılabilir
  • Örnek SQL kodlarıyla tablo oluşturma, veri yükleme, HNSW tabanlı vektör benzerliği indeksi oluşturma ve arama sorgusu çalıştırma adımları ayrıntılı olarak açıklanır
  • Python örneğinde, SentenceTransformers ile sorgu gömmesi oluşturulup, ClickHouse'ta cosineDistance() fonksiyonu ile anlamsal arama gerçekleştirilir
  • Sonraki özetleme demo uygulaması, LangChain ve OpenAI GPT-3.5-turbo kullanarak bulunan gönderileri özetler ve kurumsal üretken yapay zeka kullanım senaryolarına genişletme potansiyeli sunar

Hacker News Vektör Arama Veri Kümesi Genel Bakış

  • Veri kümesi, Hacker News’in 28 milyon 740 bin gönderi ve yorumunu içerir ve her öğe, SentenceTransformers all-MiniLM-L6-v2 modeli ile üretilmiş 384 boyutlu vektör gömme barındırır
    • Gömme, cümle ve paragrafların anlamını yakalamak için yerel bir gömme modeli kullanır
  • Bu veri kümesi, kullanıcı tarafından üretilen metin verisine dayalı büyük ölçekli vektör arama uygulamalarının tasarımı, kapasite planlaması ve performans analizinde kullanılabilir

Veri Kümesi Ayrıntıları

  • Tüm veri, ClickHouse tarafından sağlanan tek bir Parquet dosyası olarak sunulur ve https://clickhouse-datasets.s3.amazonaws.com/hackernews-miniLM/… adresindeki S3 bucket üzerinden indirilebilir
  • Kullanıcılara depolama ve bellek gereksinimlerini tahmin etmek için ClickHouse belgelerindeki ANN index kılavuzuna bakmaları önerilir

Veri Yükleme ve İndeks Oluşturma Süreci

  • hackernews tablosu, gönderi kimliği, metin, vektör, yazar, zaman ve puan gibi çeşitli alanları içerecek şekilde oluşturulur
  • Veri yükleme şu SQL komutuyla yapılır
    INSERT INTO hackernews SELECT * FROM s3('https://clickhouse-datasets.s3.amazonaws.com/hackernews-miniLM/…');
    
    • Yaklaşık 28 milyon 740 bin satırın eklenmesi birkaç dakika sürer
  • Vektör benzerliği indeksi, HNSW algoritması ve cosineDistance kullanılarak oluşturulur
    ALTER TABLE hackernews ADD INDEX vector_index vector TYPE vector_similarity('hnsw', 'cosineDistance', 384, 'bf16', 64, 512);
    ALTER TABLE hackernews MATERIALIZE INDEX vector_index SETTINGS mutations_sync = 2;
    
    • M=64 ve ef_construction=512 ile ayarlanır; CPU çekirdeği sayısına ve depolama bant genişliğine göre indeks oluşturma birkaç dakikadan birkaç saate kadar sürebilir
  • İndeks oluştuktan sonra vektör arama sorguları otomatik olarak indeksi kullanır
    SELECT id, title, text
    FROM hackernews
    ORDER BY cosineDistance(vector, <search vector>)
    LIMIT 10
    
    • İndeksin belleğe yüklenmesi birkaç saniye ile birkaç dakika sürebilir

Python Tabanlı Anlamsal Arama Örneği

  • Python betiği, SentenceTransformers ile giriş sorgusunun gömmesini oluşturur ve ClickHouse Connect üzerinden sorguyu çalıştırır
  • Benzerlik, giriş vektörü ile veri kümesindeki vektörler arasındaki mesafe için cosineDistance() fonksiyonu kullanılarak hesaplanır
  • Örnek çalışmada, "Are OLAP cubes useful" sorgusu için en alakalı 20 gönderi listelenir
    • Çıktıda her gönderinin kimliği ve metnin bir kısmı (100 karakter) gösterilir

Özetleme Demo Uygulaması

  • ClickHouse ile anlamsal arama ve belge arama örneğinin ardından üretken yapay zeka temelli özetleme uygulaması sunulur
  • Ana adımlar
    1. Kullanıcıdan konu girişi alınır
    2. SentenceTransformers all-MiniLM-L6-v2 ile konu gömmesi oluşturulur
    3. ClickHouse'ta vektör benzerliği aramasıyla ilgili gönderiler/yorumlar getirilir
    4. Sonuçlar, LangChain ve OpenAI gpt-3.5-turbo ile özetlenir
  • Örnek çalışmada "ClickHouse performance experiences" konusu için arama yapıldıktan sonra GPT-3.5 özet üretir
    • Özette, ClickHouse'ın performans, basitlik, verimlilik ve büyük ölçekli analize uygunluğu vurgulanır; ayrıca bazı DML ve yedekleme zorlukları da belirtilir
  • Bu uygulama, müşteri duygu analizi, teknik destek otomasyonu, toplantı tutanaklarının özetlenmesi, finansal belge analizi gibi çok çeşitli kurumsal üretken yapay zeka kullanım senaryolarına genişletilebilir

Özetleme Uygulaması Kod Yapısı

  • Python kodunda SentenceTransformer, clickhouse_connect, LangChain, ChatOpenAI gibi bileşenler kullanılır
  • Arama sonuçları birleştirilip GPT-3.5 modeline iletilir ve en fazla 10 cümlelik bir özet üretilir
  • Giriş metninin token sayısına göre, işleme için stuff veya map_reduce zincirlerinden biri seçilir
  • Sonuç şu formatta yazdırılır: “Summary from chatgpt-3.5:”

1 yorum

 
GN⁺ 2025-11-29
Hacker News görüşleri
  • Yeni vektör gömme veri seti için all-MiniLM-L6-v2 kullanılmaması öneriliyor
    Bu model, ilk dönem eğitimlerde sık kullanılan sentence-transformers tabanlı pratik bir modeldi, ancak artık eskidiği için güncel mimari ve eğitim pipeline’larını yansıtmıyor
    Bağlam uzunluğu da 512 ile kısa. Bunun yerine EmbeddingGemma öneriliyor. 2k context window destekliyor ve benchmark performansı çok iyi
    Yavaş ama değer. Orta yol olarak bge-base-en-v1.5 veya nomic-embed-text-v1.5 da iyi seçenekler

    • Bu aralar Qwen3-Embedding-0.6B tercih ediliyor
      Açık ağırlıklar, çok dilli destek ve 32k bağlam sunuyor
    • Yine de all-Mini’nin avantajı istemci tarafında çalışabilmesi
      Yaklaşık 70MB olduğu için indirmesi kolay. EmbeddingGemma ise 300MB’ın üzerinde, bu da yük oluşturuyor
      100MB altı kullanılabilir bir model olup olmadığı merak ediliyor
    • EmbeddingGemma’nın lisans sorunu can sıkıcı
      “Gemma lisansı” belirsiz olduğu için hukuki inceleme gerektirebilir
      Google “kısıtlı kullanım” listesini değiştirirse, kullanımın her an yasaklanma riski var
    • Ticari embedding modelleri arasında karşılaştırma merak ediliyor
      Örneğin Cohere vs OpenAI small vs OpenAI large gibi karşılaştırmalar yeterince yok
      Hangi ölçüte göre benchmark yapılması gerektiği de belirsiz
    • Birkaç hafta önce EmbeddingGemma ile nomic-embed-text-v1 AB testi yapılmış ve nomic tarafı çok daha iyi sonuç vermiş
      CPU’da da iyi çalışıyor
  • 2023’ten beri tüm HN yorumları BigQuery üzerinde embed edilip hn.fiodorov.es adresinde barındırılıyor
    Kaynak kodu GitHub üzerinde açık

    • Bizzat deneyen biri, oldukça iyi yanıtlar verdiğini söylüyor
      “Who’s Gary Marcus” aratıldığında Google’a kıyasla daha olumsuz sonuçlar çıkmış
      İşletme maliyetinin ne kadar olduğu merak ediliyor
    • GitHub reposundaki mimari açıklaması etkileyici bulunmuş. Harika bir proje
    • Embedding’lerin hangi donanımla üretildiği ve ne kadar sürdüğü merak ediliyor
    • Kullanıcıların kendi verilerinin silinmesini isteyebilmesi için bir issue gönderme özelliği olup olmadığı soruluyor
  • HN’nin Privacy ve Data Policy metnine göre yorumların ticari kullanımı yasak
    Vektör temsilleri de teknik olarak türev eser sayılabilir

    • Y Combinator kullanım şartlarına göre
      site içeriğinin ticari amaçla kopyalanması, dağıtılması, değiştirilmesi ve türevlerinin üretilmesi yasak
      Ayrıca data mining, scraping gibi faaliyetler de yasaklanmış durumda
    • Elbette vektörler türevdir, ama benim hafızam da aynı şekilde türev sayılır
      Kendi hafızamın harici destek aracı olarak bir vektör veritabanı oluşturmanın hakkım olduğunu düşünüyorum
    • Şaka bir yana, tüm yorumlarımın silinmesini istemeyi düşünüyordum. Artık buna gerek kalmayacak gibi
    • O zaman birinin OpenAI’a da haber vermesi gerekir
  • HN’de “benzer cümleleri göster” gibi bir sağ tık menüsü olsa güzel olurdu
    Daha önce aynı önerinin yapılıp yapılmadığı da görülebilirdi

    • Yorumları ve başlıkları anlamsal olarak bağlamak gerçekten ilginç olabilir
      Aynı tartışmanın başka gönderilerde ne kadar tekrarlandığı görülebilir ve
      yazmak üzere olunan şeye geçmişte nasıl tepki verildiği önceden kontrol edilebilir
      Bir tür semantic thread fikrine dönüşebilir
    • Bu özellik kullanılsa muhtemelen “tangential, orthogonal, anecdata, enshittification, razor…” gibi kelimeler dolup taşardı
    • Geçmişte biri HN için bir yan hesap tespit aracı yapmıştı; sadece yazı stilinden neredeyse kusursuz biçimde buluyordu, ürkütücüydü
  • Acaba vektör arama vs düz metin arama karşılaştırması yapan bir makale var mı diye merak ediliyor
    Vektör aramanın gerçekten buna değip değmediği sorgulanıyor

    • Düz aramaya genelde bm25 deniyor. Aramayla ilgili makalelerin çoğunda bm25 temel karşılaştırma olarak kullanılıyor
    • Belirli bir makale bilinmiyor ama Bluesky’deki reachsumit.com hesabı RAG ve bilgi erişimi ile ilgili içerikleri sık paylaşıyor
    • Karşılaştırmanın hangi açıdan yapıldığı önemli — sunucu yükü mü, kullanıcı deneyimi mi olduğuna göre değişir
  • HN gönderileri ile embedding metadata’sının toplamda 55GB olduğu söyleniyor; Parquet dosyaları için bunun doğru olup olmadığı soruluyor

    • Büyük kısmı muhtemelen embedding verisidir. Birinin veritabanı tüm HN gönderileri ve yorumlarını kapsıyor; sıkıştırma öncesi 17.68GB, sıkıştırma sonrası yaklaşık 5.67GB
    • Sıkıştırma verimliliği şaşırtıcı derecede iyi. Brotli sıkıştırması kullanıldığında milyonlarca sayfa 1–2GB’a kadar düşebiliyor
    • Tabloya bakınca sayı doğru görünüyor. Kendi upvote verilerini embed edip zevk analizi yapmak isteyen de var
    • Sıkıştırılmış durumdaysa tamamen makul bir boyut
  • Eğer yorumların ticari model eğitimi için kullanılmasının tek amacı buysa, bu biraz buruk hissettiriyor
    Bunun ileride katılım isteğini etkileyebileceği söyleniyor

    • LLM’lerin ortaya çıkmasından sonra internete faydalı şeyler yazma isteği azalmış
      Eskiden yabancılara yardım ediyormuş gibi geliyordu, şimdi ise hoşlanılmayan insanlara yardım ediliyormuş gibi hissettiriyor
    • Buna karşılık, kendi tuhaf yorumlarının LLM’nin latent uzayında iz bırakması fikrini eğlenceli bulanlar da var
      Geleceğin dev modelinin bir yerlerinde sözlerinin hafifçe yankılanabileceği düşünülüyor
    • Ortamın fazla ciddileştiği, biraz eğlenmek gerektiği de söyleniyor
  • Keşke hesap/yorum silme özelliği olsaydı

    • Yazdıklarımız zaten dünyanın dört bir yanındaki sayısız cihaza kopyalanmış durumda
      Fiilen kalıcı veri hâline geldi ve bir gün yorumlarım antik bilgelik gibi kalabilir
    • HN veri seti zaten birçok yere kopyalandığı için, burada yazılanları kamusal içerik olarak düşünmek gerektiği söyleniyor
  • Yapılacaklar listesinden bir madde silinmiş (bu proje sayesinde)

  • Diyelim ki bir arkadaş soruyor… Buraya yorum yazınca bu vektöre dönüştürülüyor mu?