数据集:

Vipitis/Shadertoys-fine

语言:

en code

大小:

100K<n<1M

语言创建人:

machine-generated

批注创建人:

no-annotation

其他:

code
英文

Shadertoys-fine 数据集卡片

数据集摘要

Shadertoys-fine 是 Shadertoys 数据集的改良版本(仍在进行中),其中的每个函数可以作为数据点使用。

支持的任务和排行榜

语言建模:该数据集可用于训练模型来建模编程语言,即构建编程语言的语言模型。

语言

  • 英语(名称、注释)
  • Shadercode 编程语言

数据集结构

数据实例

数据点由函数字符串、名称以及一些元数据(如作者和源URL)组成(将来可能会有没有注释的函数字符串)。

{
  'name': '<type> <name>',
  'code': '<type> <name>(<inputs>) { <body> return <outputs>; }\n',
  'source': 'https://shadertoy.com/view/<shaderID>',
  'author': '<username>'
}

ShaderEval 中的 return_completion 子集中的数据点只包括两个特征:

{
  'body': '<type> <name> <type> <name>(<inputs>) { <body> return',
  'return_statment': ' <outputs>: }\n',
}

数据字段

  • 'name' 函数标识符,由函数类型和名称组成

  • 'code' 函数的原始代码(包括注释)

  • 'source' 着色器的URL,可能位于不同的渲染通道

  • 'author' 着色器作者的用户名

  • 'body' 函数的主体部分,不包括返回语句(无注释)

  • 'return_statment' 函数的返回语句。在自定义评估器中,保留分号前面的部分,删除空格。

数据拆分

当前可用的拆分方式(随机排序):

  • 训练集(85.0%)
  • 测试集(15.0%)

这些拆分方式在两个子集中具有相同的索引。因此,如果您在 fine 子集上进行微调,不会接触到 return_completion 的测试拆分。但是,在这两个子集和拆分之间存在许多重复项。

数据集创建

数据获取日期:2022年7月20日开始

来源数据

初始数据收集和规范化

所有数据都是通过 Shadertoy.com API 进行收集的,然后通过查找关键词和计算大括号数量来确定哪些部分是函数,哪些部分不是。

语言来源是谁?

Shadertoy.com 的贡献者,他们将着色器发布为“public+API”。

许可信息

默认的 licnese for each Shader 许可为CC BY-NC-SA 3.0。然而,一些着色器可能附有不同的许可。该数据集目前未过滤任何许可证。