J-Space: Lại một "trình đọc suy nghĩ" LLM khác?
Nếu bạn cũng giống tôi, có thể bạn cảm thấy trong vài năm qua đã có rất nhiều bài báo và tuyên bố về việc "đọc suy nghĩ của LLM". Ví dụ, nghiên cứu trước đây của Anthropic mang tên *On the Biology of a Large Language Model* đã truy vết suy luận đa bước ẩn, lập kế hoạch thơ và mạch đa ngôn ngữ trong Claude 3.5 Haiku. Vậy điểm khác biệt ở đây là gì? Chuyện về ý thức này có thật không? Nó ít nhất đã khơi dậy sự quan tâm của các nhà thần kinh học đang làm việc, vì vậy đáng để xem xét. Hãy để tôi giải thích điều gì thực sự mới mẻ và thú vị về bài báo này, và tại sao kết quả lại vừa nghiêm túc hơn vừa ít giật gân hơn câu mở đầu đó.
Hãy bắt đầu với một thí nghiệm tiết lộ. Các nhà nghiên cứu đưa cho Claude một đoạn văn tiếng Tây Ban Nha mà không nêu tên ngôn ngữ, và yêu cầu nó tiếp tục bằng cùng một ngôn ngữ. Trong một điều kiện thứ hai, họ yêu cầu nó nêu tên một tác giả nổi tiếng viết bằng ngôn ngữ đó. Kết quả được hiển thị bên dưới, ở phía bên trái.
Không có gì ngạc nhiên: mô hình có thể tiếp tục bằng tiếng Tây Ban Nha và nêu tên "García Márquez." Nhưng sau đó các nhà nghiên cứu đã trao đổi biểu diễn nội bộ của nó về tiếng Tây Ban Nha thành tiếng Pháp. Kết quả được hiển thị ở bên phải. Claude bây giờ trả lời "Victor Hugo" trong trường hợp thứ hai… nhưng vẫn tiếp tục đoạn văn bằng tiếng Tây Ban Nha hoàn hảo trong trường hợp đầu tiên!
Do đó, mô hình dường như có ít nhất hai thành phần hoặc tuyến đường biểu diễn để sử dụng cùng một sự kiện: một hỗ trợ xử lý ngôn ngữ tự động, trong khi cái kia làm cho tiếng Tây Ban Nha có sẵn cho báo cáo rõ ràng và suy luận linh hoạt. Sự can thiệp chỉ làm gián đoạn tuyến đường thứ hai.
Gọi tuyến đường thứ hai đó là "có ý thức" sẽ là đi quá xa, nhưng nó giống với cái mà nhà triết học Ned Block gọi là *ý thức truy cập*: thông tin được cung cấp để báo cáo, suy luận có chủ đích và kiểm soát linh hoạt.
Để hiểu tại sao, chúng ta cần kỹ thuật mà các tác giả giới thiệu: *thấu kính Jacobian*, hay J-lens. Chúng ta sẽ so sánh nó với các công cụ diễn giải quen thuộc, tái tạo một ví dụ nhỏ trên một mô hình mở, và xem xét tại sao các biểu diễn mà nó tìm thấy trông giống như cái mà các nhà thần kinh học gọi là "không gian làm việc toàn cầu."
Sau đó, chúng ta có thể quay lại câu hỏi không thể tránh khỏi: liệu bất kỳ điều này có chứng minh rằng Claude có trải nghiệm chủ quan không? Spoiler: không. Nó cũng không chứng minh điều ngược lại. Nhưng kết quả thực tế đủ thú vị.
Nỗ lực kỹ thuật đảo ngược cách các mô hình thực hiện tính toán này là lĩnh vực *diễn giải cơ học*. Trong số những thứ khác, các nhà nghiên cứu cố gắng xác định cách LLM biểu diễn và thao tác các khái niệm.
Bức tranh ngây thơ về diễn giải sẽ là xác định một tập hợp các nơ-ron được gắn nhãn *mèo*, *niềm vui* hoặc *lừa dối*, và có lẽ chỉ ra rằng khi nơ-ron "mèo" kích hoạt, nó kích hoạt nơ-ron "niềm vui". Thật không may, các mạng nơ-ron thực tế không được tổ chức thuận tiện như vậy: một khái niệm thường được phân bố trên nhiều kích hoạt, trong khi một nơ-ron riêng lẻ có thể tham gia vào một số phép tính dường như không liên quan.
Tuy nhiên, trong nhiều thí nghiệm, thông tin liên quan đến khái niệm hoạt động gần giống như *một hướng* trong không gian kích hoạt của mô hình.
Đúng vậy. Nếu bạn thêm hoặc bỏ đi đúng vector, bạn có thể tăng cường, triệt tiêu hoặc thay thế một khái niệm. Bức tranh này có liên quan chặt chẽ đến giả thuyết chồng chập (superposition hypothesis), trong đó các mô hình biểu diễn nhiều đặc trưng hơn số chiều riêng lẻ mà chúng có.
Vì vậy, khi ai đó tuyên bố đã tìm ra biểu diễn nội tại của một khái niệm nào đó, chúng ta muốn có ít nhất ba điều:
J-lens thú vị vì bài báo không chỉ đưa ra các danh sách gợi mở về các từ nội tại: nó kiểm tra một cách có hệ thống cả ba ý tưởng. Nhưng để hiểu điều đó, trước tiên chúng ta cần xem cách các nhà nghiên cứu thường tìm kiếm các khái niệm trong "suy nghĩ" của một LLM.
Trong hình bên dưới, bạn có thể thấy một biểu diễn quen thuộc của transformer ở bên trái. Mặc dù có nhiều biến thể, nhưng mô hình chung là giống nhau: embedding token, sau đó là một chồng các lớp chứa khối attention (di chuyển thông tin giữa các vị trí token) và khối MLP (xử lý thông tin trong mỗi vị trí), và cuối cùng là unembedding, hay phép chiếu đầu ra, tạo ra logit cho token tiếp theo. Các phép toán chuẩn hóa được bỏ qua để rõ ràng. Một chi tiết nhỏ nhưng quan trọng là kết nối tắt (skip connection), hay kết nối dư (residual connection), được tô màu đỏ. Nó kết nối đầu vào của một khối với đầu ra của nó, do đó những gì được truyền tiếp là tổng của đầu vào gốc và bản cập nhật của khối.
Các nhà nghiên cứu khả năng giải thích cơ học (mechanistic interpretability) thường vẽ lại các đường kết nối tương tự để có được biểu diễn ở bên phải. Hãy nhìn kỹ: đó là cùng một kiến trúc từ một góc nhìn khác. Lần này, luồng dư (residual stream) được đặt ở trung tâm, với mọi khối trong chồng được kết nối với nó.
Đường trung tâm dài này được gọi là luồng dư (residual stream), và nó có thể được xem như một loại bộ nhớ hoặc kênh giao tiếp mà các khối khác nhau đọc và ghi vào. Chính xác hơn, có một vector luồng dư tại mỗi vị trí token. Nó bắt đầu với embedding của token đó; attention di chuyển thông tin giữa các vị trí, và mỗi khối attention hoặc MLP ghi một bản cập nhật cộng dồn. Cuối cùng, sau tất cả các lớp, chuẩn hóa và unembedding biến luồng dư thành logit, mà softmax chuyển đổi thành xác suất token.
Luồng dư thường được coi là không gian biểu diễn chính của mô hình: nó ghi lại trạng thái đang tiến hóa của mô hình khi thông tin được xử lý qua các lớp. Đối với một vị trí token nhất định tại một lớp nhất định, có một vector kích hoạt có độ rộng là chiều mô hình, thường là vài nghìn. Đây là nơi chúng ta sẽ tìm kiếm các mẫu biểu diễn các khái niệm.
Cách đơn giản nhất để kiểm tra một lớp trung gian là logit lens (thấu kính logit). Lấy kích hoạt luồng dư h_l tại lớp l và gửi nó trực tiếp qua chuẩn hóa cuối cùng và unembedding của mô hình:
LogitLens(h_l) = W_U norm(h_l)
Điều này tương đương với việc hỏi token nào sẽ được tạo ra nếu mọi khối transformer sau lớp l không đóng góp thêm bản cập nhật nào. Về cơ bản, chúng ta đang gián đoạn
Khi mô hình đang suy nghĩ giữa chừng, chúng ta có thể quét qua các lớp để xem cách dự đoán token tiếp theo của nó tiến triển theo độ sâu.
Để minh họa tác động này, hãy xem xét một tác vụ điển hình trong khả năng diễn giải cơ học: suy luận hai bước. Nếu tôi hỏi bạn: "Số chân của con vật giăng tơ là bao nhiêu?", bạn phải trải qua một bước trung gian: đầu tiên nhớ rằng con vật giăng tơ là nhện, sau đó nhớ rằng nhện có tám chân.
Đây là một ví dụ tôi tạo ra bằng mô hình mã nguồn mở `google/gemma-3-4b-pt`, có 34 lớp. Chúng ta bắt đầu với prompt "FACT: the animal that spins webs has" và kiểm tra token tiếp theo qua logit lens. Hình dưới đây hiển thị tám token hàng đầu của nó ở các lớp 15 đến 30, màu sắc biểu thị chênh lệch logit so với token đứng đầu.
Có thể thấy rằng logit lens dần trở nên liên quan hơn đến câu trả lời. Các lớp thấp hơn đưa ra các phần hoàn chỉnh dự kiến như "been", "not" và "a". Khi đến các lớp cao hơn, các token liên quan hơn xuất hiện: chúng ta có thể thấy "spider" và "legs" sau lớp 26, tiếp theo là "eight" ở lớp 29.
Logit lens rẻ và thường hữu ích, nhưng giả định trung tâm của nó trở nên kém hợp lý hơn khi chúng ta tiến về các lớp sớm hơn. Các lớp sau không chỉ đơn giản thêm các sự kiện vào một biểu diễn cố định; chúng còn biến đổi hình học của nó. Do đó, đọc một kích hoạt sớm bằng bộ giải mã cuối cùng có thể tạo ra kết quả vô nghĩa vì chúng ta đang sử dụng sai hệ tọa độ.
Ý tưởng của J-lens không phải là chạy trực tiếp một kích hoạt sớm qua quá trình unembedding cuối cùng, mà trước tiên là vận chuyển nó qua một xấp xỉ tuyến tính trung bình của toàn bộ quá trình tính toán hạ nguồn.
Với mỗi lớp `l`, trước tiên chúng ta ước tính một nhiễu loạn nhỏ của kích hoạt `h_{l,t}` tại vị trí nguồn `t` sẽ ảnh hưởng như thế nào đến luồng dư cuối cùng `h_{L,t'}` tại cùng hoặc vị trí sau đó `t'`. Sau đó, chúng ta lấy trung bình Jacobian đó trên một tập hợp lớn các prompt, vị trí nguồn và vị trí đích.
`J_l = E_{prompt, t, t' ≥ t} [∂h_{L,t'} / ∂h_{l,t}]`


