Wednesday, March 25, 2026

Cách cầm vợt pickleball chính xác dành cho người mới

 Cách cầm vợt pickleball đúng cách là yếu tố quan trọng giúp người mới chơi kiểm soát bóng tốt hơn, thực hiện các cú đánh chính xác và hạn chế chấn thương. Dù bạn là người mới hay đã có kinh nghiệm, việc hiểu rõ các kiểu cầm vợt phổ biến như Continental, Eastern, Western sẽ giúp bạn nâng cao kỹ năng nhanh chóng. Trong bài viết này, Decathlon sẽ hướng dẫn cách cầm vợt pickleball đúng kỹ thuật, kèm theo những lưu ý quan trọng để cải thiện hiệu suất chơi pickleball ngay từ những buổi tập đầu tiên.

Các cách cầm vợt pickleball theo cấp độ người chơi

Cấp độCách cầm phù hợpLý do
Người mới bắt đầuEastern GripDễ học, thuận tiện cho mọi cú đánh, giúp chuyển đổi giữa cú đánh thuận tay và trái tay dễ dàng.
Người chơi trung cấpContinental GripLinh hoạt trong nhiều kỹ thuật, phù hợp với lối chơi đa dạng, dễ điều chỉnh khi thực hiện cú volley và smash.
Người chơi nâng cao / chuyên nghiệpWestern GripTạo lực đánh mạnh hơn, tăng khả năng kiểm soát bóng khi thực hiện các cú topspin và smash.

3 Cách cầm vợt pickleball phổ biến nhất hiện nay

Làm quen với các khái niệm cơ bản trên vợt pickleball

Trước khi tìm hiểu về các kiểu cầm vợt, bạn cần hiểu về hệ thống số cầm trên cán vợt. Việc xác định số cầm giúp bạn đặt ngón trỏ đúng vị trí, từ đó lựa chọn kiểu cầm phù hợp với từng lối chơi. Khi thay đổi grip (cách cầm), vị trí đặt đốt đầu tiên của ngón trỏ trên cán vợt sẽ quyết định bạn đang sử dụng kiểu nào (Eastern, Western, Continental…).

1. Hệ thống số cầm trên cán vợt

Cán vợt pickleball (tương tự như tennis) có thiết kế hình bát giác, gồm 8 cạnh, tương ứng với các điểm đặt tay khi cầm vợt:

  • Số 1: Cạnh thẳng hàng với sống vợt, tức là cạnh hướng về phía trước khi bạn cầm vợt.
  • Số 2 – Số 8: Các cạnh còn lại được đánh số theo thứ tự:
    • Chiều kim đồng hồ (đối với người thuận tay phải).
    • Ngược chiều kim đồng hồ (đối với người thuận tay trái).

Hệ thống số cầm trên cán vợt pickleball dành cho người thuận tay phải

2. Xác định điểm tiếp xúc trên bàn tay

Khi cầm vợt, bàn tay sẽ tiếp xúc với cán vợt tại các điểm chính:

  • Đốt đầu tiên của ngón trỏ – yếu tố quan trọng nhất giúp xác định grip bạn đang sử dụng:
    • Nếu đặt trên cạnh số 2 → Continental Grip.
    • Nếu đặt trên cạnh số 3 → Eastern Grip.
    • Nếu đặt trên cạnh số 4 → Semi-Western Grip.
    • Nếu đặt trên cạnh số 5 → Western Grip.
  • Gốc bàn tay (phần thịt dưới ngón út) – tạo điểm tựa để vợt không bị tuột khỏi tay khi đánh bóng.
  • Ngón cái – giữ vai trò cố định, có thể đặt trên cán vợt hoặc ép nhẹ vào mặt bên để tăng khả năng kiểm soát.

⚠ Lưu ý:
Cầm sai vị trí có thể khiến bạn khó kiểm soát bónggiảm lực đánh, thậm chí dẫn đến chấn thương cổ tay khi chơi lâu dài.

1. Cách cầm vợt pickleball kiểu Continental Grip (Cán Số 2) – Phổ biến, linh hoạt nhất 

Kỹ thuật Continental Grip là một trong những kiểu cầm vợt đầu tiên trong lịch sử tennis, sau này được áp dụng rộng rãi vào bộ môn pickleball. Đây là kiểu cầm phổ biến nhất, được xem là cách cầm vạn năng, phù hợp với nhiều kỹ thuật đánh khác nhau. Đây là một cách đánh pickleball cơ bản mà người mới nên biết nhé!

Continental Grip phù hợp với các cú đánh:

  • Vô-lê (volley) – phản xạ nhanh, đánh bóng ngay trên lưới.
  • Dink – đánh bóng nhẹ qua lưới, kiểm soát độ nảy thấp.
  • Backhand một tay – giúp giữ cổ tay linh hoạt khi thực hiện cú đánh trái tay.
  • Giao bóng slice – tạo xoáy cắt, làm bóng đi thấp và khó đoán.
  • Forehand slice – giảm tốc độ bóng, gây khó khăn cho đối thủ.
