Skip to content

retrieva/JapaGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JAPAGEN: Efficient Few/Zero-shot Learning via Japanese Training Dataset Generation with LLM

This repository contains the prompts used in "JAPAGEN: Efficient Few/Zero-shot Learning via Japanese Training Dataset Generation with LLM".

The Japanese README is here.

1. Prompt Format

We assume the following format for the prompt, which is used as the argument messages of openai.ChatCompletion.create() to use OpenAI's GPT-3.5-Turbo API.

prompt = [
     {"role": "system", "content": "{the description of the task}"},
     {"role": "user", "content": "{the instruction for generating the pseudo data}"}
]

2. The details of the prompts

2.1. Config files for prompt creation

We create prompts based on the Config files for each task. The structure of the Config file is as follows for all tasks.

task_conf = {
    "task_name": "{task name}",
    "content": "{the description of the task}",
    "first instruction": "{the instruction for generating the first sentence (for 2-sentence input tasks)}",
    "labels": {
      "0": {
        "instruction": "{Instruction for generating a statement corresponding to label 0}:"
      },
      "1": {
        "instruction": "{Instruction for generating a statement corresponding to label 1}:"
      }
    }
  }

We create prompts as follows from the above Config file and generate pseudo data.

label = "0"

# the case of 1-sentence input tasks
prompt = [
     {"role": "system", "content": task_conf['content']},
     {"role": "user", "content": task_conf['labels'][label]['instruction']}
]
response = openai.ChatCompletion.create(messages=prompt)
generated_text = response['choices'][0]['message']['content']

# the case of 2-sentences input tasks
prompt1 = [
     {"role": "system", "content": task_conf['content']},
     {"role": "user", "content": task_conf['first instruction']}
]
response1 = openai.ChatCompletion.create(messages=prompt1)
generated_text1 = response1['choices'][0]['message']['content']
prompt2 = [
     {"role": "system", "content": task_conf['content']},
     {"role": "user", "content": task_conf['first instruction']},
     {"role": "assistant", "content": generated_text1},
     {"role": "user", "content": f"{task_conf['labels'][label]['instruction']}"},
]
response2 = openai.ChatCompletion.create(messages=prompt2)
generated_text2 = response2['choices'][0]['message']['content']

2.2. Config for each task

MARC-ja

{
    "task_name": "marcja",
    "content": "あなたは通販で購入した商品のレビューを記述しています。\n概要:\n- 商品の5段階評価のうち、1と2をネガティブ、4と5をポジティブとする。\n- 5段階評価は含まず、レビュー文のみで回答してください。\n- 記述は200字以内で行ってください。",
    "labels": {
      "0": {
        "instruction": "商品に対するポジティブなレビュー:"
      },
      "1": {
        "instruction": "商品に対するネガティブなレビュー:"
      }
    }
  }

JSTS

{
    "task_name": "jsts",
    "content": "あなたは画像の説明文を記述しています。\n概要:\n- 記述はそれぞれ50字以内で行ってください。\n- 記述は1文で行ってください。",
    "first instruction": "見ている画像の説明文:",
    "labels": {
      "0": {
        "instruction": "その文と全く関係のない文:"
      },
      "1": {
        "instruction": "その文に出現する単語は含まれるが、関係のない文:"
      },
      "2": {
        "instruction": "その文と少し関係のある文:"
      },
      "3": {
        "instruction": "その文と関係のある文:"
      },
      "4": {
        "instruction": "その文と類似する文:"
      },
      "5": {
        "instruction": "その文と全く内容が同じ文:"
      }
    }
  }

JNLI

{
    "task_name": "jnli",
    "content": "あなたは画像の説明文を記述しています。\n概要:\n- 記述はそれぞれ50字以内で行ってください。\n- 記述は1文で行ってください。",
    "first instruction": "見ている画像の説明文:",
    "labels": {
      "0": {
        "instruction": "その文に対して含意関係にある説明文:"
      },
      "1": {
        "instruction": "その文に対して矛盾関係にある説明文:"
      },
      "2": {
        "instruction": "その文に対して中立関係にある説明文:"
      }
    }
  }

JCoLA

{
    "task_name": "jcola",
    "content": "あなたは日本語の教師です。\n概要:\n- 日本語の例文を用いて授業をしています。\n- 例文は50字以内で生成してください。",
    "labels": {
        "0": {
            "instruction": "授業に使用するために統語上誤った日本語文を1文生成してください。"
        },
        "1": {
            "instruction": "授業に使用するために統語上正しい日本語文を1文生成してください。"
        }
    }
}

News

