Sparse Autoencoders (SAE)
Sparse autoencoder (SAE) phân tách activation của mạng thành nhiều feature, trong đó tại mỗi thời điểm chỉ có một số ít feature hoạt động; đây là công cụ cốt lõi để diễn giải LLM.
Autoencoder thưa (SAE) là một autoencoder được huấn luyện để tái dựng đầu vào thông qua một lớp ẩn, trong đó chỉ một vài unit hoạt động với mỗi đầu vào. Trong nghiên cứu AI hiện nay, SAE được huấn luyện trên các activation nội bộ của model ngôn ngữ lớn (LLM) hoặc model thị giác, với số unit ẩn nhiều hơn số chiều đầu vào, nhờ đó mỗi unit ẩn, được gọi là feature hoặc latent, thường kích hoạt với một khái niệm mà con người có thể nhận diện. SAE là công cụ trọng tâm của khả năng diễn giải cơ chế: công trình Mở rộng tính đơn ngữ nghĩa năm 2024 của Anthropic huấn luyện SAE với tối đa 34 triệu feature trên activation của Claude 3 Sonnet và tìm thấy các feature cho những khái niệm như cầu Cổng Vàng, lỗi mã nguồn và sự lừa dối.
Vì sao feature thưa giúp tăng khả năng diễn giải#
Các neuron riêng lẻ trong model lớn thường đa ngữ nghĩa, phản hồi với nhiều khái niệm không liên quan. Giả thuyết chồng lấp, được nghiên cứu trong công trình Các model đồ chơi về sự chồng lấp của Anthropic, giải thích lý do: một lớp có d chiều có thể biểu diễn nhiều hơn d khái niệm dưới dạng các hướng gần trực giao, miễn là chỉ có một vài hướng hoạt động cùng lúc. SAE tìm kiếm tập hướng dư thừa đó. Mã thưa của SAE cho một activation liệt kê một vài hướng hiện diện và mức độ của chúng, dễ đọc hơn nhiều so với hàng nghìn giá trị neuron pha trộn.
Cách autoencoder thưa hoạt động#
Encoder ánh xạ vector activation sang một vector latent rộng hơn nhiều, sau đó áp dụng ReLU; decoder tái dựng activation thành tổng có trọng số của các cột, vì vậy mỗi cột decoder là hướng của một feature. Quá trình huấn luyện tối thiểu hóa sai số tái dựng cộng với ràng buộc độ thưa. Lựa chọn kinh điển là mức phạt L1 trên các latent, một dạng regularization; TopK SAE của OpenAI chỉ giữ k latent lớn nhất cho mỗi đầu vào và được mở rộng thành SAE 16 triệu latent trên activation của GPT-4; còn JumpReLU SAE của Google DeepMind đưa mọi latent dưới một ngưỡng đã học về 0. Sau khi huấn luyện, latent của SAE được sử dụng theo hai cách chính:
Ví dụ đồ chơi dưới đây gói 64 hướng feature đã biết vào 32 chiều, để không có chiều đơn lẻ nào tương ứng với một feature, rồi huấn luyện TopK SAE để khôi phục chúng:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# Toy activations: 64 feature directions packed into 32 dimensions (superposition), ~3 active per sample
features = F.normalize(torch.randn(64, 32), dim=1)
acts = (torch.rand(8192, 64) * (torch.rand(8192, 64) < 0.05)) @ features
encoder, decoder = torch.nn.Linear(32, 256), torch.nn.Linear(256, 32) # 256 latents: 8x overcomplete
optimizer = torch.optim.Adam([*encoder.parameters(), *decoder.parameters()], lr=1e-3)
for step in range(3000):
# TopK sparsity: keep each sample's 4 largest latents and zero the rest
values, idx = encoder(acts).topk(4, dim=-1)
latents = torch.zeros(len(acts), 256).scatter(-1, idx, F.relu(values))
loss = (decoder(latents) - acts).pow(2).sum(-1).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
directions = F.normalize(decoder.weight.T, dim=1) # one learned direction per latent
print(f"Unexplained variance: {loss.item() / (acts - acts.mean(0)).pow(2).sum(-1).mean().item():.3f}")
print(f"Features matching a single neuron: {(features.abs().max(dim=1).values > 0.9).sum().item()} of 64")
print(f"Features matching an SAE latent: {((directions @ features.T).max(dim=0).values > 0.9).sum().item()} of 64")Khi mỗi mẫu có tối đa 4 latent hoạt động, SAE để lại 7.1% phương sai chưa được giải thích. Không feature nào trong 64 feature được cài đặt sẵn thẳng hàng với một chiều đầu vào duy nhất ở độ tương đồng cosine trên 0.9, trong khi cả 64 feature đều thẳng hàng với hướng decoder của một latent SAE nào đó.
Ứng dụng#
- Khám phá feature: Các nhà nghiên cứu gán nhãn cho từng latent bằng cách thu thập những đầu vào kích hoạt latent đó mạnh nhất, thường nhờ LLM viết nhãn, rồi dùng các feature để kiểm tra model biểu diễn những gì.
- Điều khiển: Ép một feature về giá trị cao sẽ thay đổi hành vi, tương tự như thêm một vector điều khiển. Tháng 5 năm 2024, Anthropic từng phát hành phiên bản Golden Gate Claude trong thời gian ngắn, với feature cây cầu được khuếch đại để cây cầu xuất hiện trong hầu hết câu trả lời.
- Truy vết mạch: Đồ thị quy thuộc năm 2025 của Anthropic sử dụng transcoder xuyên lớp, một biến thể SAE đọc activation của một lớp và tái dựng đầu ra của các lớp MLP phía sau, để truy vết các phép tính nhiều bước bên trong Claude 3.5 Haiku.
- Bộ SAE mở: Gemma Scope của Google DeepMind phát hành JumpReLU SAE cho mọi lớp của Gemma 2 2B và 9B; Gemma Scope 2 bổ sung SAE và transcoder cho các model Gemma 3 từ 270M đến 27B tham số. Thư viện SAELens huấn luyện và tải các SAE như vậy.
- Model thị giác: SAE được huấn luyện trên activation của CLIP và Vision Transformer cũng tìm ra các khái niệm thị giác có thể diễn giải. SAE cần tập dữ liệu gồm các vector activation;
model.embed()trong Ultralytics YOLO26 trả về một vector activation được pooling trung bình cho mỗi hình ảnh từ bất kỳ chỉ số lớp nào, mặc định là lớp áp chót.
Hạn chế#
SAE tái dựng activation không hoàn hảo; việc thay activation của một lớp bằng kết quả tái dựng làm tăng loss của model một cách đo lường được. Các feature được tìm thấy phụ thuộc vào kích thước từ điển và lần huấn luyện, vì SAE rộng hơn chia một feature thành nhiều feature tinh hơn, còn một số latent không bao giờ kích hoạt. Tháng 3 năm 2025, nhóm diễn giải của Google DeepMind báo cáo rằng các probe xây dựng trên feature SAE kém hiệu quả hơn probe tuyến tính thông thường trong việc phát hiện ý định gây hại trong các prompt ngoài phân phối; nhóm cũng cho biết họ sẽ giảm ưu tiên nghiên cứu nền tảng về SAE nhưng vẫn tiếp tục xem SAE là một trong nhiều công cụ.
SAE và các khái niệm liên quan#
- Autoencoder tiêu chuẩn: Nén dữ liệu qua một nút thắt hẹp hơn đầu vào để nén hoặc giảm chiều. SAE mở rộng lớp ẩn và áp đặt độ thưa để tách biệt các khái niệm.
- Dò tìm tuyến tính: Huấn luyện classifier có giám sát để phát hiện một khái niệm được chọn trước. SAE là phương pháp không giám sát và khám phá feature mà không cần nhãn.
- Kỹ thuật biểu diễn (RepE): Tìm hướng khái niệm bằng cách đối chiếu activation trên các cặp prompt, trong khi feature SAE chỉ đến từ quá trình tái dựng.
- Mã hóa thưa: Phương pháp học từ điển cũ hơn mà SAE mô phỏng bằng một lượt encoder duy nhất thay vì tối ưu hóa cho từng đầu vào. Olshausen và Field (1996) cho thấy mã thưa học từ hình ảnh tự nhiên tạo ra các bộ lọc cục bộ, có định hướng, dạng cạnh, tương tự trường tiếp nhận của tế bào đơn giản trong vỏ não thị giác sơ cấp.










