Alpha-R1 / README_en.md
iamzuoyou's picture
Update README_en.md: add hero image below title
79872ed verified
|
Raw
History Blame Contribute Delete
6.61 kB

Alpha-R1: Alpha Screening with LLM Reasoning via Reinforcement Learning

Alpha-R1

English | 中文

Alpha-R1 is a reasoning-enhanced LLM for quantitative alpha selection: built on Qwen3-8B and trained with GRPO reinforcement learning (verl) using a market-feedback reward. It reasons over semantic factor descriptions — how each factor works, when it works, and when it fails — and selects the Alpha101 factors that best fit current market conditions.

Model Overview

Alpha-R1 framework overview

Item Content
Base model Qwen/Qwen3-8B
Training GRPO (verl) with a market-feedback reward
Input Decision-context prompt: concatenated semantic factor descriptions α_des
Output Selected factors listed in <alpha_list>
Candidate pool 82 Alpha101 factors (as screened in the paper)
Recommended decoding temperature=0 (greedy), top_p=0.7, max_new_tokens=4096

Quick Start

transformers

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "FinStep/Alpha-R1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype="bfloat16", device_map="auto")

prompt = "<decision context: concatenated factor descriptions>"  # see the GitHub repo for the prompt builder
inputs = tokenizer.apply_chat_template(
    [{"role": "user", "content": prompt}],
    add_generation_prompt=True, return_tensors="pt",
).to(model.device)

# paper setting: temperature=0 (greedy), top_p=0.7
out = model.generate(inputs, max_new_tokens=4096, do_sample=False)
print(tokenizer.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))

vLLM

from vllm import LLM, SamplingParams

llm = LLM(model="FinStep/Alpha-R1")
params = SamplingParams(temperature=0.0, top_p=0.7, max_tokens=4096)
outputs = llm.chat([[{"role": "user", "content": prompt}]], params)

For the full end-to-end pipeline (factor description generation → Alpha-R1 inference → output parsing → qlib strategy backtest), see the GitHub repository.

Output Contract

The model lists the selected factor ids inside <alpha_list>...</alpha_list>, e.g.:

<alpha_list>alpha001, alpha021, alpha053</alpha_list>

Validation and parsing scripts are provided under src/alpha_r1/parsing/ in the GitHub repository.

Performance

12-month out-of-sample testing (2025-01-01 to 2025-12-31, paper Table 1):

Backtest NAV comparison on S&P 500 (left) and CSI 300 (right)

Type Method S&P 500 CSI 300
AR (%) SR MDD (%) AR (%) SR MDD (%)
Non-LLMBuy & Hold19.340.8018.7522.161.3110.49
PCA7.980.2717.302.930.1714.46
XGBoost3.490.0318.458.990.5016.26
LightGBM-5.42-0.4320.9318.441.0514.92
A2C10.820.4017.7022.961.2014.86
PPO7.680.2514.9714.960.8112.95
DDPG2.53-0.0215.041.970.1216.54
TD35.540.1416.588.660.5210.26
SAC37.601.4415.189.770.5611.68
LLMGemini 2.5 Pro14.230.5517.0116.290.9014.01
Claude 3.7 Sonnet10.920.4018.8810.130.5714.49
DeepSeek‑R121.940.9314.3614.660.8114.60
Qwen3‑8B12.850.4719.5215.440.7914.38
Alpha‑R1 (Ours)47.871.6216.9140.572.236.58

Out-of-domain generalization without retraining (paper Table 2): 80.54% AR (SR 2.46) on Russell 2000 and 73.52% AR (SR 2.80) on CSI 1000. AR = annualized return, SR = excess Sharpe ratio, MDD = max drawdown.

Training

Alpha-R1 is trained on Qwen3-8B with GRPO using verl and a market-feedback reward (R_final = R_adjusted - P_structural, paper Section 3.4). The training configuration and a reference reward implementation live in the training/ directory of the GitHub repository.

Limitations

  • This model is intended for academic research; its outputs do not constitute investment advice.
  • Factor selection depends on the upstream description-generation and backtesting pipeline (see the GitHub repository); the model alone does not produce tradable signals.

Citation

@article{jiang2025alphar1,
  title={Alpha-R1: Alpha Screening with LLM Reasoning via Reinforcement Learning},
  author={Jiang, Zuoyou and Zhao, Li and Sun, Rui and Sun, Ruohan and Li, Zhongjian and Li, Jing and Jiang, Daxin and Bai, Zuo and Hua, Cheng},
  journal={arXiv preprint arXiv:2512.23515},
  year={2025}
}

License

This project is released under the MIT License.