1 poin oleh GN⁺ 2024-11-22 | 1 komentar | Bagikan ke WhatsApp

Ringkasan proyek

  • Model bahasa besar (LLM) modern mengodekan konsep dengan menumpuk banyak fitur pada neuron yang sama, dan aktivasi setiap neuron dapat memiliki beberapa makna yang dapat diinterpretasikan tergantung pada aktivasi neuron lain. Ini disebut superposition.
  • Sparse Autoencoders (SAE) disisipkan ke dalam LLM yang telah dilatih untuk memproyeksikan aktivasi ke ruang laten sparse yang sangat besar, memisahkan representasi yang saling bertumpuk dan mengubahnya menjadi fitur yang dapat diinterpretasikan.
  • Proyek ini bertujuan mereproduksi penelitian yang telah berhasil dilakukan oleh Anthropic, OpenAI, dan Google DeepMind untuk mengekstrak fitur yang dapat diinterpretasikan.
  • Menyediakan pipeline lengkap untuk membuat sparse autoencoder yang fungsional dan dapat diinterpretasikan untuk model Llama 3.2-3B.

Fitur utama

  • Menyediakan pipeline end-to-end lengkap, mulai dari penangkapan aktivasi yang ditulis dengan PyTorch hingga pelatihan SAE, interpretasi fitur, dan verifikasi.
  • Menangkap aktivasi residual dari model bahasa besar untuk digunakan sebagai dataset pelatihan SAE.
  • Memproses awal data pelatihan secara efisien dan mendukung pelatihan terdistribusi skala besar dengan memanfaatkan multi-GPU.
  • Mengimplementasikan auxiliary loss selama pelatihan SAE untuk mencegah variabel laten mati dan menstabilkan dinamika pelatihan.
  • Menyediakan logging, visualisasi, dan checkpoint pelatihan SAE yang komprehensif melalui Weights & Biases.
  • Mendukung analisis makna fitur yang dipelajari melalui alat analisis interpretabilitas.
  • Memungkinkan penggunaan umum dan verifikasi hasil tanpa dependensi eksternal melalui implementasi PyTorch murni dari Llama 3.1/3.2.
  • Memverifikasi pengaruh SAE terhadap perilaku model melalui tugas text completion dan chat completion, serta memungkinkan penyesuaian fitur semantik yang diekstrak.

Sumber daya yang dirilis

  1. Dataset kalimat OpenWebText:

    • Versi kustom dari dataset OpenWebText yang digunakan untuk penangkapan aktivasi.
    • Mempertahankan teks asli dan menyimpan setiap kalimat dalam format Parquet untuk akses cepat.
    • Menggunakan tokenizer "Punkt" dari NLTK 3.9.1 untuk pemisahan kalimat.
  2. Aktivasi Llama 3.2-3B yang ditangkap:

    • 25 juta kalimat aktivasi residual layer ke-23 dari Llama 3.2-3B.
    • 4TB data mentah dikompresi menjadi 3.2TB dan dibagi ke dalam 100 arsip.
  3. Log pelatihan SAE:

    • Log visualisasi metrik pelatihan, validasi, dan debug melalui Weights & Biases.
    • Mencakup 10 epoch dan 10.000 langkah yang dicatat.
  4. Model SAE terlatih dengan 65.536 laten:

    • Model SAE final yang telah dilatih setelah 10 epoch.

Struktur proyek

1. Penangkapan data
  • capture_activations.py: Menangkap aktivasi residual LLM.
  • openwebtext_sentences_dataset.py: Dataset kustom untuk pemrosesan tingkat kalimat.
2. Pelatihan SAE
  • sae.py: Implementasi model SAE inti.
  • sae_preprocessing.py: Prapemrosesan data untuk pelatihan SAE.
  • sae_training.py: Implementasi pelatihan SAE terdistribusi.
3. Interpretabilitas
  • capture_top_activating_sentences.py: Mengidentifikasi kalimat yang memaksimalkan aktivasi fitur.
  • interpret_top_sentences_send_batches.py: Membuat dan mengirim batch untuk interpretasi.
  • interpret_top_sentences_retrieve_batches.py: Mengumpulkan hasil interpretasi.
  • interpret_top_sentences_parse_responses.py: Menganalisis hasil interpretasi.
4. Verifikasi dan pengujian
  • llama_3_inference.py: Implementasi inferensi inti.
  • llama_3_inference_text_completion_test.py: Uji text completion.
  • llama_3_inference_chat_completion_test.py: Uji chat completion.
  • llama_3_inference_text_completion_gradio.py: Antarmuka Gradio untuk pengujian interaktif.

1 komentar

 
GN⁺ 2024-11-22
Komentar Hacker News
  • Interpretabilitas mekanistik pada LLM menyelesaikan masalah ketika model menghasilkan jawaban yang terdengar meyakinkan saat menjelaskan dirinya sendiri. Semakin kuat modelnya, semakin meyakinkan pula ia dalam membenarkan "kebohongan", sehingga bisa mendapat skor lebih rendah pada uji deteksi diri. Tujuannya adalah konsistensi, bukan kebenaran

    • Eksplainabilitas yang sesungguhnya adalah menunjukkan proses berpikir kausal yang dilalui model saat menghasilkan jawaban. Ini mirip dengan pikiran-pikiran yang sekilas muncul ke berbagai arah ketika manusia sedang berpikir
  • Dalam penelitian tentang Sparse Autoencoders (SAE), diamati bahwa batas bawah kurva loss berskala mengikuti hukum pangkat. Dengan auxiliary loss, dead latent variables dapat diatasi sepenuhnya, dan pola gelombang sinus yang halus teramati selama iterasi pelatihan

  • Muncul pertanyaan tentang interpretabilitas mekanistik: ada kekhawatiran bahwa AI masa depan, sambil mengawasi pelatihannya sendiri, dapat membuat model yang memanfaatkan ambiguitas untuk menipu pengamat interpretabilitas mekanistik

  • Setelah membaca posting blog tentang sulitnya mengevaluasi SAE, muncul rasa penasaran bagaimana masalah ini diselesaikan. Ingin menemukan bagian di repositori yang dapat membantu memahami pendekatannya

  • Berpikir bahwa pekerjaan ini bisa berdampak positif pada alignment, tetapi belum memeriksa detailnya. Penasaran berapa banyak yang perlu dibayar untuk mengompensasi waktu, biaya, dan risikonya

  • Berterima kasih karena telah meluangkan banyak waktu untuk dokumentasi

  • Pekerjaan yang sangat keren, dan penasaran apakah ada rencana untuk integrasi dengan SAELens