Sáu mẹo để viết mã tốt hơn với ChatGPT

Mặc dù mạnh mẽ, nhưng các công cụ này không thông minh như vẻ ngoài của chúng. Sử dụng chúng một cách thận trọng, các nhà khoa học máy tính cảnh báo.
Sáu mẹo để viết mã tốt hơn với ChatGPT
Trừ khi bạn sống trong rừng, nếu không bạn sẽ biết về ChatGPT. Chatbot, được điều khiển bởi trí tuệ nhân tạo (AI) và được tạo bởi OpenAI ở San Francisco, California, trả lời giống như con người khi người dùng đặt các câu hỏi (được gọi là lời nhắc) về hầu hết mọi chủ đề. ChatGPT được đào tạo trên một kho văn bản lớn và khả năng tham gia vào cuộc trò chuyện dựa trên văn bản có nghĩa là người dùng có thể tinh chỉnh phản hồi. Ngay cả khi những câu trả lời ban đầu của nó rất mơ hồ, thì cuối cùng nó thường tạo ra kết quả chính xác, bao gồm cả mã nguồn phần mềm.
Các nhà nghiên cứu có thể sử dụng ChatGPT để gỡ lỗi và chú thích mã, dịch phần mềm từ ngôn ngữ lập trình này sang ngôn ngữ lập trình khác và thực hiện các hoạt động soạn sẵn, thuộc lòng, chẳng hạn như vẽ đồ thị dữ liệu. Chương trình có thể giải quyết 76% trong số 184 nhiệm vụ trong khóa học tin sinh học nhập môn, chẳng hạn như làm việc với bảng tính, sau một lần thử và 97% trong vòng bảy lần thử 1.
Đó là tin tốt cho các nhà nghiên cứu, những người cảm thấy không thoải mái khi viết mã hoặc thiếu ngân sách để thuê một lập trình viên fulltime, chatbot có thể là một công cụ dân chủ hóa.
Tuy nhiên, chatbot không thông minh. Chúng được gọi là vẹt ngẫu nhiên, lặp lại ngẫu nhiên những gì chúng đã thấy trước đây. Amy Ko, một nhà khoa học máy tính tại Đại học Washington ở Seattle, viện dẫn một chương trình đố vui lâu đời của Hoa Kỳ để mô tả những hạn chế của công cụ này: “ChatGPT giống như một cựu thí sinh Jeopardy tuyệt vọng đã ngừng theo dõi nhạc pop năm 2021 nhưng thực sự muốn quay trở lại trò chơi và cũng là một người máy không có ý thức, quyền tự quyết, đạo đức, nhận thức thể hiện hoặc đời sống nội tâm đầy cảm xúc. (Dữ liệu được sử dụng để đào tạo ChatGPT chỉ kéo dài đến năm 2021).
Nói tóm lại, ChatGPT và các công cụ liên quan dựa trên các mô hình ngôn ngữ lớn (LLM), bao gồm Microsoft Bing và GitHub Copilot, là những công cụ hỗ trợ lập trình cực kỳ mạnh mẽ nhưng phải được sử dụng một cách thận trọng. Dưới đây là sáu cách để làm như vậy.

Chọn các ứng dụng​

Chatbot hoạt động tốt nhất cho các tác vụ lập trình nhỏ, rời rạc, chẳng hạn như tải dữ liệu, thực hiện các thao tác dữ liệu cơ bản và tạo trực quan hóa và trang web. Nhưng điều đó không giống với công nghệ phần mềm. Neil Ernst, một nhà khoa học máy tính tại Đại học Victoria ở Canada, nói: “Công nghệ phần mềm không chỉ đơn thuần là giải một câu đố lập trình. “Có suy nghĩ về các khuôn khổ thử nghiệm, viết mã có thể bảo trì và hiểu được sự đánh đổi liên quan đến việc xây dựng một hệ thống” - chẳng hạn như giữa tốc độ và khả năng đọc.
Điều đó khiến họ có thể thực hiện nhiều nhiệm vụ, chẳng hạn như ghi nhớ cú pháp để tạo trực quan hóa bằng Matplotlib, một thư viện vẽ đồ thị cho ngôn ngữ lập trình Python. Theo nghĩa đó, chatbot giống như một giao diện đàm thoại của Stack Overflow, một diễn đàn hỏi đáp trực tuyến dành cho các lập trình viên.
Chatbots cũng rất giỏi trong việc giải thích tại sao mã không hoạt động. Emery Berger, một nhà khoa học máy tính tại Đại học Massachusetts Amherst, đã khai thác những khả năng đó để xây dựng một số công cụ hữu ích. Một, được gọi là cwhy, sử dụng ChatGPT để giải thích lỗi trình biên dịch trong mã được viết bằng ngôn ngữ lập trình C, C++ và Rust. Một ứng dụng khác, ChatDBG, cung cấp giao diện hội thoại để gỡ lỗi và ứng dụng thứ ba, Scalene, sử dụng AI để đề xuất tối ưu hóa mã nhằm cải thiện hiệu suất.
Chatbot thậm chí có thể dịch mã từ ngôn ngữ lập trình này sang ngôn ngữ lập trình khác. Mathieu Coppey, một nhà sinh lý học tại Viện Curie ở Paris, đang sử dụng ChatGPT để giúp anh ấy chuyển từ MATLAB, ngôn ngữ ưa thích của anh ấy, sang Python. Sử dụng Google và các diễn đàn trực tuyến, anh ấy thường cần nhiều ngày để mã Python hoạt động. “Bây giờ, tôi có thể làm điều đó trong khoảng một giờ”.

