Thử nghiệm với trí tuệ nhân tạo để cải thiện mã BIND 9 và làm lại Next.js.

Ondřej Surý, Giám đốc Kỹ thuật DNS tại ISC và cựu nhà sáng lập CZ.NIC Labs, nhà phát triển máy chủ DNS Knot, đã tóm tắt kết quả các thí nghiệm sử dụng mô hình ngôn ngữ lớn để phân tích, sửa lỗi và hiện đại hóa mã nguồn máy chủ DNS BIND 9, tạo mẫu các dự án mới và chuẩn bị tài liệu đào tạo cho sinh viên. Kết luận từ việc sử dụng AI cho thấy mô hình ngôn ngữ lớn rất phù hợp cho việc tạo mẫu nhanh, hiểu mã nguồn không quen thuộc và tự động hóa các tác vụ đơn giản, thường xuyên. Tuy nhiên, khi được sử dụng cho các vấn đề lớn hơn, hiệu quả tiết kiệm thời gian của chúng còn gây tranh cãi, vì một lượng thời gian đáng kể được dành cho việc xác định vấn đề, xem xét và xác nhận kết quả, và quá trình tinh chỉnh tiếp theo.

Trong thí nghiệm đầu tiên, trợ lý AI Claude Code được giao nhiệm vụ phát hiện các vấn đề trong mã nguồn máy chủ DNS BIND 9, tập trung vào các vấn đề bảo mật và hiện đại hóa mã. Không có bản sửa lỗi nào được chấp nhận vào mã nguồn, vì Claude tạo ra mã về mặt kỹ thuật là đúng nhưng thực tế lại vô dụng. Ví dụ, các định danh dành riêng và khả năng tràn số nguyên, được trình biên dịch ngăn chặn và không cần sửa chữa, lại được ghi nhận là vấn đề. Thí nghiệm này được coi là lãng phí thời gian.

Trong thí nghiệm thứ hai, Ondřej yêu cầu Claude viết một hệ thống đo từ xa tích hợp với nhiều gói phần mềm khác nhau và giảm thiểu rò rỉ siêu dữ liệu. Claude Code đã chuẩn bị các nguyên mẫu của máy khách và người phục vụNhưng lại thiếu sự hiểu biết đúng đắn về môi trường và các vấn đề phát sinh trong quá trình thử nghiệm. Google Gemini và ChatGPT cũng được sử dụng để thử nghiệm, và mỗi mô hình AI đều tìm ra lỗi trong hoạt động của các mô hình khác.

Phương pháp này tỏ ra phù hợp cho việc tạo mẫu nhanh, nhưng Ondřej lưu ý rằng trong quá trình làm việc, anh cảm thấy mình giống như một thư ký cho một ông chủ robot. Ban đầu, việc tạo mẫu nhanh chóng rất đáng khích lệ, nhưng cuối cùng, toàn bộ quá trình phát triển với AI lại mất nhiều thời gian hơn so với việc tự viết mã từ đầu. Một lượng thời gian đáng kể đã được dành để phân tích giải pháp do AI đề xuất, kiểm tra các thay đổi không cần thiết và chỉnh sửa lại – mẫu thử nghiệm phải được viết lại vì chất lượng mã sau khi sử dụng AI ở mức trung bình và bao gồm rất nhiều cấu trúc lặp lại.

Thí nghiệm thứ ba liên quan đến việc tạo ra một bộ cân bằng tải trong Rust bằng cách sử dụng các gói thư viện Domain và Tokio. Claude Code đã tạo được nguyên mẫu hoạt động theo yêu cầu, nhưng Ondřej không am hiểu Rust và các thư viện liên quan đủ để đánh giá chất lượng công việc.

Thí nghiệm thứ tư liên quan đến việc sử dụng Google Gemini để chuẩn bị tài liệu hỗ trợ, bài kiểm tra và câu hỏi cho một khóa học mà Ondřej giảng dạy tại trường đại học. Thí nghiệm này được đánh giá là thành công nhất, mặc dù không phải không có vấn đề: AI đã tạo ra một từ tiếng Séc không tồn tại cho một thuật ngữ mật mã học. Cũng cần lưu ý là số lượng lớn bài luận của sinh viên được gửi đến, được tạo ra bởi các mô hình ngôn ngữ lớn, đã phải được trả lại để sửa đổi do không phù hợp với tiêu chuẩn của trường đại học và trích dẫn các nguồn không chính xác.

Một thử nghiệm khác do Giám đốc Kỹ thuật của Cloudflare thực hiện cũng đáng chú ý. Sử dụng mô hình Claude Code, sau khoảng một tuần và 1100 đô la tiền token, họ đã phát triển được một phương thức triển khai thay thế cho API của framework Next.js, được triển khai dưới dạng plugin cho bộ công cụ Vite. Dự án, có tên là vinext, được công bố trên GitHub. Phương thức triển khai mới này nhanh hơn gấp bốn lần so với việc xây dựng Next.js bằng Turbopack và tạo ra các gói frontend nhỏ hơn 57%.

Dự án này triển khai 94% trong số mười sáu API cốt lõi của Next.js và có thể được sử dụng như một giải pháp thay thế minh bạch cho Next.js và được triển khai trên nền tảng Cloudflare Workers mà không cần các lớp bổ sung như OpenNext hoặc bị ràng buộc với Node.js. Mục tiêu chính của Vinext là cho phép sử dụng API Next.js trên các nền tảng khác ngoài Vercel, mà không cần triển khai máy chủ chuyên dụng. Hiện tại, chỉ hỗ trợ Cloudflare Workers, với một nguyên mẫu dành cho Vercel. Việc hỗ trợ các nền tảng điện toán phi máy chủ khác tương thích với Vinext, bao gồm Netlify và AWS Lambda, dự kiến ​​sẽ được bổ sung trong tương lai.

Nguồn: opennet.ru

Thêm một lời nhận xét