4 poin oleh GN⁺ 2025-11-29 | Belum ada komentar. | Bagikan ke WhatsApp
  • Dataset Hacker News mencakup 28,74 juta postingan dan komentar, dengan setiap teks terdiri dari vector embedding 384 dimensi yang dihasilkan oleh model SentenceTransformers all-MiniLM-L6-v2
  • Data dirilis dalam bentuk satu file Parquet (bucket S3) yang disediakan oleh ClickHouse, sehingga dapat dimanfaatkan untuk perancangan dan evaluasi performa aplikasi pencarian vektor skala besar
  • Contoh kode SQL menjelaskan langkah demi langkah proses pembuatan tabel, pemuatan data, pembangunan indeks kemiripan vektor berbasis HNSW, dan eksekusi kueri pencarian
  • Dalam contoh Python, SentenceTransformers digunakan untuk membuat embedding kueri, lalu pencarian berbasis makna dilakukan di ClickHouse dengan fungsi cosineDistance()
  • Aplikasi demo peringkasan yang menyusul memanfaatkan LangChain dan OpenAI GPT-3.5-turbo untuk merangkum postingan yang ditemukan, sekaligus menunjukkan potensi perluasan ke kasus penggunaan AI generatif untuk perusahaan

Gambaran umum dataset pencarian vektor Hacker News

  • Dataset ini mencakup 28,74 juta postingan dan komentar Hacker News, dan setiap item menyertakan vector embedding 384 dimensi yang dihasilkan oleh model SentenceTransformers all-MiniLM-L6-v2
    • Embedding dibuat menggunakan model embedding lokal untuk menangkap makna kalimat dan paragraf
  • Dataset ini dapat digunakan untuk merancang, memperkirakan skala, dan menganalisis performa aplikasi pencarian vektor skala besar berbasis data teks buatan pengguna

Detail dataset

Prosedur pemuatan data dan pembangunan indeks

  • Tabel hackernews dibuat agar mencakup berbagai atribut seperti ID postingan, teks, vektor, penulis, waktu, skor, dan lain-lain
  • Pemuatan data dilakukan dengan perintah SQL berikut
    INSERT INTO hackernews SELECT * FROM s3('https://clickhouse-datasets.s3.amazonaws.com/hackernews-miniLM/…');
    
    • Penyisipan sekitar 28,74 juta baris memerlukan waktu beberapa menit
  • Indeks kemiripan vektor dibuat menggunakan algoritme HNSW dan cosineDistance
    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;
    
    • Ditetapkan dengan M=64, ef_construction=512, dan pembangunan indeks dapat memakan waktu dari beberapa menit hingga beberapa jam tergantung jumlah inti CPU dan bandwidth penyimpanan
  • Setelah indeks selesai dibangun, kueri pencarian vektor akan otomatis memanfaatkan indeks tersebut
    SELECT id, title, text
    FROM hackernews
    ORDER BY cosineDistance(vector, <search vector>)
    LIMIT 10
    
    • Pemuatan indeks ke memori dapat memerlukan waktu dari beberapa detik hingga beberapa menit

Contoh pencarian semantik berbasis Python

  • Skrip Python membuat embedding untuk kueri masukan dengan SentenceTransformers, lalu menjalankan kueri melalui ClickHouse Connect
  • Fungsi cosineDistance() digunakan untuk menghitung kemiripan antara vektor input dan vektor dalam dataset
  • Dalam contoh eksekusi, kueri “Are OLAP cubes useful” menampilkan 20 postingan terkait teratas
    • Hasil keluaran terdiri dari ID tiap postingan dan sebagian teksnya (100 karakter)

Aplikasi demo peringkasan

  • Setelah contoh pencarian semantik dan pencarian dokumen menggunakan ClickHouse, diperkenalkan aplikasi peringkasan berbasis AI generatif
  • Langkah utamanya
    1. Menerima topik dari pengguna
    2. Membuat embedding topik dengan SentenceTransformers all-MiniLM-L6-v2
    3. Mengambil postingan/komentar terkait melalui pencarian kemiripan vektor di ClickHouse
    4. Merangkum hasil pencarian menggunakan LangChain dan OpenAI gpt-3.5-turbo
  • Dalam contoh eksekusi, pencarian dilakukan dengan topik “ClickHouse performance experiences”, lalu GPT-3.5 menghasilkan ringkasan
    • Isi ringkasan menekankan performa, kesederhanaan, efisiensi, dan kecocokan untuk analitik skala besar dari ClickHouse, sambil juga menyebut beberapa kesulitan terkait DML dan backup
  • Aplikasi ini dapat diperluas ke berbagai kasus penggunaan AI generatif di perusahaan seperti analisis sentimen pelanggan, otomatisasi dukungan teknis, peringkasan notulen rapat, dan analisis dokumen keuangan

Susunan kode aplikasi peringkasan

  • Dalam kode Python digunakan SentenceTransformer, clickhouse_connect, LangChain, ChatOpenAI, dan lain-lain
  • Hasil pencarian digabungkan lalu diberikan ke model GPT-3.5 untuk menghasilkan ringkasan maksimum 10 kalimat
  • Bergantung pada jumlah token teks masukan, pemrosesan memilih rantai stuff atau map_reduce
  • Hasil ditampilkan dalam format “Summary from chatgpt-3.5:”

Belum ada komentar.

Belum ada komentar.