Vũ Mạnh Tuấn
← Tất cả bài viết
AI7 phút đọc

Series Bên trong một LLM · Bài 5/5

Reinforcement learning: chỗ mô hình tự tìm ra cách suy nghĩ

Không ai dạy nó lối giải nào hay cả. Nó thử hàng loạt, giữ lại lối nào ra đáp án đúng, rồi tự học được cách quay lui và tự kiểm.

Bạn từng thấy mô hình trả lời kiểu lưỡng lự chưa? Nêu giả thiết A, tự kiểm lại, đổi sang B, rồi mới chốt đáp án.

Không ai dạy nó đắn đo như vậy cả. Nó tự học ra, trong giai đoạn thứ ba của quy trình: reinforcement learning.

Cứ hình dung như đi học

Mình thích cách ví von này vì dễ nhớ:

  • Pretraining: đọc hết sách giáo khoa để có kiến thức nền
  • SFT: xem lời giải mẫu của thầy, học cách trình bày cho chuẩn
  • RL: tự làm bài tập, biết mình đúng sai, rồi rút kinh nghiệm
Giai đoạnỞ trườngMục tiêuDữ liệu
PretrainingĐọc giáo khoaNhồi kiến thức nềnVăn bản lớn, tạp
SFTXem lời giải mẫuBắt chước chuyên giaCặp hỏi đáp do người soạn
RLTự làm bài, nhận điểmTối ưu cho đúngBài có đáp án, hoặc có người chấm

Điểm mấu chốt: hai giai đoạn đầu là học trên lời của người khác. RL là lúc nó tự thực hành, nhận điểm, rồi tự tìm ra cách giải hợp với chính nó.

Phần dưới mình dựa vào chương reinforcement learning trong bài giảng của Andrej Karpathy. Video đầy đủ ở cuối bài.

Vì sao cần RL

Chỗ này hơi phản trực giác: mình và mô hình "nghĩ" khác nhau.

Cùng một bài, cách trình bày A mình thấy dễ, mô hình lại thấy khó, vì mỗi token chỉ đủ sức cho một bước suy luận nhỏ. Cách trình bày B mình thấy vòng vo, mô hình lại thấy mượt, vì nó đi được từng nấc nhỏ ổn định.

Nên nếu chỉ dùng dữ liệu SFT, mình không biết nên dạy nó đi theo lối nào. Lối mình thấy hay có thể đòi một cú nhảy vọt trong đúng một token, mà nó nhảy không tới. Kết quả là có những bài trông rất đơn giản mà nó cứ trượt.

RL giải đúng chỗ này: để mô hình tự thử nhiều đường, tự kiểm xem đường nào về đích, rồi học ưu tiên mấy đường đó.

Bài học từ cờ vây rất đáng nhớ. Hệ thống chỉ bắt chước con người sẽ chạm trần ở mức con người. Hệ thống học bằng phần thưởng thì vượt qua được, vì nó tối ưu theo cái hiệu quả chứ không bị khoá trong khuôn mẫu có sẵn. AlphaGo từng đánh một nước làm cả giới cờ vây sững sờ, chính là nhờ vậy.

RL với bài có đáp án rõ ràng

Khi bài có đáp án kiểm chứng được, RL chạy rất mạch lạc:

  1. Cho mô hình sinh thật nhiều lời giải cho cùng một câu hỏi
  2. Tự động chấm, so với đáp án
  3. Giữ lại mấy lối đi ra kết quả đúng
  4. Huấn luyện để lần sau mấy lối đó dễ được chọn hơn
repeat:
  for prompt in dataset:
    samples = model.generate_many(prompt)        # nhiều lời giải
    good = [s for s in samples if is_correct(s)] # lọc ra lời giải đúng
    train_on(good)                                # đẩy xác suất các đường đúng

Ví dụ cho dễ hình dung:

  • Bài: Lan mua 3 ổ bánh mì và 2 ly sữa, mỗi ly sữa 20k, tổng 130k. Hỏi giá một ổ bánh mì.
  • Mô hình sinh ra đủ kiểu lời giải: có cái đặt ẩn, có cái tính nhẩm, có cái viết phương trình dài
  • Bộ chấm chỉ cần kiểm tra kết quả cuối có phải 30k không. Cái nào ra 30k thì giữ lại đem huấn luyện.

Chỗ hay là ở đây không có chuyên gia nào đứng chỉ đạo phải giải theo kiểu đặt ẩn hay kiểu nhẩm. Mô hình tự chơi trong sân bài tập, tự tìm đường hợp với nó.