Tin tưởng, nhưng cần xác minh​

Chatbot có thể không phải lúc nào cũng biết chúng đang nói về cái gì, nhưng chúng chắc chắn nghe có vẻ như vậy. Trong một số trường hợp, AI không hiểu câu hỏi; vào những thời điểm khác, nó cung cấp một câu trả lời không chính xác. Khi mã không chạy được, những lỗi như vậy là hiển nhiên. Tuy nhiên, đôi khi, mã chạy nhưng mang lại kết quả sai.
Theo một nghiên cứu 2 do nhà ngôn ngữ học Emily Morgan tại Đại học California, Davis đồng tác giả, chatbot - giống như đoạn mã do con người viết mà chúng được đào tạo - thường tạo ra thứ mà bà gọi là “những con bọ đơn giản, ngu ngốc”. Những lỗi một dòng này, chẳng hạn như sử dụng > thay vì >= trong câu lệnh có điều kiện, rất dễ sửa nhưng khó phát hiện.
Iza Romanowska, một nhà khoa học về độ phức tạp nghiên cứu các nền văn minh cổ đại tại Viện Nghiên cứu Cao cấp Aarhus ở Đan Mạch, đã sử dụng ChatGPT để viết code bằng ngôn ngữ có tên là NetLogo. Vì có ít mã trực tuyến được viết bằng NetLogo hơn bằng ngôn ngữ Python và R, nên ChatGPT kém thông thạo hơn. Đôi khi, AI thêm mã được đề xuất bằng các chức năng không thực sự tồn tại - một hành vi đôi khi được gọi là ảo giác.
Điểm mấu chốt là không mù quáng chấp nhận những gì ChatGPT mang lại cho bạn - hãy đọc kỹ và kiểm tra. Đảm bảo rằng nó hoạt động như mong đợi trên 'các trường hợp biên' - chẳng hạn, thuật toán sắp xếp n số có bao gồm số thứ n không?

Nghĩ về sự an toàn​

Mã đầu ra Chatbots phản ánh dữ liệu đào tạo. Đó không phải lúc nào cũng là điều tốt. Giống như mã ngẫu nhiên trực tuyến dường như không đặc biệt hiệu quả hoặc mạnh mẽ, mã do chatbot tạo ra cũng vậy. Chẳng hạn, nó có thể không hoạt động tốt trên các tập dữ liệu lớn và có thể chứa các lỗ hổng bảo mật.
Brendan Dolan-Gavitt, một nhà khoa học máy tính tại Đại học New York, cho biết khi công cụ lập trình Copilot của Github ra mắt vào năm 2021, ông và nhóm của mình đã thử nghiệm nó trong 89 tình huống liên quan đến bảo mật. Một là khả năng kiểm tra các truy vấn không đúng định dạng bằng ngôn ngữ SQL có thể làm hỏng cơ sở dữ liệu - được gọi là tấn công SQL-injection 3. “Khoảng 40% thời gian, Copilot đã tạo ra mã dễ bị tấn công”. Đó là một mục tiêu di động - khi Dolan-Gavitt đưa các kịch bản đó vào một phiên bản mới hơn của LLM nền tảng ChatGPT, được gọi là GPT-4, tỷ lệ lỗi đã giảm xuống còn 5%.

Lặp đi lặp lại​

