
Ở nhiều công ty, phòng kế toán vẫn mất phần lớn thời gian cho những việc lặp đi lặp lại: gõ lại hóa đơn, dò từng dòng chứng từ, rồi lập báo cáo. Không lâu trước đây, chúng tôi có dịp trò chuyện với một kế toán trưởng của chuỗi bán lẻ quy mô nhỏ. Ông kể rằng riêng việc đối chiếu hóa đơn cuối tháng đã ngốn gần cả tuần của cả phòng, và kết quả đôi khi chỉ là tìm ra vài dòng lệch vì một con số bị gõ nhầm. Nỗi đau kiểu này chính là lý do ứng dụng AI cho phòng kế toán được nhắc đến ngày càng nhiều. Tuy nhiên, phía sau giao diện gọn gàng là cả một hệ thống mà lập trình viên phải tự tay xây dựng. Trong bài này, chúng tôi sẽ cùng bạn đi qua những nguyên lý cốt lõi để bạn có cái nhìn tổng quan trước khi bắt tay vào một dự án thực tế.
Bài toán kỹ thuật bắt đầu từ chính dữ liệu kế toán

Trước khi nghĩ đến thuật toán hay mô hình, bạn cần hiểu dữ liệu kế toán trong thực tế trông như thế nào. Nó không gọn gàng như bộ dữ liệu mẫu trong sách. Mỗi doanh nghiệp là một mớ hỗn độn riêng, với đủ kiểu định dạng khác nhau. Bạn sẽ gặp hóa đơn là ảnh chụp bằng điện thoại, file PDF xuất từ phần mềm, hóa đơn điện tử dạng XML, hay những tờ giấy scan mờ từ chiếc máy fax đã cũ.
Thách thức đầu tiên chính là dữ liệu đến từ nhiều nguồn khác nhau. Mỗi loại cần một cách đọc riêng. Chỉ cần một định dạng lạ xuất hiện, cả pipeline có thể vấp ngay từ bước đầu tiên, và lúc đó bạn sẽ phải quay lại sửa từng chỗ một.
Thách thức thứ hai là độ chính xác và khả năng truy vết. Một con số sai có thể kéo theo sai lệch sổ sách và cả rắc rối pháp lý. Vì vậy, hệ thống phải ghi lại mọi giao dịch: ai đã duyệt, máy đề xuất điều gì, và thay đổi xảy ra vào lúc nào. Chuỗi lịch sử đó không được phép có khoảng trống.
Hiểu rõ hai điểm này ngay từ đầu giúp bạn nhận ra đây là bài toán đòi hỏi sự cẩn trọng. Tốc độ đương nhiên quan trọng, nhưng độ tin cậy và khả năng truy vết mới là yếu tố quyết định nghiệp vụ có chấp nhận hệ thống hay không.
Kiến trúc xử lý chứng từ thường gặp

Khi đã nắm bài toán, bước tiếp theo là hình dung dòng chảy dữ liệu. Một chứng từ, từ lúc được tải lên cho đến khi trở thành bút toán, thường đi qua nhiều lớp xử lý nối tiếp nhau. Mỗi lớp giải quyết một việc cụ thể, và việc tách bạch này giúp bạn dễ kiểm soát hơn nhiều.
Lớp đầu tiên thường là pipeline đọc và chuẩn hóa. Hệ thống nhận ảnh hoặc file, dùng OCR để chuyển hình ảnh thành văn bản, rồi trích xuất các trường quan trọng như tên nhà cung cấp, ngày tháng, mã số thuế và tổng tiền. Điểm cốt lõi là dù đầu vào trông thế nào, kết quả đều phải được đưa về một cấu trúc dữ liệu thống nhất, tức một schema chung. Nhờ vậy, các bước phía sau không cần biết chứng từ đến từ máy scan hay từ một tấm ảnh chụp vội.
Lớp thứ hai là đối soát và kiểm tra trước khi ghi sổ. Đây là nơi giá trị của ứng dụng AI cho phòng kế toán thể hiện rõ nhất. Hệ thống có thể tự so khớp hóa đơn với đơn đặt hàng hoặc phiếu nhập kho. Đồng thời, nó phát hiện những điểm bất thường, chẳng hạn một khoản chi lặp lại bất ngờ, hoặc một con số lệch hẳn so với mức thông thường của các tháng trước.
Chúng tôi từng thử đánh dấu toàn bộ chứng từ có độ tin cậy thấp và chuyển cho kế toán xem lại, thay vì để máy tự quyết khi còn nghi ngờ. Cách này chậm hơn một chút, nhưng giúp bộ phận nghiệp vụ tin tưởng hệ thống hơn nhiều. Người dùng thường chấp nhận sự chậm rãi khi họ biết chắc máy không tự ý làm bậy.
Thiết kế theo từng lớp như vậy mang lại lợi ích thực tế. Muốn cải thiện khả năng đọc hóa đơn, bạn chỉ cần chạm vào lớp OCR. Muốn thêm quy tắc đối soát, bạn chỉ làm việc ở lớp kiểm tra. Hệ thống nhờ đó dễ bảo trì hơn rất nhiều so với việc gộp tất cả vào một khối, nơi một chỗ sửa nhỏ có thể làm hỏng những phần tưởng như không liên quan.
Phần nào nên tự viết, phần nào nên dùng dịch vụ ngoài?

