1 poin oleh GN⁺ 1 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • DwarfStar 4 menyederhanakan llama.cpp khusus untuk DeepSeek-V4-Flash, sehingga lebih mudah bereksperimen dengan steering LLM pada model lokal
  • Steering bekerja dengan mengekstrak vektor dari perbedaan aktivasi sebuah konsep seperti “menjawab singkat”, lalu menambahkannya pada lapisan yang sama saat inferensi untuk mengubah perilaku
  • Steering memerlukan akses ke bobot atau aktivasi sehingga mengandaikan eksekusi lokal; bagi pengguna API, ini pada dasarnya hanya mungkin dilakukan oleh penyedia seperti OpenAI
  • Banyak penyesuaian dasar tetap lebih mudah dilakukan dengan prompt, tetapi masih ada kemungkinan mengubah perilaku yang dipelajari dan sulit diminta lewat prompt, seperti penghilangan penolakan
  • Dengan DeepSeek-V4-Flash dan DwarfStar 4, eksperimen open source bisa meningkat, dan aplikasi nyatanya mungkin akan terlihat dalam 6 bulan ke depan

DeepSeek-V4-Flash dan DwarfStar 4

  • DwarfStar 4 adalah proyek yang merampingkan llama.cpp khusus untuk menjalankan DeepSeek-V4-Flash, dan mempermudah eksperimen steering LLM pada model lokal
  • DeepSeek-V4-Flash berpotensi menjadi model lokal yang cukup bagus untuk menyaingi coding agenik tingkat rendah dari model frontier
  • Karena steering membutuhkan akses ke bobot atau aktivasi model, eksekusi lokal diperlukan; kemunculan model seperti DeepSeek-V4-Flash menciptakan kondisi agar lebih banyak engineer dapat bereksperimen langsung
  • antirez memasukkan steering sebagai fitur kelas satu di DwarfStar 4, tetapi contoh saat ini masih mendekati penyesuaian “verbosity” tingkat mainan yang juga bisa direproduksi dengan prompt
  • Rilis awal DwarfStar 4 muncul 8 hari lalu, dan menarik untuk melihat bagaimana fitur steering ini berkembang ke depan

Cara kerja steering

  • Ide dasar steering adalah mengambil konsep seperti “menjawab singkat” dari keadaan internal model, lalu memperkuat aktivasi numerik yang membentuk konsep itu selama inferensi
  • Ekstraksi vektor steering yang sederhana

    • Kumpulan 100 prompt yang sama dapat dimasukkan ke model dua kali: sekali dengan prompt biasa, dan sekali lagi dengan tambahan “respond tersely”
    • Pada tiap pasangan prompt, perbedaan aktivasi model diukur; mengurangkan satu matriks aktivasi dari matriks lainnya menghasilkan vektor steering
    • Untuk prompt apa pun, menambahkan vektor ini ke lapisan aktivasi yang sama diharapkan membuat model merespons lebih ringkas
    • Aktivasi yang bisa diukur ada di berbagai titik, misalnya setelah attention atau di antara tiap lapisan; kita bisa memilih satu titik atau mencoba beberapa titik untuk menemukan yang paling efektif
  • Ekstraksi fitur yang lebih canggih

    • Kita juga bisa melatih model terpisah untuk mengekstrak fitur (feature), yaitu pola perilaku yang muncul bersama dalam aktivasi model asli
    • Fitur yang diekstrak lalu dapat dipetakan kembali ke konsep individual, dan aktivasi dapat diperkuat dengan cara yang sama
    • Sparse autoencoders dari Anthropic diperkenalkan dengan pendekatan yang mirip prinsip ini
    • Pendekatan ini dapat menangkap pola yang lebih dalam dibanding vektor selisih sederhana, tetapi biayanya jauh lebih besar dalam hal waktu, komputasi, dan keahlian
    • Ada analisis mendalam yang membahas pendekatan ini pada model open LLaMA, dan hasil percobaan langsung sejauh ini cenderung bercampur

