Martin Fowler , một chuyên gia tư vấn phát triển phần mềm nổi tiếng, gần đây đã gây ra cuộc tranh luận sôi nổi trong cộng đồng lập trình khi so sánh các Mô hình Ngôn ngữ Lớn (LLM) với sự chuyển đổi mang tính cách mạng từ ngôn ngữ assembly sang các ngôn ngữ lập trình bậc cao. Lập luận của ông tập trung vào ý tưởng rằng LLM không chỉ đại diện cho một mức độ trừu tượng mới, mà còn là một cách tiếp cận hoàn toàn khác đối với lập trình, đưa các yếu tố phi xác định vào một lĩnh vực truyền thống vốn mang tính xác định.
Cuộc thảo luận đã bộc lộ sự chia rẽ sâu sắc trong cộng đồng nhà phát triển về tác động thực sự và giá trị của các công cụ lập trình hỗ trợ bởi AI.
Sự hoài nghi của cộng đồng về các tuyên bố mang tính cách mạng
Nhiều nhà phát triển đang phản đối việc Fowler mô tả LLM như một sự thay đổi mô hình cơ bản. Những người chỉ trích cho rằng việc đưa ra lời nhắc cho một hệ thống AI về cơ bản khác với lập trình truyền thống và không nên được coi là cùng một hoạt động. Họ đặt câu hỏi tại sao các đầu ra phi xác định lại nên thay thế hành vi đáng tin cậy, có thể dự đoán được - điều đã làm cho máy tính trở nên có giá trị trong tự động hóa.
Một số thành viên cộng đồng bày tỏ sự thất vọng với những gì họ coi là sự truyền giáo sớm từ các chuyên gia tư vấn thừa nhận có kinh nghiệm thực tế hạn chế với công nghệ này. Sự hoài nghi mở rộng đến những lo ngại về việc liệu LLM có thực sự giải quyết các vấn đề khó khăn hơn hay chỉ đơn giản xử lý các tác vụ quen thuộc nhanh hơn.
Quan điểm của cộng đồng về tác động của lập trình LLM:
- Những người hoài nghi: Xem việc prompting như một thứ hoàn toàn khác biệt so với lập trình, đặt câu hỏi về việc thay thế các hệ thống xác định
- Những người thực dụng: Báo cáo về việc tăng năng suất nhưng nhấn mạnh nhu cầu về việc kiểm thử toàn diện
- Những người tiên phong: Xây dựng các ứng dụng dựa trên LLM trong khi quản lý các thách thức về tính không xác định
- Người dùng doanh nghiệp: Thường cảm thấy thất vọng bởi hành vi không thể dự đoán được so với các hệ thống dựa trên quy tắc truyền thống
Thách thức phi xác định trong thực tế
Các nhà phát triển đang tích cực xây dựng các ứng dụng dựa trên LLM báo cáo những thách thức thực tế đáng kể với bản chất phi xác định của các hệ thống này. Những thay đổi nhỏ đối với lời nhắc có thể tạo ra kết quả hoàn toàn khác nhau, khiến việc dự đoán kết quả trở nên khó khăn và tạo ra rào cản cho việc áp dụng doanh nghiệp chính thống.
Thực tế là những thay đổi dường như không đáng kể đối với lời nhắc có thể mang lại kết quả hoàn toàn khác nhau, và những kết quả mới kỳ lạ có tất cả những tác động downstream không thể dự đoán này.
Tính không thể dự đoán này tương phản rõ rệt với lập trình truyền thống, nơi cùng một đoạn mã tạo ra kết quả giống hệt nhau mỗi lần chạy. Thách thức trở nên phức tạp hơn khi xử lý các vấn đề kỹ thuật như giới hạn cửa sổ ngữ cảnh, mà các dịch vụ AI khác nhau xử lý không nhất quán - một số báo lỗi trong khi những dịch vụ khác âm thầm cắt bớt nội dung.
Những Thách Thức Kỹ Thuật Chính với LLM trong Lập Trình:
- Đầu ra không xác định từ các prompt giống hệt nhau
- Giới hạn cửa sổ ngữ cảnh được xử lý không nhất quán giữa các nhà cung cấp
- Cài đặt temperature ảnh hưởng đến khả năng tái tạo (cần temperature=0.0 để có kết quả nhất quán)
- Lỗi thầm lặng so với lỗi rõ ràng khác nhau tùy theo cách triển khai
- Khó khăn trong việc dự đoán kết quả từ các thay đổi prompt
Tăng năng suất so với đánh đổi độ tin cậy
Cộng đồng dường như chia rẽ về việc liệu LLM có đại diện cho một sự đánh đổi đáng giá giữa tốc độ và độ tin cậy hay không. Nhiều nhà phát triển báo cáo tăng năng suất đáng kể khi sử dụng các công cụ AI để tạo mã, đặc biệt là cho các tác vụ thường xuyên hoặc khi làm việc trong các lĩnh vực không quen thuộc. Tuy nhiên, họ cũng lưu ý việc dành thêm thời gian để gỡ lỗi các vấn đề tinh vi có thể không xảy ra với mã viết tay.
Cuộc tranh luận thường tập trung vào việc những loại vấn đề nào phù hợp với các giải pháp phi xác định. Một số cho rằng các trường hợp biên nhất định yêu cầu quyết định dựa trên lẽ thường có thể được hưởng lợi từ việc AI xử lý, trong khi những người khác lo lắng về rủi ro của hành vi không thể dự đoán trong các hệ thống sản xuất.
Mối quan ngại về kiểm thử và đảm bảo chất lượng
Một chủ đề lặp lại trong cuộc thảo luận liên quan đến cách các thực hành chất lượng phần mềm truyền thống áp dụng cho mã do AI tạo ra. Các nhà phát triển nhấn mạnh rằng các thực hành lập trình phòng thủ tương tự được sử dụng để phát hiện lỗi của con người - kiểm thử toàn diện và hệ thống kiểu - cũng giúp phát hiện các lỗi do AI tạo ra.
Tuy nhiên, thách thức kiểm thử trở nên phức tạp hơn khi bản thân hệ thống AI là một phần của logic ứng dụng, không chỉ là một công cụ phát triển. Đảm bảo hành vi nhất quán trên các phiên bản mô hình khác nhau, điểm cuối API và cài đặt cấu hình đòi hỏi các cách tiếp cận mới đối với đảm bảo chất lượng.
Kết luận
Trong khi cộng đồng lập trình vẫn chia rẽ về việc liệu LLM có đại diện cho một sự thay đổi mang tính cách mạng hay chỉ đơn giản là một công cụ hữu ích khác, các thách thức và lợi ích thực tế đang trở nên rõ ràng hơn thông qua kinh nghiệm thực tế. Công nghệ này dường như thành công nhất khi được coi như một công cụ tăng cường năng suất thay vì thay thế cho các cách tiếp cận lập trình truyền thống, với sự chú ý cẩn thận đến việc kiểm thử và kiểm soát chất lượng. Khi nhiều nhà phát triển có được kinh nghiệm thực tế với các công cụ này, ngành công nghiệp có thể sẽ phát triển các thực hành tốt hơn để quản lý tính phi xác định vốn có trong khi tối đa hóa lợi ích năng suất.
Tham khảo: LLMs bring new nature of abstraction