1 คะแนน โดย GN⁺ 2024-11-22 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ภาพรวมโครงการ

  • โมเดลภาษาขนาดใหญ่ (LLM) สมัยใหม่เข้ารหัสแนวคิดโดยซ้อนทับคุณลักษณะหลายอย่างไว้ในนิวรอนเดียวกัน และทำให้การกระตุ้นของนิวรอนแต่ละตัวมีความหมายที่ตีความได้หลายแบบขึ้นอยู่กับการกระตุ้นของนิวรอนอื่น ๆ สิ่งนี้เรียกว่า superposition
  • Sparse Autoencoders (SAE) ถูกแทรกเข้าไปใน LLM ที่ผ่านการฝึกแล้ว เพื่อฉายค่าการกระตุ้นไปยัง latent space แบบเบาบางที่มีขนาดใหญ่มาก แยกการแทนค่าที่ซ้อนทับกันออก และแปลงให้เป็นคุณลักษณะที่ตีความได้
  • โครงการนี้มีเป้าหมายเพื่อทำซ้ำงานวิจัยที่ Anthropic, OpenAI และ Google DeepMind เคยทำสำเร็จ เพื่อดึงคุณลักษณะที่ตีความได้ออกมา
  • ให้ทั้งพายป์ไลน์สำหรับสร้าง Sparse Autoencoder ที่ใช้งานได้จริงและตีความได้สำหรับโมเดล Llama 3.2-3B

ความสามารถหลัก

  • มีพายป์ไลน์แบบ end-to-end ครบถ้วน ตั้งแต่การจับค่าการกระตุ้นที่เขียนด้วย PyTorch ไปจนถึงการฝึก SAE การตีความคุณลักษณะ และการตรวจสอบความถูกต้อง
  • จับ residual activations จากโมเดลภาษาขนาดใหญ่เพื่อนำมาใช้เป็นชุดข้อมูลสำหรับฝึก SAE
  • รองรับการเตรียมข้อมูลฝึกอย่างมีประสิทธิภาพ และการฝึกแบบกระจายขนาดใหญ่โดยใช้หลาย GPU
  • ใช้ auxiliary loss ระหว่างการฝึก SAE เพื่อป้องกัน latent variables ที่ตายและทำให้พลวัตของการฝึกมีเสถียรภาพ
  • มีการบันทึกล็อก การทำภาพข้อมูล และเช็กพอยต์ของการฝึก SAE อย่างครอบคลุมผ่าน Weights & Biases
  • รองรับการวิเคราะห์ความหมายของคุณลักษณะที่เรียนรู้แล้วผ่านเครื่องมือวิเคราะห์ด้านความสามารถในการตีความ
  • มี implementation ของ Llama 3.1/3.2 แบบ PyTorch ล้วน เพื่อให้ใช้งานทั่วไปและตรวจสอบผลลัพธ์ได้โดยไม่ต้องพึ่งพา dependency ภายนอก
  • ตรวจสอบผลกระทบของ SAE ต่อพฤติกรรมของโมเดลผ่านงาน text completion และ chat completion และสามารถปรับแต่งคุณลักษณะเชิงความหมายที่ดึงออกมาได้

ทรัพยากรที่เผยแพร่

  1. ชุดข้อมูลประโยค OpenWebText:

    • เวอร์ชันปรับแต่งเองของชุดข้อมูล OpenWebText ที่ใช้สำหรับการจับค่าการกระตุ้น
    • เก็บข้อความต้นฉบับไว้ และบันทึกแต่ละประโยคเป็นรูปแบบ Parquet เพื่อการเข้าถึงที่รวดเร็ว
    • ใช้ตัวตัดประโยค "Punkt" ของ NLTK 3.9.1 สำหรับการแบ่งประโยค
  2. ค่าการกระตุ้นของ Llama 3.2-3B ที่จับไว้แล้ว:

    • residual activations ของเลเยอร์ที่ 23 ของ Llama 3.2-3B จำนวน 25 ล้านประโยค
    • บีบอัดข้อมูลดิบขนาด 4TB ให้เหลือ 3.2TB และแบ่งเป็น 100 archive
  3. บันทึกล็อกการฝึก SAE:

    • ล็อกภาพข้อมูลของเมตริกสำหรับการฝึก การตรวจสอบความถูกต้อง และการดีบักผ่าน Weights & Biases
    • รวม 10 epoch และ 10,000 ขั้นตอนที่มีการบันทึกล็อก
  4. โมเดล SAE latent 65,536 ที่ฝึกแล้ว:

    • โมเดล SAE เวอร์ชันสุดท้ายที่ฝึกเสร็จหลัง 10 epoch

