- Cộng đồng Debian đã thảo luận về việc có cho phép các đóng góp mã dựa trên AI hoặc LLM hay không, nhưng kết thúc thảo luận mà không đi đến kết luận
- Bản dự thảo được đề xuất cho phép với các điều kiện như công khai rõ ràng khi dùng công cụ AI, làm rõ trách nhiệm, cấm sử dụng thông tin nhạy cảm
- Các nhà phát triển chia rẽ quan điểm về tính mơ hồ của thuật ngữ ‘AI’, phạm vi sử dụng LLM, và các vấn đề về chất lượng, bản quyền, đạo đức
- Một số người phản đối với lý do như cản trở quá trình onboard cộng tác viên mới, hành vi doanh nghiệp phi đạo đức, sự bất định về pháp lý
- Trước mắt, Debian sẽ tiếp tục đánh giá theo từng trường hợp dựa trên chính sách hiện có, đồng thời để ngỏ khả năng tiếp tục thảo luận trong tương lai
Tổng quan về cuộc thảo luận AI của Debian
- Debian đã tiến hành thảo luận nội bộ xoay quanh việc có chấp nhận mã do AI tạo ra hay không, nhưng kết thúc mà không đưa ra nghị quyết chung (GR)
- Cuộc thảo luận bắt đầu khi Lucas Nussbaum đưa ra một bản dự thảo nhằm làm rõ lập trường đối với các đóng góp có sự hỗ trợ của AI
- Ông đã cân nhắc việc nộp chính thức sau khi thu thập phản hồi, nhưng khi thảo luận lắng xuống thì nghị quyết cũng không được đề xuất
- Bản dự thảo bao gồm các nội dung như nghĩa vụ công khai mã được tạo bằng công cụ AI, nêu rõ trách nhiệm của người đóng góp, bảo đảm tuân thủ bảo mật và giấy phép, cấm sử dụng thông tin không công khai
Tranh luận về định nghĩa thuật ngữ và phân biệt công nghệ
- Nhiều nhà phát triển chỉ ra sự thiếu rõ ràng của thuật ngữ ‘AI’, đồng thời nhấn mạnh sự cần thiết phải nêu cụ thể các công nghệ như LLM
- Russ Allbery cho rằng “AI” quá bao quát nên không phù hợp để xây dựng chính sách
- Sean Whitton đề xuất phân loại theo mục đích sử dụng LLM (review mã, tạo nguyên mẫu, mã production)
- Andrea Pappacoda nhận xét rằng những dự án như Claude’s C Compiler không nên được đưa vào Debian
- Trong khi đó, Nussbaum lập luận rằng điều cốt lõi không phải là loại công cụ, mà là hành vi tạo mã tự động
Vấn đề onboard cộng tác viên mới và chi phí
- Simon Richter lo ngại rằng AI có thể thay thế cơ hội học tập của các nhà phát triển mới
- Ông chỉ ra rằng dù được hướng dẫn, AI không học hỏi, và tài nguyên của dự án vì thế không dẫn tới việc truyền đạt kiến thức lâu dài
- Cũng có lo ngại rằng việc dùng AI có thể dẫn đến phụ thuộc vào công cụ trả phí, từ đó làm giảm khả năng tiếp cận của người đóng góp
- Nussbaum thừa nhận hiện tại vẫn có thể tiếp cận miễn phí, nhưng công nhận vấn đề chi phí có thể xuất hiện trong tương lai
- Ông phản biện rằng AI ngược lại có thể giúp tăng khả năng tiếp cận với các công việc phức tạp
- Ted Ts’o phản đối việc loại trừ người dùng AI, cho rằng điều đó mang tính tự mâu thuẫn và có thể hạn chế sự đa dạng của cộng tác viên
Thảo luận về đạo đức, bản quyền và chất lượng
- Matthew Vernon cho rằng Debian cần thể hiện lập trường phản đối rõ ràng vì các công ty AI thu thập dữ liệu phi đạo đức và gây tác động môi trường
- Ông chỉ ra các hệ quả phụ như xâm phạm bản quyền, tạo ảnh không có sự đồng thuận, báo cáo bảo mật giả
- Jonathan Dowland đề xuất hạn chế chấp nhận sản phẩm do AI tạo ra cho đến khi sự bất định pháp lý được giải quyết
- Thorsten Glaser cho rằng các dự án chứa mã dựa trên LLM nên được chuyển sang khu vực
non-free, nhưng không nhận được ủng hộ vì nguy cơ loại trừ các dự án lớn như Linux kernel và Python
- Allbery cho rằng tranh cãi về chất lượng mã AI là vô nghĩa, vì con người cũng có thể viết mã tệ
- Bdale Garbee nhấn mạnh cần xem AI như một giai đoạn tiến hóa và theo dõi tác động dài hạn của nó
Thảo luận về ‘hình thức ưu tiên để chỉnh sửa’ (Preferred form of modification)
- Nussbaum trả lời rằng đầu vào LLM (prompt) là hình thức ưu tiên để chỉnh sửa, nhưng tranh cãi tiếp tục vì vấn đề tính không xác định
- Một số người cho rằng LLM không mang tính xác định nên không phù hợp với reproducible build
- Những người khác phản bác rằng có thể tái lập nếu giữ nguyên seed của PRNG và cùng môi trường
- Cuộc thảo luận mở rộng sang các chi tiết kỹ thuật như determinism, reproducibility, tính bất đồng bộ của phép tính GPU
Kết luận: Debian tạm hoãn quyết định
- Nội bộ Debian hiện vẫn chưa đạt được đồng thuận ngay cả về định nghĩa của đóng góp do AI tạo ra
- Nhiều người cho rằng đây chưa phải thời điểm để bỏ phiếu nghị quyết, và nên tiếp tục thảo luận ở cấp độ mailing list
- Nussbaum cho biết “cho phép AI nhưng có các hàng rào bảo vệ” có lẽ là phương án thỏa hiệp thực tế
- Ở thời điểm hiện tại, việc đánh giá theo từng trường hợp dựa trên chính sách hiện có vẫn được duy trì, còn tiêu chí xử lý mô hình AI, mã LLM và các đóng góp do AI tạo ra vẫn chưa được xác định
- Trước những thay đổi kỹ thuật phức tạp và nhiều ý kiến khác nhau, giữ nguyên hiện trạng được xem là lựa chọn thực tế nhất
1 bình luận
Ý kiến trên Hacker News
Tôi đã lập trình cả đời, nhưng sau khi bị chấn thương cổ tay khiến gần như không thể gõ phím, nhờ LLM, tính năng tự động hoàn thành bằng AI và phát triển dựa trên agent mà tôi lại có thể tạo ra mã chất lượng cao
Ngay cả ảo giác (hallucination) của AI đôi khi cũng giúp tôi tinh chỉnh prompt và làm rõ ý định hơn
Xét về khả năng tiếp cận, AI là công cụ thiết yếu với tôi, và tôi nghĩ điều quan trọng không phải là “cái tốt có bù được cái xấu không” mà là thái độ chấp nhận nó như một phần tích hợp của hệ sinh thái
Một số dự án đang ngập trong PR chất lượng thấp, và nhiều người đóng góp dường như chỉ muốn làm đầy hồ sơ GitHub của mình
Cuối cùng, điều quan trọng là họ có đóng góp với thiện chí (good faith) hay không, và dự án cần làm rõ phạm vi chấp nhận điều đó
Làm vậy sẽ giảm mệt mỏi khi review, và tôi có thể tập trung kiểm tra những phần khác với dự kiến
Giờ thì tôi gần như không muốn làm việc ở công ty nào chặn những tính năng như vậy nữa
Khía cạnh khả năng tiếp cận là cực kỳ quan trọng, nhưng vấn đề bản quyền và trách nhiệm vẫn rất phức tạp
Tôi nghĩ review PR (pull request) rốt cuộc là vấn đề niềm tin. Tức là tin rằng người gửi đã làm hết sức mình
Cốt lõi không phải là có dùng AI hay không, mà là có sử dụng nó một cách có trách nhiệm hay không
Nhiều tài khoản giả có thể là cùng một kẻ tấn công, và mã do LLM tạo ra nhìn qua với chính LLM thì có vẻ ổn, nên việc xác minh còn khó hơn
Rốt cuộc, chúng ta đang ở trong tình huống mà đánh giá PR còn khó hơn tạo ra nó
Tranh luận về chất lượng đóng góp từ AI nghe khá kỳ lạ. Chất lượng vốn dĩ luôn là trách nhiệm của người nộp
Việc dùng AI không miễn trừ trách nhiệm đó, và ngược lại chính sách hạn chế dùng AI có thể chỉ làm hại những người đóng góp thiện chí
Tôi đang duy trì một fork 300 commit bằng AI, nhưng vẫn có thể xem xét và giải thích từng dòng
Cuối cùng, cốt lõi là chất lượng tham gia, chứ không phải loại công cụ
Về lâu dài, nếu AI tiếp tục phát triển thì có lẽ sẽ rất khó phân biệt sản phẩm của con người và AI
Cuối cùng, nếu nó đạt mức “đủ tốt” để trông như do con người tạo ra, tôi tự hỏi khi đó mọi chuyện sẽ đi đến đâu
Hiện tại đa số PR do AI tạo vẫn chất lượng thấp, nhưng ngay cả khi chất lượng tăng lên thì vẫn có thể từ chối vì lý do pháp lý hoặc ý thức hệ
Các lớp trừu tượng bị chia quá nhỏ hoặc những đợt refactor không cần thiết xuất hiện rất thường xuyên
Con người dùng AI như công cụ thì không sao, nhưng tôi cho rằng AI thay thế con người vẫn còn là chuyện xa vời
Tuy vậy, việc lạm dụng vibecoding đang làm chi phí review và bảo trì tăng vọt
Quan điểm của tôi là “nếu chạy được thì vậy là đủ”
Nếu mã đáp ứng các tiêu chí về chức năng, tài liệu, kiểm thử và tính chính xác thì do AI hay con người viết cũng không quan trọng
Điều quan trọng là làm rõ “định nghĩa của việc hoạt động” và có hệ thống review đủ năng lực
AI có thể sinh ra hàng nghìn dòng mã và tạo PR chỉ trong một lần, nhưng cuối cùng vẫn phải giới hạn ở quy mô có thể review được
Dù AI có vượt qua kiểm thử, nếu tác giả không hiểu nội dung thì vẫn rất nguy hiểm
Cần có giới hạn phạm vi công việc và lịch sử đóng góp thủ công trước đó
Chính sách của Debian rất đơn giản — “đừng để ai bị tổn thương”. Đó là một nguyên tắc tốt
Có người hỏi liệu Debian có quy định cấm nộp mã của người khác như thể là của mình hay không
Thực tế, điều đó bất hợp pháp do vi phạm bản quyền, nên dù không ghi rõ thì cũng mặc nhiên tồn tại
LLM không phải là con người, nhưng bản quyền của đoạn mã đó vẫn chưa rõ ràng
Vibecoding cho web app hay mobile app thì không sao, nhưng dùng AI cho phần mềm hạ tầng cốt lõi như kernel, compiler hay hệ điều hành thì rất nguy hiểm
Trong những lĩnh vực như vậy cần đến ngôn ngữ kiểm chứng hình thức như Ada/SPARK
Có người nói họ sợ rằng một ngày nào đó sẽ phải ngồi trên chiếc xe có hệ thống phanh do AI tạo ra
So với kiểu “nộp mã YOLO”, một bản “đã dùng AI nhưng được kiểm chứng tối đa có thể” rõ ràng dễ được chấp nhận hơn nhiều