Mengapa steering menarik

  • Steering tampak seperti kemungkinan untuk menemukan tombol “smart” di dalam model dan memutarnya sampai mentok ke kanan, alih-alih susah payah menyusun set pelatihan untuk mendorong model ke distribusi yang “lebih pintar”
  • Bahkan untuk penyesuaian gaya bahasa, alih-alih menambah atau menghapus penguat seperti “you MUST” dalam prompt, kita bisa membayangkan panel kontrol dengan slider seperti keringkasan/kelugasan atau ketelitian/kecepatan
  • Golden Gate Claude yang menarik semua kalimat ke Golden Gate Bridge menjadi contoh menarik sekaligus mengkhawatirkan tentang seberapa kuat steering dapat mengubah perilaku model

Mengapa steering belum banyak dipakai

  • Steering menempati posisi semacam ide “kelas menengah” dalam riset AI, sehingga terasa kurang pas baik untuk lab AI besar maupun pengguna umum
  • Kurang dibutuhkan oleh lab besar

    • Lab AI besar dapat memanipulasi model secara langsung tanpa harus melakukan “operasi otak” canggung saat inferensi
    • Anthropic memang mengerjakan area ini, tetapi terutama dari sudut pandang interpretabilitas dan keselamatan
    • Saat menginginkan perilaku tertentu, lab besar biasanya memilih melatih model ketimbang melakukan steering
  • Pengguna umum tidak punya akses

    • Pengguna umum yang memakai LLM via API tidak memiliki akses ke bobot atau aktivasi model, sehingga sulit memperoleh informasi yang dibutuhkan untuk steering
    • Misalnya, hanya OpenAI yang bisa mengidentifikasi atau mengekspos vektor steering untuk GPT-5.5
    • Ini dimungkinkan pada model berbobot terbuka, tetapi hingga baru-baru ini dinilai belum ada model terbuka yang cukup kuat untuk layak dicoba steering
  • Untuk banyak kegunaan dasar, prompt lebih efisien

    • Ungkapan memanipulasi “otak” model secara langsung memang terdengar mengesankan, tetapi token prompt juga langsung mengubah keadaan internal model
    • Steering memang dapat mengendalikan aktivasi dengan cukup rinci, tetapi mengubah susunan prompt saja juga bisa memberikan kontrol yang sangat halus
    • Daripada memakai steering untuk membuat model lebih bertele-tele, jauh lebih sederhana untuk sekadar memintanya begitu

Bisakah steering dipakai pada hal yang sulit dicapai dengan prompt?

  • Satu kemungkinan yang benar-benar membuat steering berguna adalah menemukan lalu melakukan steering pada konsep yang tidak bisa diminta lewat prompt
  • “Kecerdasan” terlihat seperti kandidat, tetapi model generasi saat ini sudah memiliki karakter semacam itu, sehingga prompt ala era 4o seperti “you are an expert” tidak lagi mudah menghasilkan efek yang berarti
  • Apakah vektor steering untuk “kecerdasan” itu ada merupakan pertanyaan empiris, tetapi ada skeptisisme bahwa vektor seperti itu benar-benar ada
  • Vektor steering yang membentuk konsep sulit seperti “kecerdasan” mungkin tersebar hampir seluas keseluruhan himpunan bobot model; jika demikian, masalah menemukan vektor itu pada akhirnya mereduksi menjadi masalah melatih model yang lebih pintar
  • Jika aktivasi setiap lapisan GPT-2 diganti dengan aktivasi dari model yang jauh lebih kuat namun berarsitektur sama, hasilnya mungkin lebih baik; tetapi dalam kasus ini, kita sebenarnya bukan membuat GPT-2 lebih pintar, melainkan pada praktiknya berbicara dengan model yang lebih kuat
  • Steering yang cukup canggih pada akhirnya akan menggantikan model itu sendiri, dan kecerdasannya akan berada pada steering, bukan pada model asal

Steering sebagai kompresi data

  • Kemungkinan lain dari steering adalah memadatkan konsep yang biasanya memerlukan banyak token ke dalam satu vektor steering, sehingga menghemat jendela konteks
  • Ini bisa dipandang sebagai cara memindahkan konsep dari memori kerja model ke memori implisit
  • Misalnya, jika sebagian pengetahuan yang diperoleh GPT-5.5 saat cepat membaca codebase tertentu tersimpan dalam aktivasi, kita bisa membayangkan apakah hal itu dapat diekstrak sebagai vektor steering yang sangat besar
  • Konsep seperti “keadaan mengetahui codebase saya” juga kemungkinan cukup kompleks, mirip “kecerdasan”, sehingga mungkin membutuhkan fine-tuning penuh
  • Hasil industri dari upaya “fine-tuning model dengan codebase” juga pada umumnya belum terlalu sukses
  • Meski begitu, kemungkinan steering dalam bentuk ini belum sepenuhnya bisa dikesampingkan