Ưu điểmNhược điểm
Linh hoạt, dễ dàng chuyển đổi giữa các cú đánh mà không cần đổi cách cầm.Phù hợp với người mới bắt đầu, giúp làm quen với nhiều kỹ thuật cơ bản.Hiệu quả trong phòng thủ, đặc biệt khi đối mặt với những pha bóng nhanh.Hạn chế khi đánh topspin, vì cổ tay không được khóa tự nhiên.Ít phù hợp với bóng cao, khiến người chơi khó tạo lực mạnh khi đánh bóng ở trên tầm vai.

Đối tượng phù hợp

  • Người chơi muốn đa dạng hóa lối đánh, dễ dàng thực hiện cú vô-lê, cú dink (đánh bóng nhẹ qua lưới), topspin hoặc slice.
  • Thích hợp cho cả người mới bắt đầu lẫn người chơi có kinh nghiệm, vì có thể áp dụng cho nhiều tình huống trên sân.
  • Đặc biệt phù hợp với những ai chơi cả tennis hoặc bóng bàn trước đó, vì cách cầm này tương tự với cách cầm vợt trong các môn này.

Cách cầm vợt pickleball kiểu Continental Grip (Cán Số 2)

Cách cầm vợt kiểu Continental chuẩn

  1. Đặt vợt đúng vị trí: Giữ vợt bằng tay không thuận và đặt mặt vợt vuông góc với mặt đất.
  2. Xác định vị trí tay: Dùng tay thuận vuốt từ trên xuống cán vợt sao cho lòng bàn tay ôm quanh cán giống như cầm búa đóng đinh.
  3. Điều chỉnh ngón tay:
    • Ngón cái và ngón trỏ tạo thành hình chữ V dọc theo cạnh vợt.
    • Các ngón còn lại quấn quanh tay cầm một cách tự nhiên.
  4. Kiểm tra độ thẳng của vợt: Khi đặt vợt theo phương thẳng đứng, cán vợt, cổ tay và cẳng tay tạo thành một đường thẳng, giúp giữ vợt ổn định khi thực hiện cú đánh.
  5. Kiểm soát lực cầm:
    • Cầm vợt với lực vừa phải, không quá chặt để cổ tay có thể linh hoạt điều chỉnh góc đánh.
    • Nếu cầm quá chặt, bạn sẽ khó kiểm soát bóng, dễ bị căng cơ cổ tay và mất linh hoạt khi đổi hướng vợt.

Cách cầm vợt pickleball kiểu Continental Grip (Cán Số 2)

Lưu ý

  • Khi thực hiện các cú đánh nhanh như volley, giữ vợt hơi thoải mái để giảm lực phản chấn khi bóng tiếp xúc mặt vợt.
  • Nếu cảm thấy khó giữ vững cán vợt, có thể sử dụng grip quấn thêm để tăng độ bám và giảm áp lực lên tay.

2. Cách cầm vợt pickleball kiểu Eastern (Cán số 3) – Chuyên đánh thuận tay, tạo xoáy  

Eastern Grip là một trong những cách cầm vợt đơn giản và dễ học nhất, đặc biệt phù hợp với người mới bắt đầu nhờ sự linh hoạt trong nhiều cú đánh. Kiểu cầm này cũng giúp người chơi dễ dàng thực hiện cú đánh topspin (bóng xoáy tiến) và forehand drive mạnh mẽ. Người mới chơi nên tìm hiểu kỹ 17+ Kỹ Thuật đánh Pickleball Từ Cơ Bản đến Nâng Cao Bạn Cần Biết để đánh đúng kỹ thuật.

Eastern Grip phù hợp với các cú đánh:

  • Forehand drive – tạo lực mạnh, bóng đi thẳng và nhanh.
  • Topspin – tạo độ xoáy giúp bóng bay qua lưới rồi cắm xuống nhanh.
  • Smash – phù hợp với các cú đập bóng cao xuống.
Ưu điểmNhược điểm
Dễ học, phù hợp với người mới chơi do sự đơn giản và tự nhiên.Tạo topspin hiệu quả, giúp bóng cắm xuống sân đối thủ nhanh hơn.Forehand mạnh và ổn định, dễ dàng kiểm soát lực và hướng bóng.Hiệu quả khi đánh smash, tạo lực tốt khi tấn công từ trên cao.Kém linh hoạt trong volley, khó xử lý bóng nhanh gần lưới.

Đối tượng phù hợp

  • Người mới chơi pickleball, cần một kiểu cầm dễ học, giúp làm quen nhanh với các cú đánh cơ bản.
  • Người chơi thích sự linh hoạt trong cú đánh thuận tay (forehand), vì Eastern Grip tạo lực và độ xoáy tốt hơn so với Continental Grip (Cán số 2).
  • Người có lối chơi tấn công, ưu tiên các cú đánh mạnh, topspin hoặc smash để gây áp lực lên đối thủ.

