Reflexion: agent học bằng phản hồi lời nói thay vì tinh chỉnh trọng số
“Large language models (LLMs) have been increasingly used to interact with external environments (e.g., games, compilers, APIs) as goal-driven agents.”
Agent làm sai rồi: bài học giữ lại bằng lời, không bằng huấn luyện lại
Mở
Mỗi lần thử sai trong môi trường thật đều tốn tiền gọi model, nhưng với phần lớn agent hiện nay, lần thử thứ hai không thông minh hơn lần thử đầu: kinh nghiệm của lần trước mất ngay khi phiên làm việc kết thúc. Cách truyền thống của học tăng cường là thu thập thêm mẫu huấn luyện và tinh chỉnh trọng số (fine-tune), quá trình vừa chậm vừa tốn kém, và không phải đội nào cũng có dữ liệu hay hạ tầng tính toán để làm. Câu hỏi thực tế với người chạy agent trên máy chủ riêng là: làm sao để mỗi lần thử để lại bài học, mà không phải đụng vào model?
Paper này làm gì
Reflexion để agent suy ngẫm bằng lời sau mỗi lần thử: nó nhận tín hiệu phản hồi, có thể là giá trị dạng số hoặc nhận xét dạng câu chữ, rồi tự viết lại phần suy ngẫm của mình và cất vào bộ nhớ phản xạ (episodic memory buffer). Ở lần thử kế tiếp, phần ghi chú đó được mang ra dùng để ra quyết định tốt hơn, trong khi trọng số model hoàn toàn không đổi. Framework này linh hoạt ở nguồn phản hồi: nhận từ bên ngoài hoặc do chính agent tự mô phỏng, và nhận cả giá trị dạng số lẫn ngôn ngữ tự do. Tác giả thử nó trên nhiệm vụ ra quyết định tuần tự, viết code, và suy luận ngôn ngữ, đồng thời chạy thêm phần ablation để xem từng loại phản hồi ảnh hưởng thế nào tới kết quả.
Phát hiện chính
-
Reflexion củng cố agent bằng phản hồi dạng ngôn ngữ thay vì cập nhật trọng số: mỗi lần thử, agent tự nhận xét lại bằng câu chữ thay vì chờ một đợt huấn luyện mới, nên cải thiện xảy ra ngay trong lúc đang chạy. (We propose Reflexion, a novel framework to reinforce language agents not by updating weights, but instead through linguistic feedback.)
-
Phần suy ngẫm được giữ trong bộ nhớ episodic và mang ra dùng ở các lần thử sau, nên kinh nghiệm của lần thất bại trước trở thành ngữ cảnh cho lần kế tiếp thay vì biến mất cùng phiên làm việc. (maintain their own reflective text in an episodic memory buffer to induce better decision-making in subsequent trials)
-
Trên benchmark viết code HumanEval, Reflexion đạt 91% pass@1, cao hơn mức 80% của GPT-4 lúc bấy giờ; con số đó đến từ phản xạ bằng lời, không đến từ việc tinh chỉnh model. (Reflexion achieves a 91% pass@1 accuracy on the HumanEval coding benchmark, surpassing the previous state-of-the-art GPT-4 that achieves 80%)
Caveat
Tác giả không nêu hạn chế trong abstract. Phần tóm tắt nêu kết quả và nói đã chạy ablation cùng phân tích, nhưng không cho biết Reflexion kém hiệu quả ở loại tác vụ nào, phản hồi do agent tự mô phỏng có đủ thay cho phản hồi thật hay không, hay phần bộ nhớ phản xạ phình to thì xử lý ra sao. Muốn biết những ranh giới đó, người đọc phải xem phần nội dung đầy đủ của paper thay vì dừng ở phần tóm tắt.
Áp vào 5ac thế nào
Bộ nhớ phản xạ của Reflexion tương ứng với Gbrain và memory của Hermes: agent ghi lại bài học giữa các lần thử mà không cần fine-tune, và lần chạy sau đọc lại phần ghi đó. Trên Kanban, một card thất bại được comment rõ nguyên nhân rồi retry chính là một reflection loop thu nhỏ; comment đó chính là phản hồi bằng lời mà Reflexion nói tới. Skill của Hermes đi theo cùng logic: khi một kỹ năng được patch vào sau khi có bằng chứng nó hiệu quả, mọi lần chạy kế tiếp đã mang theo bài học mà không đổi model. Vì toàn bộ cơ chế nằm ở layer harness, 5ac đổi model ở tầng model routing mà không mất đi những gì đã tích lũy.
Nguồn
- Reflexion: Language Agents with Verbal Reinforcement Learning — https://arxiv.org/abs/2303.11366