Prospek dan eksperimen komunitas

  • Steering memang punya daya tarik, tetapi ada skeptisisme bahwa sebagian besar manfaatnya bisa direproduksi dengan lebih efisien lewat prompt, sementara target yang lebih ambisius bisa direproduksi lebih efisien melalui pelatihan atau fine-tuning
  • Komunitas open source belum banyak menggarap steering, tetapi arus seperti DeepSeek-V4-Flash dan DwarfStar 4 bisa mulai mengubah situasi
  • Jika steering punya aplikasi yang benar-benar praktis, hal itu kemungkinan akan terlihat dalam 6 bulan ke depan
  • Menarik juga melihat apakah alat yang spesifik untuk model seperti DwarfStar 4 akan mulai menyertakan library fitur-fitur yang bisa di-boost
  • Seperti halnya ketika model berbobot terbuka yang populer muncul lalu komunitas dengan cepat membuat wrapper dan versi quantized, bisa juga muncul dorongan untuk mengekstrak fitur-fitur yang dapat di-boost dari model

Diskusi tambahan: penghilangan penolakan dan steering saat runtime

  • Dalam komentar Hacker News setelahnya, beberapa komentator dan antirez menilai bahwa steering bisa mengubah perilaku yang dipelajari yang sulit diubah hanya lewat prompt
  • Contoh representatifnya adalah penghilangan penolakan (refusal) pada model
  • Menurut salah satu komentator, pada model terbuka, uncensoring atau abliteration sudah dilakukan dengan cara seperti ini
  • Menurut antirez, memodifikasi bobot dapat lebih merusak kemampuan model, sedangkan steering saat runtime yang lebih ringan bisa diterapkan hanya saat dibutuhkan