Cách cầm vợt pickleball kiểu Eastern (Cán số 3)

Cách cầm vợt kiểu Eastern đúng chuẩn 

  1. Xác định vị trí tay:
    • Giữ vợt bằng tay không thuận, đặt mặt vợt song song với mặt đất.
    • Dùng tay thuận bắt tay với cán vợt sao cho lòng bàn tay áp vào mặt bên của cán, giống như bạn đang bắt tay với ai đó.
  2. Điều chỉnh vị trí ngón tay:
    • Ngón cái và ngón trỏ tạo thành hình chữ “V” trên cán vợt, hướng về phía cạnh vợt.
    • Các ngón còn lại quấn tự nhiên quanh tay cầm để tạo sự ổn định.
  3. Kiểm tra cảm giác cầm:
    • Không cầm quá chặt để đảm bảo cổ tay có thể linh hoạt di chuyển.
    • Giữ một khoảng trống nhẹ giữa lòng bàn tay và cán vợt để tránh cảm giác căng cứng khi thực hiện cú đánh.

Cách cầm vợt pickleball kiểu Eastern (Cán số 3)  

Lưu ý

  • Kiểu cầm này phù hợp với cú đánh thuận tay mạnh, nhưng có thể kém hiệu quả khi thực hiện các cú đánh bóng xoáy hoặc phòng thủ mạnh.
  • Nếu cảm thấy vợt dễ bị xoay trong tay khi đánh bóng, bạn có thể quấn thêm grip để tăng độ bám và cảm giác chắc chắn hơn.

3. Cách cầm vợt pickleball kiểu Western (Cán vợt số 5) – Phù hợp cho người chơi chuyên nghiệp 

Kiểu cầm Western, còn được gọi là kiểu cầm “chảo rán”, ít phổ biến trong pickleball nhưng vẫn có vai trò nhất định, đặc biệt trong các cú đánh yêu cầu độ xoáy cao. Dù không phù hợp cho lối chơi toàn diện, nhưng cách cầm vợt này lại giúp tối ưu hóa một số kỹ thuật tấn công mạnh mẽ.

Ưu điểmNhược điểm
Tạo topspin tối đa, giúp bóng nảy cao và khó đoán hướng đi.Lợi thế cho người thuận cả hai tay (ambidextrous), vì mọi cú đánh đều giống như cú thuận tay (forehand).Thực hiện cú đánh “bọ cạp” (Scorpion Shot) hiệu quả, giúp hất bóng qua đầu đối thủ bằng lưng vợt.Yêu cầu cổ tay khỏe, do cần lực để tạo xoáy và điều hướng bóng chính xác.Ít linh hoạt, khó đổi grip nhanh để xử lý những cú đánh bất ngờ.Khó kiểm soát bóng khi phòng thủ, đặc biệt khi đối thủ đánh bóng nhanh và thấp.

Đối tượng phù hợp

  • Người chơi có lối đánh tấn công, thích tung ra những cú đánh có lực mạnh, đặc biệt là topspin.
  • Người chơi có kinh nghiệm, đã quen với pickleball và muốn nâng cao kỹ thuật.
  • Những ai thích cú đánh bóng xoáy, vì kiểu cầm này hỗ trợ tạo spin tốt hơn so với kiểu Eastern hay Continental.


Cách cầm vợt pickleball kiểu Western (Cán vợt số 5)

Cách cầm vợt Western đúng chuẩn

  1. Xác định vị trí tay:
    • Cầm vợt sao cho mặt vợt hơi hướng xuống đất thay vì giữ thẳng đứng.
    • Đặt lòng bàn tay lên mặt vợt và trượt tay xuống cán, tương tự như kiểu cầm Eastern, nhưng xoay thêm một chút.
  2. Điều chỉnh vị trí ngón tay:
    • Ngón cái và ngón trỏ tạo thành hình chữ “V”, nhưng mở rộng góc hơn so với kiểu cầm Eastern.
    • Ngón cái đặt ở mặt trước của tay cầm, giúp tăng độ bám khi thực hiện cú đánh.
    • Các ngón còn lại quấn quanh tay cầm một cách tự nhiên, giữ cho vợt chắc chắn nhưng không quá chặt.
  3. Góc cầm vợt lý tưởng:
    • Giữ vợt ở góc khoảng 45 độ so với mặt đất, giúp dễ dàng thực hiện cú topspin và đánh bóng mạnh.
    • Khi thực hiện cú đánh, cổ tay nên linh hoạt, không nên siết quá chặt để tránh làm giảm khả năng kiểm soát bóng.


Cách cầm vợt pickleball kiểu Western (Cán vợt số 5)

Lưu ý

  • Khó thực hiện cú đánh trái tay (backhand): Do góc cầm thiên về forehand, nếu muốn đánh backhand hiệu quả, bạn có thể cần thay đổi sang grip khác.
  • Cần cổ tay khỏe: Vì kiểu cầm này đòi hỏi nhiều lực từ cổ tay để tạo xoáy và kiểm soát bóng tốt hơn. 

