AI & Machine Learning
Vì sao AI lập trình vẫn cần con người, dù ngày càng giỏi?
Thông qua những tình huống làm việc với lập trình viên xuất sắc, video phân tích giới hạn của AI trong phát triển phần mềm và lý do con người vẫn cần tham gia để bổ sung yêu cầu, dữ liệu và bối cảnh còn thiếu.

Giới hạn của AI lập trình và vai trò của con người
Trong video hôm nay, tôi sẽ nói thêm một chút về những giới hạn của AI lập trình và lý do tôi cho rằng con người vẫn sẽ đóng vai trò trong quá trình phát triển phần mềm, ít nhất là trong tương lai có thể dự đoán được. Tôi nghĩ cách tốt nhất để bàn về chủ đề này là nhìn lại một số trải nghiệm mà bạn có thể gặp khi làm việc với những lập trình viên bằng xương bằng thịt như từ trước đến nay.
Khi bạn làm việc với một lập trình viên xuất sắc
Bất kỳ ai đã thực sự làm việc trong ngành phát triển phần mềm một thời gian đều có lẽ đã may mắn được làm việc với ít nhất một lập trình viên cực kỳ giỏi chuyên môn. Từ góc nhìn của đồng nghiệp hay người quản lý, làm việc với một người như vậy thực sự rất tuyệt. Bạn có thể đưa cho họ đủ loại tài liệu và chỉ dẫn thiếu sót, không chính xác. Vì rất giỏi công việc của mình, họ sẽ nhận ra tất cả lỗi và khoảng trống trong chỉ dẫn của bạn, không hỏi thêm câu nào mà cứ thế làm rồi quay lại với một dự án đã hoàn thành.
Nếu từng may mắn làm việc với một người như vậy, bạn sẽ biết đó thực sự là một trải nghiệm tuyệt vời, bởi thời gian bạn phải dành để viết những chỉ dẫn chi tiết và chính xác được giảm đi đáng kể. Phần lớn các bước xây dựng phần mềm doanh nghiệp đều liên quan đến việc viết phần mềm mới rất giống những phần mềm cũ, hoặc thực chất là viết lại phần mềm cũ. Vì thế, thay vì mất nhiều thời gian viết những chỉ dẫn cực kỳ chi tiết để nói cho kỹ sư kia biết phải làm gì, bạn chỉ cần chỉ vào một đoạn mã và nói: “Tôi muốn bạn làm cho tôi một thứ giống hệt thế này, nhưng thay đổi chỗ này hoặc chỗ kia.”
Trong tình huống như vậy, một yêu cầu khác cũng thường được đưa ra cùng lúc là viết lại toàn bộ bằng một ngôn ngữ khác. Vì lập trình viên đó quá xuất sắc, bạn không cần đưa ra bất kỳ gợi ý hay cảnh báo nào về những điều như sự khác biệt giữa các phép toán trong các ngôn ngữ. Suy cho cùng, họ rất giỏi và sẽ tự tìm ra cách xử lý.
Một điều khác mà phần lớn những người không lập trình có thể không nghĩ đến là kết quả đầu ra của một chương trình nói lên rất nhiều về những gì chương trình đó thực hiện. Bất kỳ lập trình viên có kinh nghiệm nào đang chuyển một chương trình từ ngôn ngữ này sang ngôn ngữ khác mà không để xảy ra lỗi gần như chắc chắn sẽ chạy chương trình đó và so sánh kết quả đầu ra như một phần trong quy trình của mình.
Yêu cầu càng sơ sài, khoảng trống thông tin càng lớn
Mối liên hệ với AI ở đây là: nếu từng làm việc với một người như vậy, bạn sẽ thấy theo thời gian mình ngày càng lười cung cấp yêu cầu cho lập trình viên cực kỳ giỏi này. Mỗi lần bạn nhờ họ làm điều gì, họ đều quay lại với một kết quả hoàn hảo mà không hỏi thêm câu nào. Vì vậy, một cách tự nhiên, bạn cung cấp ngày càng ít chỉ dẫn trong những prompt gửi cho họ, bởi việc đó tốn quá nhiều thời gian.
Nếu từng làm như vậy với một người thật, bạn sẽ thấy đột nhiên mình bắt đầu nhận được rất nhiều câu hỏi. Có thể bạn đưa cho vị kỹ sư tài ba này một script cũ để tính toán biên lai hay thứ gì đó tương tự, rồi họ quay lại nói rằng họ không thể khiến kết quả đầu ra khớp khi so sánh. Bạn bèn tìm hiểu kỹ và phát hiện ra có một cách tính phí cũ được áp dụng từ vài năm trước. Thực ra có một tệp chứa các ngoại lệ, nhưng bạn đã không cung cấp tệp ngoại lệ đó cho kỹ sư. Vì vậy, đương nhiên họ không thể tạo ra kết quả đúng.
AI vẫn cần người bổ sung thông tin còn thiếu
Cũng giống như với AI, vị kỹ sư tài ba này có lẽ sẽ tự nhận ra rằng họ đang thiếu một số thông tin rồi yêu cầu bạn cung cấp. Nhưng cuối cùng, bạn vẫn phải tham gia vào quy trình để phản hồi cho họ.
Bạn có thể lập luận rằng rồi đến một lúc nào đó, AI cũng sẽ tự động hóa cả quá trình phản hồi cho vị kỹ sư giống AI này. Tuy nhiên, tự động hóa quá trình thực hiện một sự can thiệp thủ công lại có phần mâu thuẫn.
Tôi chắc chắn rằng AI sẽ có thể giảm đáng kể số lần cần can thiệp thủ công. Nhưng ngay cả những lập trình viên tài ba, siêu thông minh đôi khi cũng cần được giúp đỡ để có được thông tin mà họ chưa thể tiếp cận.