Đầu dò tuyến tính là một bộ phân loại rất đơn giản, được huấn luyện để đọc trạng thái bên trong của một mô hình AI và đoán một thông tin nào đó, như câu đang đọc nói về quá khứ hay hiện tại. Nếu đầu dò đọc chính xác, nghĩa là thông tin ấy có mặt bên trong mô hình ở dạng dễ lấy ra. Nhưng "đọc ra được" chưa chứng minh mô hình thật sự dùng thông tin đó để quyết định.
Hình dung một chị hàng xóm ở Đà Lạt nhìn giỏ đi chợ của nhà bên: hoa cúc vàng, nhang, một con gà luộc, mấy bó rau rừng. Chị đoán ngay nhà đó sắp có đám giỗ, và thường đoán đúng. Thông tin "sắp có đám giỗ" nằm sẵn trong giỏ đồ. Nhưng chị không biết người đi chợ có nghĩ tới đám giỗ khi chọn từng món hay không, có khi họ chỉ mua theo danh sách mẹ dặn.
Đầu dò là một trong những công cụ đơn giản và được dùng nhiều nhất để nhìn vào bên trong mô hình. Dùng đúng thì rất có ích, dùng sai thì dễ kể những câu chuyện đẹp mà sai.
Đầu dò làm việc thế nào?
Bước đầu tiên là gom dữ liệu. Người nghiên cứu chuẩn bị nhiều đầu vào đã biết nhãn, ví dụ một nghìn câu tiếng Việt, nửa ở thì quá khứ, nửa ở hiện tại. Cho từng câu chạy qua mô hình và ghi lại trạng thái bên trong ở một tầng nào đó, tức là một dãy dài các con số.
Bước thứ hai là huấn luyện đầu dò. Đầu dò tuyến tính về bản chất chỉ tìm một mặt phẳng cắt đôi không gian các trạng thái: câu quá khứ một bên, câu hiện tại một bên. Nó giống như một người vạch đường phấn trên sân trường để chia hai nhóm học sinh đang đứng lẫn lộn.
Bước thứ ba là kiểm trên dữ liệu đầu dò chưa thấy. Nếu với những câu mới, đầu dò vẫn đoán đúng phần lớn, người ta nói thông tin về thì của câu được biểu diễn tuyến tính ở tầng đó. Lặp lại ở nhiều tầng, có thể thấy thông tin xuất hiện từ tầng nào, rõ nhất ở đâu, mờ dần ở đâu.
Cái hay của đầu dò là rẻ và nhanh. Không cần hiểu toàn bộ mô hình, chỉ cần hỏi từng câu hỏi hẹp: thông tin X có ở đây không. Vì vậy nó thường là bước thăm dò đầu tiên trước khi dùng những công cụ tốn kém hơn.
Vì sao đầu dò phải đơn giản?
Nghe thì lạ: sao không dùng một bộ đọc thật mạnh cho chính xác hơn? Lý do giống chuyện chấm thi. Muốn biết học sinh có hiểu bài không, mình đưa bài cho một người chấm chỉ đối chiếu đáp án. Nếu đưa cho một giáo sư tự suy luận được lời giải từ vài nét gạch xoá, điểm cao có khi phản ánh tài của giáo sư chứ không phải của học sinh.
Với đầu dò cũng vậy. Một bộ đọc phức tạp có thể tự tính ra thông tin từ những mảnh vụn trong trạng thái, kể cả khi mô hình gốc không hề sắp xếp thông tin đó cho dễ dùng. Khi ấy, kết quả cao chỉ nói lên rằng bộ đọc giỏi.
Đầu dò tuyến tính hạn chế được chuyện này vì nó chỉ vạch được một đường thẳng. Nếu một đường thẳng đủ để tách hai nhóm, thông tin đó nằm ở dạng mà chính các tầng sau của mô hình, vốn cũng làm những phép tính gần tuyến tính, có thể dễ dàng dùng tới.
Người làm cẩn thận còn so với mốc đối chứng: chạy cùng đầu dò trên một mô hình có trọng số ngẫu nhiên, hoặc trên nhãn bị xáo trộn. Nếu đầu dò vẫn đạt điểm khá ở mốc đối chứng, phần lớn thành tích trên mô hình thật không đáng tính.
Người ta hay dùng đầu dò để tìm những gì?
Ngữ pháp. Thì của câu, chủ ngữ số ít hay số nhiều, từ nào là động từ chính.
Ngôn ngữ đang dùng. Mô hình đa ngôn ngữ có giữ thông tin "câu này tiếng Việt hay tiếng Anh" ở dạng dễ đọc không.
Cảm xúc của câu. Câu khen hay chê, hài lòng hay bực bội.
Vị trí và không gian. Mô hình đọc mô tả một căn phòng có giữ được thông tin vật nào nằm bên trái vật nào.
Trạng thái của trò chơi. Mô hình học từ chuỗi nước đi có ngầm theo dõi bàn cờ đang ra sao không.
Đúng hay sai theo mô hình. Bên trong có hướng nào tách những câu mô hình "coi là đúng" với những câu nó coi là sai không.
Danh tính nhân vật. Đọc một đoạn truyện dài, mô hình có giữ được ai đang nói với ai.
Thời gian và mốc sự kiện. Thứ tự trước sau giữa các sự việc được kể.
Thông tin nhạy cảm. Kiểm xem mô hình có ngầm suy ra những đặc điểm của người viết mà đáng lẽ không nên dựa vào.
Dấu hiệu đầu vào bất thường. Trạng thái bên trong có khác đi khi gặp đầu vào lạ hoặc cố tình đánh lừa không.
Ý định trong hội thoại. Người dùng đang hỏi thông tin, đang than phiền hay đang yêu cầu làm việc gì.
Mức độ chắc chắn. Bên trong có tín hiệu nào báo mô hình sắp đoán bừa không.
Bẫy tương quan và cách kiểm bằng can thiệp
Bẫy lớn nhất là nhầm "có mặt" với "được dùng". Quay lại giỏ đi chợ: thông tin đám giỗ nằm trong giỏ, nhưng người đi chợ có thể chỉ làm theo danh sách. Tương tự, đầu dò đọc được "câu này nói về quá khứ" không có nghĩa mô hình dựa vào thông tin đó để chọn từ tiếp theo.
Bẫy thứ hai là dữ liệu dò bị lệch. Nếu mọi câu quá khứ trong bộ dữ liệu đều dài hơn câu hiện tại, đầu dò có thể học cách đo độ dài câu thay vì thì. Kết quả rất đẹp, kết luận rất sai. Bộ dữ liệu dò cần được thiết kế để chỉ khác nhau đúng ở thông tin muốn tìm.
Cách kiểm mạnh hơn là can thiệp. Lấy hướng mà đầu dò tìm được, rồi trong lúc mô hình chạy, đẩy trạng thái bên trong dọc theo hướng đó. Nếu mô hình bắt đầu viết như thể sự việc đã xảy ra rồi, đó là bằng chứng hướng này thật sự được dùng. Cách làm này còn gọi là lái biểu diễn.
Lái biểu diễn mở ra cả khả năng điều chỉnh hành vi mà không cần huấn luyện lại, ví dụ giảm xu hướng chiều theo ý người dùng một cách thái quá. Nhưng nó cũng có tác dụng phụ, đẩy quá mạnh thì câu văn hỏng hoặc lạc đề, và tác dụng có thể không ổn định qua các loại đầu vào khác nhau.
Dò cho cẩn thận: danh sách việc nên làm
Đặt câu hỏi hẹp. Mỗi đầu dò trả lời một câu, như "có thông tin thì của câu không", đừng hỏi chung chung.
Thiết kế cặp đối chiếu. Hai câu chỉ khác nhau đúng ở điều cần dò, mọi thứ khác giữ nguyên.
Cân bằng nhãn. Hai nhóm có số lượng gần bằng nhau, để đầu dò không đoán bừa theo nhóm đông.
Tách dữ liệu huấn luyện và kiểm tra. Câu dùng để kiểm phải là câu đầu dò chưa thấy.
Dò ở nhiều tầng. Vẽ độ chính xác theo từng tầng để thấy thông tin xuất hiện và mờ đi ở đâu.
So với mô hình ngẫu nhiên. Chạy cùng đầu dò trên mô hình chưa huấn luyện để biết mốc nền.
So với nhãn xáo trộn. Nếu đầu dò vẫn học được nhãn vô nghĩa, nó đang ghi nhớ chứ không phải đọc.
Giữ đầu dò đơn giản. Ưu tiên tuyến tính, chỉ dùng bộ đọc phức tạp khi có lý do rõ.
Kiểm bằng can thiệp. Đẩy trạng thái theo hướng tìm được, xem hành vi đổi có đúng dự đoán.
Thử trên dữ liệu khác loại. Đầu dò học trên văn bản báo chí có còn đúng với tin nhắn đời thường không.
Ghi rõ giới hạn. Nói thẳng những trường hợp đầu dò thất bại, để người đọc không suy diễn quá.
Câu hỏi thường gặp
Đầu dò có đọc được "suy nghĩ" của AI không?
Không theo nghĩa đọc ý nghĩ. Đầu dò chỉ trả lời được những câu hỏi hẹp mà người nghiên cứu đã đặt sẵn, như có thông tin X ở tầng Y không. Nó không cho bức tranh tổng thể về những gì mô hình đang xử lý.
Đầu dò có dùng để phát hiện mô hình nói sai sự thật được không?
Có những nghiên cứu tìm hướng bên trong tách câu mô hình coi là đúng với câu nó coi là sai, và kết quả có ích ở một số bối cảnh. Nhưng hướng đó có thể không tổng quát qua mọi loại câu hỏi, nên chưa đủ tin cậy để dùng như máy kiểm tra trung thực.
Cần bao nhiêu dữ liệu để huấn luyện một đầu dò?
Thường ít hơn rất nhiều so với huấn luyện mô hình gốc, vài trăm tới vài nghìn ví dụ có nhãn là đủ cho nhiều câu hỏi đơn giản. Quan trọng hơn số lượng là dữ liệu phải sạch, cân bằng và chỉ khác nhau đúng ở điều cần dò.
Đầu dò khác bản đồ nhiệt thế nào?
Bản đồ nhiệt nhìn vào đầu vào và hỏi phần nào ảnh hưởng tới kết quả. Đầu dò nhìn vào trạng thái bên trong và hỏi một thông tin có nằm ở đó không. Hai công cụ trả lời hai câu hỏi khác nhau và hay được dùng bổ sung cho nhau.
Sinh viên có tự làm thí nghiệm đầu dò được không?
Được. Với một mô hình ngôn ngữ nhỏ công khai, máy tính có card đồ hoạ tầm trung và vài thư viện quen thuộc, có thể ghi lại trạng thái bên trong rồi huấn luyện đầu dò. Đó là bài tập nhập môn tốt cho ai muốn theo nghề diễn giải.