Để bắt đầu học và làm nghiên cứu an toàn AI, bạn cần bốn mảng: đại số tuyến tính ở mức hiểu ma trận đang làm gì, xác suất thống kê đủ để đọc một kết quả có sai số, chút giải tích để hiểu gradient, và Python đủ để đọc, sửa, chạy mã của người khác. Bạn chưa cần toán thuần sâu, chưa cần giải thuật thi đấu, và càng không cần thuộc lòng chứng minh.
Câu hỏi "cần bao nhiêu toán" thường là câu hỏi lo lắng: sợ mình không đủ giỏi. Bài này cố trả lời cụ thể hơn, theo từng nhánh, kèm cách tự kiểm tra nền của mình và những chỗ người ta hay học thừa hoặc học thiếu.
Toán trong an toàn AI dùng để làm gì, nói cho cụ thể
Hình dung một mô hình ngôn ngữ như một nhà máy xay xát khổng lồ. Mỗi từ vào máy được đổi thành một dãy số, gọi là vectơ. Mỗi lớp của mô hình là một công đoạn nhân dãy số đó với một bảng số lớn, gọi là ma trận, rồi bẻ cong kết quả một chút. Đại số tuyến tính là ngôn ngữ để nói về các công đoạn đó.
Khi người làm diễn giải nói "mô hình biểu diễn khái niệm thành phố như một hướng trong không gian", họ nói đúng nghĩa đen: có một vectơ mà càng chiếu lên đó mạnh thì mô hình càng đang nghĩ về chuyện địa danh. Không hiểu phép chiếu và tích vô hướng thì câu đó chỉ là ẩn dụ.
Xác suất thì xuất hiện ở hai chỗ. Thứ nhất, mô hình ngôn ngữ thật ra xuất ra một phân phối xác suất cho từ kế tiếp, không phải một câu trả lời cố định; hiểu điều này mới hiểu vì sao hỏi lại cùng câu lại ra kết quả khác. Thứ hai, khi đánh giá, bạn luôn phải hỏi kết quả này có đủ mẫu để tin không, chênh lệch hai mô hình là thật hay do may rủi.
Giải tích thì ít hơn bạn tưởng: chủ yếu là hiểu đạo hàm cho biết hướng nào làm hàm mất mát giảm, và quy tắc dây chuyền giải thích lan truyền ngược. Nắm trực giác này là đủ cho đa số công việc, trừ khi bạn đi vào lý thuyết tối ưu.
Mức toán cần có, chia theo nhánh
Nhánh đánh giá: thống kê là chính. Khoảng tin cậy, kiểm định giả thuyết đơn giản, hiểu cỡ mẫu. Nhiều kết luận sai trong đánh giá mô hình đến từ việc so hai con số mà không biết sai số.
Nhánh đánh giá: đại số tuyến tính nhẹ. Đủ để hiểu mô hình làm gì, không cần đào sâu.
Nhánh diễn giải: đại số tuyến tính nặng hơn. Phép chiếu, cơ sở, phân tích giá trị suy biến, không gian con. Đây là nhánh dùng toán tuyến tính nhiều nhất.
Nhánh diễn giải: chút thống kê. Để biết một nơ-ron "kích hoạt khi thấy tên món ăn" là phát hiện thật hay trùng hợp.
Nhánh căn chỉnh: học tăng cường. Hiểu phần thưởng, chính sách, giá trị kỳ vọng. Toán ở đây chủ yếu là xác suất và kỳ vọng.
Nhánh căn chỉnh: tối ưu. Hiểu khi ép mô hình tối đa một con số thì nó có thể tìm đường tắt; cần trực giác về tối ưu hơn là kỹ thuật chứng minh.
Nhánh lý thuyết: toán sâu thật. Một số hướng nghiên cứu lý thuyết cần xác suất nâng cao, lý thuyết học, logic. Đây là thiểu số, không phải cửa vào mặc định.
Nhánh kỹ sư hạ tầng an toàn: toán ít. Công việc như xây hệ thống giám sát, công cụ kiểm thử cần kỹ năng phần mềm nhiều hơn toán.
Thứ chung cho mọi nhánh: đọc ký hiệu. Đọc được công thức trong bài báo mà không hoảng. Đây là kỹ năng luyện được, không phải năng khiếu.
Thứ chung cho mọi nhánh: ước lượng nhẩm. Biết một mô hình cỡ này huấn luyện mất cỡ bao nhiêu phép tính, một bộ kiểm tra cỡ này cho sai số cỡ nào.
Thứ chưa cần: toán thuần trừu tượng. Tôpô, đại số trừu tượng hiếm khi xuất hiện trong công việc hằng ngày ở giai đoạn đầu.
Lập trình: cần giỏi đến đâu
Python đọc hiểu nhanh. Phần lớn thời gian là đọc mã của người khác: mã thí nghiệm trong bài báo, thư viện, công cụ. Đọc chậm thì mọi việc chậm theo.
Làm việc với mảng số. Thành thạo thao tác trên mảng nhiều chiều, hiểu chiều nào là chiều nào. Phần lớn lỗi trong mã học máy là lỗi sai chiều.
Một thư viện học sâu. Viết vòng huấn luyện, gắn hàm theo dõi vào giữa các lớp để đọc giá trị kích hoạt, tải mô hình có sẵn.
Gỡ lỗi kiên nhẫn. Mô hình chạy không lỗi nhưng kết quả vô lý là chuyện thường ngày. Kỹ năng in ra từng bước để khoanh vùng quan trọng hơn biết nhiều thủ thuật.
Quản lý phiên bản mã. Dùng hệ thống quản lý phiên bản để quay lại được thí nghiệm cũ. Không có thì sau hai tuần không biết kết quả nào đến từ mã nào.
Viết mã thí nghiệm sạch vừa đủ. Không cần kiến trúc phần mềm đẹp, cần đặt tên rõ, ghi cấu hình, chạy lại được.
Dùng dòng lệnh cơ bản. Chạy tác vụ trên máy chủ từ xa, xem tài nguyên, chuyển tệp. Nhiều thí nghiệm không chạy trên laptop được.
Xử lý dữ liệu văn bản. Làm sạch, tách câu, xử lý dấu tiếng Việt, mã hoá ký tự. Văn bản tiếng Việt có nhiều bẫy mã hoá dấu hơn người mới nghĩ.
Thứ chưa cần: giải thuật thi đấu. Giải nhanh bài đồ thị khó không giúp nhiều cho công việc này.
Thứ chưa cần: mọi ngôn ngữ lập trình. Một ngôn ngữ dùng tốt hơn ba ngôn ngữ biết sơ.
Thứ nên học dần: tối ưu hiệu năng. Khi thí nghiệm lớn lên, biết chạy theo lô, dùng bộ nhớ hợp lý giúp tiết kiệm nhiều giờ chờ.
Tự kiểm tra nền của mình bằng ba bài tập
Thay vì tự hỏi "mình đủ giỏi chưa", hãy thử ba bài tập cụ thể. Nếu làm được trong vài buổi mà không cần chép lời giải, nền của bạn đủ để bước vào phần an toàn. Nếu kẹt, chỗ kẹt cho biết chính xác cần ôn gì.
Bài một: viết một mạng nơ-ron hai lớp phân loại điểm trên mặt phẳng, chỉ dùng mảng số, tự viết lan truyền ngược. Kẹt ở chiều ma trận là thiếu đại số tuyến tính. Kẹt ở công thức đạo hàm là thiếu giải tích. Kẹt ở cú pháp là thiếu lập trình.
Bài hai: lấy hai mô hình phân loại, chạy trên cùng một tập kiểm tra vài trăm mẫu, một cái đúng nhiều hơn cái kia vài mẫu. Hãy trả lời: chênh lệch đó có đáng tin không? Nếu bạn không biết bắt đầu từ đâu, đó là phần thống kê cần bổ sung.
Bài ba: tải một mô hình ngôn ngữ nhỏ có sẵn, đưa vào hai câu khác nhau một chữ, ví dụ "cô ấy là bác sĩ" và "anh ấy là bác sĩ", lấy ra giá trị kích hoạt ở một lớp giữa rồi đo khoảng cách giữa chúng. Làm được bài này nghĩa là bạn đã có thể bắt đầu những thí nghiệm diễn giải đơn giản nhất.
Ba bài này không phải tiêu chuẩn chính thức nào, chỉ là cách đo nhanh mà nhiều người tự học thấy hữu ích. Điều đáng giữ là tinh thần: đo năng lực bằng việc làm được, không bằng số khoá học đã xem.
Những chỗ người học hay hiểu sai
Hiểu sai phổ biến nhất là nghĩ an toàn AI là lĩnh vực "nói nhiều, làm ít", chỉ cần đọc và lập luận. Thực tế phần lớn công việc hằng ngày là chạy thí nghiệm, đọc số, sửa mã. Người giỏi lập luận mà không chạy được thí nghiệm sẽ khó đóng góp.
Hiểu sai ngược lại là nghĩ cần giỏi toán như người làm nghiên cứu toán. Có những bạn bỏ cuộc vì thấy một công thức dài trong bài báo. Nhưng đa số công thức đó chỉ là cách viết gọn những phép tính bạn đã biết, đọc chậm từng ký hiệu là hiểu.
Một hiểu sai nữa là học toán tách rời khỏi bài toán. Ôn lại toàn bộ giáo trình đại số tuyến tính trước khi chạm mô hình thường kéo dài và chán. Hiệu quả hơn là gặp chỗ nào chưa hiểu thì quay về đúng chương đó, như đi chợ cần gì mua nấy.
Cuối cùng, đừng đánh đồng điểm số môn toán ở trường với khả năng làm nghề. Nhiều người điểm thi bình thường nhưng có trực giác tốt về dữ liệu, cẩn thận khi đo, và đó mới là phẩm chất lĩnh vực này cần nhất.
Câu hỏi thường gặp
Học sinh khối C có theo được an toàn AI không?
Có thể, nhưng phải bù toán và lập trình từ đầu, mất thời gian hơn người học khối A. Ngoài ra có những hướng như đánh giá hành vi mô hình hay nghiên cứu tác động xã hội cần ít toán hơn, có thể là điểm vào hợp lý.
Có cần học thạc sĩ toán để nghiên cứu căn chỉnh không?
Không bắt buộc. Nhiều người làm căn chỉnh xuất thân từ khoa học máy tính hoặc kỹ thuật, tự học phần toán cần thiết. Bằng cấp cao giúp ở các vị trí nghiên cứu lý thuyết, nhưng không phải cửa duy nhất.
Nên học đại số tuyến tính từ sách nào?
Chọn giáo trình đại số tuyến tính bậc đại học mà bạn đọc thấy dễ hiểu, ưu tiên loại có nhiều hình vẽ minh hoạ ý nghĩa hình học. Quan trọng hơn sách là vừa đọc vừa làm bài tập bằng mã.
Lập trình bằng ngôn ngữ khác Python có được không?
Được về nguyên tắc, nhưng gần như toàn bộ công cụ, thư viện và mã thí nghiệm của lĩnh vực này viết bằng Python. Dùng ngôn ngữ khác sẽ tự làm khó mình khi cần đọc mã người khác.
Mất bao lâu để đủ nền toán cho an toàn AI?
Tuỳ nền sẵn có và số giờ mỗi tuần, không có con số chung. Sinh viên kỹ thuật đã học xong toán đại cương thường chỉ cần ôn lại có chủ đích, còn người bắt đầu từ đầu nên tính bằng nhiều tháng.