{
    "task_name": "news",
    "content": "あなたはlivedoor Newsのライターです。\n概要:\n- 「」で指定するトピックのニュース記事を日本語で書いてください。\n- 約200字で生成してください。\n- 指定したトピック名は生成文に含めないでください。",
    "labels": {
      "0": {
        "instruction": "「話題になった出来事」に関するニュースの要約文を書いてください。"
      },
      "1": {
        "instruction": "「Sports Watch」に関するニュースの要約文を書いてください。"
      },
      "2": {
        "instruction": "「ITライフハック」に関するニュースの要約文を書いてください。"
      },
      "3": {
        "instruction": "「家電チャンネル」に関するニュースの要約文を書いてください。"
      },
      "4": {
        "instruction": "「MOVIE ENTER」に関するニュースの要約文を書いてください。"
      },
      "5": {
        "instruction": "「独女通信」に関するニュースの要約文を書いてください。"
      },
      "6": {
        "instruction": "「エスマックス」に関するニュースの要約文を書いてください。"
      },
      "7": {
        "instruction": "「livedoor HOMME」に関するニュースの要約文を書いてください。"
      },
      "8": {
        "instruction": "「Peachy」に関するニュースの要約文を書いてください。"
      }
    }
  }

COVID-19

{
    "task_name": "covid-19",
    "content": "あなたはCOVID-19に関するツイートをしています。\n概要:\n- 100字以内で生成してください。",
    "labels": {
      "0": {
        "instruction": "ニュースなどの一般的に公表されている情報のみを含むツイートをしてください。"
      },
      "1": {
        "instruction": "あなたの周りで生じている個人的な情報を含むツイートをしてください。"
      },
      "2": {
        "instruction": "意見や感想を含むツイートをしてください。"
      },
      "3": {
        "instruction": "COVID-19とは関係のないツイートをしてください。"
      }
    }
  }

MARC-ja*

{
    "task_name": "marcja",
    "content": "あなたは通販で購入した商品のレビューを記述しています。\n概要:\n- 商品の5段階評価のうち、1と2をネガティブ、4と5をポジティブとする。\n- 5段階評価は含まず、レビュー文のみで回答してください。\n- 具体的な商品を思い浮かべてください。\n- 記述は200字以内で行ってください。",
    "genre": ["本・漫画・雑誌","DVD・ミュージック・ゲーム","家電・カメラ","パソコン・オフィス用品","ホーム・キッチン","食品・飲料","ヘルス・ビューティー","ベビー・おもちゃ・ホビー","ファッション・時計","スポポーツ・アウトドア","DIY・工具・車用品"],
    "labels": {
      "0": {
        "instruction": "商品(カテゴリ:\"genre\")に対するポジティブなレビュー:"
      },
      "1": {
        "instruction": "商品(カテゴリ:\"genre\")に対するネガティブなレビュー:"
      }
    }
  }

JSTS*

{
    "task_name": "jsts",
    "content": "あなたは画像の説明文を記述しています。\n概要:\n- 画像には\"object\"が写っています。\n- 記述はそれぞれ50字以内で行ってください。\n- 記述は1文で行ってください。",
    "object": ["人々","景色","スポーツ用品","食べ物","雑貨","家具","動物","電気機器","自動車"],
    "first instruction": "見ている画像の説明文:",
    "labels": {
      "0": {
        "instruction": "その文と全く関係のない文:"
      },
      "1": {
        "instruction": "その文に出現する単語は含まれるが、関係のない文:"
      },
      "2": {
        "instruction": "その文と少し関係のある文:"
      },
      "3": {
        "instruction": "その文と関係のある文:"
      },
      "4": {
        "instruction": "その文と類似する文:"
      },
      "5": {
        "instruction": "その文と全く内容が同じ文:"
      }
    }
  }

JNLI*

{
    "task_name": "jnli",
    "content": "あなたは画像の説明文を記述しています。\n概要:\n- 画像には\"object\"が写っています。\n- 記述はそれぞれ50字以内で行ってください。\n- 記述は1文で行ってください。",
    "object": ["人々","景色","スポーツ用品","食べ物","雑貨","家具","動物","電気機器","自動車"],
    "first instruction": "見ている画像の説明文:",
    "labels": {
      "0": {
        "instruction": "その文に対して含意関係にある説明文:"
      },
      "1": {
        "instruction": "その文に対して矛盾関係にある説明文:"
      },
      "2": {
        "instruction": "その文に対して中立関係にある説明文:"
      }
    }
  }

3. Citation

If you use this repository, please cite the following paper:

TBC

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published