Mã do trợ lý AI sinh ra phần lớn là tổ hợp mới, nhưng thỉnh thoảng có đoạn trùng gần nguyên văn với mã công khai mang giấy phép nguồn mở. Nếu đoạn đó thuộc giấy phép có điều kiện như GPL, đưa vào sản phẩm đóng có thể vi phạm điều kiện giấy phép; nếu thuộc giấy phép dễ dãi như MIT hay Apache, bạn vẫn có nghĩa vụ giữ thông báo bản quyền. Câu hỏi ai sở hữu mã AI sinh ra thì pháp luật nhiều nước, kể cả Việt Nam, vẫn đang được bàn và chưa có câu trả lời thống nhất.
Bài này giải thích ở mức nguyên lý: các nhóm giấy phép phổ biến khác nhau thế nào, vì sao mã AI có thể trùng mã có giấy phép, những tín hiệu cho thấy một đoạn có thể là bản sao, và quy trình gọn cho nhóm làm sản phẩm thương mại. Đây không phải tư vấn pháp lý; với sản phẩm quan trọng, hỏi người có chuyên môn về sở hữu trí tuệ và đọc điều khoản hiện hành của công cụ bạn dùng.
Hai nhóm giấy phép và điều bạn phải làm
Bảng dưới gom các giấy phép phổ biến thành hai nhóm theo điều kiện chính. Mỗi giấy phép có chi tiết riêng; đọc văn bản gốc của giấy phép trước khi dựa vào.
| Nhóm | Ví dụ | Điều kiện chính khi dùng lại | Rủi ro nếu mã AI chép từ đây |
|---|---|---|---|
| Dễ dãi | MIT, BSD, Apache 2.0 | Giữ thông báo bản quyền và văn bản giấy phép; Apache 2.0 có thêm điều khoản về sáng chế và yêu cầu ghi chú thay đổi | Thường không cấm dùng trong sản phẩm đóng, nhưng thiếu thông báo bản quyền là chưa tuân thủ |
| Có điều kiện chia sẻ (copyleft) | GPL, LGPL, AGPL, MPL | Khi phân phối sản phẩm có mã thuộc giấy phép này, phải công bố mã nguồn theo cùng giấy phép trong phạm vi giấy phép quy định; AGPL mở rộng tới cả phần mềm cung cấp qua mạng | Có thể buộc phải mở mã phần liên quan, hoặc phải gỡ đoạn đó ra |
| Không có giấy phép | Mã công khai trên mạng không kèm giấy phép | Mặc định tác giả giữ mọi quyền; công khai không đồng nghĩa với được phép dùng | Không có căn cứ để dùng lại |
Mức độ “lây” của từng giấy phép copyleft khác nhau đáng kể. LGPL và MPL hẹp hơn GPL, AGPL rộng hơn GPL. Đừng gộp chúng thành một khối; khi gặp, đọc đúng giấy phép đó.
Hàng cuối bảng hay bị hiểu sai nhất. Đoạn mã đăng trên diễn đàn, trên trang hỏi đáp hay trong kho mã không có tệp giấy phép không phải là “của chung”. Một số trang hỏi đáp có điều khoản giấy phép riêng cho nội dung đăng lên; kiểm điều khoản của trang đó.
Vì sao mã AI có thể trùng mã có giấy phép
Mô hình học từ một lượng rất lớn mã công khai, trong đó có mã mang đủ loại giấy phép. Khi viết, nó không tra cứu và chép từ một tệp cụ thể; nó sinh ra chuỗi ký tự có khả năng cao nhất dựa trên những gì đã học. Với phần lớn yêu cầu, kết quả là tổ hợp mới. Nhưng với những đoạn mã xuất hiện rất nhiều lần, rất đặc trưng, hoặc khi bạn gợi ý bằng tên hàm, chú thích giống hệt một dự án nổi tiếng, mô hình có thể tái tạo gần nguyên văn.
Các tình huống dễ dẫn tới trùng: nhờ viết lại một thuật toán có cài đặt kinh điển trong một thư viện lớn, gõ chú thích đầu tệp giống của một dự án có sẵn, yêu cầu “viết giống thư viện X”, hay nhờ tạo tệp cấu hình phổ biến có cấu trúc gần như cố định. Ngược lại, đoạn mã ngắn, thông dụng như vòng lặp đọc tệp hay hàm kiểm định dạng ngày hiếm khi đặt ra vấn đề giấy phép, vì chúng quá phổ biến và có ít cách viết khác nhau.
Một số trợ lý viết mã có tuỳ chọn lọc gợi ý trùng với mã công khai, hoặc hiển thị nguồn tham chiếu khi gợi ý trùng một đoạn đã biết. Tính năng này khác nhau giữa các công cụ và thay đổi theo phiên bản; kiểm cài đặt và tài liệu hiện hành của công cụ bạn dùng, và bật nếu làm sản phẩm thương mại.
Dấu hiệu một đoạn mã AI viết có thể là bản sao
Không dấu hiệu nào là chắc chắn, nhưng gặp một trong những điều dưới thì nên dừng lại kiểm.
- Đoạn mã dài, chi tiết, có phong cách đặt tên và chú thích khác hẳn phần còn lại của câu trả lời.
- Có chú thích nhắc tên tác giả, năm, tên dự án, hay dòng thông báo bản quyền, dù chỉ một phần.
- Có tên biến, hằng số ma thuật hay thông báo lỗi rất đặc trưng mà bạn không yêu cầu.
- AI tái tạo cả một tệp hoàn chỉnh của một thuật toán nổi tiếng, kèm cả các tối ưu chi tiết.
- Bạn tìm thử một dòng đặc trưng trên công cụ tìm kiếm mã và thấy nó xuất hiện nguyên văn trong một dự án có giấy phép.
Khi thấy dấu hiệu, có ba lựa chọn: tìm dự án gốc và dùng đúng thư viện đó theo giấy phép của nó, thường là cách sạch nhất; yêu cầu AI viết lại theo cách khác với ràng buộc rõ, rồi kiểm lại; hoặc tự viết phần đó. Tuyệt đối không xoá dòng thông báo bản quyền trong đoạn AI đưa ra rồi dùng tiếp.
Ai sở hữu mã AI sinh ra: những gì đang được bàn
Câu hỏi này chưa có câu trả lời thống nhất trên thế giới. Ở một số nước, cơ quan bản quyền đã nêu quan điểm rằng phần do máy tạo ra mà không có đóng góp sáng tạo đủ của con người thì không được bảo hộ bản quyền, trong khi phần con người lựa chọn, sắp xếp, chỉnh sửa có thể được bảo hộ. Ở Việt Nam, khung pháp lý về sở hữu trí tuệ với sản phẩm do AI tạo ra đang trong quá trình hoàn thiện. Bài này không đưa ra kết luận pháp lý; nếu sản phẩm của bạn phụ thuộc vào câu hỏi này, hỏi luật sư sở hữu trí tuệ.
Ở góc vận hành, có hai thứ bạn kiểm được ngay. Thứ nhất là điều khoản của công cụ: nhà cung cấp nói gì về quyền với đầu ra, có cam kết bảo vệ người dùng trước khiếu nại bản quyền trong điều kiện nào không, điều kiện đó có yêu cầu bật bộ lọc nào không. Thứ hai là hợp đồng lao động hoặc hợp đồng với khách: mã bạn viết trong công việc thường thuộc về công ty hoặc khách, bất kể viết bằng tay hay nhờ AI, và một số hợp đồng có điều khoản riêng về công cụ AI.
Với sản phẩm thương mại, cách tiếp cận thận trọng là coi mã AI như mã do một người đóng góp bên ngoài gửi vào: được dùng sau khi đã rà, đã kiểm nguồn gốc khi có dấu hiệu, và người gộp mã chịu trách nhiệm.
Quy trình gọn cho nhóm làm sản phẩm thương mại
Quy trình dưới đây nhắm tới nhóm nhỏ, không có bộ phận pháp chế riêng, muốn giảm rủi ro mà không làm chậm công việc.
- Ghi rõ trong tài liệu dự án những giấy phép được phép xuất hiện trong sản phẩm, những giấy phép cần hỏi trước, những giấy phép không dùng.
- Bật bộ lọc trùng mã công khai trong trợ lý viết mã nếu công cụ có, và ghi cấu hình này vào hướng dẫn cài đặt cho người mới.
- Dùng công cụ quét giấy phép phụ thuộc trong quy trình tích hợp liên tục để biết dự án đang kéo về những gói mang giấy phép gì. Công cụ này kiểm gói, không kiểm đoạn mã chép vào.
- Trong danh sách rà yêu cầu gộp mã, thêm một mục: đoạn mã dài do AI viết có dấu hiệu trùng không, đã kiểm chưa.
- Khi dùng lại mã có giấy phép dễ dãi, giữ thông báo bản quyền trong tệp và trong tệp tổng hợp giấy phép bên thứ ba của sản phẩm.
- Lưu lại quyết định khi gặp trường hợp khó: đoạn nào, nghi trùng với gì, đã xử lý thế nào. Ghi chép này giúp trả lời nhanh khi khách hoặc đối tác hỏi về nguồn gốc mã.
Với sản phẩm gia công cho khách nước ngoài, khách thường hỏi về chính sách dùng AI và giấy phép bên thứ ba trong quá trình thẩm định. Có sẵn quy trình trên giúp trả lời chặt chẽ thay vì lúng túng.
Một tình huống ví dụ giả định ở công ty phần mềm nhỏ
Một công ty tám người ở Đà Nẵng làm phần mềm quản lý kho bán cho cửa hàng, cài trên máy khách. Lập trình viên nhờ trợ lý AI viết thuật toán sắp lịch giao hàng tối ưu. AI trả về một tệp gần ba trăm dòng, phong cách chú thích khác hẳn phần còn lại, có một hằng số đặt tên rất lạ. Người rà mã để ý, tìm thử dòng chú thích đầu trên công cụ tìm kiếm mã và thấy nó trùng gần nguyên văn với một thư viện nguồn mở mang giấy phép GPL.
Vì phần mềm được cài lên máy khách, tức là có phân phối, đưa đoạn đó vào có thể kéo theo điều kiện công bố mã nguồn theo GPL. Nhóm có ba lựa chọn: dùng thư viện gốc và chấp nhận điều kiện giấy phép, tìm thư viện khác mang giấy phép dễ dãi làm cùng việc, hoặc tự viết bản đơn giản hơn đủ dùng. Họ chọn cách thứ hai, ghi thông báo bản quyền của thư viện mới vào tệp giấy phép bên thứ ba, và ghi lại quyết định trong phiếu công việc.
Điều đáng học từ ví dụ này không phải là AI nguy hiểm, mà là một dấu hiệu nhỏ, phong cách chú thích lạ, đủ để người rà dừng lại năm phút. Nếu đoạn đó được gộp vào mà không ai nhìn, vấn đề có thể chỉ lộ ra khi khách lớn thẩm định mã nguồn trước khi ký hợp đồng.
Hiểu lầm hay gặp
“AI viết thì không ai kiện được.” Trách nhiệm tuân thủ giấy phép thuộc về người phân phối sản phẩm, không phụ thuộc mã được gõ bằng tay hay do công cụ sinh ra.
“Mã nguồn mở là miễn phí, dùng sao cũng được.” Nguồn mở là được dùng theo điều kiện của giấy phép. Giấy phép dễ dãi điều kiện nhẹ, giấy phép copyleft điều kiện nặng, nhưng điều kiện luôn có.
“Đổi tên biến là thành mã của mình.” Sửa bề mặt không thay đổi nguồn gốc. Một đoạn chép rồi đổi tên biến vẫn là bản sao có chỉnh sửa.
“Chỉ dùng nội bộ thì không cần quan tâm.” Nhiều giấy phép copyleft đặt điều kiện khi phân phối, nên dùng nội bộ thuần tuý thường ít rủi ro hơn. Nhưng AGPL đặt điều kiện cả khi cung cấp phần mềm qua mạng, và công cụ nội bộ hay được mở cho khách hoặc đối tác lúc nào không hay.
Câu hỏi thường gặp
Mã AI viết có cần ghi chú là do AI viết không?
Không có yêu cầu chung bắt buộc ở mọi nơi, nhưng nhiều nhóm và một số dự án nguồn mở có quy định riêng về việc này. Một số dự án nguồn mở hạn chế hoặc cấm đóng góp do AI sinh ra. Đọc quy định đóng góp của dự án trước khi gửi.
Đóng góp mã AI viết vào dự án nguồn mở có vấn đề gì không?
Nhiều dự án yêu cầu người đóng góp xác nhận mình có quyền gửi mã theo giấy phép của dự án. Nếu không chắc nguồn gốc đoạn mã AI viết, xác nhận đó trở nên khó. Đọc hướng dẫn đóng góp và hỏi người duy trì khi chưa rõ.
Công cụ quét giấy phép có phát hiện được mã AI chép không?
Công cụ quét giấy phép phụ thuộc chỉ xem các gói khai báo. Phát hiện đoạn mã chép nguyên văn cần loại công cụ so khớp đoạn mã với cơ sở dữ liệu mã công khai, thường dùng trong thẩm định của doanh nghiệp lớn.
Dùng AI viết lại toàn bộ một thư viện GPL thành bản của mình có được không?
Đây là vùng rủi ro cao. Nếu bản viết lại vẫn dựa sát cấu trúc và chi tiết của bản gốc, nó có thể bị coi là tác phẩm phái sinh. Không nên làm với sản phẩm thương mại mà không có ý kiến chuyên môn.
Mã do AI sinh ra trong giờ làm việc thuộc về ai?
Thường xử lý như mã bạn viết trong công việc: thuộc công ty hoặc khách theo hợp đồng. Câu hỏi bản quyền đối với phần do máy tạo vẫn đang được bàn, nên đọc hợp đồng và chính sách công ty, hỏi chuyên gia khi cần.