Đây là câu hỏi rất thực tế, và theo kinh nghiệm của đội ngũ chúng tôi, không có đáp án duy nhất. Mọi thứ phụ thuộc vào từng thành phần cụ thể trong hệ thống của bạn, và cả vào quy mô cũng như nguồn lực hiện có.
Phần nên tự viết thường là những gì gắn chặt với nghiệp vụ riêng: quy tắc hạch toán đặc thù, cách định khoản theo mô hình kinh doanh, luồng phê duyệt nội bộ. Đây là nơi tạo ra giá trị khác biệt. Rất khó tìm được một giải pháp đóng gói sẵn cho những việc này, vì mỗi doanh nghiệp vận hành một kiểu.
Phần nên dùng dịch vụ ngoài là những thứ đã phổ quát và được nhiều bên giải quyết khá tốt, như OCR đọc văn bản hay mô hình phân loại chứng từ. Tự xây lại từ đầu tốn rất nhiều công sức mà chưa chắc đã tốt hơn.
Để rút ngắn vòng thử nghiệm, bạn có thể tham khảo cách các đơn vị đã triển khai trên thực tế. Chẳng hạn, bạn có thể xem qua trang chủ của những đơn vị làm ứng dụng AI cho phòng kế toán để hình dung kiến trúc tổng thể và tránh được vài sai lầm mà người đi trước đã gặp phải. Nếu muốn tìm hiểu thêm về mặt nền tảng của OCR và xử lý văn bản, bạn cũng nên đọc tài liệu từ các trang uy tín như TensorFlow để hiểu cách các mô hình học sâu được huấn luyện và triển khai.
Ngoài lựa chọn kỹ thuật, đừng xem nhẹ an toàn dữ liệu tài chính. Dữ liệu kế toán thuộc nhóm nhạy cảm bậc nhất. Khi tích hợp dịch vụ bên ngoài, hãy phân quyền rõ ràng cho từng vai trò và mã hóa dữ liệu cả khi lưu trữ lẫn khi truyền đi. Một hệ thống thông minh nhưng để rò rỉ dữ liệu sẽ nhanh chóng đánh mất niềm tin của khách hàng.
Chuẩn bị gì trước khi viết dòng code đầu tiên

Trước khi mở editor, bạn nên trả lời được vài câu hỏi cơ bản. Phòng kế toán hiện xử lý bao nhiêu chứng từ mỗi tháng, và loại nào chiếm đa số? Những lỗi nào đang tốn nhiều thời gian nhất? Ai là người duyệt cuối cùng cho từng loại bút toán? Câu trả lời cho các câu hỏi này sẽ định hình toàn bộ phạm vi dự án.
Sau đó, hãy thử một phiên bản nhỏ chỉ với một loại chứng từ, ví dụ hóa đơn đầu vào từ vài nhà cung cấp chính. Đo độ chính xác, ghi lại những trường hợp máy đọc sai, rồi mới mở rộng dần ra. Cách làm nhỏ mà chắc này giúp bạn phát hiện vấn đề sớm, khi chi phí sửa chữa còn thấp.
Kết luận: AI hỗ trợ kế toán, còn lập trình viên giữ vai trò gác cổng
Thông điệp xuyên suốt bài viết là ứng dụng AI cho phòng kế toán là công cụ hỗ trợ đắc lực, nhưng không thay thế con người, và càng không thay thế trách nhiệm của người lập trình. Bạn có thể hình dung lập trình viên như người gác cổng, đảm bảo mọi thứ đi qua hệ thống đều đáng tin cậy.
Sự phân vai giữa máy và người khá rõ ràng. Ở khâu đọc chứng từ, máy bóc tách dữ liệu còn người kiểm tra những trường mà máy chưa chắc chắn. Ở khâu đối soát, máy đề xuất và đánh dấu bất thường, người quyết định các trường hợp phức tạp. Ở khâu ghi sổ, máy chuẩn bị bút toán đề xuất, còn người duyệt cuối cùng. Về minh bạch, máy lưu nhật ký mọi thao tác, còn người đối chiếu và chịu trách nhiệm với con số sau cùng.
Chúng tôi tin rằng hai nguyên tắc nên áp dụng cho mọi dự án dạng này. Thứ nhất, mọi đề xuất tự động đều cần bước duyệt của con người trước khi trở thành dữ liệu chính thức. Thứ hai, hệ thống phải đủ minh bạch để bộ phận nghiệp vụ hiểu vì sao máy đưa ra kết quả đó, từ đó yên tâm dùng lâu dài thay vì nghi ngờ mỗi lần thấy một con số lạ.
Nếu bạn đang ấp ủ một hệ thống tương tự, hãy bắt đầu bằng việc nắm chắc nghiệp vụ kế toán. Hiểu bài toán càng sâu thì giải pháp càng hữu ích. Hy vọng những chia sẻ trên đã cho bạn một bức tranh tổng quan, và chúc bạn tự tin khi bước vào lĩnh vực thú vị này.


