Khi xây dựng ứng dụng Machine Learning hoặc LLM, nhiều nhóm tập trung vào mô hình, prompt, dữ liệu huấn luyện và giao diện người dùng. Nhưng đến lúc hệ thống chạy thật, câu hỏi khó thường là: vì sao mô hình trả lời như vậy, lỗi xảy ra từ đâu, và bản sửa mới có thực sự tốt hơn không? Nếu không có hệ thống ghi log phù hợp, việc trả lời những câu hỏi này rất dễ biến thành đoán mò. Ghi log trong ứng dụng AI không chỉ là lưu lỗi kỹ thuật. Nó là cách ghi lại bối cảnh đủ cần thiết để phân tích hành vi của mô hình sau này. Một log hữu ích nên có gì? Tùy bài toán, bạn có thể không cần lưu mọi thứ. Nhưng với nhiều hệ thống AI thực tế, nên cân nhắc các nhóm thông tin sau: - Thông tin đầu vào: câu hỏi người dùng, dữ liệu đã được tiền xử lý, ngôn ngữ, định dạng, độ dài văn bản. - Phiên bản hệ thống: phiên bản mô hình, prompt, pipeline xử lý, bộ truy xuất tài liệu nếu dùng RAG, cấu hình threshold. - Kết quả đầu ra: câu trả lời, nhãn dự đoán, điểm tin cậy, tài liệu được dùng để sinh câu trả lời. - Phản hồi sau đó: người dùng có bấm hài lòng không, có sửa lại câu trả lời không, nhân viên kiểm duyệt đánh giá thế nào. - Thông tin lỗi: timeout, lỗi gọi API, dữ liệu thiếu trường, kết quả rỗng, câu trả lời bị chặn bởi bộ lọc an toàn. Ví dụ thực tế: một chatbot nội bộ trả lời về quy trình nhân sự. Người dùng hỏi “nghỉ phép cưới được mấy ngày?”. Chatbot trả lời sai. Nếu chỉ lưu câu hỏi và câu trả lời, bạn biết có lỗi nhưng chưa biết lỗi nằm ở đâu. Nếu log thêm tài liệu được truy xuất, phiên bản prompt và phiên bản kho tri thức, bạn có thể phát hiện vấn đề cụ thể hơn: tài liệu đúng không được lấy ra, tài liệu cũ vẫn còn trong index, hay prompt yêu cầu mô hình trả lời quá tự tin dù thiếu căn cứ. Một số nguyên tắc nên áp dụng 1. Ghi log theo phiên bản Mỗi lần đổi prompt, mô hình, embedding model, bộ chia tài liệu hoặc logic hậu xử lý, hãy gắn version rõ ràng. Khi chất lượng thay đổi, bạn có thể so sánh các nhóm request trước và sau thay vì tranh luận cảm tính. 2. Không lưu dữ liệu nhạy cảm nếu không cần Log rất hữu ích nhưng cũng có rủi ro. Với dữ liệu cá nhân, thông tin tài chính, hồ sơ sức khỏe hoặc dữ liệu khách hàng, cần che, băm, rút gọn hoặc loại bỏ trước khi lưu. Đừng biến log thành nơi sao chép toàn bộ dữ liệu nhạy cảm. 3. Thiết kế log để truy vấn được Nếu tất cả chỉ nằm trong một chuỗi văn bản dài, việc phân tích sẽ khó. Nên lưu các trường có cấu trúc như model_version, prompt_version, latency_ms, retrieved_doc_ids, confidence_score, error_type. Khi đó bạn có thể lọc nhanh: phiên bản nào có nhiều lỗi, loại câu hỏi nào hay thất bại, độ trễ tăng từ lúc nào. 4. Lưu cả trường hợp thành công Nhiều nhóm chỉ lưu lỗi. Nhưng để cải tiến mô hình, bạn cần biết cả mẫu đúng và mẫu sai. Các trường hợp thành công giúp tạo bộ kiểm thử, hiểu mẫu đầu vào phổ biến và phát hiện khi bản cập nhật mới làm hỏng hành vi vốn đang tốt. 5. Biến log thành dữ liệu học tập có kiểm soát Log có thể dùng để tạo tập đánh giá, chọn mẫu cần gán nhãn, phát hiện câu hỏi mới và cải thiện prompt. Tuy nhiên, không nên tự động đưa mọi log vào huấn luyện. Cần làm sạch, loại bỏ dữ liệu nhạy cảm, kiểm tra chất lượng nhãn và tránh học lại các câu trả lời sai. Một quy trình đơn giản có thể bắt đầu như sau: đầu tiên, ghi lại input, output, version và lỗi kỹ thuật. Sau đó thêm phản hồi người dùng hoặc đánh giá thủ công cho một phần mẫu. Mỗi tuần, lấy ra các nhóm lỗi phổ biến, phân loại nguyên nhân: sai do dữ liệu, sai do truy xuất, sai do prompt, sai do mô hình hoặc sai do yêu cầu người dùng mơ hồ. Từ đó mới quyết định nên sửa ở đâu. Điểm quan trọng là log không phải phần phụ trợ nhàm chán. Với ứng dụng AI, log chính là “hộp đen” giúp đội phát triển hiểu mô hình đang hoạt động thế nào trong đời thực. Một hệ thống ghi log tốt sẽ giúp debug nhanh hơn, đánh giá khách quan hơn và cải tiến mô hình ít rủi ro hơn.