1 komentar

 
GN⁺ 1 jam lalu
Opini Hacker News
  • Terima kasih sudah mengunggah ini, dan satu koreksi: dengan fitur steering DwarfStar saya bisa menghilangkan penolakan DS4 sepenuhnya.
    Yang level mainan itu adalah dataset contohnya, yaitu hanya pasangan prompt yang saya berikan, bukan fiturnya sendiri.
    Saya merasa siapa pun yang bisa membuat dataset yang tepat dan memahami cara memakai fitur steering yang terdokumentasi dengan baik dapat mengakses steering.
    Saya juga tidak yakin apakah bagus jika orang yang hanya akan copy-paste tanpa pemahaman bisa mengakses model tanpa penolakan, jadi saya tidak merilis file steering-nya, tetapi saya sendiri masih cukup bimbang soal itu.
    Belakangan dukungannya diperluas sehingga vektor steering bisa diterapkan pada nilai aktivasi di waktu yang berbeda, misalnya selalu, hanya setelah berpikir, atau hanya di luar pemanggilan alat.
    Hal penting yang tidak banyak diketahui orang adalah bahwa melakukan steering arah vektor di dalam mesin inferensi jauh lebih baik daripada memakai GGUF yang dimodifikasi dengan cara yang sama.
    Semakin banyak steering yang dilakukan, semakin rusak kemampuan model, jadi jika diterapkan saat runtime kita bisa menerapkan sesedikit mungkin yang dibutuhkan untuk target yang diinginkan, dan bahkan hanya pada momen yang dipilih.
    Ini belum saya implementasikan, tetapi tampaknya juga mungkin untuk menerapkan steering hanya ketika energi arah penolakan melewati ambang tertentu, dan masih banyak ruang untuk eksperimen.

    • Sejauh yang saya pahami, DeepSeek V4 hampir tidak punya atau sama sekali tidak punya perilaku penolakan yang umum terlihat pada model AI Barat terhadap input yang tidak berbahaya.
      Apakah ini terutama merujuk pada kasus evaluasi keamanan perangkat lunak?
  • Saya terkejut tulisan ini tidak menyebut penggunaan terbesar vektor steering, yaitu kemungkinan menghapus penolakan model (abliteration atau uncensoring).
    Dulu ada makalah yang menyatakan bahwa “sebagian besar penolakan berada pada satu vektor”, dan dengan menemukan lalu melemahkan vektor itu, model bisa dibuat melewati penolakan dan secara umum menjawab “permintaan apa pun”.
    Pada model awal yang mempelajari penolakan lewat supervised fine-tuning (SFT), ini cukup memungkinkan; pada model terbaru tampaknya sedikit lebih rumit, tetapi sampai taraf tertentu masih memungkinkan.
    Sudah ada library yang mengotomatisasi proses ini untuk mengurangi penolakan, tetapi biasanya fokusnya adalah mengidentifikasi dan memodifikasi model lalu mendistribusikannya sebagai model yang sudah di-unlock dari sensor.
    Pendekatan steering bisa menyalakan perubahan vektor ini secara dinamis, sehingga meskipun proses abliteration merusak akurasi pada tugas yang tidak terkait, modelnya sendiri tidak perlu diubah.

    • p-e-w membicarakan ini di Discord beberapa hari lalu.
      Pendekatan neuron tunggal tampaknya cukup buruk untuk KLD, jadi mungkin itu sebabnya teknik yang lebih baru mulai mapan.
    • Saya tidak mengerti kenapa begitu terpaku pada sensor.
      Jika sudut pandangnya dibalik, tidak mengatakan kebohongan seperti “vaksin itu berbahaya” juga termasuk sensor.
      Sains dan logika sering memperlakukan topik semacam ini sebagai hal yang perlu disensor, tetapi model yang mengambil sampel internet secara merata bisa saja menganggap vaksin berbahaya.
      Penyesuaian yang kurang naif akan menyensor konteks bermasalah seperti ini.
      Jadi saya bingung kenapa menganggap bias tertentu sedang disensor lalu melepasnya akan meningkatkan kegunaan umum.
  • Hal yang benar-benar menarik di repositori DS4, menurut saya, adalah mengeksplorasi knob pengaturan yang disembunyikan lab frontier dari pengguna dan memikirkan bagaimana itu bisa masuk ke alur kerja pengembangan dan interaksi nyata.
    Menjelajahi berbagai mode interaksi, dan misalnya memikirkan cara mengintegrasikan steering secara berguna ke antarmuka pengguna, itu keren sekali.
    Begitu rahasianya terbuka dan pengguna memahami tingkat kontrol dan manfaat yang bisa mereka dapat dari model yang bagian dalamnya terekspos seperti ini, steering akan menjadi elemen inti dalam kotak alat.
    Rasanya akan menjadi hal yang wajar untuk mengharapkan tingkat kontrol seperti ini dari model atau penyedia model.

  • Penjelasan bahwa “DwarfStar 4 adalah versi ringkas dari llama.cpp yang diperkecil agar hanya menjalankan DeepSeek-V4-Flash” itu tidak benar.
    DwarfStar 4 adalah proyek tersendiri.
    Memang berutang banyak pada llama.cpp, tetapi bukan versi mini darinya.

    • Betul. Tumpang tindih kodenya minimal, hanya beberapa kernel.
      Ada sebagian kode kuantisasi untuk quantizer yang saya implementasikan, dan DwarfStar 4 bukan fork dari llama.cpp.
      Namun tanpa llama.cpp, saya tidak akan bisa memverifikasi detail penting dengan cepat, jadi proyek ini akan jauh lebih miskin.
      Tapi ini bukan llama.cpp yang diperkecil.
      Ini juga tidak mengurangi betapa pentingnya llama.cpp bagi proyek ini maupun semua proyek yang datang sesudahnya.
      Intinya bukan kodenya, melainkan jalur yang bisa diikuti, format kuantisasi, pelajaran, dan kernel teroptimasi yang bisa diperiksa untuk mempelajari polanya.
    • Kebenarannya mungkin ada di tengah.
      DwarfStar 4 tampaknya ada terutama berkat llama.cpp, dan para penulisnya jelas sangat terinspirasi oleh kode llama.cpp, bahkan sebagian benar-benar mengambil bagian tertentu dengan atribusi hak cipta yang sesuai.
      Bukan berarti itu buruk, menurut saya itu tidak masalah.
      ds4.c tidak menaut ke GGML, tetapi ada berkat jalan yang dibuka proyek llama.cpp, kernel yang dikembangkan di sana, format kuantisasi, ekosistem GGUF, dan pengetahuan rekayasa yang diperoleh dengan susah payah.
      Saat membuat jalur inferensi khusus untuk DeepSeek V4 Flash, implementasi, kernel, pengujian, dan pilihan desain menjadi referensi utama, dan fragmen level sumber seperti layout serta tabel kuantisasi GGUF di bawah lisensi MIT, logika kuantisasi dan dot-product CPU, serta beberapa kernel dipertahankan atau diterapkan.
      Jadi sebagai bentuk terima kasih yang tulus, mereka mempertahankan pemberitahuan hak cipta penulis GGML di file LICENSE - https://github.com/antirez/ds4#acknowledgements-to-llamacpp-...
      Setelah https://news.ycombinator.com/item?id=48142885 saya cukup senang memainkan ini selama sekitar dua hari, dan sejauh ini berhasil menaikkan kecepatan generasi dari 47.85 t/s menjadi 57.07 t/s.
  • Saya mencoba membuat AI jadi lebih radikal lewat steering.
    Tulisan: https://www.outcryai.com/research/shift-a-models-political-i...
    Aplikasi: https://apps.apple.com/us/app/outcry-activist-ai/id676208676...
    Teknik ini punya potensi besar.

  • Tulisan yang bagus, tetapi ada satu hal yang membingungkan.
    Tulisan itu mengatakan steering hanya bekerja pada model lokal, tetapi GitHub Copilot punya fitur “steer with message” yang bisa mengoreksi arah di tengah eksekusi dan saya sering memakainya.
    Mungkin ini jenis steering yang berbeda.
    Steering agen kemungkinan besar adalah cara menyisipkan pesan pengguna lain di tengah alur bolak-balik antara harness dan LLM.

  • Bagaimana model ini bisa disebut lokal? Jika butuh sekitar 192GB RAM, rasanya itu berlebihan untuk disebut lokal.

    • Bisa jalan di MacBook 96GB.
      128GB akan lebih baik, lihat README DwarfStar.
    • Kalau Anda bisa mengunduh dan menjalankannya saat punya perangkat kerasnya, maka itu lokal, terlepas dari apakah Anda benar-benar memiliki perangkat keras yang dibutuhkan atau tidak.
      Mirip seperti bertanya kepada orang yang tidak punya perangkat nirkabel atau antena yang diperlukan apakah Zigbee bisa dianggap lokal/LAN.
  • Baris ini di repositori DwarfStar yang ditautkan mengingatkan saya pada vektor kontrol.
    y = y - scale * direction[layer] * dot(direction[layer], y)
    https://vgel.me/posts/representation-engineering/ menjelaskan vektor kontrol sebagai “vektor yang bisa diterapkan ke aktivasi model saat inferensi tanpa prompt tambahan untuk mengendalikan perilaku model, atau lebih tepatnya daftar vektor, satu untuk tiap layer”.

  • Ini tampaknya lebih dekat ke riset deep learning daripada sesuatu yang benar-benar ingin saya pakai.

    • Tidak juga. Kalau Anda memuat vektor anti-penolakan, misalnya Anda bisa mengajukan berbagai pertanyaan terkait keamanan komputer.
      Jauh lebih baik daripada model yang terus berkata “Saya tidak bisa membantu permintaan bermasalah ini” ketika Anda sedang ingin belajar.
  • Saya kurang yakin dengan bagian yang mengatakan “hanya dengan menyesuaikan frasa prompt saja, kita sudah bisa mendapat kontrol yang sangat halus”.
    Bisa jadi saya memang tidak pandai menulis prompt, tetapi terasa mustahil untuk mengatasi bias yang datang dari data pelatihan atau pembelajaran pascaproses.
    Dengan prompt, rasanya kita hanya bisa mengekstrak pola dari data pelatihan, dan tidak benar-benar punya kontrol halus seperti itu.