附录 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 大小。