Hãy tách rõ phần bạn tự viết với phần dùng lại, ghi tên, phiên bản, giấy phép và nguồn của mọi thư viện, mã mở, mô hình huấn luyện sẵn đáng kể, ghi nhận cả mã do công cụ AI gợi ý, rồi nêu cụ thể đóng góp của bạn nằm ở đâu.
Không ai viết phần mềm từ con số không. Dùng khung phát triển, thư viện, mô hình đã huấn luyện là cách làm bình thường và đúng đắn. Vấn đề liêm chính chỉ xuất hiện khi người đọc không phân biệt được đâu là công sức của bạn, đâu là của người khác. Trong khoá luận, sự mơ hồ này thường không cố ý, nhưng hậu quả khi bị phát hiện thì không khác gì cố ý.
Mỗi loại thành phần dùng lại cần ghi gì?
Bảng dưới là mức tối thiểu. Kiểu trình bày trích dẫn cụ thể theo quy định của trường bạn.
| Thành phần | Ví dụ | Ghi nhận ở đâu | Thông tin cần có |
|---|---|---|---|
| Khung phát triển, thư viện lớn | Khung web, thư viện xử lý dữ liệu, thư viện học sâu | Chương công nghệ, bảng thành phần ở phụ lục | Tên, phiên bản, giấy phép, mục đích dùng |
| Mã mở trích đoạn | Hàm lấy từ kho mã mở, đoạn mã trong tài liệu hướng dẫn | Chú thích trong mã và trong luận văn | Nguồn, giấy phép, phần đã sửa |
| Mô hình huấn luyện sẵn | Mô hình ngôn ngữ, mô hình nhận dạng ảnh công bố sẵn | Chương phương pháp, tài liệu tham khảo | Tên mô hình, bài báo gốc hoặc nơi công bố, giấy phép, cách tinh chỉnh |
| Bộ dữ liệu | Bộ dữ liệu công khai | Chương thực nghiệm, tài liệu tham khảo | Nguồn, giấy phép, bài báo giới thiệu nếu có |
| Mẫu giao diện, thiết kế | Bộ giao diện mẫu, biểu tượng | Chương cài đặt hoặc phụ lục | Nguồn, giấy phép, phần đã tuỳ biến |
| Mã do công cụ AI gợi ý | Hàm được trợ lý lập trình đề xuất rồi chỉnh | Mục ghi nhận dùng AI và chú thích mã | Công cụ, mục đích, phần đã kiểm tra và sửa |
Đọc giấy phép trước khi dùng
Giấy phép dễ dãi
Các giấy phép như MIT, BSD hay Apache 2.0 cho phép dùng, sửa, phân phối khá rộng, thường chỉ yêu cầu giữ thông báo bản quyền và nội dung giấy phép. Với khoá luận, điều này có nghĩa là bạn giữ nguyên tệp giấy phép trong kho mã và ghi nguồn.
Giấy phép có tính lan truyền
Họ giấy phép GPL yêu cầu sản phẩm phái sinh khi phân phối phải theo điều khoản tương thích. Nếu sản phẩm khoá luận làm cho một doanh nghiệp muốn giữ mã riêng, việc nhúng thư viện GPL có thể gây vướng. Hãy đọc kỹ điều khoản, hỏi người hướng dẫn, và ghi lựa chọn của bạn vào luận văn.
Không có giấy phép không có nghĩa là tự do
Mã công khai trên mạng mà không kèm giấy phép, về nguyên tắc, vẫn thuộc quyền của tác giả. Dùng làm tham khảo để học cách làm thì được; chép vào sản phẩm thì nên hỏi tác giả hoặc tìm lựa chọn khác có giấy phép rõ ràng. Luật Sở hữu trí tuệ của Việt Nam bảo hộ chương trình máy tính như một loại tác phẩm, nên đây không chỉ là chuyện quy ước của cộng đồng.
Viết phần đóng góp sao cho rõ ràng?
Liệt kê theo thành phần
Một đoạn hoặc một bảng ngắn ở chương cài đặt: mô-đun nào bạn tự thiết kế và viết, mô-đun nào dùng thư viện và bạn chỉ cấu hình, mô-đun nào bạn sửa từ mã mở và sửa những gì. Người chấm đọc bảng này là biết nên hỏi sâu vào đâu.
Nói đúng mức
Nếu bạn tinh chỉnh một mô hình huấn luyện sẵn trên dữ liệu tiếng Việt, đóng góp là quy trình tinh chỉnh, cách chuẩn bị dữ liệu và phân tích kết quả, không phải “xây dựng mô hình”. Viết “xây dựng mô hình nhận dạng” khi thực chất là gọi một mô hình có sẵn là phóng đại, và hội đồng có chuyên môn nhận ra ngay.
Phần dùng lại không làm giảm giá trị
Biết chọn thư viện đúng, ghép các thành phần cho khớp, xử lý chỗ chúng không tương thích cũng là năng lực kỹ thuật. Ghi rõ điều đó còn giúp bạn có chỗ để kể về các quyết định đã đưa ra.
Mã do công cụ AI gợi ý: ghi nhận thế nào?
Kiểm tra quy định trước
Nhiều trường đã có hoặc đang xây hướng dẫn về dùng AI trong học tập và nghiên cứu. Có nơi cho phép dùng để gợi ý mã nếu ghi nhận, có nơi giới hạn hơn. Hỏi người hướng dẫn và đọc quy định của trường bạn trước khi dùng cho phần cốt lõi của đề tài.
Ghi nhận ở hai chỗ
Một mục ngắn trong chương phương pháp hoặc phần lời nói đầu nêu công cụ đã dùng, dùng cho việc gì (gợi ý mã giao diện, viết kiểm thử, giải thích thông báo lỗi), và bạn kiểm tra kết quả ra sao. Với đoạn mã cốt lõi có phần lớn do công cụ đề xuất, thêm chú thích ngay tại chỗ.
Bạn vẫn chịu trách nhiệm
Mã do AI gợi ý có thể sai, có lỗ hổng bảo mật, hoặc giống mã có giấy phép khác. Bạn phải hiểu và giải thích được từng dòng mình đưa vào sản phẩm. Câu “mã này do công cụ viết” không phải câu trả lời chấp nhận được khi hội đồng hỏi vì sao hàm xử lý như vậy.
Tình huống: một hệ thống nhận diện biển số xe ở bãi gửi xe
Bối cảnh. Một sinh viên làm hệ thống quản lý bãi gửi xe cho một chung cư, dùng mô hình phát hiện đối tượng công bố sẵn và thư viện nhận dạng ký tự mã nguồn mở.
Bản thảo đầu. Chương kết quả viết “nhóm đã xây dựng mô hình nhận diện biển số với độ chính xác cao”, không nhắc tới mô hình gốc và giấy phép.
Bản sửa. Sinh viên ghi rõ mô hình gốc, nguồn công bố, giấy phép; mô tả phần tự làm gồm gán nhãn bộ ảnh tại bãi xe chung cư (đã xin phép ban quản lý, che biển số trong ảnh minh hoạ), tinh chỉnh mô hình, viết bước hậu xử lý chuẩn hoá biển số theo định dạng Việt Nam, và toàn bộ phần quản lý ra vào. Đóng góp rõ ràng hơn và hội đồng hỏi đúng vào phần hậu xử lý, nơi sinh viên trả lời tự tin nhất.
Ba hiểu lầm hay gặp về ghi nhận
Mã mở thì ai cũng dùng được, không cần ghi. Mã mở cho phép dùng theo điều kiện của giấy phép, và gần như mọi giấy phép đều yêu cầu giữ thông báo bản quyền. Với khoá luận, ghi nguồn còn là yêu cầu liêm chính độc lập với giấy phép.
Ghi nhiều nguồn quá sẽ làm luận văn trông kém. Ngược lại, bảng thành phần đầy đủ cho thấy bạn hiểu hệ thống của mình gồm những gì. Hội đồng đánh giá thấp sự mơ hồ, không đánh giá thấp sự minh bạch.
Chỉ cần ghi trong kho mã, không cần ghi trong luận văn. Hội đồng đọc luận văn trước, ít khi mở từng tệp mã. Phần dùng lại quan trọng phải xuất hiện trong văn bản, ở chương phương pháp hoặc cài đặt, kèm trích dẫn.
Mô hình tải về miễn phí thì không cần trích dẫn. Mô hình huấn luyện sẵn là kết quả nghiên cứu của nhóm tác giả, thường đi kèm bài báo và giấy phép riêng, có khi giới hạn mục đích sử dụng. Trích dẫn bài báo gốc và ghi giấy phép như với bất kỳ công trình nào bạn dựa vào.
Bảng kiểm trước khi nộp
Rà kho mã và bản luận văn cùng lúc.
- Tệp khai báo phụ thuộc có đủ thư viện và phiên bản.
- Mỗi đoạn mã trích từ nguồn ngoài có chú thích nguồn và giấy phép.
- Tệp giấy phép của mã mở được giữ nguyên khi chép vào dự án.
- Mô hình huấn luyện sẵn và bộ dữ liệu có trong danh mục tài liệu tham khảo.
- Có mục ghi nhận việc dùng công cụ AI nếu đã dùng.
- Chương cài đặt có bảng phân biệt phần tự viết với phần dùng lại.
Câu hỏi thường gặp
Dùng thư viện có sẵn có bị coi là không tự làm không?
Không. Dùng thư viện là cách làm chuẩn trong phát triển phần mềm. Điều cần là ghi rõ thư viện nào, dùng để làm gì, và phần bạn tự thiết kế nằm ở đâu.
Có cần đưa thư viện vào danh mục tài liệu tham khảo không?
Thư viện lớn, mô hình, bộ dữ liệu có bài báo hoặc trang công bố chính thức nên được trích dẫn. Thư viện nhỏ dùng phụ trợ có thể liệt kê trong bảng thành phần ở phụ lục.
Chép mã từ diễn đàn hỏi đáp có vi phạm không?
Nội dung trên nhiều diễn đàn có giấy phép riêng yêu cầu ghi nguồn. Khi dùng đoạn mã từ đó, ghi đường dẫn bài viết trong chú thích mã và ghi rõ phần đã sửa.
Dùng công cụ AI gợi ý mã có bị cấm trong khoá luận không?
Tuỳ quy định của trường bạn và hướng dẫn của người hướng dẫn. Nếu được phép, hãy ghi nhận công cụ, mục đích dùng và cách bạn kiểm tra kết quả.
Sửa tên biến trong mã người khác có biến thành mã của mình không?
Không. Đổi tên biến, đổi định dạng không tạo ra tác phẩm mới. Phần mã đó vẫn phải ghi nguồn như mã dùng lại.
Làm sao biết một thư viện dùng giấy phép gì?
Xem tệp giấy phép trong kho mã của thư viện, trang thông tin trên kho phân phối gói, hoặc phần giới thiệu trong tài liệu chính thức. Ghi lại cùng phiên bản bạn dùng.