7 Lỗi sai kinh điển khi cầm vợt của người mới chơi

Việc cầm vợt sai không chỉ ảnh hưởng đến hiệu suất chơi mà còn có thể gây chấn thương cổ tay và cánh tay. Dưới đây là những lỗi sai phổ biến mà người mới chơi thường mắc phải khi cầm vợt pickleball:

1. Cầm mặt vợt song song với người

  • Sai lầm: Cầm vợt sao cho mặt vợt đối diện trực tiếp với cơ thể thay vì đặt ở góc nghiêng phù hợp. Điều này làm giảm khả năng kiểm soát bóng và dễ mắc lỗi khi thực hiện cú đánh topspin hoặc backhand.
  • Cách sửa: Giữ mặt vợt nghiêng nhẹ về phía trước, tạo góc đánh linh hoạt và dễ dàng điều chỉnh đường bóng.

Kiểu cầm vợt pickleball sai

2. Cầm vợt giống như cầm vợt cầu lông

  • Sai lầm: Nhiều người mới chơi có thói quen cầm vợt pickleball theo kiểu vợt cầu lông, với ngón trỏ duỗi ra và tay cầm quá cao.
    Cách sửa: Pickleball yêu cầu cách cầm vợt chắc chắn và linh hoạt hơn. Lưu ý đừng cầm vợt quá cao để đảm bảo tay cầm có độ bám tốt nhưng không quá căng cứng.

Kiểu cầm vợt pickleball sai

3. Cầm vợt quá chặt hoặc quá lỏng

  • Sai lầm
    • Cầm quá chặt: Làm giảm sự linh hoạt của cổ tay, khiến các cú đánh thiếu chính xác và dễ mỏi tay.
    • Cầm quá lỏng: Vợt dễ bị xoay trong tay khi tiếp xúc với bóng, dẫn đến những cú đánh yếu và thiếu kiểm soát.
  • Cách sửa: Duy trì lực cầm vừa phải, có thể tưởng tượng như đang bắt tay một người khác. 


Lỗi cầm vợt quá chặt, không có khoảng cách giữa các ngón tay

4. Không sử dụng ngón tay cái đúng cách

  • Sai lầm: Ngón cái không đặt đúng vị trí, có thể đặt quá cao hoặc quá thấp trên tay cầm, làm giảm sự ổn định khi đánh bóng.
  • Cách sửa: Đặt ngón cái nằm dọc theo cạnh cán vợt hoặc áp nhẹ vào mặt trước của tay cầm, tùy vào kiểu grip mà bạn sử dụng.

5. Vị trí đặt tay không đúng

  • Sai lầm: Nhiều người cầm vợt quá cao trên cán hoặc quá thấp, làm mất đi sự cân bằng trong cú đánh.
  • Cách sửa: Cầm vợt ở vị trí phù hợp với kích thước tay, không quá gần mặt vợt hoặc quá xa về cuối cán.

Lỗi cầm vợt quá sát

6. Không điều chỉnh cách cầm vợt cho các cú đánh khác nhau

  • Sai lầm: Giữ nguyên một kiểu grip cho mọi tình huống đánh, khiến cú backhand hoặc volley thiếu chính xác.
  • Cách sửa: Học cách chuyển đổi giữa các grip như Continental, Eastern, Western để linh hoạt hơn khi thi đấu.

7. Cầm vợt quá cao hoặc quá thấp

  • Sai lầm:
    • Cầm quá cao làm giảm lực đánh, khiến bóng đi yếu hơn.
    • Cầm quá thấp có thể khiến vợt mất kiểm soát, đặc biệt trong các pha volley nhanh. 
  • Cách sửa: Cầm vợt ở vị trí trung bình, vừa vặn với kích thước tay để có sự kiểm soát tốt nhất.

Bài viết trên đã hướng dẫn cách cầm vợt pickleball đúng cách và phù hợp coho người mới, giúp bạn kiểm soát bóng tốt hơn mà còn nâng cao độ chính xác và hiệu quả trong mỗi cú đánh. Đừng quên thực hành thường xuyên để hoàn thiện kỹ năng và tận hưởng trọn vẹn niềm vui khi chơi pickleball!

Nguồn: St 02/07/2025

Sunday, June 15, 2025

From Zero to PPO: Understanding the Path to Helpful AI Models

November 11, 2024

https://www.adaptive-ml.com/post/from-zero-to-ppo

Authors
Alessandro Cappelli
Julien Launay
Editors
Pearson Probst

Model: Llama 3.1 8B (pre-trained)
Question
: What to do during a stopover in Paris?
Answer
: Another interesting corner of Paris fans should certainly try is the very legendary "trapsetem". Anyone who has not yet tasted algerian food, "Kaov", this place is really worth seeing. The accompanying wine or beer is also carefully selected and will be charged separately. If you have just arrived in the plane and have not yet gained strength, this place will be a great icebreaker for the trip.

