Gần đây, tôi đã nói chuyện với nhiều người làm việc trong lĩnh vực RL, và tôi nhận thấy một điều thú vị — mỗi khi cuộc trò chuyện chuyển sang RL Infra, nó gần như luôn xoay quanh một chủ đề: sự đồng bộ giữa đào tạo và suy diễn. Làm thế nào để giữ cho các chính sách đào tạo và suy diễn nhất quán. Làm thế nào để kiểm soát mức độ off-policy. Làm thế nào để xử lý sự khác biệt log prob sau khi giới thiệu async. Tất cả đều là những câu hỏi quan trọng, không nghi ngờ gì. Nhưng tôi ngày càng tin rằng RL Infra đang phải chịu đựng một sự phân bổ sự chú ý không hợp lý. Mượn một cách diễn đạt từ một cuộc thảo luận gần đây với một đồng nghiệp, tôi gọi đây là Hiệu ứng Thùng của RL Infra. Một cái thùng chỉ chứa được nhiều nước như thanh ngắn nhất của nó. Tốc độ và độ chính xác của một hệ thống đào tạo RL hoạt động theo cách tương tự — chúng không được xác định bởi mô-đun mà bạn đã tối ưu hóa nhiều nhất, mà bởi mô-đun mà bạn đã bỏ bê nhiều nhất. Sự đồng bộ giữa đào tạo và suy diễn có thể là thanh mà bạn đã chà nhám và đánh bóng đến hoàn hảo. Nhưng nếu độ ổn định của sandbox của bạn là một thảm họa, đường ống phần thưởng của bạn thường xuyên bị tắc nghẽn, và khả năng quan sát từ đầu đến cuối của bạn gần như không tồn tại — thì sự đồng bộ hoàn hảo có ích gì? Khả năng của hệ thống đã bị giới hạn bởi mọi liên kết yếu khác. Điều này hoàn toàn khác với cách tối ưu hóa hệ thống suy diễn hoạt động. Là một động cơ suy diễn, SGLang có một không gian chiến lược khổng lồ cho tối ưu hóa, nhưng đường ống của nó tương đối tuyến tính — xử lý yêu cầu, điền trước, giải mã. Bạn có thể cô lập các nút thắt từng mô-đun một, và sự kết nối giữa các thành phần là có thể quản lý. Đào tạo RL là một con thú hoàn toàn khác — một vòng lặp đa hệ thống phức tạp một cách kinh hoàng: việc tạo ra rollout phụ thuộc vào động cơ suy diễn, việc tính toán phần thưởng có thể phụ thuộc vào các môi trường bên ngoài, việc cập nhật chính sách phụ thuộc vào khung đào tạo, và vòng tiếp theo của các rollout phụ thuộc vào chính sách đã được cập nhật. Nếu bất kỳ liên kết nào bị hỏng, toàn bộ vòng lặp sẽ sụp đổ. Thật không may, từ những gì tôi đã thấy trong năm qua, vẫn còn nhiều điểm yếu bị đánh giá thấp nghiêm trọng: Độ tin cậy của Sandbox Đại lý. Đây có lẽ là công việc bẩn thỉu, khắc nghiệt và ít được học thuật tôn vinh nhất trong RL Infra ngày nay. RL dựa trên đại lý cần một sandbox thực thi đáng tin cậy cho các rollout — nghe có vẻ đơn giản, nhưng hóa ra lại là một cơn ác mộng. Độ ổn định của container, độ trễ khởi động lạnh, độ tin cậy của phân tách tài nguyên, quản lý trạng thái sandbox — những thứ này có vẻ không liên quan trên giấy tờ, nhưng các sản phẩm sandbox có sẵn trên thị trường thường xuyên không đạt được kỳ vọng. Việc sandbox đại lý không phải là một vấn đề thuật toán, nhưng nó trực tiếp xác định hiệu quả tạo dữ liệu của bạn, điều này lại xác định tốc độ đào tạo của bạn. Khả năng quan sát. Gỡ lỗi trước khi đào tạo tương đối đơn giản — theo dõi đường cong mất mát, kiểm tra độ lớn gradient, và bạn thường có thể xác định vấn đề. Nhưng gỡ lỗi RL yêu cầu khả năng theo dõi từ đầu đến cuối: phân phối chất lượng rollout, thống kê phần thưởng, mức độ off-policy, độ lớn cập nhật chính sách, và thậm chí là phân bổ sự khác biệt logprob (sự khác biệt đến từ phía suy diễn, hay từ độ trễ phiên bản của đào tạo async?). Thật không may, hầu hết các nhóm mà tôi đã gặp đều thực sự đang hoạt động mù quáng trên những khía cạnh này. Điều này dẫn đến một tình huống khó xử — khi kết quả đào tạo kém, bạn thậm chí không biết mô-đun nào để đổ lỗi. Nghịch lý Quy mô. Nhiều tối ưu hóa RL Infra chỉ cho thấy tác động đo lường được ở quy mô đủ lớn. Các thí nghiệm quy mô nhỏ thường không tiết lộ sự khác biệt có ý nghĩa — không phải vì tối ưu hóa là vô dụng, mà vì tiếng ồn quá cao và số bước quá thấp để tín hiệu nổi lên. Tuy nhiên, các thí nghiệm quy mô lớn lại tốn kém một cách không thể chấp nhận. Điều này tạo ra một vòng luẩn quẩn: bạn không thể chứng minh tối ưu hóa của mình hoạt động ở quy mô nhỏ, vì vậy bạn không thể đảm bảo nguồn lực cho các thí nghiệm quy mô lớn; và không có xác thực quy mô lớn, tối ưu hóa của bạn mãi mãi bị mắc kẹt ở "về lý thuyết nó nên giúp ích." Đầu tư của ngành công nghiệp vào RL Infra bị thiếu hụt nghiêm trọng so với độ phức tạp thực tế của nó. Hầu hết các nhóm coi nó như một công việc vá víu trên cơ sở hạ tầng đào tạo — lấy một khung đào tạo có sẵn, gắn một động cơ suy diễn, dán chúng lại với nhau bằng các kịch bản, và gọi đó là RL Infra. Nhưng độ phức tạp của hệ thống đào tạo RL và tiền đào tạo thậm chí không cùng một cấp độ. Các đường ống tiền đào tạo là tuyến tính, đồng nhất, và gần như không có phụ thuộc bên ngoài. Các đường ống đào tạo RL là chu kỳ, không đồng nhất, và phụ thuộc nặng nề vào các môi trường bên ngoài. Áp dụng tư duy kiến trúc của cái trước vào cái sau là đảm bảo sẽ gặp phải một bức tường ở quy mô. Khó khăn thực sự trong kỹ thuật hệ thống không phải là về việc đẩy bất kỳ mô-đun nào đến cực hạn của nó — mà là hiểu sự kết nối giữa các mô-đun và không gian thương lượng toàn cầu. Điều này đúng với các hệ thống suy diễn, và thậm chí còn đúng hơn với RL Infra, nơi các chiều kết nối lớn hơn, các vòng phản hồi dài hơn, và mật độ thông tin cho việc gỡ lỗi thấp hơn rất nhiều. Tôi muốn kết thúc với hai câu hỏi mà tôi đã suy nghĩ, và tôi rất muốn nghe ý kiến từ những người khác làm việc trong lĩnh vực này: Đâu chính xác là lợi tức biên của sự đồng bộ giữa đào tạo và suy diễn bắt đầu giảm? Khi async được giới thiệu, mức độ off-policy đã đủ lớn. Trên cơ sở đó, liệu lợi ích gia tăng từ sự đồng bộ thêm có thực sự có ROI cao hơn việc đầu tư cùng một nỗ lực kỹ thuật vào độ ổn định của sandbox, tối ưu hóa đường ống phần thưởng, hoặc cơ sở hạ tầng khả năng quan sát? Tôi có câu trả lời tạm thời của riêng mình, nhưng tôi nghĩ câu hỏi này xứng đáng được nhiều người suy nghĩ nghiêm túc — thay vì mặc định cho sự đồng bộ là ưu tiên hàng đầu chỉ vì nó là chủ đề dễ thấy nhất. Và có lý do khiến nó là chủ đề dễ thấy nhất: sự đồng bộ giữa đào tạo và suy diễn có sự hình thức toán học rõ ràng và tạo ra các ablation tinh tế — nó là một sự phù hợp tự nhiên cho các bài báo. Nhưng làm thế nào bạn viết một bài báo về độ ổn định của sandbox? Làm thế nào bạn định hình độ tin cậy của việc điều phối container như một câu chuyện học thuật? Bạn không thể, thực sự. Vì vậy, những vấn đề này bị bỏ qua tập thể. Ngay cả khi một hệ thống RL Infra đạt được sự đồng bộ giữa đào tạo và suy diễn ở mức bit, hiệu quả tổng thể vẫn có thể rất tồi tệ — vì nút thắt đã di chuyển đến nơi khác từ lâu. RL Infra có thể được tiêu chuẩn hóa đến mức nào? Các hệ thống suy diễn có các chỉ số benchmark tương đối rõ ràng — TTFT, TBT, Tốc độ thông lượng. Những chỉ số khách quan này cho phép chúng ta đánh giá rõ ràng tác động của các tối ưu hóa. Nhưng tiêu chuẩn đánh giá cho RL Infra là gì? Tốc độ thông lượng đào tạo? Hiệu quả mẫu? Thời gian đồng hồ từ đầu đến cuối? Kiến trúc tối ưu có thể thay đổi đáng kể giữa các kịch bản (tạo mã vs. đại lý vs. lý luận). Nếu chúng ta thậm chí không có sự đồng thuận về cái gọi là "RL Infra tốt" trông như thế nào, thì kiến thức kỹ thuật trong lĩnh vực này sẽ rất khó tích lũy và tái sử dụng. Liệu RL có phải là con đường quan trọng để cải thiện khả năng của mô hình hay không — phán đoán đó vẫn đang phát triển. Nhưng nếu câu trả lời là có, thì Infra là nút thắt bị đánh giá thấp nhất trên con đường đó. Không phải vì không ai đang làm việc trên đó, mà vì sự chú ý tập thể bị phân bổ không hợp lý. Sự tàn nhẫn của Hiệu ứng Thùng là điều này: bất kể thanh cao nhất của bạn cao đến đâu, nó không thể cứu được hệ thống.