HN công bố: Nghiên cứu khả năng diễn giải của Llama 3.2 bằng Sparse Autoencoders
(github.com/PaulPauls)Tổng quan dự án
- Các mô hình ngôn ngữ lớn (LLM) hiện đại mã hóa khái niệm bằng cách chồng nhiều đặc trưng lên cùng một nơ-ron, khiến kích hoạt của mỗi nơ-ron có thể mang nhiều ý nghĩa có thể diễn giải tùy theo kích hoạt của các nơ-ron khác. Hiện tượng này được gọi là chồng chập (superposition).
- Sparse Autoencoders (SAE) được chèn vào LLM đã huấn luyện để chiếu các kích hoạt sang một không gian tiềm ẩn thưa rất lớn, từ đó tách các biểu diễn bị chồng chập và chuyển chúng thành các đặc trưng có thể diễn giải.
- Dự án này nhằm tái hiện nghiên cứu mà Anthropic, OpenAI và Google DeepMind đã thực hiện thành công để trích xuất các đặc trưng có thể diễn giải.
- Cung cấp toàn bộ pipeline để tạo ra Sparse Autoencoder hoạt động tốt và có thể diễn giải cho mô hình Llama 3.2-3B.
Tính năng chính
- Cung cấp pipeline end-to-end hoàn chỉnh, từ capture activation viết bằng PyTorch đến huấn luyện SAE, diễn giải đặc trưng và kiểm chứng.
- Capture residual activation từ mô hình ngôn ngữ lớn để dùng làm tập dữ liệu huấn luyện SAE.
- Tiền xử lý dữ liệu huấn luyện hiệu quả và hỗ trợ huấn luyện phân tán quy mô lớn với nhiều GPU.
- Triển khai auxiliary loss trong quá trình huấn luyện SAE để tránh các biến tiềm ẩn chết và ổn định động lực học huấn luyện.
- Cung cấp ghi log, trực quan hóa và checkpoint toàn diện cho quá trình huấn luyện SAE thông qua Weights & Biases.
- Hỗ trợ phân tích ý nghĩa của các đặc trưng đã học thông qua công cụ phân tích khả năng diễn giải.
- Có thể sử dụng chung và kiểm chứng kết quả mà không cần phụ thuộc bên ngoài nhờ bản triển khai thuần PyTorch của Llama 3.1/3.2.
- Kiểm chứng tác động của SAE lên hành vi mô hình thông qua các tác vụ hoàn thành văn bản và chat completion, đồng thời có thể điều chỉnh các đặc trưng ngữ nghĩa đã trích xuất.
Tài nguyên đã công bố
-
Bộ dữ liệu câu OpenWebText:
- Phiên bản tùy chỉnh của bộ dữ liệu OpenWebText được dùng để capture activation.
- Giữ nguyên văn bản gốc và lưu từng câu riêng lẻ ở định dạng Parquet để truy cập nhanh.
- Phân tách câu bằng tokenizer "Punkt" của NLTK 3.9.1.
-
Activation Llama 3.2-3B đã capture:
- 25 triệu câu residual activation ở layer thứ 23 của Llama 3.2-3B.
- Nén 4TB dữ liệu thô xuống 3.2TB và chia thành 100 archive.
-
Log huấn luyện SAE:
- Log trực quan hóa các chỉ số huấn luyện, xác thực và debug qua Weights & Biases.
- Bao gồm 10 epoch và 10.000 bước đã được ghi log.
-
Mô hình SAE 65.536 latent đã huấn luyện:
- Mô hình SAE cuối cùng được huấn luyện sau 10 epoch.
Cấu trúc dự án
1. Capture dữ liệu
capture_activations.py: Capture residual activation của LLM.openwebtext_sentences_dataset.py: Bộ dữ liệu tùy chỉnh để xử lý ở mức câu.
2. Huấn luyện SAE
sae.py: Triển khai mô hình SAE cốt lõi.sae_preprocessing.py: Tiền xử lý dữ liệu cho huấn luyện SAE.sae_training.py: Triển khai huấn luyện SAE phân tán.
3. Khả năng diễn giải
capture_top_activating_sentences.py: Xác định các câu tối đa hóa kích hoạt đặc trưng.interpret_top_sentences_send_batches.py: Tạo và gửi batch để diễn giải.interpret_top_sentences_retrieve_batches.py: Thu thập kết quả diễn giải.interpret_top_sentences_parse_responses.py: Phân tích kết quả diễn giải.
4. Kiểm chứng và thử nghiệm
llama_3_inference.py: Triển khai suy luận cốt lõi.llama_3_inference_text_completion_test.py: Kiểm thử hoàn thành văn bản.llama_3_inference_chat_completion_test.py: Kiểm thử chat completion.llama_3_inference_text_completion_gradio.py: Giao diện Gradio cho thử nghiệm tương tác.
1 bình luận
Ý kiến trên Hacker News
Khả năng diễn giải cơ học của LLM giải quyết vấn đề mô hình tạo ra những câu trả lời có sức thuyết phục khi tự giải thích về mình. Mô hình càng mạnh thì càng thuyết phục hơn trong việc biện minh cho "lời nói dối", nên có thể đạt điểm thấp hơn trong các bài kiểm tra tự phát hiện. Mục tiêu là tính nhất quán chứ không phải sự thật
Trong nghiên cứu về Sparse Autoencoders (SAEs), người ta quan sát thấy cận dưới của đường cong mất mát mở rộng theo luật lũy thừa. Thông qua mất mát phụ trợ, họ có thể giải quyết hoàn toàn các biến tiềm ẩn bị chết, và quan sát được các mẫu sóng sin mượt trong suốt các vòng lặp huấn luyện
Đặt ra câu hỏi về khả năng diễn giải cơ học: có lo ngại rằng AI trong tương lai, khi giám sát quá trình huấn luyện của chính mình, có thể lợi dụng sự mơ hồ để tạo ra các mô hình đánh lừa những người quan sát diễn giải cơ học
Sau khi đọc một bài blog về khó khăn trong việc đánh giá SAEs, có người tò mò không biết vấn đề này đã được giải quyết như thế nào. Họ muốn tìm trong repository phần nào có thể giúp hiểu được cách tiếp cận
Có người cho rằng công việc này có thể tác động tích cực đến alignment, nhưng vẫn chưa kiểm tra chi tiết. Họ thắc mắc cần phải trả bao nhiêu để bù đắp cho thời gian, chi phí và rủi ro
Cảm ơn vì đã dành nhiều thời gian cho việc tài liệu hóa
Đây là một công trình rất ấn tượng, và có người thắc mắc liệu có kế hoạch tích hợp với SAELens hay không