ARise: Towards Knowledge-Augmented Reasoning via Risk-Adaptive Search

July 26, 2025 ยท View on GitHub

ARise is an advanced reasoning framework that implements Monte Carlo Tree Search (MCTS) for complex question answering tasks. The system decomposes complex questions into manageable sub-questions, retrieves relevant information, and synthesizes a final answer through iterative search and risk-assessment.

๐ŸŽ‰๐ŸŽ‰ News: Our paper has been accepted to ACL 2025 main conference!

Project homepage: https://opencausalab.github.io/ARise/

ARise Pipeline

Features

  • Iterative Refinement through Decomposition: Breaks down complex reasoning tasks into manageable steps, enabling more precise and controlled reasoning processes.
  • Retrieval-then-Reasoning Approach: Augments LLMs with fine-grained knowledge retrieval to enhance reasoning capabilities with external information.
  • Monte Carlo Tree Search (MCTS): Expands linear reasoning into tree-based exploration, mitigating error propagation by allowing backtracking when necessary.
  • Risk-Adaptive Search: Employs Bayesian risk minimization to dynamically evaluate reasoning states and optimize search strategies.
  • Dynamic Path Exploration: Enables exploration of multiple reasoning paths simultaneously, focusing computational resources on the most promising directions.

Project Structure

ARise/
โ”œโ”€โ”€ asset/                  # Project assets
โ”‚   โ”œโ”€โ”€ pipe.png            # Pipeline diagram
โ”‚   โ”œโ”€โ”€ com.png             # Comparison diagram
โ”‚   โ””โ”€โ”€ res.png             # Results visualization
โ”œโ”€โ”€ src/                    # Core implementation
โ”‚   โ”œโ”€โ”€ base.py             # Base reasoning functions
โ”‚   โ”œโ”€โ”€ mcts.py             # Monte Carlo Tree Search implementation
โ”‚   โ”œโ”€โ”€ node.py             # Tree node definition
โ”‚   โ””โ”€โ”€ task.py             # Task definition and execution
โ”œโ”€โ”€ utils/                  # Utility functions
โ”‚   โ”œโ”€โ”€ extract.py          # Data extraction utilities
โ”‚   โ”œโ”€โ”€ inference_model.py  # Model inference wrapper
โ”‚   โ”œโ”€โ”€ prompts.py          # Prompt templates
โ”‚   โ”œโ”€โ”€ rag.py              # Retrieval-augmented generation
โ”‚   โ”œโ”€โ”€ value_function.py   # Value functions for MCTS
โ”‚   โ”œโ”€โ”€ value_model.py      # Value model implementation
โ”‚   โ”œโ”€โ”€ verify.py           # Verification utilities
โ”‚   โ””โ”€โ”€ wrap.py             # Prompt wrapping utilities
โ”œโ”€โ”€ run.py                  # Main execution script
โ””โ”€โ”€ nltk_data.zip           # NLTK data package

Configuration

Key parameters can be configured in the MCTSTask class:

  • time_limit: Time limit for search in milliseconds
  • iteration_limit: Maximum number of iterations
  • exploration_constant: UCT exploration constant
  • multihops: Number of sub-queries
  • total_depth: Total depth of the search tree
  • temperature: Sampling temperature
  • run_mode: Reasoning strategy (MCTS, zero-shot, etc.)
  • value_mode: Value function mode (risk, similarity, etc.)

Evaluation

The system evaluates performance using:

  • Exact match accuracy
  • F1 score for supporting facts

Citation

If you use ARise in your research, please cite:

@inproceedings{zhang2025arise,
  title   = {ARise: Towards Knowledge-Augmented Reasoning via Risk-Adaptive Search},
  author  = {Yize Zhang and Tianshu Wang and Sirui Chen and Kun Wang and Xingyu Zeng and Hongyu Lin and Xianpei Han and Le Sun and Chaochao Lu},
  booktitle={Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (ACL)},
  year    = {2025}
}