Design of Chain-of-Thought in Math Problem Solving

09/20/2023
by   Zhanming Jie, et al.
0

Chain-of-Thought (CoT) plays a crucial role in reasoning for math problem solving. We conduct a comprehensive examination of methods for designing CoT, comparing conventional natural language CoT with various program CoTs, including the self-describing program, the comment-describing program, and the non-describing program. Furthermore, we investigate the impact of programming language on program CoTs, comparing Python and Wolfram Language. Through extensive experiments on GSM8K, MATHQA, and SVAMP, we find that program CoTs often have superior effectiveness in math problem solving. Notably, the best performing combination with 30B parameters beats GPT-3.5-turbo by a significant margin. The results show that self-describing program offers greater diversity and thus can generally achieve higher performance. We also find that Python is a better choice of language than Wolfram for program CoTs. The experimental results provide a valuable guideline for future CoT designs that take into account both programming language and coding style for further advancements. Our datasets and code are publicly available.

READ FULL TEXT

page 4

page 10

research
11/18/2022

PAL: Program-aided Language Models

Large language models (LLMs) have recently demonstrated an impressive ab...
research
03/10/2021

Unified Pre-training for Program Understanding and Generation

Code summarization and generation empower conversion between programming...
research
05/19/2017

RankPL: A Qualitative Probabilistic Programming Language

In this paper we introduce RankPL, a modeling language that can be thoug...
research
05/29/2023

Leveraging Training Data in Few-Shot Prompting for Numerical Reasoning

Chain-of-thought (CoT) prompting with large language models has proven e...
research
08/17/2023

CodeCoT and Beyond: Learning to Program and Test like a Developer

In natural language processing, transformer-based large language models ...
research
05/27/2023

External Behavior of a Logic Program and Verification of Refactoring

Refactoring is modifying a program without changing its external behavio...
research
08/05/2020

An Evolver program for weighted Steiner trees

We present an algorithm to find near-optimal weighted Steiner minimal tr...

Please sign up or login with your details

Forgot password? Click here to reset