Skip to content
intermediatetext

Aya Dataset Writing and Editing Instruction-Completion Pairs

Rate and edit prompt-completion pairs with text_edit schemes, using ten real Apache-2.0 Aya Dataset items in ten languages.

Get This Design

View on GitHub(opens in a new tab)

Clone or download from the repository

Quick start:

bash
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/text/cross-lingual/aya-dataset-instruction-writing
potato start config.yaml

About this dataset

The Aya Dataset is an open-access collection of human-written instruction-completion pairs for multilingual instruction tuning. Singh et al. (ACL 2024) collected the dataset through the Aya Annotation Platform from fluent speakers, and the released dataset has 204,114 items in 65 languages (22 high-resource, 12 mid-resource, and 31 low-resource). It is released under Apache 2.0.

On the platform, contributors could write new pairs from scratch, edit existing pairs, or give feedback on contributions. The paper describes the contributor activities as a find-fix-verify paradigm. The design reproduces the editing task. An annotator rates a pair with a thumbs up or thumbs down against the paper's guidelines, edits the prompt if the prompt needs clearer instructions, and edits the completion in the pair's language. Both edits use text_edit schemes that open prefilled with the released text, and Potato shows a diff and the edit distance. The ten sample items are real released pairs in French, Standard Arabic, Portuguese, Spanish, Tamil, Standard Malay, Igbo, English, Swahili, and Polish, shown as the starting text because the release keeps only the final text of each pair. The feedback task, points, and leaderboard are not reproduced.

The design has no model_training block. A text_edit answer is stored as an object that holds the edited text, the original text, and the edit distances, and nothing in Potato's training code unwraps the edited text, so the design does not claim that the llm-sft trainer learns from the edited text. A plain text scheme would train but opens empty.

Instances in the released dataset
204,114
Languages
65
Original annotations
138,844
Edit acceptance threshold
Levenshtein distance of 5 or more
Licence
Apache 2.0

Configuration File

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# Aya Dataset - Writing and Editing Instruction-Completion Pairs
#
# Paper:   Singh et al., "Aya Dataset: An Open-Access Collection for Multilingual
#          Instruction Tuning", ACL 2024 (Volume 1: Long Papers), pp. 11521-11567.
#          https://aclanthology.org/2024.acl-long.620/
# DOI:     10.18653/v1/2024.acl-long.620
# Dataset: https://huggingface.co/datasets/CohereLabs/aya_dataset
# Licence: Apache-2.0 (dataset card, and stated in the paper). The ten sample
#          items are real Aya Dataset pairs, redistributed under that licence;
#          each carries its row number in the dataset's train split.
#
# BibTeX (from the ACL Anthology):
#   @inproceedings{singh-etal-2024-aya,
#     title = "Aya Dataset: An Open-Access Collection for Multilingual Instruction Tuning",
#     author = "Singh, Shivalika and Vargus, Freddie and D'souza, Daniel and
#       Karlsson, Borje F. and others (33 authors)",
#     booktitle = "Proceedings of the 62nd Annual Meeting of the Association for
#       Computational Linguistics (Volume 1: Long Papers)",
#     year = "2024", address = "Bangkok, Thailand",
#     url = "https://aclanthology.org/2024.acl-long.620/",
#     doi = "10.18653/v1/2024.acl-long.620", pages = "11521--11567"
#   }
#
# The Aya Annotation Platform (Section 2.1) offered three tasks, "following the
# find-fix-verify paradigm": "Writing new examples from scratch (original
# annotations), editing existing examples to improve the quality and
# comprehensiveness (re-annotations), and giving feedback on the quality of
# existing contributions (annotation feedback)". This design reproduces the
# re-annotation task: read a prompt-completion pair, rate it, and edit the
# prompt and the completion in the annotator's own language.
#
# Guidelines (Appendix C.2), quoted:
#   1. "No grammatical or spelling mistakes in both the prompt and completion text."
#   2. "The prompt provides clear instructions on what the task is."
#   3. "The completion answers the prompt correctly. Both the prompts and
#      completions should be in full sentences and coherent, with reasonable length."
#   4. "For original annotations, the prompts and completions should not be
#      generated from other language models."
# Rating (Appendix C.2): "annotators rated the quality of existing prompt and
# completion pairs by choosing either the thumbs-up or thumbs-down option. If the
# provided prompt and completion pair were already of good quality according to
# the criteria above, then annotators rated them with thumbs up and moved ahead
# without editing. Overall, annotators were encouraged to re-annotate the
# completions, in particular by adding more details and context to them since
# many of them were often short one-word answers."
#
# Adaptations:
#   - Only the re-annotation task is built. The annotation-feedback task needs
#     the original and the edited pair side by side and is left out.
#   - The released dataset holds each pair's final text, not the text before
#     editing. The ten items are released pairs shown as the starting point, with
#     the original dataset's "annotation_type" and train-split row recorded.
#   - The prompt and the completion use text_edit schemes (source_field: prompt
#     and source_field: completion). Each opens prefilled with the pair's text,
#     so an annotator edits the text in place, and Potato shows a word diff, the
#     word and character edit distance, and a reset button. An untouched box is
#     recorded as accepted. The paper mentions edit distance only as the
#     Levenshtein acceptance threshold (Section 2.3), not as an interface element,
#     so this display is Potato's and not a copy of the platform's screen.
#   - Points, the leaderboard and the Aya Score are not reproduced.
#
# Training: none. A text_edit answer is stored as a JSON object holding the
# edited text, the original text and the edit distances. The llm-sft trainer
# (kinds text and trajectory) reads a text scheme's stored answer as the text to
# learn, and no code under potato/training unwraps the edited text from that
# object, so this design cannot say that llm-sft learns the edited completion
# from a text_edit scheme. A plain text scheme would train, but it opens empty,
# so the edit-in-place display was kept and the model_training block was dropped.

