附录 D Stack-Edu
本文为论文《SmolLM2:紧凑高效的小语言模型家族》「中文全文翻译」板块的对应章节,与「论文原文」板块同一章节一一对应,层级保持一致。
D.1 注释提示词
我们使用以下提示词模板,利用 Llama3 模型为 Stack-Edu(此处为 Python)生成 5 级标注:
以下是一个 Python 程序的摘录。评估其是否具有高教育价值并能帮助教学编程。使用以下所述的累积 5 点评分系统。根据每个标准的满足情况累积得分:
-
如果程序包含有效的 Python 代码(即使它不具教育性,如样板代码、配置和利基概念),加 1 分。
-
如果程序涉及实用概念(即使它缺乏注释),再加 1 分。
-
如果程序适合教育用途,并介绍编程中的关键概念(即使主题是高级的,如深度学习),授予第三个分数。代码应结构良好并包含一些注释。
-
如果程序是自包含的且与编程教学高度相关,授予第四个分数。它应类似于学校练习、教程或 Python 课程的一节。
-
如果程序在教育价值上卓越且完全适合编程教学,授予第五个分数。它应写得良好、易于理解,并包含逐步解释和注释。
摘录:
<EXAMPLE>
检查摘录后:
-
简要证明你的总分,最多 100 个字。
-
使用以下格式给出得分:“教育得分:<总分>”。
我们对 Stack-Edu 中的其他 14 种编程语言使用类似提示词,在第三个标准中调整示例以反映语言特定主题。例如,在 JavaScript 提示词中,我们将“深度学习”替换为“异步编程”。
D.2 Stack-Edu 语言统计
表 7 显示了 Stack-Edu 中各编程语言在教育过滤前后的大小。最初,我们也包含了 HTML,但分类器表现不佳,因此我们保留了 StarCoder2Data。
表 7:Stack-Edu 数据集跨编程语言的统计信息。表显示了各编程语言的原始数据集大小(来自 StarCoder2Data)和过滤后的 Stack-Edu 大小。
