数据集:
Vipitis/Shadertoys-fine
Shadertoys-fine 是 Shadertoys 数据集的改良版本(仍在进行中),其中的每个函数可以作为数据点使用。
语言建模:该数据集可用于训练模型来建模编程语言,即构建编程语言的语言模型。
数据点由函数字符串、名称以及一些元数据(如作者和源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' 函数的返回语句。在自定义评估器中,保留分号前面的部分,删除空格。
当前可用的拆分方式(随机排序):
这些拆分方式在两个子集中具有相同的索引。因此,如果您在 fine 子集上进行微调,不会接触到 return_completion 的测试拆分。但是,在这两个子集和拆分之间存在许多重复项。
数据获取日期:2022年7月20日开始
所有数据都是通过 Shadertoy.com API 进行收集的,然后通过查找关键词和计算大括号数量来确定哪些部分是函数,哪些部分不是。
语言来源是谁?Shadertoy.com 的贡献者,他们将着色器发布为“public+API”。
默认的 licnese for each Shader 许可为CC BY-NC-SA 3.0。然而,一些着色器可能附有不同的许可。该数据集目前未过滤任何许可证。