How to use from
vLLM
Install from pip and serve model
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "FinStep/Alpha-R1"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
	-H "Content-Type: application/json" \
	--data '{
		"model": "FinStep/Alpha-R1",
		"messages": [
			{
				"role": "user",
				"content": "What is the capital of France?"
			}
		]
	}'
Use Docker
docker model run hf.co/FinStep/Alpha-R1
Quick Links

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

Alpha-R1

English | ไธญๆ–‡

Alpha-R1 ๆ˜ฏไธ€ไธช้ขๅ‘้‡ๅŒ– Alpha ็ญ›้€‰็š„ๆŽจ็†ๅขžๅผบๅž‹ LLM๏ผšๅŸบไบŽ Qwen3-8B๏ผŒ้€š่ฟ‡ GRPO ๅผบๅŒ–ๅญฆไน ๏ผˆverl๏ผ‰ไปฅๅธ‚ๅœบๅ้ฆˆๅฅ–ๅŠฑ่ฎญ็ปƒใ€‚ๅฎƒ้˜…่ฏป Alpha101 ๅ› ๅญ็š„่ฏญไน‰ๅŒ–ๆ่ฟฐโ€”โ€”ๆฏไธชๅ› ๅญๅฆ‚ไฝ•่ตทไฝœ็”จใ€ไฝ•ๆ—ถๆœ‰ๆ•ˆใ€ไฝ•ๆ—ถๅคฑๆ•ˆโ€”โ€”ๅนถ้’ˆๅฏนๅฝ“ๅ‰ๅธ‚ๅœบ็Žฏๅขƒ็ญ›้€‰ๅ‡บๆœ€ๅ€ผๅพ—ๆฟ€ๆดป็š„ๅ› ๅญ็ป„ๅˆใ€‚

  • ๐Ÿ“„ Paper: arXiv:2512.23515
  • ๐Ÿ’ป Code: FinStep-AI/Alpha-R1๏ผˆๆŽจ็†็ฎก็บฟ / qlib ๅ›žๆต‹ / ่ฎญ็ปƒ้…็ฝฎ๏ผ‰
  • ๐Ÿ“œ License: MIT

ๆจกๅž‹ๆฆ‚่งˆ (Model Overview)

Alpha-R1 framework overview

้กน็›ฎ ๅ†…ๅฎน
Base model Qwen/Qwen3-8B
่ฎญ็ปƒๆ–นๆณ• GRPO๏ผˆverl๏ผ‰๏ผŒๅธ‚ๅœบๅ้ฆˆๅฅ–ๅŠฑ
่พ“ๅ…ฅ ๅ†ณ็ญ–ไธŠไธ‹ๆ–‡ prompt๏ผšๆ‹ผๆŽฅ็š„ๅ› ๅญ่ฏญไน‰ๆ่ฟฐ ฮฑ_des
่พ“ๅ‡บ <alpha_list> ไธญๅˆ—ๅ‡บ็š„้€‰ไธญๅ› ๅญ
ๅ€™้€‰ๅ› ๅญๆฑ  82 ไธช Alpha101 ๅ› ๅญ๏ผˆ่ฎบๆ–‡็ญ›้€‰ๅŽ๏ผ‰
ๆŽจ่่งฃ็  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)

ๅฎŒๆ•ด็š„็ซฏๅˆฐ็ซฏ็ฎก็บฟ๏ผˆๅ› ๅญๆ่ฟฐ็”Ÿๆˆ โ†’ Alpha-R1 ๆŽจ็† โ†’ ่พ“ๅ‡บ่งฃๆž โ†’ qlib ็ญ–็•ฅๅ›žๆต‹๏ผ‰่ง GitHub ไป“ๅบ“ใ€‚

่พ“ๅ‡บๅฅ‘็บฆ (Output Contract)

ๆจกๅž‹ๅœจ <alpha_list>...</alpha_list> ไธญ่พ“ๅ‡บ้€‰ไธญ็š„ๅ› ๅญ id๏ผŒไพ‹ๅฆ‚๏ผš

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

GitHub ไป“ๅบ“็š„ src/alpha_r1/parsing/ ๆไพ›ไบ†้…ๅฅ—็š„ๆ ก้ชŒไธŽ่งฃๆž่„šๆœฌใ€‚

่กจ็Žฐ (Performance)

12 ไธชๆœˆๆ ทๆœฌๅค–ๆต‹่ฏ•๏ผˆ2025-01-01 ~ 2025-12-31๏ผŒ่ฎบๆ–‡ Table 1๏ผ‰๏ผš

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

็ฑปๅž‹ ๆ–นๆณ• 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

ๅŸŸๅค–ๆณ›ๅŒ–๏ผˆๆ— ้œ€้‡่ฎญ๏ผŒ่ฎบๆ–‡ Table 2๏ผ‰๏ผšRussell 2000 ไธŠ 80.54% AR๏ผˆSR 2.46๏ผ‰๏ผŒCSI 1000 ไธŠ 73.52% AR๏ผˆSR 2.80๏ผ‰ใ€‚AR = ๅนดๅŒ–ๆ”ถ็›Š๏ผŒSR = ่ถ…้ขๅคๆ™ฎๆฏ”็އ๏ผŒMDD = ๆœ€ๅคงๅ›žๆ’คใ€‚

่ฎญ็ปƒ (Training)

ๅŸบไบŽ Qwen3-8B๏ผŒไฝฟ็”จ verl ่ฟ›่กŒ GRPO ่ฎญ็ปƒ๏ผŒๅฅ–ๅŠฑไธบๅธ‚ๅœบๅ้ฆˆๅฅ–ๅŠฑ๏ผˆR_final = R_adjusted - P_structural๏ผŒ่ฎบๆ–‡ ยง3.4๏ผ‰ใ€‚่ฎญ็ปƒ้…็ฝฎไธŽๅ‚่€ƒๅฅ–ๅŠฑๅฎž็Žฐ่ง GitHub ไป“ๅบ“็š„ training/ ็›ฎๅฝ•ใ€‚

ๅฑ€้™ๆ€ง (Limitations)

  • ๆœฌๆจกๅž‹้ขๅ‘ๅญฆๆœฏ็ ”็ฉถๅœบๆ™ฏ๏ผŒ่พ“ๅ‡บไธๆž„ๆˆไปปไฝ•ๆŠ•่ต„ๅปบ่ฎฎใ€‚
  • ๅ› ๅญ็ญ›้€‰ไพ่ต–ไธŠๆธธ็š„ๆ่ฟฐ็”ŸๆˆไธŽๅ›žๆต‹็ฎก็บฟ๏ผˆ่ง GitHub ไป“ๅบ“๏ผ‰๏ผŒๆจกๅž‹ๆœฌ่บซไธ็›ดๆŽฅไบงๅ‡บๅฏไบคๆ˜“ไฟกๅทใ€‚

ๅผ•็”จ (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

ๆœฌ้กน็›ฎๅŸบไบŽ MIT License ๅ‘ๅธƒใ€‚

Downloads last month
217
Safetensors
Model size
8B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for FinStep/Alpha-R1

Finetuned
Qwen/Qwen3-8B
Finetuned
(2277)
this model

Paper for FinStep/Alpha-R1