数据集:

ought/raft-submission

英文

RAFT提交模板

欢迎来到 RAFT benchmark !RAFT是一个few-shot分类基准,用于测试语言模型的性能:

  • 跨多个领域进行测试(文献综述,推特,客户互动等)
  • 进行经济价值分类任务的测试(任务本身具有内在的重要性)
  • 在类似部署的设置中进行测试(每个任务50个示例,允许信息检索,隐藏测试集)

您可以使用此存储库生成模板,以便在 the leaderboard 上提交您的预测进行评估。

快速入门

1. 在Hugging Face Hub上创建账号

首先,在Hugging Face Hub上创建账号。如果尚未创建,请访问 here 进行注册!

2. 在本地机器上创建一个模板存储库

接下来,您需要在本地机器上创建一个包含各种文件和CLI的模板存储库,以帮助您验证和提交预测。Hugging Face Hub使用 Git Large File Storage (LFS) 管理大型文件,所以如果您尚未安装,请先安装它。例如,在MacOS上,您可以运行:

brew install git-lfs
git lfs install

然后,运行以下命令来创建存储库。我们建议为项目创建一个Python虚拟环境,例如使用Anaconda:

# Create and activate a virtual environment
conda create -n raft python=3.8 && conda activate raft
# Install the following libraries
pip install cookiecutter huggingface-hub==0.13.4
# Create the template repository
cookiecutter git+https://huggingface.co/datasets/ought/raft-submission

这将要求您指定您的Hugging Face Hub用户名、具有写入权限的Hugging Face access token ,以及存储库的名称:

hf_hub_username [huggingface]:
hf_access_token [hf_access_token]:
repo_name [my-raft-submissions]:

这将触发以下步骤:

  • 在Hugging Face Hub上创建一个私有数据集存储库,路径为 {hf_hub_username}/{repo_name}
  • 将存储库克隆到本地机器上
  • 添加各种模板文件并将其提交到本地存储库
  • 最终,存储库的结构应如下所示:

    my-raft-submission
    ├── LICENSE
    ├── README.md               <- The README with submission instructions
    ├── cli.py                  <- The CLI for validating predictions etc
    ├── data                    <- The predictions for each task
    ├── my-raft-submission.py   <- Script to load predictions. Do not edit!
    └── requirements.txt        <- The requirements file for the submissions
    

    3. 安装依赖项

    最后一步是安装项目的依赖项:

    # Navigate to the template repository
    cd my-raft-submissions
    # Install dependencies
    python -m pip install -r requirements.txt
    

    完成!现在您可以开始生成预测了 - 请参阅下面的说明,了解如何将它们提交到Hub。

    提交到排行榜

    要向 leaderboard 提交预测,主要有三个步骤:

  • 生成每个任务的未标记测试集上的预测
  • 验证预测与评估框架兼容
  • 将预测推送到Hub!
  • 有关详细信息,请参阅下面的说明。

    规则

  • 为了防止过度拟合公共排行榜,我们每周仅评估一个提交。您可以随时将预测推送到Hub,但我们每周只评估最近提交的结果。提交会在每周日的UTC 12:00进行评估。
  • 允许使用其他数据集进行迁移学习或元学习,包括对其他语料库进行进一步预训练。
  • 允许使用未标记的测试数据,因为在实际应用中始终可以使用。例如,可以使用该任务的未标记数据进行进一步预训练。
  • 系统可以使用从互联网检索到的信息进行增强,例如通过自动化网络搜索。
  • 提交文件格式

    对于RAFT中的每个任务,您应该创建一个名为 predictions.csv 的CSV文件,其中包含您的模型对未标记测试集的预测。每个文件应该有恰好2列:

    • ID(int)
    • 标签(字符串)

    请参考 data 文件夹中的示例预测以了解预期格式。下面是一个创建多数类基准的简单示例:

    from pathlib import Path
    import pandas as pd
    from collections import Counter
    from datasets import load_dataset, get_dataset_config_names
    
    tasks = get_dataset_config_names("ought/raft")
    
    for task in tasks:
        # Load dataset
        raft_subset = load_dataset("ought/raft", task)
        # Compute majority class over training set
        counter = Counter(raft_subset["train"]["Label"])
        majority_class = counter.most_common(1)[0][0]
        # Load predictions file
        preds = pd.read_csv(f"data/{task}/predictions.csv")
        # Convert label IDs to label names
        preds["Label"] = raft_subset["train"].features["Label"].int2str(majority_class)
        # Save predictions
        preds.to_csv(f"data/{task}/predictions.csv", index=False)
    

    如示例所示,每个 predictions.csv 文件应存储在任务的子文件夹中的 data 文件夹中,最后您应该获得如下内容:

    data
    ├── ade_corpus_v2
    │   ├── predictions.csv             <- A CSV file of the predictions with `ID` and `Label` columns
    │   └── task.json                   <- Configuration file for loading the predictions. Do not edit!
    ├── banking_77
    │   ├── predictions.csv
    │   └── task.json
    ├── neurips_impact_statement_risks
    │   ├── predictions.csv
    │   └── task.json
    ├── one_stop_english
    │   ├── predictions.csv
    │   └── task.json
    ├── overruling
    │   ├── predictions.csv
    │   └── task.json
    ├── semiconductor_org_types
    │   ├── predictions.csv
    │   └── task.json
    ├── systematic_review_inclusion
    │   ├── predictions.csv
    │   └── task.json
    ├── tai_safety_research
    │   ├── predictions.csv
    │   └── task.json
    ├── terms_of_service
    │   ├── predictions.csv
    │   └── task.json
    ├── tweet_eval_hate
    │   ├── predictions.csv
    │   └── task.json
    └── twitter_complaints
        ├── predictions.csv
        └── task.json
    

    验证您的提交

    为了确保您的提交文件格式正确,从存储库的根目录运行以下命令:

    python cli.py validate
    

    如果一切正确,您应该会看到以下消息:

    All submission files validated! ✨ ? ✨
    Now you can make a submission ?
    

    将您的提交推送到Hugging Face Hub!

    最后一步是提交您的文件并将其推送到Hub:

    python cli.py submit
    

    如果没有错误,您应该会看到以下消息:

    Submission successful! ? ? ?
    Your submission will be evaluated on Sunday 05 September 2021 at 12:00 UTC ⏳
    

    在评估每周日运行,您的结果将显示在排行榜上。