--- license: apache-2.0 language: - en - zh base_model: - Qwen/Qwen3-30B-A3B --- # IE-Code-30B
面向交互式教学内容生成的教育大模型
An Educational LLM for Interactive Instructional Content Generation
🤗 Model | 📊 Edu-Interact Dataset | 🧪 Edu-Eval Benchmark | 📄 Paper
--- ## 简介 IE-Code-30B(Interactive Education Code)是一个面向 **K-12 交互式教学内容生成** 的领域专用大模型。与主要以文本对话进行知识讲解的教育大模型不同,IE-Code-30B 将教学内容生成建模为一个**“运行后质量可观测”的多模态约束优化问题**:模型输出被视为可在浏览器中运行的教学程序(HTML/JS/CSS),其质量只有在代码可执行、页面可渲染、交互行为可达、且交互过程服务于教学目标时才真正成立。 模型以稀疏混合专家(MoE)架构的 **Qwen3-30B-A3B-Coder** 为基座,通过 **“SFT 冷启动 + GRPO 强化学习”** 两阶段训练,使其具备将自然语言教学意图转化为高保真交互式 HTML 教学素材的能力,可覆盖知识讲解、动态演示、参数探究与即时反馈等关键教学交互模式。 ## 核心特性 - **交互式富媒体生成**:直接生成可在 Web 端运行的 HTML5/JavaScript 交互式教学页面(参数滑块、动态图示、Canvas 仿真、即时反馈组件等),而非静态图文或线性讲解。 - **多模态层级化奖励对齐**:融合代码可执行性(L1)、教学/科学逻辑(L2)、视觉渲染质量(L3)与交互响应(L4)的层级奖励,并引入**隐式交互引导(Potential Bonus)**缓解冷启动、**反作弊正则化(Anti-Hacking)**抑制“表面交互堆砌”的奖励投机。 - **高效 MoE 架构**:总参数约 30.5B,单次推理仅激活约 2.4B 参数,兼顾生成质量与推理/部署成本。 - **自带自动化评测体系**:配套 Edu-Eval 基准与级联评估管线,将“可执行、可渲染、可交互、可教学”转化为可计算的结构化指标。 ## 模型信息 | 项目 | 说明 | | --- | --- | | 基座模型 | Qwen3-30B-A3B-Coder(MoE) | | 总参数 / 激活参数 | 30.5B / 2.4B | | 训练范式 | 两阶段:SFT 冷启动 → GRPO 强化学习 | | 训练数据 | Edu-Interact($\mathcal{D}_{SFT}$ 10k + $\mathcal{D}_{RL}$ 4k) | | 评估器(Judge) | Qwen3-VL-235B(多模态联合评分) | | 输出格式 | HTML / JavaScript / CSS 单页交互式教学应用 | | 适用学段 | K-12(小学、初中、高中) | | 覆盖学科 | 数学、语文、英语、物理等核心学科 | ## 性能表现 在独立基准 **Edu-Eval**(600 条与训练数据严格互斥的零样本指令)上,采用四层多模态评估体系(L1 语法 / L2 逻辑 / L3 视觉 / L4 交互)的对比结果: | 模型 | 总分 | 语法 (L1) | 逻辑 (L2) | 视觉 (L3) | 交互 (L4) | | --- | :---: | :---: | :---: | :---: | :---: | | DeepSeek-v3.2-0122 | 43.9 | 34.8 | 65.0 | 70.3 | 46.0 | | Gemini-3-pro-preview | 48.9 | 44.0 | 66.7 | 59.4 | 55.0 | | Qwen3-235B-Instruct | 52.8 | 45.5 | **71.0** | 67.9 | 56.4 | | Qwen3-Coder-30B-Instruct(基座) | 55.0 | 46.9 | 65.3 | 64.3 | 64.8 | | **IE-Code-30B (Ours)** | **63.1** | **49.6** | 61.4 | **74.9** | **77.7** | ## 快速开始 ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "IE-Code-30B" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto", ) instruction = "为初中物理设计一个交互式教学页面:用滑块调节摩擦系数,实时观察小车在斜面上的运动状态变化。" messages = [ {"role": "system", "content": "你是一个交互式教学内容生成助手,输出可在浏览器中运行的 HTML/JS 教学页面。"}, {"role": "user", "content": instruction}, ] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tokenizer(text, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=8192, temperature=0.7, top_p=0.8) html = tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True) # 将模型输出的 HTML 保存后用浏览器打开即可 with open("lesson.html", "w", encoding="utf-8") as f: f.write(html) ``` > 建议将生成结果保存为 `.html` 文件在现代浏览器中打开;页面依赖的外部 CDN 资源需保证网络可访问。