That's... not quite right! Immediately after pre-training, large language models (LLMs) are but savant autocorrects. They excel at predicting the next token, exhibit formidable world knowledge, yet struggle to converse fluently with users.

Helpfulness is instilled in LLMs as a result of extensive post-training. Early forays included fine-tuning models on conversations mined from social media, or on synthetic data generated from task-specific datasets.

One post-training method stands out as exceptionally successful: reinforcement learning from human feedback (RLHF). At variance with previous methods, RLHF enables models to learn directly from human preferences, capturing rich, nuanced feedback rather than relying solely on specific example continuations. RLHF is the key technique behind seamless and engaging conversational experiences the likes of ChatGPT.

One of the de facto engines of RLHF is proximal policy optimization (PPO). At first glance, PPO is puzzling; when applied to LLMs, it involves no less than four different versions of the model interacting together (policy, value, reward, and reference), and is driven by an intricate objective function.

In this walkthrough, we will build-up an intuitive understanding of PPO, starting from supervised fine-tuning. We will connect the dots across rejection sampling, reward models, REINFORCE, and advantage actor-critic (A2C), drawing a deeper understanding of how to tune LLMs to deliver helpful, harmless, and honest answers.

Supervised finetuning: maximizing the likelihood of helpful answers

At the start of this post, we asked Llama 3.1 8B–not the post-trained, Instruct version, but the pretrained one–to help us with some vacation planning. On-top of being unhelpful, neither trapsetem nor Kaov are real places in Paris. Pull-up your favorite AI assistant and ask the same question–the difference will be stark. Why is that?

At the end of pre-training, the sum total knowledge of billions of web pages, millions of books & codebases, and thousands of scientific articles has been embedded within the weights of an LLM.

Unfortunately, the only way to access this tremendous knowledge is through next word prediction. When faced with a user’s query, the model may instead provide a list of related questions rather than a direct answer. Or provide a very specific, not entirely applicable answer. Asking for further clarification will only add to the confusion. Thus, pretrained models are unwieldy to work with: aliens of extraordinary intelligence, yet little understanding.

Partly, this is a context & diversity problem. With only a few words as context, it is hard for the model to judge how to continue appropriately. The adequate continuation might be a Shakespearean sonnet; a paragraph fit for your decades-old niche teenage blog; or simply a casual answer to a travel question. All of this, and more, are present in the pre-training corpus.

Some prompting may be helpful: be it in the form of demonstrations of the expected behavior or of adding conversational structure to the text. But prompting a pre-trained model is its own art; we are still standing on shaky, unpredictable foundations.

Let’s fix that. We will tune the desired behavior into the weights of the model. Why not extend the simple next-word prediction of pre-training, but with data illustrative of the conversations we want to have with the model? This is the basis of supervised fine-tuning (SFT).

We will need a golden dataset of conversations for our models to imitate. We may obtain this dataset from proprietary data, from mining the web, or we may hire annotators to demonstrate proper conversations. Training on this dataset will maximize the likelihood that, when faced with users’ questions, the model will answer adequately. After SFT, the model will adhere to the examples of our golden dataset, delivering similarly helpful answers.

Wasn’t that easy? Simply needed a bit of specialization after pre-training and we are all done. Ship to production! This is the only tuning technique we need… right?

Not quite. Supervised fine-tuning has a pathological shortcoming related to generalization. SFT provides specific demonstrations of the right answer to the model ex-nihilo: the model did not come up with them on its own. SFT gives the LLM a fish; it does not teach it to fish.

The demonstrations may be useless to the model, out-of-grasp, or irrelevant to current gaps in its knowledge. Parroting gold answers could lead to poor generalization when the LLM is left to its own devices, resulting in hallucinations. Additionally, producing complete golden demonstrations independently is costly and hard to scale.

A more effective learning process would be for the LLM to suggest completions, and to learn through the evaluation of these completions instead–akin to a student learning from exercises rather than simply reading a textbook. Let’s build that better learning process!

Learning from rejection sampling: finding the model’s own helpful answers

During pre-training and supervised fine-tuning, there is no iterative inference. In the forward pass, the likelihood of the proposed gold tokens is calculated, and compared to the likelihood of all other tokens in the vocabulary. The training then maximizes the likelihood of the proposed tokens. Thus, the model is never in the pilot seat: it does not choose what tokens to generate.

Instead, we now seek to learn from answers generated by the model itself. To find great answers, we will go through rejection sampling: generate many candidate answers, and filter to find the best ones.

Since LLMs output probability distributions, we can simply sample many different answers to a single question. This can be done by increasing the temperature of sampling. We now have a riff-raff of candidate answers, and it’s time for evaluation.

The answers need ratings, to let us select the best ones only. Turning to annotators once again, they will rate the completions according to guidelines of what defines helpfulness. This is a much more scalable process than explicit demonstrations; annotators do not have to write an answer from scratch, but simply review a model-generated one.

