Để câu trả lời của AI về pháp luật kiểm được, mỗi điều, khoản trong kho cần một mã định danh ổn định gắn với số hiệu văn bản và vị trí cấu trúc, mỗi câu trả lời phải mang theo mã của các đơn vị nó dựa vào, kèm phiên bản và ngày tham chiếu. Thiếu một trong ba thứ này, phần "nguồn" dưới câu trả lời chỉ là trang trí.
Phần lớn hướng dẫn về trích dẫn cho người dùng AI tập trung vào việc người dùng tự kiểm. Bài này đứng ở phía người làm dữ liệu: thiết kế mã sao cho bền, hiển thị trích dẫn sao cho người đọc lần lại nhanh, và kiểm tự động để hệ thống không đưa ra trích dẫn không có trong kho.
Trích dẫn tốt trong sản phẩm pháp luật trông như thế nào
Người làm luật quen một cách trích dẫn rất cụ thể: tên loại văn bản, số hiệu, tên văn bản, rồi điều, khoản, điểm. Một trích dẫn đầy đủ cho phép bất cứ ai mở văn bản gốc và tìm đúng câu chữ trong vài giây. Sản phẩm dữ liệu nên đạt ít nhất mức này, vì người dùng chuyên nghiệp sẽ đánh giá độ tin cậy của cả hệ thống qua phần trích dẫn.
Với người dùng phổ thông, trích dẫn còn có vai trò khác: nó cho họ biết câu trả lời dựa vào quy định chung hay chỉ là suy luận của hệ thống. Một câu trả lời không có trích dẫn nào nên được trình bày khác hẳn, ví dụ như giải thích chung kèm lời nhắc hỏi người có chuyên môn.
Trích dẫn tốt có bốn đặc điểm. Chính xác tới đơn vị nhỏ nhất được dùng (khoản, điểm), không chỉ tới văn bản. Có phiên bản hoặc ngày tham chiếu, vì cùng một khoản có thể có nhiều nội dung theo thời gian. Có trích nguyên văn đoạn liên quan để người đọc so ngay với lời diễn giải. Và chỉ trỏ tới thứ thật sự có trong kho, không bao giờ sinh ra từ trí nhớ của mô hình.
Thiết kế mã định danh: năm nguyên tắc
Dựa trên số hiệu văn bản, không dựa trên số thứ tự trong kho. Số hiệu văn bản như "03/2017/NQ-HĐTP" là định danh công khai, ai cũng tra được. Mã nội bộ kiểu số tự tăng chỉ có nghĩa trong cơ sở dữ liệu của bạn và đổi khi nhập lại dữ liệu.
Chuẩn hoá cách viết số hiệu. Cùng một văn bản có thể được ghi với dấu gạch khác nhau, chữ có dấu hay không dấu, có khoảng trắng hay không. Quy về một dạng chuẩn duy nhất cho phần mã, giữ dạng hiển thị đẹp ở trường riêng.
Thêm vị trí cấu trúc theo bậc. Nối số hiệu với điều, khoản, điểm theo một khuôn cố định để mã của điểm b khoản 2 Điều 7 luôn được sinh ra giống nhau, dù ai nhập.
Tách mã đơn vị với mã phiên bản. Mã đơn vị không đổi qua thời gian; mã phiên bản thêm phần ngày bắt đầu hiệu lực. Nhờ vậy, một câu trả lời cũ vẫn trỏ được về đúng nội dung lúc đó, trong khi liên kết chung vẫn dẫn về phiên bản hiện hành.
Xử lý văn bản không có số hiệu. Một số luật, bộ luật được nhắc theo tên và năm nhiều hơn số hiệu; một số văn bản cũ có cách đánh số khác. Lập bảng tra tên – số hiệu do người duyệt, và với văn bản thật sự không có số hiệu, dùng tổ hợp cơ quan, loại văn bản và ngày ban hành.
Các lớp thông tin của một trích dẫn trong câu trả lời
Không phải lớp nào cũng cần hiện ra cho mọi người dùng, nhưng hệ thống nên lưu đủ cả bốn lớp:
| Lớp | Nội dung | Hiện cho ai | Mục đích |
|---|---|---|---|
| Nhãn đọc được | Ví dụ dạng "khoản 2 Điều 7 của [tên văn bản]" | Mọi người dùng | Biết câu trả lời dựa vào đâu |
| Trích nguyên văn | Đoạn chữ gốc của đơn vị được dùng | Mọi người dùng, có thể thu gọn | So lời diễn giải với câu chữ gốc |
| Phiên bản và ngày tham chiếu | Nội dung áp dụng từ ngày nào, câu trả lời tính theo ngày nào | Người dùng chuyên nghiệp, hoặc khi có thay đổi gần đây | Tránh nhầm nội dung cũ, mới |
| Mã nội bộ và nguồn tệp gốc | Mã đơn vị, mã phiên bản, tệp gốc và ngày tải | Đội vận hành | Truy vết khi có khiếu nại hoặc lỗi |
Lớp trích nguyên văn thường bị bỏ vì làm câu trả lời dài. Nên giữ nó ở dạng thu gọn, bấm mở được. Đây là cách nhanh nhất để người đọc tự phát hiện khi lời diễn giải của hệ thống đi xa khỏi câu chữ.
Kiểm trích dẫn tự động trước khi câu trả lời tới tay người dùng
Mô hình ngôn ngữ có thể viết ra một trích dẫn trông rất thật mà không có trong kho. Lớp kiểm sau đây chạy trên mỗi câu trả lời, không cần gọi thêm mô hình:
- Bóc mọi chuỗi có dạng trích dẫn trong câu trả lời: số hiệu văn bản, cụm "Điều", "khoản", "điểm", tên luật kèm năm.
- Quy từng trích dẫn về mã đơn vị theo khuôn chuẩn của kho.
- Kiểm mỗi mã có tồn tại trong kho không; nếu không tồn tại, đánh dấu là trích dẫn không xác minh được.
- Kiểm mã đó có nằm trong tập đơn vị đã được đưa vào ngữ cảnh cho câu trả lời này không; nằm ngoài tập là dấu hiệu mô hình lấy từ trí nhớ.
- Kiểm phiên bản: đơn vị được trích có đang áp dụng ở ngày tham chiếu không.
- Nếu có trích dẫn không đạt, chặn câu trả lời và sinh lại, hoặc gỡ trích dẫn đó và thêm lời nhắc rõ ràng; ghi lại sự cố để phân tích.
Lớp kiểm này không bảo đảm nội dung diễn giải đúng, nhưng chặn được loại lỗi gây mất uy tín nhất: dẫn một điều luật không tồn tại hoặc đã hết hiệu lực.
Hiển thị trích dẫn cho người dùng phổ thông
Người dùng phổ thông không quen đọc "điểm b khoản 2 Điều 7". Đừng vì thế mà bỏ trích dẫn; hãy thêm một dòng giải thích ngắn bằng lời thường bên cạnh, ví dụ "quy định về thời hạn báo trước trong luật lao động", và để nhãn trích dẫn chuẩn ngay sau. Họ có thể không đọc nhãn, nhưng khi mang câu trả lời đi hỏi người làm nghề, nhãn ấy giúp cuộc trao đổi nhanh hơn nhiều.
Tránh trình bày danh sách nguồn dài ở cuối câu trả lời mà không nối với từng ý. Người đọc không biết ý nào dựa vào nguồn nào. Cách tốt hơn là gắn trích dẫn ngay sau câu hoặc đoạn dùng nó.
Nếu sản phẩm cho phép bấm vào trích dẫn để mở văn bản, hãy mở đúng vị trí điều khoản và đánh dấu đoạn liên quan, kèm ghi chú nếu đó là phiên bản cũ. Mở văn bản ở trang đầu và để người dùng tự cuộn tìm là bỏ phí công sức đã bỏ ra cho mã định danh.
Khi một đơn vị được trích vừa có thay đổi gần đây, ví dụ trong vài tháng trước ngày hỏi, nên hiện thêm một dòng nhắc rằng quy định này mới được sửa và nêu ngày áp dụng của nội dung mới. Người dùng nhờ vậy hiểu vì sao điều họ nhớ từ trước lại khác câu trả lời, thay vì nghĩ rằng hệ thống sai.
Lỗi trích dẫn hay gặp trong các sản phẩm đang chạy
Những lỗi dưới đây thường không lộ ra trong buổi trình diễn mà chỉ thấy khi có người dùng thật soi kỹ:
- Trích đúng văn bản nhưng sai số điều, do kho đánh số lại khi bóc dữ liệu hoặc nhầm giữa điều của văn bản sửa đổi và điều của văn bản gốc.
- Trích phiên bản cũ của điều đã sửa, vì mã không có phần phiên bản và hệ thống lấy bản đầu tiên tìm thấy.
- Trích văn bản hướng dẫn đã hết căn cứ mà không cảnh báo.
- Trích tên luật kèm năm nhưng năm đó là năm ban hành văn bản khác cùng tên, do bảng tra tên – số hiệu thiếu.
- Trích một đoạn trong câu trả lời nhưng nội dung diễn giải lại lấy từ đoạn khác, vì nhiều đoạn được đưa vào ngữ cảnh cùng lúc và mô hình trộn ý.
- Trích dẫn trỏ về trang tổng hợp tư nhân thay vì văn bản gốc, khiến người dùng tưởng đó là nguồn chính thức.
Mỗi lỗi này nên có ít nhất một câu hỏi tương ứng trong bộ đánh giá, để khi sửa xong bạn biết nó không quay lại sau lần cập nhật kế tiếp.
Khi người dùng nhắc tới văn bản mà kho chưa có
Người dùng chuyên nghiệp thường hỏi kèm số hiệu văn bản: "theo nghị định số… thì…". Nếu văn bản đó nằm ngoài phạm vi kho, hệ thống đứng trước cám dỗ nguy hiểm nhất: mô hình có thể đã thấy văn bản trong dữ liệu huấn luyện và trả lời như thể có trong kho. Câu trả lời kiểu này không trích dẫn được về đơn vị nào, và nội dung có thể đã cũ hoặc sai.
Cách xử lý tốt là nhận diện số hiệu trong câu hỏi trước khi truy xuất. Nếu số hiệu không có trong kho, hệ thống nói thẳng rằng văn bản này chưa có trong dữ liệu, gợi ý người dùng đối chiếu tại nguồn chính thức, và nếu được thì trả lời phần liên quan dựa trên các văn bản khác đang có, kèm trích dẫn của chúng. Đồng thời ghi lại số hiệu đó vào danh sách yêu cầu bổ sung.
Danh sách yêu cầu bổ sung là nguồn tín hiệu quý cho đội dữ liệu. Văn bản nào được hỏi nhiều mà kho chưa có thì nên ưu tiên đưa vào. Văn bản nào được hỏi mà thực ra không tồn tại, do người dùng nhớ sai số hiệu, thì có thể thêm vào bảng tra để lần sau hệ thống gợi ý số hiệu đúng.
Một trường hợp gần giống: người dùng dán nguyên văn một đoạn quy định và hỏi về nó. Đừng mặc nhiên coi đoạn dán là nguồn đáng tin; đối chiếu với kho, và nếu đoạn dán khác bản trong kho, nói rõ chỗ khác để người dùng biết họ có thể đang cầm bản chép sai hoặc bản đã hết hiệu lực.
Câu hỏi thường gặp
Có nên để mô hình tự viết trích dẫn hay hệ thống gắn trích dẫn sau?
Cách an toàn hơn là hệ thống gắn trích dẫn từ các đơn vị đã được truy xuất, còn mô hình chỉ được tham chiếu tới các đơn vị đó bằng mã. Nếu để mô hình tự viết trích dẫn dạng chữ, bắt buộc phải có lớp kiểm đối chiếu với kho trước khi hiển thị.
Văn bản có nhiều bản dịch hoặc bản chép, trích dẫn về bản nào?
Luôn trích dẫn về văn bản tiếng Việt gốc từ nguồn chính thức. Bản dịch, nếu dùng, nên ghi rõ là bản dịch tham khảo và kèm trích dẫn về bản gốc. Bản chép của trang tổng hợp không nên là đích của trích dẫn.
Câu trả lời dựa trên nhiều điều thì trích dẫn thế nào?
Gắn trích dẫn ngay sau từng ý dùng điều tương ứng, không gom tất cả xuống cuối. Nếu một ý là kết luận rút ra từ việc kết hợp nhiều điều, nêu rõ đó là cách hiểu kết hợp và liệt kê các điều được dùng.
Mã định danh có nên công khai cho người dùng không?
Mã nội bộ không cần hiện cho người dùng phổ thông, nhưng nên có trong dữ liệu xuất ra hoặc giao diện cho người dùng chuyên nghiệp, đội hỗ trợ. Nhờ đó khi có phản ánh, mọi người nói về cùng một đơn vị, cùng một phiên bản.
Làm sao biết lớp kiểm trích dẫn đang hoạt động tốt?
Ghi lại số câu trả lời bị chặn hoặc bị gỡ trích dẫn theo thời gian và xem mẫu các trường hợp đó. Thêm vào bộ đánh giá những câu hỏi cố ý dẫn tới văn bản không có trong kho; hệ thống tốt phải từ chối trích hoặc nói rõ không có dữ liệu.
Trích dẫn án lệ, bản án có cần cách làm riêng không?
Có. Án lệ có số hiệu riêng, còn bản án có số bản án, toà án và ngày tuyên. Nên dùng khuôn mã riêng cho từng loại và ghi rõ loại nguồn trong nhãn, để người đọc không nhầm một bản án cụ thể với quy định áp dụng chung.