PPO Là Gì?

PPO (Proximal Policy Optimization) là một thuật toán học tăng cường (Reinforcement Learning) do OpenAI phát triển vào năm 2017. Nó đóng vai trò quan trọng trong việc huấn luyện các mô hình ngôn ngữ lớn, đặc biệt là ChatGPT.
Nói một cách dễ hiểu, PPO giúp AI học cách hành động trong một môi trường sao cho đạt được phần thưởng cao nhất, đồng thời tránh những thay đổi quá mức có thể phá hỏng những gì đã học.
Tại Sao Cần PPO?
Trước khi PPO ra đời, cộng đồng AI đã thử nhiều thuật toán học tăng cường khác. Vấn đề lớn nhất mà họ gặp phải là sự không ổn định.
Một số thuật toán như DQN hay DDPG đôi khi cho kết quả rất tốt, nhưng sau đó đột nhiên sụp đổ vì model cập nhật quá nhiều trong một bước. Điều này giống như bạn đang học lái xe, thay vì từ từ cải thiện kỹ năng, bạn cố gắng thay đổi toàn bộ thói quen lái xe trong một ngày. Kết quả là bạn quên cả những gì đã biết.
PPO giải quyết vấn đề này bằng cách giới hạn mức độ thay đổi trong mỗi lần cập nhật. Thay vì cho phép model nhảy một bước quá lớn, PPO bắt nó phải đi từng bước nhỏ, đảm bảo mọi cải thiện đều ổn định và bền vững.
Cơ Chế Hoạt Động Của PPO
Điểm cốt lõi của PPO nằm ở hàm mục tiêu có giới hạn (clipped objective function). Nghe phức tạp, nhưng ý tưởng khá trực quan.
Imagine bạn đang chơi một trò chơi và tìm ra một chiến thuật mới. Chiến thuật này có vẻ tốt hơn chiến thuật cũ. Với PPO, bạn sẽ không ngay lập tức bỏ hoàn toàn chiến thuật cũ để chuyển sang cái mới. Thay vào đó, bạn chỉ áp dụng chiến thuật mới trong một phạm trù giới hạn. Nếu nó thực sự tốt hơn, bạn tiếp tục tăng dần tỷ lệ áp dụng.
Cụ thể, PPO tính算 tỷ lệ giữa chiến lược mới và chiến lược cũ, sau đó cắt (clip) tỷ lệ này trong một khoảng nhất định, thường là từ 0.8 đến 1.2. Điều này có nghĩa là chiến lược mới không được phép khác biệt quá 20% so với chiến lược cũ trong mỗi lần cập nhật.
Nếu tỷ lệ nằm trong khoảng an toàn, PPO cập nhật bình thường. Nếu tỷ lệ vượt quá giới hạn, PPO sẽ dừng lại và không cho phép thay đổi thêm. Đây chính là lý do khiến PPO vừa hiệu quả vừa ổn định.
Vai Trò Của PPO Trong Việc Huấn Luyện ChatGPT
PPO trở nên nổi tiếng nhất khi OpenAI sử dụng nó trong quá trình RLHF (Reinforcement Learning from Human Feedback) để huấn luyện ChatGPT. Quá trình này diễn ra trong ba giai đoạn chính.
Giai đoạn đầu, mô hình được huấn luyện trước (pretraining) trên lượng lớn văn bản để học ngôn ngữ. Giai đoạn hai, con người đánh giá các câu trả lời của mô hình để tạo dữ liệu huấn luyện cho một mô hình phần thưởng (reward model). Giai đoạn ba, PPO được sử dụng để tối ưu hóa mô hình dựa trên phần thưởng từ mô hình đó.
Nói cách khác, PPO chính là người thầy kiên nhẫn dạy ChatGPT cách trả lời câu hỏi một cách hữu ích, an toàn và phù hợp với mong muốn của con người. Không có PPO, ChatGPT có thể sẽ chỉ là một mô hình ngẫu nhiên nói whatever nó muốn.
PPO Khác Gì So Với Các Thuật Toán Khác?
So với TRPO (Trust Region Policy Optimization), thuật toán tiền nhiệm của nó, PPO đơn giản hơn nhiều về mặt toán học nhưng vẫn đạt hiệu năng tương đương. TRPO sử dụng một ràng buộc phức tạp dựa trên KL divergence, trong khi PPO chỉ cần một phép cắt đơn giản.
So với các thuật toán gradient thông thường như REINFORCE, PPO ổn định hơn nhiều. REINFORCE có thể cho kết quả tốt đôi lần nhưng rất dễ bị phân kỳ nếu dữ liệu nhiễu. PPO thì ngược lại, nó khá kiên nhẫn và từ từ cải thiện.
Mình từng thử chạy cả hai trên một môi trường đơn giản, và kết quả là REINFORCE thì lúc lên lúc xuống như đi tàu lượn, trong khi PPO cho đường cong học tập mượt mà hơn hẳn.
Ưu Điểm Và Nhược Điểm Của PPO
Về ưu điểm, PPO cân bằng tốt giữa hiệu năng và sự ổn định. Nó dễ triển khai hơn TRPO, ít cần điều chỉnh siêu tham số (hyperparameter) hơn so với nhiều thuật toán khác, và hoạt động tốt trên nhiều loại bài toán khác nhau, từ chơi game đến điều khiển robot.
Về nhược điểm, PPO vẫn chậm hơn so với các thuật toán off-policy như SAC (Soft Actor-Critic) trong một số trường hợp. Ngoài ra, việc chọn hệ số cắt (clip ratio) phù hợp vẫn cần thử nghiệm. Mặc định 0.2 thường hoạt động tốt, nhưng với một số bài toán, bạn có thể cần điều chỉnh.
Ngoài ra, trong bối cảnh huấn luyện LLM gần đây, PPO đang dần được so sánh với DPO (Direct Preference Optimization). DPO đơn giản hơn vì không cần huấn luyện reward model riêng biệt, nhưng PPO vẫn là lựa chọn phổ biến trong nhiều phòng nghiên cứu lớn.
Ứng Dụng Thực Tế Của PPO
Beyond ChatGPT, PPO được sử dụng rất rộng rãi. OpenAI Five, đội ngũ AI chơi Dota 2 chuyên nghiệp, cũng được huấn luyện bằng PPO. Các robot học đi bộ của công ty như Boston Dynamics hay các dự án nghiên cứu đều sử dụng PPO làm thuật toán chính.
Trong game AI, PPO là thuật toán mặc định trong hầu hết các môi trường thử nghiệm như OpenAI Gym hay DeepMind Lab. Nếu bạn muốn bắt đầu học Reinforcement Learning, PPO chính là thuật toán đầu tiên mình khuyên bạn nên tìm hiểu.
Kết Luận
PPO là một trong những thuật toán quan trọng nhất của Reinforcement Learning hiện đại. Sự đơn giản, ổn định và hiệu quả của nó đã được chứng minh qua ChatGPT và nhiều dự án AI khác. Nếu bạn muốn hiểu sâu hơn về cách AI học hỏi từ phản hồi con người, PPO là mảnh ghép không thể thiếu.
Dù tương lai có thể xuất hiện các thuật toán tốt hơn, nhưng PPO đã đặt một tiêu chuẩn vững chắc cho việc huấn luyện AI một cách an toàn và hiệu quả. Nó là minh chứng cho thấy đôi khi, sự đơn giản lại là chìa khóa của thành công.