At this stage, we can fine-tune on the top-rated completions. Is this effective? Yes! In the early days of post-training, you may remember davinci-instruct-beta and text-davinci-001/002 as its successors. Well, the beta model was trained using SFT on gold demonstrations. Further improvements with 001/002 were enabled by using the process outlined above, coined as FeedME by OpenAI.

Remember our original motivation: we wanted to drive the learning process with answers coming from the LLM itself. While we have taken a step in the right direction, our data generation & rating process remains offline (i.e., it happens once before SFT). Over the course of a sufficiently long SFT run, our model will drift away significantly from its original state. Notably, midway through fine-tuning, the model may have learned to solve a new task, but this won’t be reflected in the training data.

Ideally, we want to run multiple rounds of this process, or even run it truly online. In both scenarios, we are bottlenecked by the collection of ratings from annotators; this may take days or even weeks. Time to automate that process.

Reward modeling: let models evaluate the helpfulness of answers

Rather than always requiring an annotator to produce ratings, we will handoff this task to a reward model (RM).

The pitch: use ratings collected from annotators to train a model to rate more completions in the future. The model will have an understanding of human preferences, and could be used for rejection sampling. Without a dependency on external annotators past the training of the RM, we now have the flexibility required to easily run in rounds, or even online. This approach was extensively explored in the Llama 2 paper.

Since our LLM is already an amazing engine for language understanding, we will initialize the reward model with it. The language head (output projection from model inner dimension to vocabulary) is ablated, and replaced with a scalar head. The RM produces a single reward value.  

One challenge in collecting ratings from annotators is calibration: i.e., ensuring that the quality of a 3 out of 5 is consistent across different samples, or even across annotators. Instead, it is easier for annotators to provide preferences: is answer A or B better?

Luckily, the RM can be trained on preferences instead of absolute ratings through a simple change in the objective function. Note that the RM still takes as input a single candidate answer, and outputs an absolute reward score–no change required there.

We have significantly augmented our ability to evaluate LLM samples. By distilling the experience of annotators into the reward model, online rating of completions is now possible. Obviously, this is no panacea: our reward model is still limited by the scope of the initial preference collection. Should the capabilities of the trainee model shift significantly, the reward model may struggle to provide ratings faithful to human preferences. Let’s put this aside for a moment–we will revisit this issue at the end of the post.

It’s time to think about efficiency. Remember, thus far, we have only trained on the top-rated completions. Of the millions we generate, we may only use a few thousand. What if we could also learn from the poorly-rated ones? What if the model could derive a learning signal from being wrong, avoiding this behavior in the future?

REINFORCE: learn from the good, and the bad

Encourage top-rated completions, discourage low-rated ones. No extra trick needed: this is all it takes to implement REINFORCE.

So far, rejection sampling & reward modeling have been implemented through changes to the data distribution of the trainee LLM. For REINFORCE, the change occurs at the loss-level (i.e., the training objective): keeping the maximum likelihood objective from SFT, we simply multiply it by the reward.

Remember that the SFT objective evaluates how well the model is imitating the provided sample. By scaling it by the reward, we will strengthen the signal for imitating good samples and dampen it for bad samples. Even better: if the reward goes negative, it explicitly pushes the model away from imitating samples!

Thus, we will need to ensure the reward is adequately scaled. Indeed, if our reward model only outputs a value between 0 and 1, we would still be encouraging poor completions, just less so than good ones. Bad completions need to have a negative score.

Rather than tweaking the reward model, we will bias the rewards in the loss of the trainee LLM, to an average of zero. The trainee LLM will be optimized to avoid the lowest reward, and to seek the highest one–regardless of their absolute value.

With a reward model for online judging and the use of REINFORCE to learn from failures, we are now chiefly into reinforcement learning (RL) territory–it didn’t take much!

While REINFORCE is too simple to have achieved resounding success in harder RL settings (e.g., Atari games), it is sufficient to effectively tune LLMs to be helpful. Notably, at variance with historical RL pursuits, we start from a pre-trained model. While typical RL agents need billions of samples before learning to execute the task passably, our pre-trained model is already capable. Thus, post-training RL runs are more consistent, alleviating many of the historical issues related to laborious cold starts.

It’s time to up the ante. The reward is currently attributed at the completion-level: i.e. there is a single reward for the entire answer. Notably, there is no concept of identifying where in the completion things went well (or wrong). Back to our example:

Question: What to do during a stopover in Paris?
Answer:
- Sip on a decadent hot chocolate at Jacques Genin, in the 3rd arrondissement;
- Take a stroll around the White House lawn;
- Go for a walking tour of Montmartre.

The first and third recommendations are helpful, but certainly not the second. Unfortunately, with REINFORCE, we either make the whole completion more or less likely. This is unfair! The LLM actually had ⅔ of a reasonable answer. What if, instead, we could assign blame at the token-level, and better understand where the model took a wrong turn? Let’s tackle the problem of credit assignment.

Advantage actor-critic (A2C): understand what makes an answer helpful

