Bước AI có một điểm khác hẳn mọi bước còn lại trong luồng: cùng một đầu vào, nó không bảo đảm trả về đúng cùng một hình dạng kết quả. Chín mươi chín lượt trả về một từ gọn gàng, lượt thứ một trăm trả về "Nhãn phù hợp là: khiếu nại." Bước rẽ nhánh phía sau không khớp được gì, và tuỳ cách nền tảng xử lý, thư đó hoặc bị bỏ rơi im lặng, hoặc làm cả luồng dừng.
Bài này nói riêng về lỗi đầu ra lệch khuôn của bước AI: những kiểu lệch hay gặp, đặt bước kiểm ở đâu, chuẩn hoá thế nào cho an toàn, khi nào gọi lại, khi nào đẩy sang người xem, và cách sửa từ gốc để lỗi thưa dần. Các lỗi vận hành chung của luồng như chạy trùng, vòng lặp, kết nối hết hạn có bài riêng ở danh mục vận hành và sửa lỗi của trang.
Những kiểu lệch khuôn hay gặp
Ghi lại từ nhật ký của nhiều luồng, các kiểu lệch dưới đây chiếm phần lớn lỗi đầu ra. Biết trước chúng giúp bạn viết bước kiểm đúng chỗ.
- Thêm lời dẫn hoặc lời kết: "Đây là kết quả:", "Hy vọng giúp được bạn."
- Sai chữ hoa chữ thường hoặc thêm dấu: "Khieu-nai", "khiếu nại" thay vì "khieu-nai".
- Thừa dấu câu, dấu ngoặc kép, khoảng trắng hoặc dòng trống ở đầu và cuối.
- Thiếu trường: khuôn bảy trường nhưng chỉ trả sáu, thường là trường không có thông tin.
- Thêm trường không được yêu cầu, hoặc đổi tên trường theo ý mình.
- Bọc kết quả trong ký hiệu đánh dấu khối mã khi đầu ra là dạng dữ liệu có cấu trúc.
- Trả về nhiều nhãn cùng lúc khi chỉ được chọn một.
- Từ chối hoặc trả lời lạc đề khi đầu vào nhạy cảm hoặc kỳ lạ.
- Số viết theo kiểu khác: có dấu chấm ngăn hàng nghìn, có đơn vị, viết bằng chữ.
Kiểu lỗi đầu danh sách rất dễ xử lý bằng quy tắc; kiểu lỗi cuối danh sách (từ chối, lạc đề, số sai kiểu) cần nhánh riêng. Đừng gộp chung mọi lỗi vào một cách xử lý.
Đặt bước kiểm ngay sau bước AI, không đặt ở cuối luồng
Nhiều luồng chỉ phát hiện lỗi ở bước cuối, khi ghi vào bảng thất bại hoặc tin nhắn gửi đi có nội dung lạ. Lúc đó đã có một chuỗi bước chạy trên dữ liệu sai, có khi đã gửi thông báo cho người không liên quan. Bước kiểm phải đứng ngay sau bước AI, trước bất kỳ bước nào dùng kết quả của nó.
Bước kiểm trả lời một câu hỏi duy nhất: kết quả này có đúng khuôn không? Với bước phân loại, đúng khuôn nghĩa là kết quả nằm trong danh sách nhãn cho phép. Với bước trích thông tin, đúng khuôn nghĩa là có đủ các trường, mỗi trường đúng kiểu (ngày là ngày hợp lệ, số là số, mã số thuế toàn chữ số). Với bước tóm tắt theo khuôn dòng, đúng khuôn nghĩa là có đủ các nhãn dòng theo thứ tự.
Trên nền tảng kéo thả, bước kiểm thường là một khối lọc hoặc khối điều kiện với vài quy tắc so khớp. Không cần viết mã. Nếu nền tảng có tính năng đầu ra có cấu trúc, cho phép khai trước danh sách trường và kiểu, hãy bật nó; khi đó phần lớn lỗi khuôn biến mất từ gốc, nhưng vẫn giữ bước kiểm vì kiểu dữ liệu đúng chưa có nghĩa là giá trị hợp lý.
Chuẩn hoá nhẹ: sửa được gì, không được sửa gì
Giữa "đúng khuôn" và "sai khuôn" có một vùng xám: kết quả gần đúng, chỉ lệch hình thức. Một bước chuẩn hoá nhẹ trước bước kiểm giúp cứu những lượt này mà không phải gọi lại AI. Nguyên tắc là chỉ sửa hình thức, không bao giờ sửa nội dung.
| Lệch kiểu | Chuẩn hoá được | Không được tự sửa |
|---|---|---|
| Chữ hoa, dấu tiếng Việt trong tên nhãn | Đổi về chữ thường, bỏ dấu, so lại với danh sách | Đoán nhãn gần giống khi không khớp nhãn nào |
| Khoảng trắng, dấu chấm, ngoặc kép thừa | Cắt bỏ ở đầu và cuối | |
| Lời dẫn trước kết quả | Nếu sau dấu hai chấm cuối cùng là một nhãn hợp lệ thì lấy phần đó | Lấy bừa từ đầu tiên của câu |
| Số có dấu phân cách hoặc đơn vị | Bỏ dấu chấm ngăn hàng nghìn và chữ đồng khi định dạng đã quy ước | Đổi số viết bằng chữ thành số |
| Ngày viết kiểu khác | Đổi giữa các định dạng rõ ràng có tên tháng | Đoán ngày khi chỉ có hai con số dễ đảo |
Ô trống ở dòng thứ hai là cố ý: cắt khoảng trắng và dấu thừa không có rủi ro gì. Các ô "không được tự sửa" đều là chỗ mà sửa tự động có thể biến một kết quả sai rõ ràng thành một kết quả sai trông như đúng. Thà để lượt đó đi vào nhánh người xem.
Gọi lại có giới hạn, rồi chuyển sang người xem
Sau chuẩn hoá mà vẫn sai khuôn, luồng có hai lựa chọn: gọi lại bước AI hoặc chuyển sang người. Trình tự hợp lý như sau.
- Gọi lại một lần với câu lệnh nhắc thêm: "Lần trước kết quả không đúng khuôn. Chỉ trả về đúng khuôn đã quy định, không thêm gì." Nhiều lỗi ngẫu nhiên biến mất ở lần gọi thứ hai.
- Đặt giới hạn cứng: tối đa một hoặc hai lần gọi lại cho mỗi lượt. Không bao giờ để vòng gọi lại không có điểm dừng; một đầu vào kỳ quặc có thể khiến AI sai mãi và đốt lượt chạy.
- Vẫn sai thì gắn trạng thái "cần người xem", ghi kèm đầu vào đã che và kết quả thô của AI vào bảng nhật ký.
- Gửi một thông báo ngắn vào nhóm chat phụ trách, gom theo giờ nếu số lượt nhiều, để không ai bị dội tin.
- Người xem xử lý tay lượt đó, đồng thời ghi lại kiểu lỗi vào một cột riêng để tổng hợp cuối tuần.
Với lượt AI từ chối hoặc trả lời lạc đề, bỏ qua bước gọi lại và chuyển thẳng sang người xem. Từ chối thường do bản thân đầu vào (nội dung nhạy cảm, nội dung bạo lực, đầu vào quá dài), gọi lại cũng ra kết quả tương tự.
Nhật ký kết quả thô: thứ cứu bạn khi dò lỗi
Lưu nguyên văn kết quả AI trả về, trước chuẩn hoá. Nếu chỉ lưu kết quả đã chuẩn hoá, bạn không bao giờ thấy được AI thật ra đã viết gì, và không biết bước chuẩn hoá đang cứu bao nhiêu lượt. Một cột kết quả thô cạnh cột kết quả cuối là đủ.
Ghi số phiên bản câu lệnh và tên mô hình. Khi tỉ lệ lỗi đột nhiên tăng, câu hỏi đầu tiên là có gì vừa thay đổi. Cột phiên bản trả lời ngay câu đó: hoặc ai đó vừa sửa câu lệnh, hoặc nhà cung cấp vừa chuyển sang phiên bản mô hình mới.
Ghi lượt này đi nhánh nào. Đúng khuôn ngay, đúng khuôn sau chuẩn hoá, đúng sau gọi lại, hay rơi vào người xem. Bốn giá trị này cho bạn bức tranh sức khoẻ của bước AI mà không cần đọc từng dòng.
Không lưu dữ liệu khách nguyên văn. Đầu vào trong nhật ký chỉ nên là bản đã che, hoặc chỉ là mã tra về bản gốc nằm trong hệ thống của bạn. Nhật ký thường được nhiều người mở hơn hộp thư gốc, và tồn tại lâu hơn.
Đặt hạn lưu. Nhật ký vài tháng gần nhất là đủ để dò lỗi. Xoá định kỳ phần cũ hơn giúp bảng nhẹ và giảm lượng dữ liệu phải bảo vệ.
Giảm lỗi tận gốc thay vì vá mãi
Cuối mỗi tuần, đếm số lượt rơi vào nhánh người xem và chia theo kiểu lỗi. Một kiểu lỗi xuất hiện đều đặn là dấu hiệu câu lệnh hoặc khuôn đầu ra có vấn đề, không phải AI "hên xui". Nếu AI hay thiếu một trường, có thể câu lệnh chưa nói rõ trường đó ghi gì khi không có thông tin. Nếu AI hay đổi tên trường, có thể tên trường quá giống ngôn ngữ tự nhiên, nên đổi sang tên không dấu ngắn gọn.
Những cách sửa tận gốc hiệu quả nhất, theo thứ tự nên thử: bật đầu ra có cấu trúc nếu nền tảng hỗ trợ; đặt độ ngẫu nhiên của bước AI ở mức thấp; thêm một ví dụ đúng cho đúng kiểu lỗi đang gặp; rút gọn khuôn đầu ra (bớt trường không thật cần); tách một bước làm hai việc thành hai bước. Mỗi lần chỉ thử một thay đổi và đo lại sau vài ngày.
Đừng tối ưu tới con số không. Một luồng mà vài phần trăm số lượt rơi vào người xem vẫn là một luồng tốt, miễn là những lượt đó được xử lý và không bị bỏ rơi im lặng. Ngược lại, một luồng không bao giờ có lượt nào vào người xem có khi là luồng mà bước kiểm đã bị tắt hoặc đặt quá lỏng.
Ví dụ giả định: luồng ghi phản hồi khách của khách sạn nhỏ
Ví dụ giả định: một khách sạn mười hai phòng ở Quảng Ninh có luồng đọc phiếu góp ý sau khi khách trả phòng, AI trích ba trường: bộ phận được nhắc tới, mức độ hài lòng theo ba mức, và một câu trích ý chính. Tuần đầu chạy, khoảng một phần mười số lượt không ghi được vào bảng. Nhật ký cho thấy hai kiểu lỗi chính: AI viết mức hài lòng bằng câu dài thay vì một trong ba từ quy định, và khi khách góp ý nhiều bộ phận thì AI trả nhiều giá trị trong một ô.
Người phụ trách thêm bước chuẩn hoá đổi chữ hoa về chữ thường và bỏ dấu cho trường mức độ, sửa câu lệnh để trường bộ phận chỉ nhận một giá trị chính và thêm trường bộ phận phụ, rồi thêm một ví dụ cho phiếu góp ý nhiều bộ phận. Lượt gọi lại được giới hạn một lần. Sau hai tuần, số lượt rơi vào người xem còn rất ít và đều là phiếu bằng tiếng nước ngoài hiếm gặp, được lễ tân đọc tay. Cột kết quả thô trong nhật ký cho thấy bước chuẩn hoá vẫn âm thầm cứu một phần lượt mỗi ngày, nên khách sạn giữ nó lại.
Câu hỏi thường gặp
Vì sao AI lúc trả đúng khuôn, lúc lại trả sai?
Mô hình ngôn ngữ sinh kết quả có yếu tố ngẫu nhiên, và đầu vào mỗi lượt mỗi khác. Một thư dài hay kỳ lạ có thể khiến nó thêm lời giải thích hoặc thiếu trường. Đặt độ ngẫu nhiên thấp và dùng đầu ra có cấu trúc giúp giảm, nhưng vẫn cần bước kiểm.
Bước kiểm đầu ra nên đặt ở đâu trong luồng?
Ngay sau bước AI, trước mọi bước dùng kết quả của nó. Đặt ở cuối luồng thì khi phát hiện lỗi, các bước giữa đã chạy trên dữ liệu sai, có khi đã gửi thông báo hay ghi vào bảng.
Có nên tự động sửa kết quả gần đúng của AI không?
Chỉ sửa hình thức như chữ hoa, khoảng trắng, dấu thừa, lời dẫn trước kết quả. Không đoán nhãn gần giống, không đổi số viết bằng chữ, không đoán ngày mơ hồ. Những lượt đó nên chuyển sang người xem.
Gọi lại bước AI bao nhiêu lần là đủ?
Một, tối đa hai lần cho mỗi lượt, kèm câu nhắc chỉ trả đúng khuôn. Phải có giới hạn cứng để tránh vòng gọi lại không dừng làm tốn lượt chạy. Lượt AI từ chối hoặc lạc đề thì chuyển thẳng sang người, không gọi lại.
Tỉ lệ lỗi bao nhiêu thì chấp nhận được?
Không có con số chung. Điều quan trọng là mọi lượt lỗi đều được bắt và chuyển cho người xử lý, không bị bỏ rơi im lặng. Theo dõi theo tuần, nếu một kiểu lỗi lặp đều thì sửa câu lệnh hoặc khuôn đầu ra cho kiểu đó.
Đầu ra có cấu trúc là gì và có cần bật không?
Đó là tính năng cho phép khai trước danh sách trường và kiểu dữ liệu, buộc mô hình trả kết quả theo đúng khuôn. Nếu nền tảng hoặc dịch vụ AI bạn dùng có tính năng này thì nên bật, vì nó loại phần lớn lỗi khuôn từ gốc. Kiểm tài liệu phiên bản hiện hành để biết cách bật.