annotation_task_name: "Aya Dataset: Writing and Editing Instruction-Completion Pairs"
task_dir: "."

data_files:
  - sample-data.json

item_properties:
  id_key: id
  text_key: prompt

output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"

require_password: false

instance_display:
  fields:
    - key: language
      type: text
      label: "Language"
    - key: prompt
      type: text
      label: "Prompt"
    - key: completion
      type: text
      label: "Completion"

annotation_schemes:
  # Step 1: thumbs-up or thumbs-down on the pair
  - annotation_type: radio
    name: pair_rating
    description: "Rate this prompt and completion. Thumbs up means the pair already meets the guidelines (correct spelling and grammar, a prompt with a clear instruction, a correct completion in full sentences). Thumbs down means it needs editing."
    labels:
      - "Thumbs up"
      - "Thumbs down"

  # Step 2: edit the prompt, prefilled with the pair's prompt
  - annotation_type: text_edit
    name: edited_prompt
    description: "Edit the prompt if needed, in the same language, so that it gives clear instructions. Leave it unchanged to keep it."
    source_field: prompt

  # Step 3: edit the completion, prefilled with the pair's completion
  - annotation_type: text_edit
    name: edited_completion
    description: "Edit the completion so that it answers the prompt correctly, in the prompt's language, in full sentences. Add detail and context where the answer is short."
    source_field: completion

annotation_instructions: |
  You are shown a prompt and a completion from the Aya Dataset, an open instruction-tuning
  dataset written by fluent speakers of 65 languages. Work in the language of the pair.
  1. Rate the pair with a thumbs up or thumbs down. A good pair has no grammar or spelling
     mistakes, a prompt that clearly says what the task is, and a correct, coherent completion
     in full sentences of reasonable length.
  2. If the prompt needs work, edit it in the box, which starts with the pair's prompt. Leave
     it unchanged otherwise.
  3. Edit the completion, which also starts with the pair's text, into the completion you would
     want a model to give. Short one-word answers are the usual thing to improve with more
     detail and context.
  Do not paste text generated by another language model.

user_config:
  allow_all_users: true
max_annotations_per_user: 10

Sample Data

json
[
  {
    "id": "aya_001",
    "prompt": "Quels président des États-Unis ne s’est jamais marié ?",
    "completion": "James Buchanan est le seul président qui ne s'est jamais marié.",
    "language": "French",
    "language_code": "fra",
    "aya_annotation_type": "re-annotations",
    "train_row": 1
  },
  {
    "id": "aya_002",
    "prompt": "أعطني مثالاً على المعلومات العامة في هذه الفئة: الأفلام",
    "completion": "من هو مبتكر جون ويك الذي لم يشارك في الدخول الرابع القادم 4 إلى الامتياز؟ ديريك كوستلاد - Derek Kolstad",
    "language": "Standard Arabic",
    "language_code": "arb",
    "aya_annotation_type": "re-annotations",
    "train_row": 150006
  }
]

// ... and 8 more items

Dataset & paper

Singh et al., ACL 2024

Paper DOI
10.18653/v1/2024.acl-long.620

Citation (BibTeX)

bibtex
@inproceedings{singh-etal-2024-aya,
    title = "{A}ya Dataset: An Open-Access Collection for Multilingual Instruction Tuning",
    author = {Singh, Shivalika  and
      Vargus, Freddie  and
      D{'}souza, Daniel  and
      Karlsson, B{\"o}rje F.  and
      Mahendiran, Abinaya  and
      Ko, Wei-Yin  and
      Shandilya, Herumb  and
      Patel, Jay  and
      Mataciunas, Deividas  and
      O{'}Mahony, Laura  and
      Zhang, Mike  and
      Hettiarachchi, Ramith  and
      Wilson, Joseph  and
      Machado, Marina  and
      Moura, Luisa  and
      Krzemi{\'n}ski, Dominik  and
      Fadaei, Hakimeh  and
      Ergun, Irem  and
      Okoh, Ifeoma  and
      Alaagib, Aisha  and
      Mudannayake, Oshan  and
      Alyafeai, Zaid  and
      Chien, Vu  and
      Ruder, Sebastian  and
      Guthikonda, Surya  and
      Alghamdi, Emad  and
      Gehrmann, Sebastian  and
      Muennighoff, Niklas  and
      Bartolo, Max  and
      Kreutzer, Julia  and
      {\"U}st{\"u}n, Ahmet  and
      Fadaee, Marzieh  and
      Hooker, Sara},
    editor = "Ku, Lun-Wei  and
      Martins, Andre  and
      Srikumar, Vivek",
    booktitle = "Proceedings of the 62nd Annual Meeting of the {A}ssociation for {C}omputational {L}inguistics (Volume 1: Long Papers)",
    month = aug,
    year = "2024",
    address = "Bangkok, Thailand",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.acl-long.620/",
    doi = "10.18653/v1/2024.acl-long.620",
    pages = "11521--11567"
}

Details

Annotation Types

radiotext_edit

Domain

NLPMultilingualInstruction Tuning

Use Cases

Instruction Data CollectionMultilingual Data CurationPost-Training Data

Tags

aya datasetayainstruction tuningmultilinguallow-resource languagesacl2024

Found an issue or want to improve this design?

Open an Issue(opens in a new tab)