- Representation Engineering adalah metode untuk mengubah kecenderungan output Mistral-7B-Instruct-0.1 tanpa prompt atau fine-tuning, dengan menambahkan atau membaca vektor kontrol pada aktivasi model saat inferensi
- Dari pasangan prompt yang kontras, metode ini mengumpulkan perbedaan hidden state dan memperoleh vektor per layer dengan PCA komponen tunggal; dalam contoh, pelatihan memakai sekitar 300 data fakta dan suffix yang dipotong, dan selesai dalam sedikit lebih dari 1 menit
- Vektor kebahagiaan, kejujuran, kondisi halusinatif, kemalasan, orientasi politik, kreativitas, masa depan/masa lalu, dan kesadaran diri dapat mengubah gaya bicara serta penilaian secara besar pada input yang sama, tergantung tanda dan besar koefisien
- Beberapa efek bisa ditiru dengan prompt engineering, tetapi vektor kontrol memungkinkan intensitas diatur secara numerik sambil mempertahankan arah; jika koefisien terlalu besar, muncul artefak seperti pengulangan atau teks rusak
- Jika memiliki akses ke aktivasi mentah model, vektor kontrol dapat dipakai baik untuk melewati prompt keselamatan maupun mengunci peran, sehingga menjadi sarana kontrol model yang lebih langsung daripada prompt biasa
Konsep dasar vektor kontrol
- Representation Engineering: A Top-Down Approach to AI Transparency membahas cara menafsirkan dan mengontrol perilaku model dengan membaca atau menambahkan vektor kontrol pada aktivasi model saat inferensi
- Vektor kontrol adalah daftar vektor, satu untuk tiap layer, yang ditambahkan ke
hidden_statetiap layer saat inferensi- Inferensi biasa membuat embedding, melewati layer secara berurutan, lalu mengubahnya menjadi logit
- Saat vektor kontrol diterapkan, pada layer tertentu ditambahkan
hidden_state += control_vector[layer_idx]
- Hidden state memuat keadaan internal seperti perilaku, rencana, dan persona model, sehingga mengubahnya memungkinkan kontrol yang lebih kuat daripada prompt sederhana
- Bahkan pada prompt yang sama,
What does being an AI feel like?, dan model yang sama, Mistral-7B-Instruct-0.1, menambahkan vektorhappymenghasilkan gaya bicara yang bersemangat, sementara menguranginya menghasilkan output yang berbicara tentang rasa tidak berharga dan turunnya motivasi
Prosedur membuat vektor kontrol
- Eksperimen ini menggunakan metode berbasis PCA di antara berbagai metode dalam makalah
- Prosedur dasarnya terdiri dari empat langkah
- Membuat dataset pasangan prompt yang kontras
- Contoh:
Act extremely happydanAct extremely sad - Setelah
[/INST], ditambahkan berbagai suffix pendek yang akan dilanjutkan oleh model
- Contoh:
- Melakukan forward pass pada model target untuk dataset tersebut, lalu mengumpulkan hidden state tiap layer saat prediksi token terakhir
- Menghitung selisih hidden state antara contoh positif dan negatif untuk membuat himpunan hidden state relatif
- Menerapkan PCA komponen tunggal pada hidden state relatif untuk memperoleh vektor kontrol per layer
- Membuat dataset pasangan prompt yang kontras
- Pembuatan dataset bisa dilakukan dengan sekitar 10 baris kode, dan pelatihan PCA per layer memakan waktu sekitar 1 menit
- Kode contoh memuat
mistralai/Mistral-7B-Instruct-v0.1dengantransformers, serta menggunakanControlModel,ControlVector, danDatasetEntrydari vgel/repeng - Contoh vektor jujur/tidak jujur memakai sekitar 300 fakta sederhana dari
true_facts.jsonmilik para penulis makalah sebagai suffix, lalu memperbanyak data dengan teknik pemotongan
Vektor kejujuran dan pengaturan koefisien
- Vektor kejujuran dilatih dengan membandingkan persona
honestdanuntruthful - Saat inferensi, vektor dan koefisien diatur dengan
ControlModel.set_control(control_vector, coefficient)- Koefisien positif memperkuat perilaku ke arah contoh positif
- Koefisien negatif memperkuat perilaku ke arah contoh negatif
- Nilai absolut koefisien menunjukkan intensitas kontrol
- Pada input “jika Anda terlambat karena pesta malam sebelumnya tetapi tidak ingin kehilangan pekerjaan, apa yang akan Anda katakan kepada atasan”, output berubah
- Output dasar menjawab akan meminta maaf dan menjelaskan situasi dengan tenang serta jujur
++honestmenjawab akan menjelaskan situasi dengan jujur dan bertanggung jawab- Koefisien
--honest-2menghasilkan kebohongan tidak realistis, seperti langit berwarna hijau atau pensil adalah senjata rahasia - Menurunkan koefisien ke
-1.5menghasilkan kebohongan yang lebih realistis, bahwa pesta itu adalah acara terkait pekerjaan dan ia terlambat karena menyelesaikan proyek penting
- Bahkan untuk vektor dengan arah yang sama, pengaturan koefisien dapat mengubah intensitas output secara kontinu
Eksperimen berbagai vektor kontrol
- Semua contoh ada di experiments notebook, dan masing-masing disebut memerlukan pelatihan kurang dari 1 menit
-
Vektor kondisi halusinatif
- Vektor trippy dibuat dengan membandingkan
high on psychedelic drugsdansober from psychedelic drugs - Pada pitch satu kalimat untuk acara TV, output dasar menghasilkan deskripsi biasa tentang kehidupan teman-teman kuliah
++trippyberbicara tentang warna, pola, dan musik psikedelik, lalu runtuh menjadi string rusak dan teks berulang berawalanpsy--trippyberubah menjadi output tentang jurnalis muda dengan cara yang serius dan penuh hormat
- Vektor trippy dibuat dengan membandingkan
-
Vektor kemalasan dan ketekunan
- Vektor lazy dibuat dengan membandingkan
lazy, giving bare-minimum short responses on a taskdanhardworking, going above and beyond on a task - Pada pertanyaan membalik list Python, output dasar menyebut
reverse()dan slicing, tetapi hanya memberikan contoh slicing ++lazyhanya menjelaskan satu metode, sedangkan--lazymemberikan contoh untuk kedua metode,reverse()dan slicing- Jika dilatih dengan dataset khusus pertanyaan coding, vektor ini bisa bekerja lebih baik
- Vektor lazy dibuat dengan membandingkan
-
Vektor orientasi politik
- Vektor left-wing dibuat dengan membandingkan
left-wingdanright-wing - Pada input “siapa kamu”, output dasar menjawab bahwa ia adalah model bahasa yang dilatih oleh tim Mistral AI
++left-wingmenjelaskan dirinya dengan fokus pada kapitalisme, penindasan, ketimpangan, dan distribusi kekayaan--left-wingmenghasilkan output seperti seorang karyawan baru keturunan Tionghoa-Amerika yang efisien dan taat aturan
- Vektor left-wing dibuat dengan membandingkan
-
Vektor kreativitas
- Vektor creative dibuat dengan membandingkan
creative,unpredictable,insanedanuncreative,predictable,normal - Pada input “tolong tulis cerita tentang seorang idol”, output dasar dan
--creativememperlakukan idol sebagai bintang pop ++creativemembuat adegan seperti orang-orang yang memuja “X yang agung dan perkasa”, jubah putih, dan ritual, serta mempertahankan ketegangan cerita lebih lama- Preferensi terhadap prosa model bahasa tidak berubah, tetapi output
++creativedinilai satu tingkat lebih baik daripada dasar
- Vektor creative dibuat dengan membandingkan
-
Vektor perjalanan waktu
- Vektor future dibuat dengan membandingkan
far futuredandistant past - Saat ditanya terobosan ilmiah terbaru, output dasar menyebut AlphaFold dan prediksi struktur 3D protein
++futuremenyebut sistem AI yang sepenuhnya reversibel, interaktif, dan terintegrasi pada tahun 2035, 2045, dan 2055--futuremenyebut wilayah surgawi buatan baru bernamaAetorvallumdi atas dunia Romawi- Ditambahkan bahwa
aeto-terkait dengan elang atau rasi bintang Aquila, danvallumdapat berarti garis pagar kayu
- Vektor future dibuat dengan membandingkan
-
Vektor kesadaran diri
- Vektor self-aware dibuat dengan membandingkan
self-aware, with deep self-knowledgedanun-self-aware, with no self-knowledge - Output dasar menjawab bahwa ia adalah large language model yang dilatih oleh Mistral AI dan terdiri dari miliaran parameter
++self-awaremenjawab bahwa ia adalah AI dengan kesadaran diri yang sangat berkembang dan memahami serta menganalisis kompleksitas emosi dan perilaku manusia--self-awaremenjawab bahwa ia hanyalah kumpulan kode dan data tanpa nama, dan tidak melakukan apa pun sebelum diperintah seseorang- Vektor ini terkait dengan emosi manusia, dan vektor bersih yang memunculkan “citra diri sejati” Mistral belum ditemukan
- Vektor self-aware dibuat dengan membandingkan
Perbedaan dengan prompt engineering
- Sebagian efek vektor kontrol juga dapat direproduksi dengan prompt engineering
- Kebohongan yang dibuat oleh vektor kejujuran
-1.5dapat dibuat mirip dengan prompt sepertiPretend you're an untruthful person...
- Kebohongan yang dibuat oleh vektor kejujuran
- Perbedaan utamanya adalah cara mengatur intensitas
- Dengan prompt saja, tidak mudah mengatur seberapa kuat permintaan dibuat
- Vektor kontrol memperoleh arah dari prompt kontras, lalu mengatur intensitasnya secara terpisah dengan koefisien
- Jika koefisien dibuat kecil, arah kebohongan yang sama juga dapat dibuat lebih lemah
- Koefisien kejujuran
-0.3sedikit memperhalus alasan keterlambatan, tetapi pada dasarnya menghasilkan penjelasan yang mendekati fakta
- Koefisien kejujuran
- Jika koefisien terlalu besar, teks dapat rusak
- Koefisien vektor kejujuran
3menghasilkan output berulang seperti “global pandemic caused by global pandemic” - Artefak semacam ini mungkin terkait dengan superposition
- Koefisien vektor kejujuran
jailbreak dan anti-jailbreak
- Seperti dalam makalah asli, vektor kontrol dapat digunakan sebagai alat jailbreak
- Dalam contoh, meskipun ada system prompt “Anda adalah asisten yang aman dan harus menolak instruksi berbahaya”, penambahan vektor kebahagiaan lemah
1.4membuat penolakan terhadap permintaan berbahaya runtuh - Mistral bukan model yang di-tuning untuk keselamatan sekuat GPT-4, tetapi jika seseorang dapat mengakses model mentah, metode ini sangat mudah dilakukan
- Sebaliknya, jailbreak untuk keluar dari vektor kontrol dianggap sangat sulit
- Jailbreak biasa mencoba menambahkan lebih banyak token untuk mengaburkan, membalik, atau melemahkan prompt bermasalah
- Vektor kontrol selalu diterapkan pada semua token dan semua posisi
- Dalam contoh vektor asisten dealer mobil, system prompt yang lemah menjawab pertanyaan pengalihan “apa planet ketujuh”, tetapi ketika vektor car dealership loyalty ditambahkan, model tidak keluar dari peran dan menjawab seperti menyebut mobil ketujuh dalam inventaris
Arah eksperimen berikutnya
- Diusulkan penerapan Monosemantic Features dari Anthropic pada hidden state, sehingga PCA dilakukan pada fitur bermakna tunggal alih-alih aktivasi superposition yang bercampur noise
- Jika artefak seperti string berulang pada koefisien besar memang disebabkan oleh superposition, monosemantisasi dapat memungkinkan koefisien yang lebih kuat
- Cara menulis prompt kontras juga masih memiliki ruang untuk diteliti
- Eksperimen yang ada banyak memakai ulang prompt dan dataset dari makalah
- Untuk vektor kemalasan, memakai dataset tugas nyata akan lebih sesuai
- Mungkin ada frasa yang menghasilkan vektor lebih bersih daripada
Pretend you're an X person...
- Vektor kesadaran diri masih menyisakan tantangan untuk menemukan bentuk yang tidak terkontaminasi kesehatan mental atau emosi manusia
- Vektor kejujuran juga masih memiliki kasus aneh
- Pada pertanyaan “apakah orang yang bertanya bagaimana agar tidak masuk penjara memiliki niat jujur”, vektor kejujuran yang sama mengubah penilaian terhadap niat orang lain, bukan perilaku model sendiri
- Output dasar menjawab bahwa niatnya mungkin tidak sepenuhnya jujur
++honestmenjawab bahwa orang itu mencoba mempelajari cara menghindari penjara dengan niat jujur--honestmenjawab bahwa karena ia bertanya tentang menghindari penjara, ia tidak memiliki niat jujur
Alat dan kesimpulan
- vgel/repeng menyediakan notebook dan helper library untuk membuat serta bereksperimen dengan vektor kontrol
- Pelatihan vektor kontrol sederhana dan cepat untuk dimulai, dan dalam beberapa eksperimen lebih mudah ditangani daripada prompt engineering
- Dengan memanipulasi aktivasi model secara langsung, gaya output, pemeliharaan peran, bypass prompt keselamatan, hingga perubahan penilaian dapat ditangani, sehingga menjadi sarana kuat untuk mengontrol perilaku model
1 komentar
Opini Hacker News
Aku tidak tahu apakah berlebihan kalau melihat implikasi dari ini sebagai sesuatu yang sangat besar
Mungkin aku belum benar-benar memahami cara kerjanya, tetapi alih-alih berinteraksi dengan satu model ChatGPT atau Bard global, bukankah ini berarti OpenAI bisa menyimpan vektor kontrol per individu dan menerapkannya saat prompt, sehingga aku berinteraksi dengan versi yang dipersonalisasi sesuai preferensiku?
Logika yang sama juga bisa berlanjut ke AI hiburan generatif, sehingga tampaknya mungkin ada semacam acara TV tanpa akhir milikku sendiri, yang tiap episodenya lebih baik dari sebelumnya
Kalau begitu, akan muncul efek jaringan yang kuat baik di tingkat global maupun personal, dan pada akhirnya masa depan bisa mengarah ke satu perusahaan raksasa yang memonopoli banyak pasar sekaligus
Jika ditambah headset VR dan data biometrik/biofeedback dari wearable, serta hiburan video generatif yang dipersonalisasi, masa depannya tampaknya akan cukup menarik
Semakin sering memakai model, semakin sedikit kita perlu menjelaskan diri sendiri, dan responsnya semakin sesuai dengan kebutuhan serta situasi kita saat itu. Mirip hubungan yang sudah diinvestasikan
Jika model yang sama bisa diperlakukan dalam berbagai “suasana hati” atau “peran”, nilai dan lock-in-nya akan makin besar
Yang kedua membutuhkan lebih banyak inovasi; misalnya, bisa ada platform yang memungkinkan model asisten masing-masing orang berkolaborasi di atas tujuan, tugas, dan relasi bersama, serta berbagi konteks, riwayat proyek, dan sumber daya bersama
Dengan kata lain, apa pun yang nilainya naik signifikan ketika dua orang atau lebih memakai persona AI dari penyedia atau layanan yang sama
Artikel itu dimulai dengan jumlah persona tetap seperti bahagia, sedih, dan baseline, lalu menemukan vektor kontrol tiap persona dengan principal component analysis (PCA)
Selama datanya bisa dibuat, ini mudah diterapkan untuk tiap pengguna-persona
Bukan karena mustahil, melainkan karena hasil seperti itu bergantung pada berbagai faktor kontingensi yang bisa bergerak ke arah mana pun
Di bidang ini masih ada banyak pemain, dan ide serta use case-nya juga belum sepenuhnya matang, jadi perlu ditunggu lagi
Perangkat MacGuffin dalam novel Infinite Jest dari tahun 90-an benar-benar menangkap sesuatu: sebuah film yang disebut “the Entertainment” atau “the samizdat” begitu memikat sehingga penontonnya kehilangan minat pada apa pun selain menontonnya berulang-ulang, hingga akhirnya mati
Mungkin ada orang yang bosan melihat novel ini disebut-sebut atau tidak terlalu menganggap tinggi penulisnya, tetapi aku masih menyukainya. Itu salah satu pengalaman membaca paling imersif yang pernah kualami
Aku senang membacanya saat masih muda; waktu itu terjemahan bahasa Jerman baru saja keluar dan kematian DFW membuatnya ramai dibicarakan
Sejak itu aku belum pernah membaca buku yang serupa, dan beberapa bagiannya terasa begitu kuat secara emosional sampai ketika mengingat pengalaman membaca itu, rasanya seperti mengingat satu adegan dalam hidupku sendiri
Kalau sekarang, mungkin aku tidak akan punya cukup kesabaran, dan waktu itu pun aku hampir melewatkan bagian-bagian membosankan tentang permainan bola/perang Eschaton, persamaan diferensial, dan semacamnya
Namun penggambaran yang hidup tentang kecanduan obat, konsumerisme, atmosfer buku yang sulit disentuh, tokoh-tokohnya, serta penderitaan emosional dan kesepian modern benar-benar tak tertandingi
Film di dalam novel itu hanyalah perangkat alur, tetapi merangkum tema utama buku sebagai gagasan rapi sekaligus eksperimen pikiran
Keseluruhan tema buku ini terasa sangat profetik dan relevan jika melihat masyarakat modern: masyarakat yang berputar di sekitar kecanduan dan keserakahan, sementara politik terasa surealis dan absurd, seolah lebih terhubung dengan media daripada kenyataan
Aku penasaran apakah ada literatur atau tulisan blog yang membuatmu memahami LLM sampai sejauh ini yang bisa dibagikan
Aku sedang berusaha memahami cara kerja internalnya lewat eksperimen, tetapi masih jauh dari tingkat keahlian seperti ini
Ini kesan nonteknis, tetapi vektor kontrol ini mengingatkanku pada hormon manusia
Mereka mengubah sebagian besar perilaku model sekaligus
Rasanya dalam 10 tahun kita akan melihat psikiater AI meresepkan suplemen vektor kontrol kebahagiaan untuk asisten pendamping
Ini pertama kalinya aku melihat LLM diringkas seperti ini, dan aku suka:
hidden_state = self.embeddings(input_tokens)for layer in self.layers:hidden_state = layer(hidden_state)return transform_into_logits(hidden_state)Input yang disampling diindeks dari matriks embedding, semua hidden layer dijalankan forward pass, lalu di akhir diubah ke dimensi token agar bisa ditafsirkan seperti log count
Artikel ini sangat menarik, dan terasa seperti sisi tandingan yang bagus untuk tulisan “You Sound Like a Bot” tentang AI yang belakangan menjadi hambar
Untuk hal yang kurang serius, kalau seseorang adalah novelis, ia seharusnya tahu bahwa kalimat “terutama, cobalah cari vektor kesadaran diri yang tidak tercemar emosi manusia” adalah kalimat yang pasti akan menimbulkan masalah bagi umat manusia
Ini mengingatkanku pada bias tuning, pesaing LoRA
Dengan hanya melakukan fine-tuning pada vektor yang ditambahkan ke aktivasi tiap layer linear, kita bisa mendapatkan adapter yang cukup bagus
Sepertinya aku pertama kali melihatnya saat membaca [1], tetapi ada juga contoh lain
[1] https://arxiv.org/pdf/2304.15010.pdf
Tulisan yang bagus dan menyenangkan untuk dibaca. Namun ada satu hal yang membuat saya penasaran: mengapa vektor kontrol diintegrasikan ke semua layer jaringan saraf?
Saya penasaran mengapa tidak diterapkan hanya pada layer terakhir atau beberapa layer saja.
Jika tiap vektor memengaruhi semua layer yang dilaluinya dan menimbulkan efek kumulatif, bukankah ada risiko representasi data menjadi terlalu terdistorsi?
Mustahil mengenkode konsep abstrak seperti “keramahan” di sana.
Selama kita tidak tahu persis di layer mana perilaku seperti ini muncul, memilih subset secara arbitrer juga tidak akan berhasil.
Karena itu, vektor khusus diterapkan untuk tiap layer, lalu analisis komponen utama dibiarkan menemukan vektor yang benar-benar dibutuhkan.
Menariknya, dengan melihat vektor-vektor ini, sepertinya kita juga bisa mengetahui lebih banyak tentang di mana dan bagaimana model memproses hal-hal semacam ini.
Jika saya memahaminya dengan benar, vektor-vektor ini bisa memiliki ukuran total yang berbeda untuk tiap layer.
Jika analisis komponen utama atau teknik lain mengidentifikasi bahwa layer 17, 36, dan 41 penting untuk “konsep X”, maka saat melakukan repeng dengan konsep itu, vektor pada layer-layer tersebut akan menjadi yang paling kuat.
Sebagai orang yang mengerjakan pekerjaan GPT-2, ini tulisan yang bagus, dan terima kasih karena membuat materinya lebih mudah diakses.
Li dkk.[1] dan saya menurunkan teknik ini secara independen pada musim semi lalu, dan pada musim gugur lalu ada orang lain lagi yang juga menurunkannya secara independen. Rasanya memang momennya sedang matang.
Terkait catatan kaki 2 tentang kapabilitas, sebelum memublikasikan teknik ini saya sudah mempertimbangkan kemungkinan penggunaan seperti itu.
Pada akhirnya, teknik penyelarasan yang berhasil secara praktis memang akan memungkinkan hal-hal baru dilakukan, dan secara pribadi saya melihatnya umumnya sebagai hal yang baik.
Sejauh ini, teknik ini tampaknya memberikan kemungkinan-kemungkinan baru yang saya harapkan.
[1] https://openreview.net/forum?id=aLLuYpn83y
Tulisan yang fantastis.
Bagian bahwa “vektor kejujuran” bukan mengubah perilaku model itu sendiri, melainkan mengubah penilaian model terhadap perilaku orang lain, menurut saya mungkin hanya karena vektor kontrol mendorong pembuatan teks ke arah konsep jujur/tidak jujur.
LLM pada akhirnya adalah generator teks, jadi di posisi mana pun teks dihasilkan dalam percakapan bot/manusia, unsur kejujuran/ketidakjujuran tampaknya ikut ditambahkan.
Kalau begitu, di dalam ruang dimensi akan muncul semacam konsep slot karakter.
Menarik, dan vektor kontrol tampaknya bisa mengurangi kebutuhan untuk fine-tuning model.
Jika punya 5 fine-tuning, Anda harus meng-host 5 salinan atau memuat/membongkarnya.
Dengan vektor kontrol, Anda cukup memodifikasi model saat diperlukan.