说明文档
Aryabhata 1.0:面向考试的语言模型,专精 JEE 数学

概述
Aryabhata 1.0 是由 Physics Wallah AI Research 开发的 70 亿参数小型数学语言模型,专为 JEE Mains 等印度高竞争性考试优化。尽管体积小巧,Aryabhata 1.0 在考试导向的推理任务上实现了业界领先的性能,同时具备出色的Token 效率和低推理成本。
🚧 Aryabhata 1.0 是一个实验性发布版本。我们正在积极收集反馈——请在本仓库的 Discussion 标签页贡献您的意见。
🧠 主要特性
- 架构:70 亿参数因果解码器模型
- 考试导向优化:专门针对 JEE 级别数学推理进行调优
- 高准确率:
- JEE Mains 2025 年 1 月场次:86%
- JEE Mains 2025 年 4 月场次:90.2%
- Token 效率:在约 2K token 窗口内高效运行,而其他推理模型通常需要约 8K
- 计算高效:使用优化流水线在 1x2 NVIDIA H100 GPU 上训练
🛠️ 训练详情
- 训练数据:约 13 万道题目-解答对,精选自 Physics Wallah 专有考试数据集
- 训练流水线:
- 模型合并
- 拒绝采样
- 监督微调 (SFT)
- 可验证奖励强化学习 (RLVR)
🔀 模型合并
我们通过模型合并(加权平均)构建了一个强大的初始化模型(Aryabhata 0.5),融合了多种模型的能力:
- Qwen 2.5 Math:具有扎实符号数学基础的稳健数学专用大语言模型
- Ace Math:Qwen 2.5 Math 的增强版,由 NVIDIA 微调,在数学基准测试中具有更高的准确率
- DeepSeek R1 Distill Qwen:长篇推理模型,基于从 DeepSeek R1 蒸馏出的推理轨迹微调
📚 数据整理 + 拒绝采样
我们从 Physics Wallah 内部数据库中提取了约 25 万道原始题目,并进行了严格的过滤和清洗:
- 移除:基于图表的、非英文的、选项过多的题目
- 保留:符合 JEE Main 2019-2024 分布的题目 最终整理数据集:约 13 万道高质量题目
对于每道题目:
- 使用 Aryabhata 0.5 生成 4 条思维链
- 仅保留能得出正确最终答案的思维链
结果数据集:
- 约 10 万道题目
- 约 35 万条高质量思维链
我们使用此数据集进行 SFT。
🎯 可验证奖励强化学习 (RLVR)
我们使用了自定义的组相对策略优化 (GRPO) 变体,针对数学专用奖励函数进行了适配:
- 移除了 KL 散度惩罚
- 移除了裁剪
我们在剩余的约 3 万道题目上使用 RLVR。
这种多阶段训练策略使 Aryabhata 1.0 能够捕捉教学对齐的推理模式,使其在解决真实学生的数学问题方面非常有效。
📊 性能亮点
评估设置
所有评估均在 temperature = 0.0 下进行,我们报告 pass@1 准确率。
评估数据集
我们在两组官方 JEE Mains 2025 数学试卷上评估了模型:
- 1 月场次:10 份试卷,包含 250 道题目
- 4 月场次:9 份试卷,包含 225 道题目
每份试卷包含:
- 单选题(MCQ),只有一个正确选项
- 数值答案型(NAT)题目,需要精确的数值回答
评估指标
我们使用复合评估指标来反映真实评分的严谨性并减少假阳性:
- 浮点匹配
- 在容差范围内(±1e-9)比较预测答案和目标答案
- 稳健处理舍入误差和小的数值错误
- 字符串匹配
- 用于符号答案(如分数、根式)
- 使用严格的精确匹配——预测必须逐字符匹配标准答案
- LLM-as-Judge (GPT-4o-mini)
- 用于判断歧义格式的数学等价性
🔹 各模型准确率对比

Aryabhata 在 JEE Main 数学方面具有最佳准确率,与前沿模型相当
🔹 准确率 vs Token 使用量

Aryabhata 在准确率与 Token 使用量方面与前沿模型相当
🔧 预期用途
主要用例:
- 竞争性考试备考(JEE Main 级别数学问题)
- 问答和解疑系统
- 教育辅导和概念讲解
💡 如何使用
🧪 使用 🤗 Transformers
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
model_id = "PhysicsWallahAI/Aryabhata-1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
# Define stop strings
stop_strings = ["<|im_end|>", "<|end|>", "<im_start|>", "```python\n", "<|im_start|>", "]}}]}}]"]
def strip_bad_tokens(s, stop_strings):
for suffix in stop_strings:
if s.endswith(suffix):
return s[:-len(suffix)]
return s
# Create generation config (can also set temperature, top_p, etc.)
generation_config = GenerationConfig(
max_new_tokens=4096,
stop_strings = stop_strings
)
query = 'Find all the values of \\sqrt[3]{1}'
messages = [{'role': 'system', 'content': 'Think step-by-step; put only the final answer inside \\boxed{}.'},
{'role': 'user', 'content': query}]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
inputs = tokenizer([text], return_tensors="pt")
outputs = model.generate(**inputs, generation_config=generation_config, tokenizer=tokenizer)
print(strip_bad_tokens(tokenizer.decode(outputs[0], skip_special_tokens=True), stop_strings))
⚡ 使用 vLLM
使用 vLLM 高效运行模型:
from vllm import LLM, SamplingParams
# Initialize model (downloads from Hugging Face if not local)
llm = LLM(model="PhysicsWallahAI/Aryabhata-1.0")
# Define prompt and sampling configuration
query = 'Find all the values of \\sqrt[3]{1}'
messages = [{'role': 'system', 'content': 'Think step-by-step; put only the final answer inside \\boxed{}.'},
{'role': 'user', 'content': query}]
sampling_params = SamplingParams(temperature=0.0, max_tokens=4*1024, stop=["<|im_end|>", "<|end|>", "<im_start|>", "```python\n", "<|im_start|>", "]}}]}}]"])
# Run inference
results = llm.chat(messages, sampling_params)
# Print result
print(results[0].outputs[0].text.strip())
🚀 路线图
Aryabhata 2.0(即将推出):
- 扩展领域覆盖至 物理和化学
- 支持 JEE Advanced、NEET 和基础课程
- 进一步优化实时部署的成本效益和准确率
🤝 引用
如果您使用此模型,请引用:
@misc{Aryabhata2025,
title = {Aryabhata 1.0: A compact, exam-focused language model tailored for mathematics in Indian competitive exams, especially JEE Main.},
author = {Physics Wallah AI Research},
year = {2025},
note = {\url{https://huggingface.co/PhysicsWallahAI/Aryabhata-1.0}},
}
Prince-1/Aryabhata-1.0
作者 Prince-1
创建时间: 2025-07-23 06:04:12+00:00
更新时间: 2025-07-23 06:07:48+00:00
在 Hugging Face 上查看