- Thông điệp commit là nơi chứa thông tin kỹ thuật, và những câu như “Assisted by blabot” trở thành quảng cáo phô bày tên công cụ hoặc công ty
- Dù các dự án mã nguồn mở không nhận tiền từ những công ty đó, việc người dùng trả phí thuê bao rồi đưa câu chữ quảng bá vào commit vẫn là một thói quen có vấn đề
- Nếu cần, việc có dùng công cụ AI hay không nên được nêu trong merge request, còn trong commit thì các cách diễn đạt chung như “generated by an LLM” sẽ phù hợp hơn
- Những công cụ tự động chèn câu chữ mang tính quảng cáo vào commit, email hoặc các tin nhắn khác là công cụ tệ; vấn đề cốt lõi không phải là dùng công cụ, mà là sự ô nhiễm metadata
- Các định dạng như “Co-authored-by” cũng sẽ trở thành không gian quảng cáo miễn phí nếu vượt ra ngoài thông tin cộng tác kỹ thuật để phô bày bot hay dịch vụ cụ thể
Thông điệp commit nên là không gian cho thông tin kỹ thuật
- Nếu đưa vào thông điệp commit những câu như “Assisted by blabot”, “co-authored-by: slopgpt”, “sent from my fartphone” thì đó sẽ là quảng cáo phô bày tên công ty hoặc công cụ
- Dù dự án mã nguồn mở không nhận tiền từ các công ty đó, cấu trúc để người dùng trả phí thuê bao rồi chèn câu quảng bá công ty vào commit vẫn là điều có vấn đề
- Điều này tạo ra một mâu thuẫn: vẫn dùng trình chặn quảng cáo nhưng lại đưa quảng cáo vào commit
- Commit là nơi chứa thông tin kỹ thuật, chứ không nên là không gian quảng bá cho một công cụ hay công ty cụ thể
Cách công khai việc sử dụng công cụ AI
- Khi cần, việc có sử dụng công cụ AI hay không có thể được công khai trong merge request
- Trong commit, thay vì nêu tên công ty hay sản phẩm cụ thể, sẽ phù hợp hơn nếu để lại những cách diễn đạt chung như “generated by an LLM”
- Đưa tên một công ty cụ thể vào commit đồng nghĩa với việc cung cấp không gian quảng cáo miễn phí
- Thậm chí cũng có thể chọn không dùng những công cụ như vậy ngay từ đầu
Tiêu chí đánh giá công cụ
- Những công cụ tự động chèn câu chữ mang tính quảng cáo vào commit, email và các loại tin nhắn khác có thể được xem là công cụ tệ
- Cốt lõi của vấn đề không nằm ở việc có dùng công cụ hay không, mà ở cách câu chữ quảng bá công ty chen vào metadata hoặc thông điệp của sản phẩm được tạo ra
- Các định dạng như “Co-authored-by” cũng sẽ trở thành quảng cáo nếu bị dùng để phô bày một bot hay dịch vụ cụ thể thay vì chỉ truyền đạt thông tin cộng tác kỹ thuật
Quan điểm liên quan
1 bình luận
Ý kiến trên Lobste.rs
Đúng là các công cụ gắn quảng cáo vào những thứ như commit hay email là những công cụ rất tệ, nhưng giải pháp không phải là khiến việc bị phát hiện dùng công cụ tệ trở nên khó hơn, mà là đừng dùng những công cụ như vậy
Cá nhân tôi còn thấy biết ơn vì những người làm thế này lại muốn tự để lộ mình
Cuối cùng thì giải pháp thật sự vẫn là đừng dùng công cụ chèn quảng cáo vào thành phẩm
Nhiều người coi việc tránh mã do LLM tạo ra là quan trọng, nên tôi không nghĩ việc giảm công khai chuyện dùng LLM là hướng đúng
Nếu đưa thông tin đó vào thông điệp commit thì cũng dễ tự động xác định codebase có chứa mã do LLM tạo hay không bằng các công cụ như slopcheck
Tuy nhiên điều quan trọng không phải là đã dùng LLM nào, mà là việc đã dùng LLM. Nếu người dùng các công cụ này chuyển sang cách đó thì vừa có thể giảm tác hại của việc quảng bá sản phẩm cụ thể, vừa vẫn đáp ứng nhu cầu công khai
Tôi hoàn toàn hiểu ý đó, nhưng có một điểm tôi nhìn hơi khác
Tôi cũng rất ghét việc các công ty AI nhận được quảng cáo hoàn toàn miễn phí, và cách họ len lỏi vào phần mềm mã nguồn mở
Tuy vậy, tôi phản đối việc chỉ công khai trong merge request. Không phải ai cũng xem merge request, và nếu muốn biết có thể tin commit này hay không thì không nên phải phụ thuộc vào thứ gì khác ngoài lịch sử git
Nhưng với mã do LLM tạo ra thì tôi không thấy ý nghĩa đó lắm. Việc các công cụ như Dependabot ký commit thì ổn, vì đó là thông tin hữu ích để sửa lỗi và ngăn tái diễn khi có sự cố
Vậy còn dùng kiểu “Proudly typed in nano” thì sao? :D
Nếu Visual Studio bắt đầu gắn “Made using Visual Studio” vào commit của tôi thì chắc tôi sẽ khá bực
Sent using
Firefox 140.10.2esr (64-bit)
Debian GNU/Linux 13 (trixie) x86_64
Linux 6.12.86+deb13-amd64
Using locally sourced electricity from free range waterfalls
Method names suggested by Microsoft IntelliSense (R) and Pyright (TM)\
Grammar and spelling corrections by Apple Intelligence (R)
Có lẽ cũng vì lý do giống như việc người ta mặc áo có chữ “Nike” hay “Adidas”
Có lẽ mặc đồ thể thao còn hợp lý hơn
Khi tôi pair programming với ai đó và tôi commit, thì tên người đó sẽ được đưa vào co-authored-by
Khi tôi lập trình, tôi thấy mức độ đóng góp của LLM đủ lớn để xứng đáng được ghi nhận trong commit. Tôi là người commit đoạn mã đó và cũng là người chịu trách nhiệm, nhưng tôi không phải tác giả duy nhất của nó
Thế mà tôi chưa từng thấy ai vội vàng đưa vào commit rằng “tôi đã tham khảo Google khi viết cái này và nhấn tab hoàn thành 4 lần trong xcode”
Bạn có thể bootstrap một dự án Spring, hay sinh thứ gì đó trong Go bằng echo hoặc cobra CLI, hoặc tạo boilerplate Laravel. Nhiều ngôn ngữ có các generator
Dù vậy người ta vẫn không thêm “co-authored by X tool”
Tôi biết nó không hoàn toàn giống nhau, nhưng khá tương tự. Bạn đang đưa siêu dữ liệu công cụ vào tập thay đổi. Việc đó là không cần thiết. Hãy đưa các khái niệm nghiệp vụ liên quan vào, và ghi chú về các quyết định kỹ thuật nếu cần
Không cần phải nhắc đến công cụ
Tôi không biết là webserver đang quá tải, cấu hình sai, hay phân loại tôi là bot, nhưng tôi phải chờ khoảng 30 giây cho kết nối HTTPS
Ngược lại tôi lại thấy đó là một tín hiệu khá tốt. Là cách hay để nhìn ra đã có bao nhiêu công sức, hoặc thiếu công sức, được bỏ vào đoạn mã đó
Tôi rất phản đối quảng cáo, nhưng không phải vì tôi muốn chẳng ai biết đến hay dùng các sản phẩm tiêu dùng
Mà vì tôi muốn mọi người có được thông tin chính xác và không thiên lệch về các sản phẩm tiêu dùng
Tôi không cho rằng đưa thông tin này vào commit sẽ tạo ra thiên lệch. Dù là Claude, Copilot hay bất cứ gì, việc nó có tham gia vào commit đó là một sự thật hiển nhiên, và nhiều người có mối quan tâm hợp lý muốn biết điều đó trong bối cảnh này. Ngược lại, việc committer có dùng Emacs hay không thì không phải loại thông tin đáng quan tâm. Nó không phải được đưa vào một cách vô cớ
Nếu không thích thì chỉ cần cấu hình để user agent không xuất nó ra