manim_animation_dataset
收藏资源简介:
Primary Maths Manim Instruction Dataset 是一个合成与模型修复的指令微调数据集,专门用于训练编码模型生成小学数学动画视频的 Manim 社区版 Python 代码。该数据集当前包含 6,023 个聊天格式的示例,覆盖分数、位值、乘法与除法三个核心数学主题。其设计旨在微调如 Qwen2.5-Coder-Instruct 等模型,以生成可执行的 Manim 动画代码、简单的数学故事板、从故事板生成 Manim 代码、修复损坏或薄弱的代码示例、根据 Manim/Python 错误消息修正代码,并改进输出以更好地遵循布局、时长、字体、视觉模型、精确计数和渲染错误等指令要求。数据集以两种格式提供:Qwen 风格的 messages 格式和 ShareGPT/Unsloth 的 conversations 格式。此外,还包含一个独立的 800 示例针对性修复附加集,专注于解决已观察到的模型失败问题,如幻觉的 Manim API、无效对象方法、关键字错误、未定义变量、易碎的 LaTeX 渲染、错误的乘除计数、位值标签错误、动画时长控制以及字体可读性修复等。数据集经过严格验证,包括 JSONL 格式、聊天消息结构、唯一性、Python 语法有效性、代码输出中准确的 Scene 类定义和导入语句,以及通过 Docker 使用 Manim 社区版对部分代码进行渲染测试。该数据集适用于监督微调编码或指令遵循模型,以提升在基于 Manim 的小学数学动画生成任务上的性能,特别适合从自然语言教师提示生成视觉教育内容并修订有缺陷 Manim 输出的场景。局限性在于数据集主要为合成数据,辅以少量真实模型生成修复示例;虽然代码经过语法验证和渲染采样,但某些动画可能仍需人工视觉审查以确保教学适宜性;且数据集专注于小学数学主题,不假定能强泛化到无关学科。
数据集概述
数据集名称:Primary Maths Manim Instruction Dataset
许可证:Apache-2.0
总样本量:6,023 条聊天格式示例
核心内容
该数据集是一个合成与模型修复结合的指令微调数据集,旨在训练编码模型生成Manim Community Edition Python 代码,用于制作小学数学动画视频。覆盖的数学主题包括:
- 分数(Fractions)
- 位值(Place Value)
- 乘法与除法(Multiplication and Division)
适用模型与任务
适用于微调如 Qwen2.5-Coder-Instruct 等模型,使其具备以下能力:
- 生成可执行的 Manim 动画代码
- 编写简单的数学分镜(Storyboard)
- 根据分镜生成 Manim 代码
- 修复有缺陷的 Manim 代码
- 根据 Manim/Python 错误信息修正代码
- 优化输出以更好地遵循布局、时长、字体、视觉模型、精确计数和渲染错误等指令
数据集文件
推荐用于 Unsloth/ShareGPT 训练的文件:
primary_maths_manim_sharegpt_final_6023.jsonlprimary_maths_manim_qwen_messages_final_6023.jsonl
额外提供的 800 条定向修复数据集:
manim_error_repair_dataset_0800.jsonlmanim_error_repair_qwen_messages_0800.jsonlmanim_error_repair_sharegpt_0800.jsonlmanim_error_repair_validation_summary.json
数据格式
Qwen 版本使用 messages 格式:
json { "messages": [ {"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."} ] }
ShareGPT/Unsloth 版本使用 conversations 格式:
json { "conversations": [ {"from": "system", "value": "..."}, {"from": "human", "value": "..."}, {"from": "gpt", "value": "..."} ] }
助手回复内容根据任务不同,可能包含完整的 Manim Python 代码、编号分镜或修正后的 Manim 代码。
数据集构成
总样本分解:
- 基础主题数据集:2,700 条
- 指令遵循修复数据集:600 条
- 指令缺口修复数据集:1,000 条
- 真实生成修复数据集(来自模型失败记录):123 条
- 结果增强数据集:800 条
- 定向 Manim 错误修复数据集:800 条
各主题分布:
- 乘法与除法:2,147 条
- 分数:2,003 条
- 位值:1,873 条
各年级分布:
- Primary 2:973 条
- Primary 3:1,261 条
- Primary 4:1,182 条
- Primary 5:1,322 条
- Primary 6:1,285 条
基础主题任务分布:
topic_to_manim_code:1,080 条topic_to_storyboard:405 条storyboard_to_manim_code:540 条bad_code_to_fixed_code:405 条error_message_to_fixed_code:270 条
定向修复数据集(800 条)
聚焦于以下模型常见错误:
- 幻觉 Manim API(如
DropInEffect,DrawChars,arrange_clockwise) - 无效对象方法(如
Sector.add_to_edge,pairs.rect) SurroundingRectangle关键字错误- 未定义变量(如
i,answer_label) - 渲染失败的脆弱 LaTeX
- 错误的乘法数组计数
- 错误的分组除法
- 小数位值标签错误
- 动画时长控制问题(动画压缩至约一秒)
- 字体/可读性修复(需保留原始场景结构)
任务分布:
error_message_to_fixed_code:370 条bad_code_to_fixed_code:370 条topic_to_manim_code:40 条storyboard_to_manim_code:20 条
技能分布:
replace_hallucinated_manim_api:160 条repair_wrong_visual_math:160 条respect_requested_duration:120 条fix_runtime_error:110 条fix_keyword_or_type_error:100 条minimal_font_readability_edit:90 条safe_manim_api_generation:40 条storyboard_to_safe_code:20 条
验证情况
全局验证:
- 有效的 JSONL 格式
- 正确的聊天消息结构
- 生成修复块中唯一的聊天提示和输出
- 代码输出中包含
from manim import * - 代码输出中仅包含一个
Scene类 - 无外部资源依赖
- Python 语法正确性
- 时长修复示例中包含显式的时间模式
- 定向修复输出中无虚假 Manim API 令牌
基础 2,295 条 Manim 代码输出:使用 Manim Community Edition 在 Docker 中成功渲染。
800 条定向修复数据集静态验证:
- 800 条有效行、800 个唯一 ID
- 0 重复聊天提示、0 重复输出
- 所有修正代码输出可解析为 Python
- 所有修正代码输出定义且仅定义一个
Scene - 所有修正代码输出以
from manim import *开头 - 所有修正代码输出包含显式
run_time设置 - 无外部资源依赖、无已知虚假 API 令牌
Docker 渲染采样验证:
- 测试 24 条,通过 24 条,失败 0 条
- Docker 镜像:
manimcommunity/manim:stable
预期用途
该数据集适用于编码或指令跟随模型的监督微调,旨在提升模型生成小学数学 Manim 动画的能力。尤其适合需要从自然语言教师提示生成视觉教育内容并修正有缺陷 Manim 输出的模型。推荐训练场景包括:
- 微调 Qwen2.5-Coder-Instruct 风格模型
- 训练 Manim 代码生成行为
- 提升视觉约束下的指令跟随能力
- 教授模型基于 Manim 渲染错误进行修复
- 改进数组、分组、分数、位值图表等精确对象计数
- 减少幻觉的 Manim API
- 从生成输出中收集未来偏好数据
局限性
- 数据集主要为合成数据,仅含少量真实模型生成修复示例
- 代码经验证语法并通过采样渲染,但部分动画可能仍需人类审查视觉质量与教学适用性
- 数据集专注于小学阶段的分数、位值、乘法与除法,未经额外训练数据的情况下,不应假设其能强泛化至不相关主题





