SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2502.18001 · 2025

Unveiling the Key Factors for Distilling Chain-of-Thought Reasoning

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 12 functions out of this paper's own repositories and ran 12 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
eit-nlp/distilling-cot-reasoning canonical 12 of 12
FunctionStatusWhere it lives
clean_generated_output Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/run_reasoning.py
code served (permissive licence) · get_code("35fe8d0bfce16d56")
delete_extra_zero Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/utils.py
code served (permissive licence) · get_code("1d6b1921b6a73ff1")
determine_dataset Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/autoevaluate.py
code served (permissive licence) · get_code("54544f8056f6555e")
determine_form Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/autoevaluate.py
code served (permissive licence) · get_code("ed259618fd8cb0dd")
extract_answer_label Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/run_reasoning.py
code served (permissive licence) · get_code("9734572acf030e9c")
extract_math_answer Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/utils.py
code served (permissive licence) · get_code("d8b71dceb40cd598")
find_box Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/utils.py
code served (permissive licence) · get_code("e004c74d60435f42")
find_model_directories Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/autoevaluate.py
code served (permissive licence) · get_code("db957f894b2b4da3")
get_prompt Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/prompt_utils.py
code served (permissive licence) · get_code("9dcdd19fa07a9553")
get_tulu_prompt Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/prompt_utils.py
code served (permissive licence) · get_code("645296d3bf573bfd")
get_vicuna_prompt Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/prompt_utils.py
code served (permissive licence) · get_code("ba92d46452fe56dc")
load_qa_data Ran eit-nlp/distilling-cot-reasoning/Evaluation/reasoning_eval/run_reasoning.py
code served (permissive licence) · get_code("06611f0dc33c8103")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Large Language Models (LLMs) excel in reasoning tasks through Chain-of-Thought (CoT) prompting. However, CoT prompting greatly increases computational demands, which has prompted growing interest in distilling CoT capabilities into Small Language Models (SLMs). This study systematically examines the factors influencing CoT distillation, including the choice of granularity, format and teacher model. Through experiments involving four teacher models and seven student models across seven mathematical and commonsense reasoning datasets, we uncover three key findings: (1) Unlike LLMs, SLMs exhibit a non-monotonic relationship with granularity, with stronger models benefiting from finer-grained reasoning and weaker models performing better with simpler CoT supervision; (2) CoT format significantly impacts LLMs but has minimal effect on SLMs, likely due to their reliance on supervised fine-tuning rather than pretraining preferences; (3) Stronger teacher models do NOT always produce better student models, as diversity and complexity in CoT supervision can outweigh accuracy alone. These findings emphasize the need to tailor CoT strategies to specific student model, offering actionable insights for optimizing CoT distillation in SLMs. The code and datasets are available at https://github.com/EIT-NLP/Distilling-CoT-Reasoning.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2502.18001")
get_code_for_paper("2502.18001")
have("2502.18001")

Connect an agent — have() is free.