数据集说明
竞赛数据集包括大约 10,000 篇论文,其中一些由学生撰写,一些由各种大型语言模型 (LLM) 生成。比赛的目的是确定论文是否由法学硕士生成。
所有的文章都是根据七个论文提示之一写的。在每个提示中,学生被指示阅读一个或多个源文本,然后写一个回答。在生成论文时,这些信息可能已作为 LLM 的输入提供,也可能没有提供。
来自两个提示的论文组成了训练集;其余的论文组成了隐藏的测试集。几乎所有的训练集论文都是由学生撰写的,只有少数生成的论文作为示例。您可能希望生成更多文章以用作训练数据。
请注意,这是一场代码竞赛。中的数据只是虚拟数据,可帮助你创作解决方案。当您提交的内容被评分时,此示例测试数据将替换为完整的测试集。测试集中大约有 9,000 篇论文,包括学生撰写的和 LLM 生成的。test_essays.csv
文件和字段信息
{test|train}_essays.csv
id- 每篇文章的唯一标识符。
prompt_id- 确定撰写文章时所响应的提示。
text- 论文文本本身。
generated- 论文是由学生()撰写的,还是由法学硕士()撰写的。此字段是目标,在 中不存在。01test_essays.csv
train_prompts.csv - 论文是针对这些领域的信息而写的。
prompt_id- 每个提示的唯一标识符。
prompt_name- 提示的标题。
instructions- 给学生的指示。
source_text- 文章的文本是以 Markdown 格式撰写的。重要段落在同一行的段落前用数字枚举,如 中所示。散文有时通过数字来指代一个段落。每篇文章的标题前面都有一个标题,如 .当注明作者时,他们的名字将在标题中给出。并非所有文章都注明了作者。一篇文章的副标题可能如下所示。0 Paragraph one.
1 Paragraph two.# Titleby## Subheading
sample_submission.csv - 格式正确的提交文件。有关详细信息,请参阅评估页面。
Tokenizer: 这是tokenizers库中的一个类,它允许创建和管理自定义的分词器。
models.BPE: 这指定使用Byte-Pair Encoding模型作为分词的基础算法。BPE通过合并频繁出现的字节对来减少词汇表的大小,同时有效处理未知字符和词汇。
unk_token=“[UNK]”: 这设置了一个特殊的未知词标记(UNK token)。当分词器遇到它在词汇表中找不到的单词时,会用这个标记来代替。
使用BPE算法的优点之一是它可以平衡词汇表大小与处理未见词的能力,使得模型能够更好地泛化到新文本上。这种方法特别适用于词汇丰富或者包含大量稀有词汇的语言处理任务。
[UNK] (Unknown Token): 当遇到不在词汇表中的单词时使用。
[PAD] (Padding Token): 用于文本序列的填充,使所有输入的长度匹配,常用于处理成批数据。
[CLS] (Classification Token): 常用于分类任务的开始位置,表示整个输入序列的聚合状态。
[SEP] (Separator Token): 用于分隔不同的序列,例如在问答任务中分隔问题和答案。
[MASK] (Mask Token): 在进行遮蔽语言模型训练时使用,表示被遮蔽的单词。
接下来,创建训练器实例:
设置特殊令牌并初始化分词器的训练器。
将测试集文本转换为datasets库格式。
定义一个生成器函数来分批提供数据,并训练分词器。
创建一个快速的预训练分词器实例。
使用分词器处理测试集和训练集文本。
使用TF-IDF向量化方法处理分词后的文本,提取特征,并获取词汇表。
重用测试集的词汇表来向量化训练集文本,以保持特征空间的一致性。