Mở đầu.
Halooo, được hơn tháng rồi mà chưa có idea gì mới để ngồi viết lách học một vài kiến thức mới (văn vở vậy thôi chứ thật ra do mình lười 🙂 và cũng bận bên dự án nữa), nên vẫn là nhân cơ hội nghỉ lễ và thời gian chill chill cuối tuần cũng như hưởng ứng mayfest nên là khả năng cao là trong tháng 5 này sẽ có một series nhỏ đâu đó có một vài bài gì đó nữa về Advanced LLM mình thấy hay chia sẻ cùng mọi người, chủ đề thì tuỳ vào paper nào đó mà mình kiếm được, hoặc là thuần tech, hoặc là thuần chém gió, ... nhưng sẽ xoay quanh LLM.
Bài viết này thì sẽ là paper này, một paper khá khủng .... vì nó cite hơn 300 paper lớn nhỏ, nhiều kỹ thuật, tổng hợp một cái nhìn khá khái quát, và nhiều thứ mình chưa từng biết đến 😂.
Paper : From System 1 to System 2: A Survey of Reasoning Large Language Models
Hold Up 🤚🏽:
- Như thường lệ, bài viết này chỉ là một bài viết tham khảo, mình làm chill guy ngồi đọc paper, không mang bất kỳ mục đích gì, hãy chỉ nên đọc nó for fun.
- Toán mình khá dốt, mình theo trường phái engineer, không phải researcher, chỉ là sự tò mò đưa mình đi vọc vạch mọi thứ vẫn là for fun =)) . Muốn hiểu kỹ hơn thì mọi người cần phải đọc paper.
- Đây là chỉ thú vui ngoài giờ để tự rèn luyện solution cho bản thân.
Yep, upvote lấy động lực cho mình đi nào, đừng đọc âm thầm rồi không vote mà🫠. Sau còn nhiều bài vui vui nữa 🫣
Một số khái niệm mà bạn có thể đã biết.
Oke, thì đầu tiên chúng ta có có 2 khá niệm quan trọng được đề cập trong paper : Foundational LLMs (system 1) và Reasoning LLMs (system2)
- Foundational LLMs (system 1) : LLMs with basic reasoning abilities, handling simple or singlestep tasks
- Reasoning LLMs (system 2) : LLMs that excel in complex tasks like coding and mathematical proofs, incorporating a “thinking” process–tasks that foundational LLMs struggle with.
Thì ở đây có thể hiểu đơn giản :
- Foundation LLMs : (không phải đang nói đến pretrain model, hay base model) mà ở đây đại ý là chỉ fast-thinking model như gpt 3.5, 4o, hay deepseek v3, .... nhưng model mà có khả năng giải quyết nhưng nhiệm vụ đơn giản, không cần suy luận quá nhiều và đưa ra kết quả nhanh chóng (ý chỉ fast-thinking).
- Reasoning LLMs : ở đây chỉ nhưng model có khả năng phân tích, suy luận phức tạp, phân tích (slow thinking) như trong cái bài toán coding, chứng minh định lý, xử lý logic nhiều bước, .... đại diện là các model như gpt o1, o3 hay 4.5, deepseekr1, qwen qwq, omni, ... Thường các sota model gần đây dễ nhận diện nhất là có tag <think> trong đầu ra (thường thôi nhé).
Ngoài ra ở đây cũng có một vài khái niệm bị confuse :
- Planning LLMs :
LLM designed to break down complex task into manageable steps, creating structured plans to achieve goals
- thường thì model này tập trung vào việc chia nhỏ nhiệm vụ ra thành các nhiệm vụ con và đưa ra một kế hoạch để đạt được mục đích cuối cùng - Function Calling LLMs :
LLM which built to interact with external tools or api by generate structure request to call specific functions
- model này thường tập trung vào việc quyết định, call các function được thiết kế để giải quyết hoặc hoàn thành 1 vấn đề nào đó.
Oke, thì tại sao mình lại nêu ra 4 ý này vì sẽ có một chút chồng chéo giữa cả 4 khái niệm trên, có một vài lý do và luận điểm cần clear :
- Đầu tiên, việc model có khả năng làm được các ý trên, điều kiện tiên quyết là trong data và quá trình training phải có các dạng samples, cũng như được học về các nhiệm vụ này. Minh chứng cho điều này có thể nhìn thấy ngay ở trong các data trên huggingface, các bộ sharegpt, ... và function calling, ... cot, long-cot, ... Hay như model qwq của qwen chỉ cần 17k long cot samples để đạt được khả năng suy luận tổng quát. Đương nhiên là sẽ cần quantity và cả quality rồi 🤣
Vậy nên việc model có khả năng suy luận, hay lập kế hoạch hay thậm chí sử dụng tool, ... còn tùy thuộc việc model đó có được train để làm nhiệm vụ đó không nữa.
Tuy nhiên hầu như hiện tại các model close source như gpt, gemini, claude đều đã có các khả năng trên và đã khá tốt. Minh chứng cho điều này thì đơn giản chỉ cần nhìn vào web chat ui của họ là thấy ngay, các dạng search web, deep research, hay think, exploring, ... hầu như sẽ là dạng các hệ thống agent suy luận, dùng tool hoặc agent để search, ... Ngoài ra thì mọi người cũng có thể nhìn trực tiếp trên ide agent coding hiện tại đang khá nổi như v0, windsurf, cursor, ... hầu như họ sử dụng các base model từ bên thứ 3, trong prompt của họ thì đều quy định sử dụng các tool trên ide để làm các nhiệm vụ explain, modify code, ... Hay các giao thức nổi gần đây như MCP, ...
Note.
Reasoning và Planning là 2 task riêng biệt, Reasoning tập trung vào việc phân tích, suy luận để đạt được kết quả tốt, trong khi Planning tập trung vào việc tạo ra kế hoạch, thực hiện nhiều bước để để đạt được kết quả cuối cùng.
Reasoning tốt không có nghĩa là Planning tốt và nghược lại. Tuy nhiên phải công nhận, hiện tại các model đều đang ngày càng chính xác và đều đã được các nghưỡng có thể chấp nhận được ở cả 3 nhiệm vụ reasoning, planning và function calling.
Một số phương pháp để 'bật' reasoning LLMs.
Nhìn hình ảnh cũng đã hình dung được luôn rồi nhỉ, hiện tại có 5 phương pháp chính giúp LLMs có thể reasoning tốt.
Structure Search.
Lý do phát triển.
Reasoning LLMs aim to achieve high accuracy and depth in solving complex problems by emulating the deliberate nature of human reasoning. However, despite recent advancements, current foundational LLMs face inherent limitations when addressing intricate reasoning tasks. These limitations arise from their lack of an internal world model to simulate environmental states, their inability to predict the long-term outcomes of reasoning paths, and their failure to iteratively refine reasoning steps based on future states or rewards
LLM cố gắng để giải quyết vấn đề phức tạp bằng cách bắt chước
cách suy nghĩ vấn đề của con người. Tuy nhiên, vẫn gặp các hạn chế khi giải quyết các nhiệm vụ lý luận phức tạp. Những hạn chế này phát sinh từ việc thiếu mô hình thế giới nội bộ để mô phỏng các trạng thái môi trường, không có khả năng dự đoán kết quả dài hạn của các con đường lý luận và không thể tinh chỉnh các bước lý luận dựa trên các trạng thái hoặc phần thưởng trong tương lai.
Nói một cách dân dã hơn thì :
- LLm Suy luận ➜ một loạt output prompt, .... ➜ Không kiểm chứng được tính đúng sai, tối ưu trong quá trình suy luận ➜ Không chỉnh sửa nhận lại được feedback ➜ Sai càng sai, dẫn đến kết quả sai, không đúng ý, ...
Từ đó sinh ra Structure Search.
Một chút nội dung về Structure Search.
MCTS, a powerful search and optimization algorithm, effectively addresses these challenges by providing a structured framework to explore and evaluate reasoning paths systematically. It operates by constructing a reasoning tree, where each node represents a reasoning state, and actions expand the tree by considering potential next steps
Recent methods, such as RAP, enhance foundational LLMs by integrating MCTS with a world model, enabling the system to iteratively refine intermediate reasoning steps and improve future predictions.
MCTS : Monte Carlo tree search
Thì như tên của nó, nó là 1 structure search, cho phép LLM có thể reasoning và đánh giá từng bước (tương tự như một tree
), trải qua từng node thì LLm có thể đánh giá được phần thưởng
của reasoning path đó, từ đó đưa ra được đường đi có phần thưởng cao nhất.
Ngoài ra thì MCTS còn mở khóa
cho model có khả năng suy nghĩ trong 1 lần bằng cách sử dụng như CoT hay Tree-of-Throught (Tot), khiến mô hình có khả năng tự suy nghĩ, tự đánh giá lại các bước suy nghĩ một cách linh hoạt
, khi mà các bước suy luận trung gian ảnh hưởng lớn đến kết quả cuối cùng. Ví như prompt của Tot :
Imagine three different experts are answering this question. All experts will write down 1 step of their thinking,
then share it with the group.
Then all experts will go on to the next step, etc.
If any expert realises they're wrong at any point then they leave.
The question is...
Thông qua đó tự điều chỉnh lại hướng suy luận
của mô hình.
Phân loại.
Việc tích hợp Structure Search (hay MCTs) còn phụ thuộc vào việc xác định hành động (actions) và phần thưởng (reward) để hướng dẫn hướng suy luận (reasoning path) và đánh giá kết quả cuối cùng. Ở đây thì paper phân chia actions thành 4 loại :
- Reasoning Steps as a Nodes : actions đại diện cho 1 bước bước suy luận hoặc quyết định. ví dụ chọn một quy định, sử dụng transform, sinh ra sub-query, ...
- Token-level Decisions : actions liên quan đến việc sinh ra các token hoặc chuỗi tiếp theo. (ví dụ như next word, hay code snippet, ...)
- Task-specific Structures : actions liên quan đến các nhiệm vụ nhỏ, phân tách nhiệm vụ.
- Self-correction and Exploration : actions tập trung vào việc tự chỉnh sửa, tự quay lại suy nghĩa và cải thiện các bước reasoning trước đó.
Còn về rewards thì được phân chia thành 5 loại :
- Output-based rewards: rewards tập trung vào tính đúng đắn, kiểm tra lại kết quả cuối cùng, ngoài ra cũng bao gồm việc kiểm tra tính đúng đắn của reasoning path.
- Stepwise Evaluations : rewards được tính ngay tại các bước reaasoning, tuỳ thuộc vào chất lượng của từng step và sự đóng góp của nó đối với kết quả cuối cùng.
- Self-evaluation Mechanisms: rewards phụ thuộc vào model's confidence.
- Domain-specific Criteria : Rewards được thiết kế riêng cho nhiệm vụ cụ thể, nhưng domain riêng.
- Iterative Preference Learning: Rewards có được từ việc so sánh nhiều giải pháp hoặc nhưng con đường lý luận một cách năng động.
Kết luận.
Mặc dù hiệu quả trong việc khai phá của reasoning path, tuy nhiên thường không được sử dụng nhiều do lượng tính toán lớn các mô phỏng cần thiết. Điều này khiến nó ít phù hợp với các nhiệm vụ yêu cầu realtime hoặc hạn chế tài nguyên.
Ngoài ra, structure search còn phụ thuộc rất nhiều vào các cơ chế rewards và action được thiết kế tốt thì mới đạt được chất lượng cao.
Reward Modeling.
Thông thường sẽ có 2 dạng training để tăng khả năng reasoning của model là : Outcome Supervision và Process Supervision.
Nhìn hình ảnh cũng đoán được luôn nó làm gì rồi nhỉ. Outcome Supervision thì tập trung vào việc tính chính xác ở kết quả cuối cùng (tạo ra Output Reward Model - ORM), nghược lại Process Supervision thì tập trung vào các bước ở trung gian (tạo thành Process Reward Model - PRM).
Thông thường PRM được sử dụng nhiều hơn để xử lý các nhiệm vụ phức tạp, vì tại mỗi step nó đều có reward và có thể tự chỉnh sửa được thông qua từng bước tránh các trường hợp reasoning path sai nhưng kết quả vẫn đúng như ORM.
Kết luận.
Mặc dù PRM nhìn có vẻ là một phương án tuyệt vời, nhưng không hẳn, đầu tiên là việc thu thập và chuẩn bị data sẽ khá vất vả, do phải đánh giá từng step một. Hơn nữa PRM cũng gặp một số vấn đề liên quan đến mức độ tin cậy :
- Lack of Explanations : Hiện tại các PRM thường sẽ đánh giá bằng score cho từng step mà không có giải thích.
- Bias in Training Data : PRM gặp khó khăn trong việc xác định hiệu quả hay chất lượng của từng bước reasoning, ví dụ như gán score cao hơn so với từng bước đó, việc ước lượng mức độ chất lượng này khá khó khăn.
- Early-Step Bias : PRM thường gán score thấp cho các bước reasoning đầu so với các bước reasoing cuối cùng. Điều này làm việc tăng tính rủi ro và không chắc chắn cho các bước đầu tiên trong quá trình suy luận.
Self Improvement.
Self improvement thì như tên của nó, cải thiện mô hình bằng cách tận dụng khả năng khá phá của chính mô hình để học tựu giám sát, từ đó dần nâng cao các hiệu suất trong task như dịch thuật, toán học, ...
Có 2 loại chính :
- Training-time self improvement.
- Test-time self improvement.
Macro Action.
Macro Actions bao gồm các kiến trúc suy luận phân cấp giúp LLM vượt ra khỏi việc sinh văn bản đơn thuần từng token bằng cách chia quá trình suy nghĩ thành các giai đoạn nhận thức như: Lập kế hoạch, tự kiểm tra, tinh chỉnh lại. Điều này giúp mô hình tăng chiều sâu suy luận, mở rộng không gian lời giải, cho phép mô hình giải quyết các vấn đề đa dạng và bền vững hơn.
Macro Action có 2 hướng tiếp cận chính :
- Test time Scaling through Macro Action Operational : Tuỳ vào các phương pháp khác nhau sẽ có các cách triển khai khác nhau, nhưng đa phần sẽ tập trung vào test time scaling, như ReasonLux : khai thác các mẫu
thought
để tinh chỉnh và cập nhật lại CoT. - Macro Action-Enhanced Data Synthesis Paradigms: tập trung vào quá trình tạo và tăng cường chất lượng của các lý luận phức tạp trong synthesis data.
Reinforcement Fine Tuning.
Oke thì Reinforcement Fine Tuning (RFT) được giới thiệu bởi OpenAI, thiết kế với mục đích fine tune model đã có sẵn để làm những nhiệm vụ phức tạp, nhưng kiến thức chuyên sâu.
Nghược lại với SFT truyền thống, RFT tập trung vào việc cải thiện quá trình reasoning của model bằng việc sử dụng một cơ chế phần thưởng (reward mechanism) để hướng dẫn mô hình suy luận đúng hướng, đồng thời thay vì cần rất nhiều data để train SFT thì chỉ cần một lượng nhỏ high quality đã có thể cải thiện được mô hình.
Một ví dụ điển hình cho sự thành công của SFT là DeepSeek-R1 - sử dụng chiến lược dựa trên phần thưởng của bộ kiểm tra (verifier reward based stategy) , đã thể hiện được chất lượng vượt bậc so với các phương pháp truyền thống.
Một số ưu điểm :
- Simplified Training Pipeline : Việc bám sát vào RL giúp đơn giản hoá quá trình xây dựng dữ liệu huấn luyện, loại bỏ nhu cầu sử dụng của các cơ chế tìm kiếm theo từng bước phức tạp.
- Enhanced Scalability : Quá trình huấn luyện RL trực tuyến cho phép mở rộng hiệu quả trên các tập dữ liệu lớn, đặc biệt hữu ích cho các tác vụ suy luận phức tạp
- Emergent Properties : Thê hiện các khả năng tự phát đặc biệt, ví dụ như aha moment, hay long cot, điều mà rất khó đạt được nếu chỉ thông qua SFT.
Tuy nhiên RFT vẫn gặp phải một số thách thức như :
- Unclear Mechanism behind Reasoning - Cơ chế đứng sau quá trình suy luận còn mơ hồ.
- Reward Model Saturation - Mô hình phần thưởng bị bão hòa
- Unstable Long-CoT Generation - Sinh chuỗi suy luận dài thiếu ổn định
Kết luận.
RFT là một trong nhưng core methods hiện tại đang đạt khá nhiều các sota về cải thiện reasoning cho các lý luận, nhiệm vụ phức tạp, minh chứng cho nó là sau deepseek r1, các model sota sau đều sử dụng RL để post training như một bước đệm, tăng cường khả năng suy luận cho mô hình. Dưới đây là post training cho qwen 3 mới ra gần đây đang làm mưa làm gió cộng đồng open source 😁 :
Thách thức.
Chúng ta cũng phải công nhận rằng reasoning là một trong những đột phá của AI trong khoảng thời gian gần đây, càng ngày model càng suy luận và xử lý được nhiều nhiệm vụ phức tạp khác nhau và dần dần thay thế các foundation model (system 1) ở một số nhiệm vụ nhất định. Tuy nhiên chúng cũng gặp phải rất nhiều các thách thức khác nhau :
- Efficient Reasoning LLMs : Trong khi Reasoning Model khá tốt trong việc xử lý các lý luận phức tạp, tuy nhiên lại tốn quá nhiều tài nguyên để xử lý, ví dụ trung bình cần cần hơn 10000 tokens để xử lý các bài toán trên codeforces làm tăng độ trễ lên nhiều lần, ngoài ra khi model xác định được các solutions đúng, thì từng tự kiểm tra, tự xác nhận lại thêm một vài lần nữa (self-correction, self verification, ...)
- Collaborative Slow & Fast-thinking Systems : Việc kết hợp cả 2 dạng model Slow & Fast Thnking cũng là một yếu tố quan trọng để có một bước tiến xa hơn, Slow thinking rất tốt trong các nhiệm vụ phức tạp nhưng lại gặp khó khăn trong các nhiệm vụ đơn giản, ví dụ
1 + 1 = ?
thì model lại đi suy diễn rất nhiều trước khi đưa ra kết quả cuối cùng trong khi fast thinking đưa ra được luôn kết quả chính xác. Gần đây thì cũng có một vài dạng sota hybird slow & fast thinking model như Hermes, qwen 3, ... Kết hợp cả 2 dạng nhưng như qwen 3, vẫn cần phải sử dụng tokenizer.apply_chat_template để add token think vô để phân biệt 2 chế độ, chưa được dynamic và tự giác cho lắm. - Reasoning LLMs For Science : reasoning LLM đóng vai trò quan trọng cho khoa học, về một số chuyên ngành đặc biệt như toán học, y tế, kỹ thuật, ... giúp rút ngắn được thời gian phân tích suy luận tuy nhiên còn phải dựa vào việc mức độ tin cậy của reasoning (Trustworthiness of Reasoning LLMs), khó kiểm soát được long - CoT.
- Deep Integration of Neural and Symbolic Systems : LLMs chủ yếu hoạt động dựa trên các mẫu đã có trong datasets thay vì hiểu sâu sắc về logic hoặc các mối quan hệ nhân quả. Điều này dẫn đến việc model có thể tạo ra những phản hồi nghe có vẻ hợp lý nhưng thiếu nền tảng vững chắc, khi đối diện với các vấn đề quá phức tạp, model không thể đưa ra được các bước suy luận rõ ràng hoặc quá trình đưa ra được kết luận.
- Multilingual Reasoning LLMs : Đây chắc là vấn đề muôn thuở rồi, model sẽ hoạt động tốt trên các high-resource language, còn low resource thì sẽ kém hơn nhiều, điền hình là 2 ông lớn En và Ch rồi.
- Safe Reasoning LLMs : Huấn luyện với học tăng cường tuy có thể giúp mô hình nâng cao khả năng suy luận nhưng cũng tiềm ẩn nhiều rủi ro tiềm ẩn như gian lận pahanf thưởng, lỗi khái quát hóa và pha trộn ngôn ngữ. Dù có kết hợp cả SFT và RL tuy nhiên được đánh giá là chưa đủ và vẫn tiềm ẩn nhiều rủi ro.
Kết luận.
Oke, bài viết này mình chủ yếu nói về các khái niệm xung quanh reasoning LLM, chứ không đâm sâu vào bất kỳ một domain cụ thể vì đây là một paper survey, và chỉ cố gắng khái quát hóa, có một cái nhìn tổng quan hơn một chút về các vấn đề gặp phải, đã và đang giải quyết, đặt nền móng cho các bài viết sâu hơn sau này. Mọi người cùng chờ đợi nhé 😁
Trong paper còn nói đế khá nhiều các khía cạnh khác nhau khác nữa, để clear hơn nữa thì mọi người phải ngồi trực tiếp vọc vạch paper mới được 🫠
Nếu hay hãy upvote cho mình để viết thêm các bài khác nào ...