ONNX 模型库
返回模型

说明文档

Aryabhatta 1.0:面向JEE数学考试的语言模型

概述

Aryabhata 1.0 是由 Physics Wallah AI Research 开发的70亿参数小型数学语言模型,专为 JEE Mains 等高风险印度竞争性考试优化。尽管体积紧凑,Aryabhata 1.0 在以考试为中心的推理任务上实现了最先进的性能,具有出色的token效率和低推理成本。

🚧 Aryabhata 1.0 是一个实验性发布。我们正在积极寻求反馈——请在本仓库的讨论标签页贡献您的意见。


🧠 主要特性

  • 架构:70亿参数的因果解码器模型。
  • 考试中心优化:专门针对JEE级别数学推理进行调优。
  • 高准确率
    • JEE Mains 2025年1月场次准确率 86%
    • JEE Mains 2025年4月场次准确率 90.2%
  • Token效率:在 ~2K token窗口内高效运行,而其他推理模型需要约8K。
  • 计算高效:使用优化流水线在 1x2 NVIDIA H100 GPU 上训练。

🛠️ 训练详情

  • 训练数据:从Physics Wallah专有考试数据集中精选的约13万个问题-解答对。
  • 训练流水线
    • 模型合并
    • 拒绝采样
    • 监督微调(SFT)
    • 可验证奖励强化学习(RLVR)

🔀 模型合并

我们从模型合并(加权平均)开始,通过组合多种模型能力来构建强大的初始化(Aryabhata 0.5):

  • Qwen 2.5 Math:具有扎实符号数学基础的稳健数学中心LLM。
  • 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道题目。

每份试卷包括:

  • 单选题,有一个正确选项
  • 数值答案型(NAT)题目,需要精确的数值回答

评估指标

我们使用复合评估指标来反映真实世界的评分严格性并减少假阳性:

  1. 浮点匹配
  • 在容差范围内(±1e-9)比较预测答案和目标答案
  • 稳健地处理舍入误差和小数值错误
  1. 字符串匹配
  • 用于符号答案(如分数、根式)
  • 使用严格精确匹配——预测必须逐字符匹配真值
  1. LLM作为评判者(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)


# 定义停止字符串
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


# 创建生成配置(也可以设置temperature、top_p等)
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

# 初始化模型(如果本地不存在则从Hugging Face下载)
llm = LLM(model="PhysicsWallahAI/Aryabhata-1.0")

# 定义提示和采样配置
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|>", "]}}]}}]"])

# 运行推理
results = llm.chat(messages, sampling_params)

# 打印结果
print(results[0].outputs[0].text.strip())

🚀 路线图

Aryabhata 2.0(即将推出):

  • 将领域覆盖扩展到物理化学
  • 支持JEE AdvancedNEET基础课程大纲
  • 进一步优化实时部署的经济性和准确性

🤝 引用

如果您使用此模型,请引用:

@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}},
}

onnx-community/Aryabhata-1.0

作者 onnx-community

text-generation onnxruntime-genai
↓ 0 ♥ 0

创建时间: 2025-07-23 06:09:31+00:00

更新时间: 2025-07-23 06:11:46+00:00

在 Hugging Face 上查看

文件 (9)

.gitattributes
README.md
chat_template.jinja
genai_config.json
model.onnx ONNX
model.onnx.data
special_tokens_map.json
tokenizer.json
tokenizer_config.json