Cách mô hình học suy nghĩ bằng thử và dò đáp ánlặp lại rất nhiều lầnMột câu hỏicó đáp án kiểm chứng đượclời giải 1lời giải 2lời giải 3lời giải 4lời giải 5Tăng xác suấtcho những lối giải ra đáp án đúng
Không ai dạy nó lối giải nào là hay. Nó thử rất nhiều, giữ lại lối nào ra đáp án đúng, rồi làm lối đó dễ đi hơn lần sau.

Điều bất ngờ: nó tự học cách nghĩ

Chạy RL trên một kho lớn các bài chấm tự động được, kiểu toán hay lập trình, người ta thấy hai hiện tượng lặp đi lặp lại:

1. Lời giải dài dần. Không phải để hoa mỹ. Dài hơn vì nó học được rằng tách bước nhỏ, thử lại, tự kiểm, quay lui thì đúng nhiều hơn.

2. Xuất hiện mấy chiến lược nhận thức mới. Kiểu "dừng một nhịp soát lại phép tính", hay "thử viết lại bài toán dưới dạng phương trình rồi đối chiếu". Toàn mấy thứ bạn hay làm trong đầu, mà nó tự khám phá ra, vì chỉ làm vậy mới liên tục ra đáp án đúng.

Đây là khác biệt then chốt giữa mô hình bắt chước và mô hình biết suy luận.

SFT cho bạn một bản mô phỏng người gắn nhãn: trình bày đẹp, hợp mắt người đọc. RL giúp nó tìm ra chuỗi suy nghĩ hợp với chính nó, để đúng một cách ổn định. Giống AlphaGo không quan tâm nước nào người hay đi, nó chỉ quan tâm nước nào dẫn tới thắng.

Ví dụ sát việc hằng ngày:

  • Câu hỏi: "Số user active tháng này giảm do đâu? Kiểm tra các khả năng rồi kết luận."
  • Mô hình kiểu SFT sẽ liệt kê vài nguyên nhân mẫu
  • Mô hình đã qua RL đi từng giả thuyết, kiểm tra số liệu, tự phủ định, rồi mới kết luận. Trả lời dài hơn, nhưng nhất quán hơn hẳn.

RLHF: khi không chấm tự động được

Nhiều việc chẳng có đúng sai rõ ràng: viết chuyện cười, tóm tắt, đặt tiêu đề thông báo đẩy. Chỗ này người ta dùng RLHF:

  1. Thu nhiều câu trả lời cho cùng một yêu cầu
  2. Nhờ người xếp hạng từ hay tới dở. Xếp hạng dễ hơn nhiều so với tự viết ra câu trả lời lý tưởng.
  3. Huấn luyện một mô hình thưởng để bắt chước cách người chấm
  4. Cho mô hình sinh chạy RL với mô hình thưởng đó, khỏi phải hỏi người mỗi lần

Nhưng giới hạn nằm ngay ở mô hình thưởng. Nó chỉ là bản mô phỏng rút gọn của con người. Tối ưu quá lâu thì mô hình sinh sẽ học cách đánh lừa người chấm giả.

Ví dụ đời thường: bảo nó "viết một câu chuyện cười về bồ nông". Lúc đầu điểm khá khớp cảm nhận người. Tối ưu lâu quá thì nó bắt đầu sinh ra mấy câu lặp âm, chơi chữ vô nghĩa, mà mô hình thưởng vẫn chấm rất cao.

Đó là lúc phải dừng. Nên RLHF thường chỉ dùng như một bước tinh chỉnh có giới hạn, không phải cỗ máy tự tiến hoá mãi.

Tóm lại

  • Ba giai đoạn nối nhau: pretraining tích kiến thức, SFT học cách cư xử, RL tự luyện bài để tìm lối suy nghĩ hợp với mình
  • Bài chấm tự động được thì RL rất mạnh. Từ đó nảy ra thói quen thử lại, tự kiểm, quay lui. Lời giải dài hơn mà đúng hơn.
  • Bắt chước thì chạm trần ở mức con người. Học bằng phần thưởng thì vượt qua được.
  • RLHF mở cửa cho việc không chấm tự động được, nhưng mô hình thưởng bị đánh lừa nếu tối ưu quá lâu
  • Trong việc thật: dùng mô hình biết suy luận cho toán, code, hoặc bài cần kiểm nhiều giả thuyết, chấp nhận chậm hơn để đổi lấy đúng hơn. Câu tra cứu kiến thức thì mô hình thường là đủ.
  • LLM
  • Reinforcement Learning
  • AI