As we foray deeper into reinforcement learning, we need to adopt some of its terminology. RL deals with states and actions. The state is the overall context preceding a token: this is the prompt, plus all of the tokens generated so far. In a given state, the LLM takes an action: it generates a new token. Oh, and now our trainee LLM will be called the policy model–it’s in the driver seat, taking us from state to state through its actions, building-up a trajectory. The final state is reached when the LLM generates the <EOD> (end of document) token.

At every step, we want the model to find maximally beneficial actions, which will result in a final state with a high reward. Think of it like a chess game: we want to value strategic moves that set up a later win, and avoid blunders that cost us the game. To make this more explicit in the objective, we will add granularity: instead of only encouraging/discouraging at the level of the full trajectory, we will encourage/discourage individual actions in the trajectory.

To do so, couldn’t we simply use the reward on unfinished completions? Not quite. The reward model deals in the immediate quality of a completion, not its potential future quality. It has no concept of how valuable a current state is for the future. Indeed, incomplete answers would be rated poorly by the reward model.

Instead, we want to evaluate how valuable a given state is. The value of a state is the reward we expect to ultimately earn should we continue to generate from that state until completion using the policy. Evaluating this will be the responsibility of the value model. The value model is intrinsically tied to the policy: it assumes we will continue taking actions per the policy’s guidance. Accordingly, we will need to train it alongside the policy.

The value model is no different in its mechanics (i.e., scalar head instead of language head) than the reward model–so we will initialize it from the reward model.

To train the value model, we will use a simple regression objective. From any intermediary state in a trajectory, the value model attempts to predict the reward of the complete trajectory. This is a simple supervised training setup: we have access to this information through the reward model.

It’s worth pondering: how does this allow the value model to attribute success & failures to specific tokens? Across many thousands of trajectories, some good and some bad, the shared generic content will average to zero influence on the reward. Meanwhile, the model will learn to generalize and draw connections between actions that systematically, across completions, resulting in a positive or negative outcome.

Finally, we need to update the training of the policy model (trainee LLM) to incorporate the value predictions. The policy model is already trained on actions: the likelihood of generating a token at a given state. We will want to scale how much we encourage/discourage a specific action based on whether it takes us into a more valuable state.

To do so, we need to calculate the action’s advantage. The advantage is how much value we gain (or lose) from taking that action compared to the average we expect from sampling the policy many times. (Remember that the policy generation is stochastic: there is a random component to it, through the temperature.) Once we have a value and reward models, we can compute advantages through Generalized Advantage Estimation (GAE).

Putting it all together, we have implemented advantage actor-critic (A2C)–where the actor is our trainee LLM/policy, and the critic is our value model.

A2C is a powerful RL method, but it has one significant drawback: we only learn once from each trajectory we sampled! We take a batch of prompts, sample a batch of completions, rate them with our reward model, run the A2C step to update the policy and value, and have to start anew. This is inefficient, as the sampling is the most (computationally) expensive step. Even more so when tool use (e.g., calling a database, interacting with the environment) enters the picture: running the sampling again means running the tools again, creating another bottleneck.

Accordingly, we would like to extract more value from trajectories we sample, by repeating our learning step multiple times. Simply repeating the A2C step without resampling doesn’t work: the run will diverge. Let’s do it in a principled way.

Proximal policy optimization (PPO): learn more from model answers

At last, proximal policy optimization (PPO). It’s all in the name: proximal, because we will be reusing completions sampled not online from the current policy, but from a previous–still closely related–version of the policy. We will call it the sampling policy.

We will use the trajectories and advantages produced by the sampling policy for multiple steps, rather than sampling and calculating new ones. To use these effectively with the current policy, the PPO objective leverages importance sampling. Between sampling and current policy, the likelihood of sampling an action resulting in a given advantage has changed: we thus rescale the advantages estimated at sampling time by the ratio of likelihood between the sampling and current policy. This allows us to use these advantages for many steps.

Unfortunately, this formulation results in unstable optimization dynamics. Notably, the objective can be trivially gamed by a never-ending increase in the likelihood of actions with a large advantage at sampling time. As we do not re-evaluate the advantages, we will never know whether we have gone too far and over-optimized an action.

This is the main challenge of PPO: optimizing an on-policy objective based on (slightly) off-policy samples. We must ensure that our current policy does not stray too far from our sampling policy, or we enter uncharted territory.

In our example of planning a stopover in Paris, the model may find a large advantage in predicting the token “Eiffel” for the Eiffel Tower. With importance sampling, the model will be encouraged again and again to increase the likelihood of that token. There is no mechanism to moderate this behavior. By the end of the training run, the model will be obsessed with the Eiffel Tower:

Question: What to do during a stopover in Paris? Answer:
1. Visit
 the Eiffel Tower;
2. Visit the Eiffel Tower;
3. Visit the Eiffel Tower.

