2023-11-20 bởi timqian
Nói thì dễ, hãy xem code trước: github.com/timqian/letcode.ai và video chạy thử. Gần đây, tại công ty của tôi có một khách hàng quan trọng với yêu cầu khẩn cấp. Tôi cần viết một hàm phức tạp logic và hoàn thành tốt nhất trong vòng một ngày. Dù tôi đã được hỗ trợ bởi GPT-4 và GitHub Copilot, tôi vẫn cảm thấy chút áp lực. Thông thường, cách tôi viết mã là như sau:
- Viết comment để Copilot/GPT-4 thực hiện hoặc bổ sung hàm/logic này.
- Nếu không hiệu quả, tôi sẽ sử dụng GPT-4 theo hình thức hỏi đáp chi tiết hơn và yêu cầu tối ưu hóa câu trả lời qua nhiều lần.
Tuy nhiên, khi gặp phải hàm logic phức tạp, cách làm này dường như không còn hiệu quả. Tôi luôn không đạt được kết quả như mong muốn và bản thân mình cũng không thể viết nhanh bằng tay. Đột nhiên, tôi nghĩ ra một ý tưởng. Có lẽ nếu cung cấp thêm thông tin về hàm này cho GPT-4, đặc biệt là các ví dụ đầu vào/đầu ra, nó sẽ viết tốt hơn. Quả thật, sau khi tôi cung cấp các trường hợp kiểm thử, GPT-4 đã viết ra mã thỏa mãn yêu cầu của tôi. Chỉ có một trường hợp kiểm thử chưa vượt qua. Khi tôi cung cấp thông báo lỗi, GPT-4 đã sửa chữa 12 cổng game đổi thưởng uy tín và cuối cùng hàm hoạt động hoàn hảo. Mã mà nó tạo ra thật sự gọn gàng và thanh lịch.
[Phát triển]
Tôi bắt đầu liên tưởng đến các bài toán trên LeetCode. Các bài tập này thường được tổ chức rõ ràng với mô tả chi tiết, ví dụ minh họa và môi trường kiểm thử sẵn sàng. Vậy nếu sử dụng GPT-4, cộng với sự hỗ trợ nhỏ từ tôi (giúp nó lấy đề bài, nhấp kiểm tra và nhận phản hồi), liệu nó có thể giải quyết các bài toán này một cách hiệu quả và đẹp mắt không? Nghĩ là s6666 đăng nhập làm!
]( “Thực hành”) Thực hành
[Giai đoạn đầu]
Tôi biết Puppeteer có thể giúp thao tác trên trình duyệt, nhưng tôi không quá quen thuộc với API của nó. Tuy nhiên, điều đó không thành vấn đề vì với sự hỗ trợ của GPT-4, tôi nhanh chóng viết ra phiên bản đầu tiên của mã. Lôgic khá đơn giản:
- Lấy danh sách bài toán (Cảm ơn!)
- Với mỗi bài toán: 1. Lấy mô tả 2. Lấy định dạng hàm 3. Cung cấp thông tin trên cho GPT-4 4. GPT-4 sinh ra đáp án 5. Nhập đáp án vào ô trả lời 6. Nhấn nút nộp
Trong quá trình này, tôi gặp một số khó khăn về chi tiết kỹ thuật (chẳng hạn, để ngăn chặn việc máy tự động nộp bài, trình soạn thảo mã trên LeetCode không thể thiết lập nội dung trực tiếp mà cần phải mô phỏng việc nhập thủ công). Nhưng tất cả đều được giải quyết nhờ sự hỗ trợ từ GPT-4. Chỉ với cách làm đơn giản này, tỷ lệ thành công của GPT-4 đạt khoảng 68% bj88 đá gà (100/145). Bạn có thể xem các câu trả lời nó nộp tại đây.
]( “Nâng cấp, Agent?”) Nâng cấp, Agent?
Đối với những bài toán không giải được ngay từ lần đầu, tôi giúp GPT-4 hiểu nguyên nhân thất bại và yêu cầu nó sửa đổi mã. Nó dễ dàng khắc phục các lỗi trong mã cũ và thành công ở lần nộp thứ hai. Mặc dù tôi chưa viết mã để tự động hóa phần này, bạn có thể xem lại các cuộc trò chuyện xử lý tại đây: Liên kết tương ứng trên LeetCode.
Việc triển khai phần này bằng mã không hề khó. Nếu áp dụng cách này, tỷ lệ thành công có thể vượt quá 80%. Những ai hứng thú có thể thử nghiệm dựa trên mã hiện tại của tôi tại: github.com/timqian/letcode.ai.
[Nhận xét]
Nếu tôi tự làm các bài toán trên LeetCode, có lẽ tôi mất cả tháng để hoàn thành 100 bài. Nhưng với sự hỗ trợ của LLM (Mô hình ngôn ngữ lớn), thời gian này đã giảm xuống chỉ còn vài giờ. Hiệu suất tăng lên đáng kinh ngạc, đạt mức gấp khoảng 1000 lần (2 30 24).
Tôi tin rằng qua trải nghiệm nhỏ này, tôi lại nhìn thấy tiềm năng 88king Vin to lớn của AI. Nó có khả năng nâng cao hiệu suất lao động trí óc của con người lên gấp trăm nghìn lần.