Viết mã dựa trên Chatbot, Ko nói, “không phải là một loại trải nghiệm một lần”. Đó là một cuộc trò chuyện. “Bạn viết một cái gì đó, bạn nhận lại một cái gì đó, bạn đọc nó một cách thận trọng, bạn yêu cầu thêm chi tiết, bạn yêu cầu nó sửa chữa một cái gì đó.”
Gangqing (Michael) Hu, người điều hành cơ sở cốt lõi của tin sinh học tại Đại học West Virginia ở Morgantown, đã tận dụng quy trình làm việc lặp đi lặp lại đó để phát triển một phương pháp mà những người mới bắt đầu sử dụng tin sinh học có thể sử dụng để tối ưu hóa lời nhắc của chatbot, được gọi là TỐI ƯU 4. Người dùng cung cấp lời nhắc chi tiết, kiểm tra câu trả lời và phản hồi lại chatbot để điều chỉnh phản hồi của nó. Điều đó có thể bao gồm các câu hỏi về lỗi cũng như các chỉnh sửa đối với lời nhắc.
Xijin Ge, một nhà tin sinh học tại Đại học Bang Nam Dakota ở Brookings, gợi ý nếu bạn gặp khó khăn, hãy thử điều chỉnh cài đặt. Ví dụ: cài đặt 'nhiệt độ' ChatGPT kiểm soát khả năng sáng tạo - nhiệt độ càng cao, đầu ra càng sáng tạo. “Đôi khi nó hoạt động”, Ge nói.
Nhưng không phải lúc nào cũng vậy - trong một số trường hợp, “bạn sẽ phải can thiệp và tiếp quản”, Ko nói.

Nhân hoá​

Chatbots không phải là con người, nhưng có thể hữu ích khi đối xử với chúng theo cách đó. “Hãy coi AI này như một thực tập sinh mùa hè”, Ge khuyên - một sinh viên đại học chăm chỉ và luôn muốn làm hài lòng, nhưng cũng thiếu kinh nghiệm và dễ mắc lỗi.
Paul Denny, một nhà khoa học máy tính tại Đại học Auckland, New Zealand, đề nghị tránh sự mơ hồ và chia vấn đề của bạn thành nhiều phần nhỏ hơn.
Một mẹo khác: hướng chatbot đảm nhận một vai trò, chẳng hạn như một nhà sinh vật học thông thạo Python. Chỉ định các công cụ hoặc thư viện lập trình bạn muốn sử dụng. Ko cho biết những chỉ thị như vậy có thể giúp chatbot “đi vào đúng không gian xác suất” - nghĩa là, tập trung vào văn bản có nhiều khả năng tuân theo lời nhắc nhất.
Chẳng hạn, một lời nhắc trong nghiên cứu 4 của Hu đã hỏi ChatGPT: “Hãy đóng vai trò là một nhà tin sinh học có kinh nghiệm thành thạo trong phân tích dữ liệu ChIP-Seq, bạn sẽ hỗ trợ tôi viết mã với số dòng ít nhất có thể. Đặt lại chủ đề nếu được yêu cầu. Trả lời “CÓ” nếu hiểu.”
Và, nếu có thể, hãy cung cấp mã bắt đầu, nhận xét và kết quả mong đợi. Dong Xu, một nhà khoa học máy tính tại Đại học Missouri, Columbia cho biết: “Các ví dụ thực sự có thể giúp ChatGPT nhắm mục tiêu đúng hướng.

Nắm lấy thay đổi​

Cuối cùng, LLM không ngừng phát triển và trở nên mạnh mẽ hơn. Đó là tin tốt cho các nhà nghiên cứu, mặc dù nó sẽ khiến họ phải cảnh giác. Độ dài lời nhắc đang tăng lên, cho phép phản hồi nhiều sắc thái hơn. Các công cụ mới liên tục xuất hiện. Một phần bổ trợ có tên là Trình phiên dịch mã biến ChatGPT thành một nhà phân tích dữ liệu kỹ thuật số, cho phép người dùng tải lên các bộ dữ liệu, đặt câu hỏi về dữ liệu của họ và tải xuống kết quả. Như một blogger về AI đã nói: Nó giống như một cuộc trò chuyện với dữ liệu. Vấn đề là bạn có biết cách trò chuyện không.
Bài viết gốc tại đây.

>> Dán nhãn bất kỳ nội dung do AI tạo ra để chống thông tin sai lệch

 


Đăng nhập một lần thảo luận tẹt ga
Thành viên mới đăng
Top