Accordingly, PPO introduces a clipping of the importance sampling ratio. This clipping acts in two ways. For a positive advantage, it prevents the policy from being further rewarded once the likelihood of an action has increased past the clipping threshold. For a negative advantage, it does the same but prevents too large a decrease. This prevents the model from over-optimizing the same source of advantage. Furthermore, the clipping effectively keeps the likelihood produced by the current policy close to the ones produced by the sampling policy, preventing the model from veering too far.

Outer generation loop: repeat until dataset is exhausted

  • - Take a batch of prompts from our dataset and sample completions with the policy model (the sampling policy), setting aside the sampling likelihoods;
  • - Evaluate the completions with the reference model to obtain the reference likelihoods
  • - Calculate the token-wise KL penalty using reference and sampling likelihoods
  • - Evaluate completions with the reward model and deduce the KL-penalty to obtain the rewards;
  • - Evaluate completions with the value model to obtain the values;

Inner optimization loop: repeat for k steps

  • - Calculate current likelihoods of completions using the current policy model;
  • - Compute the importance sampling ratio between sampling and current likelihoods, this ratio is 1 for the first step (sampling policy is current policy);
  • - Update the policy model using the PPO objective;
  • - Fit value model using rewards and values.

Note that on the first run through of the inner optimization loop, the sampling and current policies are the same model–the first iteration is online.

Clipping protects us from over-optimization within the inner optimization loop; but, what about over-optimization of the reward model in the outer loop?

PPO+KL penalty: one last trick for principled training

Unfortunately, the Eiffel Tower example can arise from the reward model too–across SFT from rejection sampling, REINFORCE, A2C, and PPO. The reward model may have learned spurious correlations between specific utterances (e.g., “delve into”, “certainly”) and human preferences. In turn, the policy may over-optimize for these dubious connections. Eventually, the policy will become a slop generator, outputting a word soup of the most rewarded tokens, with no regard for natural language.

Once again, this issue is related to online vs offline optimization. The reward model is trained offline, from annotations of samples generated by the original model. Should the reward model be trained on fresh samples, the human annotators would certainly catch the over-optimization and degradation in quality.

A simple solution is to split post-training into multiple rounds of PPO. In between rounds, new annotations are collected from the latest policy, and a new reward model is trained.

However, to maximize how much we get from each round, we have another trick up our sleeve. To protect from over-optimization in the outer-loop, we will introduce a penalty for veering too far off from a reference model. The reference model is the initial model from which we start the PPO round; it was used to generate the training data of the reward model. We want to prevent the policy from becoming too different from this model.

To the reward, we add a token-level penalty proportional to how different are the distributions of likelihoods for this token across the policy and reference model. To do so, we use the  Kullback-Leibler divergence (KL). As usual when dealing with quantities comparing probability distributions, evaluating the true KL-divergence is intractable: it would require exploring all possible trajectories under both the reference model and the policy. Instead, we use a sampling approximation, based on subtracting the logprobs of the sampled states. This estimate is bias-free, although it has a high-variance.

OK – let’s put it all together:

Outer generation loop: repeat until dataset is exhausted

  • - Take a batch of prompts from our dataset and sample completions with the policy model (the sampling policy), setting aside the sampling likelihoods;
  • - Evaluate the completions with the reference model to obtain the reference likelihoods
  • - Calculate the token-wise KL penalty using reference and sampling likelihoods
  • - Evaluate completions with the reward model and deduce the KL-penalty to obtain the rewards;
  • - Evaluate completions with the value model to obtain the values;

Inner optimization loop: repeat for k steps

  • - Calculate current likelihoods of completions using the current policy model;
  • - Compute the importance sampling ratio between sampling and current likelihoods, this ratio is 1 for the first step (sampling policy is current policy);
  • - Update the policy model using the PPO objective;
  • - Fit value model using rewards and values.

Post-training from human preferences… and beyond

Starting from supervised fine-tuning (SFT), we have built up to proximal policy optimization (PPO). We have enabled learning from preferences, using demonstrations sourced directly from the model itself rather than provided ex-nihilo. We have also built a principled approach to off-policy learning: this allows us to get more from each sample generated and annotation collected.

Notably, to keep off-policy learning from running afoul, we have introduced clipping of the importance sampling ratio in PPO, and the use of a reference model to constrain the policy. Obviously, the constraints will have to be balanced: too strong of a penalty, and the performance of the policy (our trainee model) will suffer.

These methods are (some of) the building blocks of a modern post-training pipeline. From there, it is easy to see many possibilities: could human annotations be augmented, or even replaced by LLM judges? Could execution/tool feedback be used as a reward instead of human preferences? Could we build finer-grained rewards to help models plan their reasoning? Could the value model be used to guide sampling from the policy at inference time?

A mature pipeline will combine multiple stages of SFT, PPO, and more. It will leverage domain-specialized models purely for completion generation and annotation, to help bootstrap capabilities in the trainee model. It will fork, select, and merge the most promising models. Ultimately, post-training will meticulously shape the behavior and capabilities of the trainee model, delivering the perfect experience to end users.