AI đếm sai chữ cái và tính nhầm vì mô hình ngôn ngữ không nhìn chữ từng ký tự một và không làm phép tính theo cách của máy tính bỏ túi. Nó nhìn văn bản theo từng mảnh, gọi là token, rồi viết ra câu trả lời bằng cách đoán mảnh tiếp theo. Đếm và tính đòi hỏi theo dõi chính xác từng đơn vị, nhớ số dư, giữ vị trí; đó lại đúng là loại việc mà cơ chế đoán chữ làm kém.
Điều trớ trêu là cùng một chatbot có thể giải thích định lý Pythagoras rất mạch lạc nhưng lại nhân hai số bốn chữ số ra kết quả sai. Hiểu vì sao giúp bạn biết lúc nào giao việc số cho AI được, lúc nào phải cầm máy tính lên tự bấm. Các hệ thống mới có công cụ tính kèm theo đã khá hơn nhiều, và bài cũng nói rõ phần đó.
AI không nhìn thấy chữ cái như bạn
Khi bạn đọc chữ "nghiêng", mắt bạn thấy bảy chữ cái cùng dấu thanh. Mô hình ngôn ngữ thì nhận vào một hoặc vài mảnh, mỗi mảnh được đổi thành một con số định danh trước khi đi vào mạng nơ-ron. Mảnh có thể là cả từ, một nửa từ, hay vài ký tự kèm dấu, tuỳ bộ tách chữ của từng mô hình. Cách tách đó được giải thích kỹ trong bài về token ở danh mục mô hình ngôn ngữ của trang; ở đây chỉ cần một hệ quả: mô hình thường không có sẵn thông tin "từ này gồm những chữ cái nào, mỗi chữ mấy lần".
Ví dụ nổi tiếng nhất là câu hỏi tiếng Anh "từ strawberry có mấy chữ r". Trong một thời gian dài, nhiều chatbot trả lời là hai, trong khi đáp án là ba. Mô hình không đếm, nó đoán một con số nghe hợp lý cho dạng câu hỏi này. Muốn đếm đúng, nó phải tự tách từ ra từng ký tự trong câu trả lời rồi mới đếm, và chỉ những mô hình được huấn luyện để làm bước trung gian đó mới làm ổn định.
Tiếng Việt có thêm một lớp khó: dấu thanh và dấu mũ. Chữ "ươ" có thể được mã hoá theo nhiều cách khác nhau trong máy tính, và một ký tự có dấu có thể bị tách thành nhiều phần. Hỏi AI "câu này có bao nhiêu chữ có dấu hỏi" hay "tìm từ có ba chữ g" là đang hỏi đúng vào chỗ yếu nhất.
Đếm từ, đếm dòng, viết "đúng 100 chữ" cũng lệch
Đếm từ trong một đoạn văn tưởng dễ hơn đếm chữ cái, nhưng vẫn hay sai. Khi bạn dán một đoạn văn và hỏi có bao nhiêu từ, mô hình không có một bộ đếm chạy song song. Nó nhìn toàn bộ đoạn văn cùng lúc rồi đoán ra một con số. Với đoạn ngắn vài chục từ, con số thường gần đúng. Với đoạn vài trăm từ, sai lệch mười, hai mươi phần trăm là bình thường.
Chiều ngược lại cũng vậy. Yêu cầu "viết đoạn văn đúng 150 chữ" hay "bài thơ đúng 14 dòng" thường ra kết quả xấp xỉ. Trong lúc viết, mô hình không có một con trỏ nhắc "đã đến chữ thứ 132". Nó có cảm giác chung về độ dài, giống như người viết văn ước lượng, chứ không đếm. Riêng số dòng của thơ thì thường đúng hơn, vì mỗi dòng có dấu xuống dòng rõ ràng và số lượng nhỏ.
Tiếng Việt có thêm câu hỏi định nghĩa: "chữ" là tiếng hay là từ? "Học sinh" là một từ hai tiếng. Phần mềm soạn thảo đếm theo khoảng trắng, tức là đếm tiếng. Khi bạn và AI không thống nhất định nghĩa, con số lệch nhau là chuyện đương nhiên, chưa kể lỗi đếm. Việc cần đếm chính xác, ví dụ giới hạn chữ của một bài nộp, nên dùng chức năng đếm của phần mềm soạn thảo.
Vì sao phép cộng nhỏ đúng mà phép nhân dài sai
Hỏi "7 nhân 8 bằng mấy", AI trả lời đúng ngay, vì phép tính này xuất hiện vô số lần trong văn bản, giống như bảng cửu chương bạn học thuộc. Hỏi "4.837 nhân 2.906 bằng mấy", câu chuyện khác hẳn: tổ hợp này gần như chắc chắn chưa từng xuất hiện trong dữ liệu. Mô hình phải thật sự tính, và cơ chế đoán chữ không được thiết kế cho việc đó.
Có một chi tiết cơ chế đáng biết. Khi bạn nhân tay, bạn bắt đầu từ chữ số hàng đơn vị bên phải, có nhớ thì ghi nhớ, rồi đi dần sang trái. Mô hình ngôn ngữ thì viết câu trả lời từ trái sang phải, tức là phải viết chữ số đầu tiên của kết quả trước, trong khi chữ số đó lại phụ thuộc vào mọi phép nhớ ở phía sau. Nó buộc phải đoán chữ số hàng cao nhất mà chưa "tính" hàng thấp. Đó là lý do kết quả sai thường đúng ở vài chữ số đầu, đúng độ lớn, nhưng sai ở giữa hoặc cuối.
Thêm vào đó, các con số cũng bị tách thành mảnh theo cách không đều: một số dài có thể bị chia thành cụm ba chữ số, cụm hai chữ số, tuỳ mô hình. Hai số trông giống nhau có thể bị tách khác nhau, khiến việc thẳng hàng các chữ số khó hơn. Nhiều nhóm nghiên cứu đã thử thay đổi cách tách số để mô hình tính tốt hơn, và cải thiện có thật, nhưng không biến mô hình thành máy tính.
Việc với con số: mức rủi ro khi hỏi AI không có công cụ tính
Bảng dưới đây xếp các loại việc có con số theo mức độ dễ sai, áp dụng cho chatbot trả lời thuần bằng mô hình, không dùng công cụ tính kèm theo. Mức rủi ro là đánh giá định tính từ cơ chế, không phải số đo.
| Loại việc | Mức rủi ro | Lý do |
|---|---|---|
| Phép tính nhỏ quen thuộc như bảng cửu chương, cộng số hai chữ số | Thấp | Kết quả đã xuất hiện rất nhiều lần, gần như học thuộc |
| Giải thích cách tính, lập công thức cho một bài toán | Thấp đến vừa | Đây là việc ngôn ngữ, mô hình làm khá tốt |
| Nhân, chia số nhiều chữ số; cộng một cột dài | Cao | Cần theo dõi số nhớ chính xác qua nhiều bước |
| Đếm chữ cái, đếm từ trong đoạn dài | Cao | Mô hình nhìn chữ theo mảnh, không có bộ đếm |
| Tính ngày trong tuần của một ngày bất kỳ, cộng trừ ngày | Cao | Cần quy tắc lịch và đếm chính xác |
| Tính phần trăm tăng giảm, lãi kép nhiều kỳ | Vừa đến cao | Nhiều bước nối tiếp, sai một bước kéo theo sai cả chuỗi |
Điểm rút ra: hãy tách "cách tính" khỏi "con số kết quả". AI thường giúp được ở phần đầu, cho bạn công thức, các bước, lời giải thích. Phần con số cuối cùng nên được tính lại bằng máy tính hoặc bảng tính.
Khi AI có công cụ tính kèm theo
Nhiều chatbot ngày nay có thể chạy mã hoặc gọi máy tính. Thay vì đoán kết quả, mô hình viết một đoạn mã nhỏ, chạy nó, rồi đọc kết quả trả về. Khi đó con số đến từ một chương trình máy tính thật, đáng tin như máy tính bỏ túi, miễn đoạn mã được viết đúng. Tính năng này khác nhau giữa các sản phẩm và các gói, nên bạn cần kiểm phiên bản hiện hành.
Mô hình suy luận viết các bước trung gian. Một số mô hình được huấn luyện để "nghĩ" từng bước trước khi trả lời, tức là viết ra phép tính trung gian giống người làm nháp. Cách này giảm đáng kể lỗi tính và lỗi đếm, vì mô hình có chỗ để ghi số nhớ thay vì giữ trong đầu. Nhưng nháp do mô hình viết vẫn có thể sai một bước.
Bạn cần biết công cụ có thật sự được dùng không. Có lúc giao diện hiển thị rõ đoạn mã đã chạy, có lúc không. Nếu không thấy dấu hiệu nào cho thấy phép tính được chạy bằng công cụ, hãy coi con số là do mô hình đoán.
Công cụ đúng nhưng đầu vào có thể sai. Mô hình có thể chép nhầm một con số từ đề bài vào đoạn mã, hoặc hiểu sai yêu cầu, ví dụ tính lãi đơn khi bạn cần lãi kép. Máy tính tính đúng một phép tính sai. Vì vậy vẫn cần đọc lại xem AI đã đặt bài toán đúng chưa.
Ngày tháng, đơn vị và cách viết số kiểu Việt Nam
Ngoài phép tính thuần, có một nhóm lỗi con số đặc biệt hay gặp với người dùng Việt Nam:
- Dấu phân cách số ngược nhau. Người Việt viết một nghìn rưỡi là 1.500 và một phẩy năm là 1,5; tiếng Anh thì ngược lại. Mô hình học cả hai kiểu, và đôi khi đọc 1.500 thành một phẩy năm, làm kết quả lệch cả nghìn lần.
- Ngày trong tuần. Hỏi một ngày cụ thể rơi vào thứ mấy, AI hay trả lời sai nếu không dùng công cụ, vì phải đếm qua năm nhuận và quy tắc lịch.
- Lịch âm. Quy đổi âm dương lịch theo cách tính của Việt Nam phức tạp hơn nhiều, và có lúc khác với lịch âm của Trung Quốc ở một vài ngày. Đây là việc nên tra lịch in hoặc công cụ chuyên dụng.
- Đơn vị. Đổi mẫu, sào, công đất sang mét vuông, mỗi vùng mỗi khác; AI dễ dùng một quy ước chung cho mọi nơi.
- Phần trăm của phần trăm. "Tăng 10% rồi giảm 10%" không về chỗ cũ; mô hình đôi khi trả lời như về chỗ cũ vì câu chữ nghe cân đối.
Với nhóm lỗi này, kiểm nhanh bằng ước lượng là đủ bắt được phần lớn: kết quả có đúng độ lớn không, có hợp lý với kinh nghiệm không. Một mảnh đất nhỏ sau nhà mà ra con số chục nghìn mét vuông thì chắc chắn có gì đó lệch.
AI lo phần chữ, máy tính lo phần số
Hiểu cơ chế rồi thì cách phân công trở nên rõ ràng. Mô hình ngôn ngữ mạnh ở những việc có bản chất ngôn ngữ quanh con số: đọc một đề bài rối rắm và viết lại cho gọn, chỉ ra cần tính những đại lượng nào, giải thích vì sao lãi kép tăng nhanh hơn lãi đơn, nhắc bạn đừng quên đổi đơn vị. Những việc đó đòi hỏi hiểu ngữ cảnh, và đó là sở trường của nó.
Phần tính ra con số cuối cùng, phần đếm chính xác, phần cộng một cột dài, thì để cho công cụ được xây riêng cho việc đó: máy tính bỏ túi, bảng tính, chức năng đếm chữ của phần mềm soạn thảo. Những công cụ này không bao giờ "đoán" và không bao giờ mệt sau một chuỗi dài. Khi chatbot có tích hợp công cụ tính và cho bạn thấy đã chạy phép tính, phân công này thật ra đã diễn ra bên trong nó.
Một bài tập nhỏ đáng làm một lần: hỏi chatbot một phép nhân hai số bốn chữ số, rồi tự bấm máy tính. Nếu kết quả khớp, hãy thử thêm vài lần với số khác. Bạn sẽ có cảm nhận trực tiếp về giới hạn của công cụ mình đang dùng, đáng tin hơn mọi lời giới thiệu.
Câu hỏi thường gặp
Vì sao AI giải được bài toán khó mà lại sai phép tính đơn giản?
Giải bài toán phần lớn là việc lập luận bằng ngôn ngữ: hiểu đề, chọn phương pháp, sắp các bước. Mô hình làm việc đó khá tốt. Phép tính số lớn lại cần theo dõi chính xác từng chữ số và số nhớ, là việc cơ chế đoán chữ làm kém. Hai năng lực này không đi cùng nhau.
Mô hình mới có còn đếm sai chữ "strawberry" không?
Nhiều mô hình mới đã trả lời đúng câu này, một phần vì câu hỏi trở nên nổi tiếng và một phần vì mô hình được dạy tách từ ra từng ký tự trước khi đếm. Nhưng đổi sang từ khác, nhất là tiếng Việt có dấu, lỗi đếm vẫn có thể xuất hiện.
Dùng AI làm bài tập toán cho con có an toàn không?
AI giúp được ở phần giải thích cách làm, nhưng con số cuối có thể sai, và nếu con chép đáp án thì mất phần học. Cách hợp lý là để AI gợi ý hướng, con tự tính, rồi đối chiếu. Đừng coi đáp án của chatbot là đáp án đúng chỉ vì nó trình bày đẹp.
Vì sao AI tính tiền lãi vay cho mình ra số khác ngân hàng?
Có thể do AI tính sai, nhưng cũng rất thường do hai bên dùng cách tính khác nhau: lãi trên dư nợ gốc hay dư nợ giảm dần, kỳ trả theo tháng hay theo ngày, cách làm tròn. Hỏi AI cách tính thì được, còn con số chính thức là con số trong hợp đồng và bảng lịch trả nợ.
Dán bảng số liệu vào chatbot rồi nhờ tính tổng có đúng không?
Nếu chatbot chạy công cụ tính thật trên bảng của bạn thì thường đúng, miễn nó đọc đúng cột. Nếu nó chỉ đọc bằng mắt rồi đoán tổng thì rất dễ lệch, nhất là bảng dài. Tốt nhất vẫn là tính tổng bằng bảng tính và dùng AI để giải thích ý nghĩa con số.
Có phải AI yếu toán nghĩa là AI không thông minh?
Không nên suy như vậy. Máy tính bỏ túi tính giỏi hơn mọi người mà không ai gọi là thông minh. Năng lực ngôn ngữ và năng lực tính toán chính xác là hai thứ khác nhau, và mô hình ngôn ngữ được xây cho thứ nhất. Khi được nối với công cụ tính, khoảng trống này được bù khá tốt.