โครงสร้างโครงการ

1. การจับข้อมูล
  • capture_activations.py: จับ residual activations ของ LLM
  • openwebtext_sentences_dataset.py: ชุดข้อมูลปรับแต่งเองสำหรับประมวลผลระดับประโยค
2. การฝึก SAE
  • sae.py: implementation หลักของโมเดล SAE
  • sae_preprocessing.py: การเตรียมข้อมูลสำหรับการฝึก SAE
  • sae_training.py: implementation สำหรับการฝึก SAE แบบกระจาย
3. ความสามารถในการตีความ
  • capture_top_activating_sentences.py: ระบุประโยคที่ทำให้คุณลักษณะถูกกระตุ้นสูงสุด
  • interpret_top_sentences_send_batches.py: สร้างและส่ง batch สำหรับการตีความ
  • interpret_top_sentences_retrieve_batches.py: ดึงผลลัพธ์การตีความ
  • interpret_top_sentences_parse_responses.py: วิเคราะห์ผลลัพธ์การตีความ
4. การตรวจสอบและการทดสอบ
  • llama_3_inference.py: implementation หลักของการอนุมาน
  • llama_3_inference_text_completion_test.py: การทดสอบ text completion
  • llama_3_inference_chat_completion_test.py: การทดสอบ chat completion
  • llama_3_inference_text_completion_gradio.py: อินเทอร์เฟซ Gradio สำหรับการทดสอบแบบโต้ตอบ

1 ความคิดเห็น

 
GN⁺ 2024-11-22
ความคิดเห็นจาก Hacker News
  • ความสามารถในการตีความเชิงกลไกของ LLMs แก้ปัญหาที่โมเดลสร้างคำตอบที่ฟังน่าเชื่อถือเมื่ออธิบายตัวเองได้ ยิ่งโมเดลมีพลังมากเท่าไร ก็ยิ่งน่าเชื่อถือในการหาเหตุผลมารองรับ "คำโกหก" ได้มากขึ้น และอาจได้คะแนนต่ำกว่าในการทดสอบการตรวจจับตัวเอง เป้าหมายคือความสอดคล้อง ไม่ใช่ความจริง

    • การอธิบายได้อย่างแท้จริงคือการแสดงกระบวนการคิดเชิงเหตุและผลที่โมเดลใช้ขณะสร้างคำตอบ ซึ่งคล้ายกับความคิดที่ผุดขึ้นมาแวบ ๆ ไปหลายทิศทางเวลามนุษย์คิด
  • ในงานวิจัยเกี่ยวกับ Sparse Autoencoders (SAEs) มีการสังเกตว่าขอบล่างของเส้นโค้ง loss ขยายตัวตามกฎกำลัง และสามารถแก้ปัญหา latent variables ที่ตายไปแล้วได้อย่างสมบูรณ์ด้วย auxiliary loss พร้อมทั้งสังเกตเห็นรูปแบบคลื่นไซน์ที่ราบรื่นระหว่างรอบการฝึก

  • มีการตั้งคำถามเกี่ยวกับความสามารถในการตีความเชิงกลไก: กังวลว่า AI ในอนาคตอาจกำกับการฝึกของตัวเองและใช้ความกำกวมเพื่อสร้างโมเดลที่หลอกผู้สังเกตการณ์ด้านการตีความเชิงกลไกได้

  • หลังจากอ่านบล็อกโพสต์เกี่ยวกับความยากในการประเมิน SAEs แล้ว ก็สงสัยว่าปัญหานี้ถูกแก้อย่างไร และอยากหาในรีโพซิทอรีว่ามีส่วนไหนที่ช่วยให้เข้าใจแนวทางนี้ได้บ้าง

  • คิดว่างานนี้อาจส่งผลเชิงบวกต่อ alignment แต่ยังไม่ได้ตรวจสอบรายละเอียด และสงสัยว่าต้องจ่ายเท่าไรจึงจะคุ้มกับเวลา ต้นทุน และความเสี่ยง

  • ขอบคุณที่ทุ่มเวลาไปกับการทำเอกสารอย่างมาก

  • เป็นงานที่เจ๋งมาก และสงสัยว่ามีแผนจะรวมเข้ากับ SAELens หรือไม่