Một bài kiểm tra gần đây về khả năng lập trình của GPT-5 đã làm bùng phát lại các cuộc thảo luận về những hạn chế cơ bản của các mô hình ngôn ngữ lớn (LLM) trong phát triển phần mềm. Khi được hỏi cách nén dữ liệu bằng zstd trong Swift trên iPhone mà không cần thư viện bên thứ ba, AI đã tự tin cung cấp code sử dụng các hàm Apple SDK không tồn tại, làm nổi bật những vấn đề dai dẳng với các giải pháp lập trình do AI tạo ra.
Vấn Đề Cốt Lõi: Câu Trả Lời Tự Tin Nhưng Sai
Bài kiểm tra cho thấy GPT-5 đã tạo ra code Swift sử dụng các hằng số COMPRESSION_ZSTD
không tồn tại trong framework Compression của Apple. Apple chưa bao giờ hỗ trợ nén zstd trong các SDK chính thức của họ, khiến câu trả lời tự tin của AI hoàn toàn không thể sử dụng được. Loại lỗi này đặc biệt có vấn đề vì các nhà phát triển có thể dành hàng giờ để cố gắng triển khai code mà không bao giờ có thể hoạt động.
Điều khiến vấn đề này đáng lo ngại hơn là mức độ tự tin của AI. Mô hình đã trình bày giải pháp không chính xác với sự chắc chắn, thậm chí còn tuyên bố tương thích với iOS 16+. Cách trình bày tự tin này có thể đánh lừa các nhà phát triển, đặc biệt là những người ít quen thuộc với các API cụ thể đang được thảo luận.
Hỗ trợ Framework Nén của Apple iOS
Các thuật toán được hỗ trợ chính thức:
- LZFSE (thuật toán riêng của Apple)
- LZ4 (nén nhanh)
- zlib/deflate (tương thích rộng rãi)
- LZMA (tỷ lệ nén cao)
Không được hỗ trợ:
- Zstandard (zstd) - yêu cầu thư viện bên thứ ba
Cộng Đồng Chia Rẽ Về Giá Trị Và Hạn Chế Của LLM
Cộng đồng lập trình vẫn chia rẽ về cách diễn giải những thất bại này. Một số nhà phát triển cho rằng LLM là những công cụ có lỗi cơ bản chỉ tạo ra các phản hồi có khả năng thống kê cao hơn là những phản hồi đúng về mặt sự thật. Họ chỉ ra rằng không giống như con người, những mô hình này không thể nói tôi không biết khi đối mặt với những khoảng trống kiến thức.
Tuy nhiên, các thành viên khác trong cộng đồng vẫn duy trì rằng LLM vẫn có giá trị mặc dù có những khiếm khuyết. Họ đề xuất coi các trợ lý AI như những thực tập sinh quá tự tin cần được giám sát và kiểm tra sự thật. Nhiều nhà phát triển có kinh nghiệm báo cáo về những cải thiện năng suất đáng kể khi sử dụng LLM để tạo code, miễn là họ xác minh kết quả đầu ra.
Việc kiểm tra thường nhanh hơn việc viết từ đầu nên điều này vẫn có giá trị kỳ vọng dương
Thực Tế Kỹ Thuật Đằng Sau Các Ảo Tưởng
Cuộc thảo luận cũng đã làm nổi bật những phân biệt kỹ thuật quan trọng về cách LLM thực sự hoạt động. Không giống như lý luận của con người, những mô hình này tạo ra các phản hồi dựa trên các mẫu thống kê trong dữ liệu huấn luyện của chúng thay vì hiểu biết logic. Khi được hỏi về nén zstd, AI có thể đã kết hợp kiến thức của nó về các hằng số nén hiện có với tên thuật toán được yêu cầu, tạo ra code hợp lý nhưng không chính xác.
Thú vị là, khi cùng một câu hỏi được đặt cho các phiên bản hoặc cấu hình khác nhau của GPT-5, một số đã xác định chính xác rằng nén zstd không có sẵn trong các framework của Apple. Sự không nhất quán này cho thấy rằng khả năng lý luận của mô hình có thể phụ thuộc rất nhiều vào cách các câu hỏi được đóng khung và những con đường lý luận nào được kích hoạt.
Kết Quả So Sánh Kiểm Tra GPT-5
Phản Hồi Không Nhất Quán Với Cùng Một Truy Vấn:
- Phản Hồi Tiêu Chuẩn: Cung cấp mã code sai sử dụng hằng số
COMPRESSION_ZSTD
không tồn tại - Phản Hồi Mô Hình Suy Luận: Xác định chính xác rằng "bạn không thể" sử dụng zstd mà không có các phụ thuộc bên thứ ba
- Thời Gian Phản Hồi: Tiêu chuẩn (tức thì) so với Suy luận (25 giây)
Điểm Khác Biệt Chính: Mô hình suy luận có vẻ như có khả năng thừa nhận những hạn chế và cung cấp thông tin kỹ thuật chính xác hơn.
Các Giải Pháp Và Cách Khắc Phục Đang Nổi Lên
Cộng đồng đã đề xuất một số cách tiếp cận để giảm thiểu những vấn đề này. Một số nhà phát triển ủng hộ việc sử dụng các trợ lý lập trình AI có thể biên dịch và kiểm tra code theo thời gian thực, cho phép họ phát hiện lỗi ngay lập tức. Những người khác đề xuất coi kết quả đầu ra của LLM như một điểm khởi đầu luôn cần xác minh thay vì một giải pháp cuối cùng.
Những người dùng nâng cao hơn khuyến nghị các cách tiếp cận lặp đi lặp lại, trong đó các nhà phát triển dán các lỗi biên dịch trở lại cho AI, cho phép nó sửa chữa các sai lầm thông qua các vòng phản hồi. Phương pháp này có thể giúp khắc phục các ảo tưởng ban đầu trong khi vẫn hưởng lợi từ khả năng tạo code của AI.
Cuộc tranh luận cuối cùng phản ánh những câu hỏi rộng hơn về cách tích hợp hiệu quả các công cụ AI vào quy trình phát triển phần mềm chuyên nghiệp trong khi vẫn duy trì chất lượng và độ tin cậy của code.
Tham khảo: Yet another LLM rant