誰でも自由に使える日本語の指示データセットを作っています

要点

素敵な日本語を話せるAIを作るために、日本語のQ&A/会話データを収集しています。以下のフォームから、誰でも自由に利用できます。日頃生じる疑問や、AIに求める理想的な回答などを投稿ください。
(面倒であれば、「質問」のみを投稿するといった形でも問題ありません。後から誰かが「回答」を考えてくれるかもしれません)


ーーーー

以下、データセットの作り方のコツや、なぜデータを集めるのか?(投稿フォームを開設した経緯)を詳しく知りたい方向けの解説を行います。
興味のある方は、ご参照ください。


良い会話・Q&Aデータセットとは?

2024年は大規模言語モデルを作ることになりました。その一環として、CC0のライセンス形態で、上質な会話・Q&Aデータセット(指示データセット)を構築中です。
データセットの件数は重要ですが、同じくらい、質も大切です。
日本語の指示データセットの作り方に関する知見は24年3月現在、Web上ではあまり共有されていませんでした
そこで本項では、指示データセットを作るための基本的な考え方やコツについて、考え方の例を説明します。

(以下の内容は、24年1月末に、オープンな日本語の国産大規模言語モデル(LLM)としては最高性能を出したKARAKURI LMの開発に携わった、Kさんから教えていただいた内容を、本人了承の上で、筆者がまとめ直したものです)

基本的な考え方

  • LLMには適切な指示データセットの訓練が必要です。

  • もし、LLMに◯◯をして欲しいのであれば、そのための訓練を行うべきです。

    • 例えば、悩み相談をしてほしいのであれば、LLMに対して、「良い悩み相談の対話」を学習させるべきです。

    • プロのカウンセラーになるためには対話の訓練が必要なように、LLMも相応のトレーニングが必要ということです。

    • つまり、放っておいてもうまくいくような「魔法」は存在しない、ということのようです。

  • 良いデータセットを学習したLLMは、良い返答を返してくれるようになるはずです。

データの例

基本的に指示データセットは、System prompt, Question, Answer3要素から構成されています。System promptはAIに与えられた役割、Questionはユーザーの質問、AnswerはAIの回答です。
(System promptは無くても、一応は動きます)

データの例を以下に示します。

  • System: あなたは小学校の先生です。次の質問を回答してください。

  • Question: りんごの木に10個、りんごがなっていました。ここから太郎君がりんごを4個食べました。木にりんごはいくつ残っていますか?

  • Answer: この問題は、引き算を使って解くことができます。元々りんごの木には10個のりんごがなっていました。太郎君が4個のりんごを食べた後、木にはいくつのりんごが残っているかを求める問題です。10個から4個を引く引き算を行うと、残りのりんごの数を求めることができます。したがって、木には6個のりんごが残っています。

データセット作成の基本原則

データセット作成の基本原則は以下のとおりです。

  • 様々なバリエーションをもったQ&Aがあった方が良い。

    • ユーザーの質問は多彩なので、様々なケースを想定した質問を用意する。

    • AIの出力が画一化しないよう、回答形式も多彩にする。

    • 質問や回答の中身も多彩な方が良い。

  • 質問は雑でも良い。

    • 丁寧に質問をするユーザーもいれば、雑な問いかけをするユーザーもいます。

    • AIの意義は、むしろ後者の意図をうまく汲み取るシステムなので、「雑な質問に向き合うトレーニング」を積んでおいた方が良いわけです。

  • 回答は丁寧に作る。

    • 一般的なAIのアプリケーションは、融通の効くアシスタントです。

    • ユーザーの質問が雑であっても、回答が投げやりであってはいけません。

    • 回答中の誤字脱字や論理的破綻、公序良俗、倫理問題などには、特に気をつける必要があります。

質問作成のポイント

  • 打ち間違いがあっても良い

    • 「基本原則」で示した通り、ユーザーの質問は雑でかまいません。

    • むしろ、雑な質問に答えられるタフさが、実戦のAIでは求められます。

  • 指示が曖昧であってもよい

    • ユーザーの真意を汲み取るAIこそが、真に有用なAIです。

  • 直接・間接指示の双方があったほうが良い

    • ちょっとマニアックですが、LLMにお願いをする際は、直接・間接指示の双方のケースがありえます。両者を想定したデータセット作成が好ましいです。

      • 直接指示: XXの物語を書いて下さい。

      • 間接指示: 昔々、あるところに、XXがいました。XXは

  • one-shot, few-shot質問の双方があったほうが良い

    • こちらも少しマニアックな話です。

    • one-shot質問は、普通に質問を行うケース、few-shotは、例題を与えながら問うケースです。双方に対応できるような訓練を行いたいところです。

      • one-shot: Q: 羊に角は生えていますか?

      • few-shot: Q: 日本はアメリカ大陸にありますか? A: ありません。 Q. フランス革命はどこでおきましたか?

回答作成のポイント

  • 丁寧に作るべし

    • 「基本原則」に記載の通り、AIの回答が雑だと、多くのケースでユーザーが困ります。完璧な回答を目指しましょう。

  • 「理由」はあってもなくても良い

    • LLM業界では、回答時に理由を付記する手法が流行っています(Chain of Thought, CoT)。

      • ユーザーにとっての解釈性も上がりますし、回答精度が上げることも知られています。

    • しかし、データセットの回答としては、「理由」付き、無しの双方のケースが存在した方が良い模様です※。

      • 理由無し: Q: 俳句を1ツイートに収めることはできますか? A: はい。

      • 理由有り: Q: 俳句を1ツイートに収めることはできますか? A: 俳句は17文字で、1ツイートの文字制限数は140文字です。したがって、俳句は1ツイートに収めることができます。 

※これは少し意外で、意見の分かれる考え方("神学論争")かもしれません。
なぜ、「理由なし」でも学習させるべきかというと、例えば、「1+1 = の答え」を聞かれたときには、「2」と端的に答える回答が望ましいからです。いつも「理由付き」の回答だけを学習させてしまうと、このような単純な質問に対しても、回答が無駄に冗長になってしまうリスクが生じます。
「ユーザーがどのような回答を望むか?」という視点も汲み取りながら、モデル訓練の設計を考える必要があるということかもしれません。

取り組みに際した注意点(法律・規約)

本プロジェクトでは、投稿データが全て、"著作権フリー"(正確にはCC0ライセンス)で公開されることになります。著作権法で保護されたテキストは投稿しないでくさい。
加えて、プロジェクトでは自由に商用利用できる大規模言語モデルの開発用のデータセット作成を目的としています。機械学習での利用が禁じられている文章(例: ChatGPTの返答)などは投稿しないでください※

※ChatGPTなどのAIの回答を参考にすること自体は問題ありません。AIの出力を参考にし、ご自身で相応の修正を加えた上で、投稿をお願いします。
(無料で使える類似のサービスとしては、GoogleのSGEやMicrosoftのCopilot Preview(版)などがあります)

プロジェクトの背景: なぜ、日本語の会話・Q&Aデータが必要なのか?

本項では、日本語に強い大規模言語モデルの開発に際して、どうして上質な指示データセットが必要になるのかについて、背景も含めて平易に説明します。

日本語に強いAIを作りたい

ChatGPTのようなAI(大規模言語モデル, LLM)が2022年末頃から登場し、話題になっています。半導体やIT技術は今後も発展し続ける見込みなので、AIの重要性は増すばかりです。

本国においても、国産の「日本語ネイティブ」なLLMを作る取り組みが加速しています。人工知能の技術を練していくことは戦略上、重要ですし、何より、日本の文化や価値観に沿った会話をするAIは、多くの人が求めるところです※。

※ChatGPTは「アメリカ生まれ、英語育ち」のマルチリンガルAIです。日本語も話せますが、どうしても、会話に「ぎこちなさ」が残ります。また、必ずしも日本文化とは相容れない価値観や主張するようなケースも、今後は問題視されるかもしれません。

国産の大規模言語モデル開発における諸課題

2023年頃から、日本語の訓練を受けたLLMが大量に登場するようになりました(例えばrinna, CyberAgentLM, Weblab, PLaMo, ELYZA, Swallow, KARAKURI LMなど)。モデルの日本語性能は日進月歩で進化しており、毎月のように最高記録が塗り替えられています。

一方、本国におけるモデル開発には大きく2つの課題が存在します。

課題1: 予算がない!?

1つ目の課題は、予算です。モデル開発には多大な資本投下が必要なため、そう簡単には高性能なLLMを作ることができない、という根本的な問題があります。しかし、国も危機感を抱いており、2024年からは「ニッポンの生成AI開発力を解き放つ」をキャッチフレーズにした、GENIACプロジェクトが始動しました。筆者も関わるいくつかの案件(後述)が走っていますが、GPT-4に近いサイズのモデル開発も行われる計画のようです※。

※GPT-4のモデルサイズは非公表であるものの、1800Bパラメータ程度(1B = 10億)との噂があります。今回のプロジェクトでは、1000Bを目指すグループが存在します。GPT-4には及びませんが、23年までの国産LLM(フルスクラッチ)のサイズが1―10B程度であったことを鑑みると、大きな進歩です。

課題2: 日本語データがない(切実)

2つ目の課題は、日本語の学習データの不足です。高性能なLLMを構築するためには、膨大な量(数百GB~)のテキストデータを学習させる必要があります。学習させるテキストの多くは、CommonCrawlというアメリカの非営利団体が収集・提供している、世界中のWebデータによって構成されています。CommonCrawlデータの約50%は、人類の覇権言語である英語によって占められており、日本語は5%程度のようです(詳細は例えばこちら)。
データ量から概算すると、英語に比べると10倍程度は不利な訳ですが、世界にはよりマイナーな言語が無数に存在しますので、日本語は恵まれている方です※。

※ただし、細々とした問題は多く存在します。例えば筆者の困りごととして、モデルの学習に自由に使える学術テキスト(日本語の論文や学会予稿等)が、非常にすごく少ない、といった課題に直面しています。多くの日本語の学術テキストは、Creative Commonsのような著作権上の制約の少ないライセンス形態では公開されていないため、特にオープンソースでのモデル開発に制約が伴います。公的レポジトリ類の規約整備も追いついておらず、データの一括取得やモデル学習が難しかったり、Creative Commonsの論文であっても、再配布に制約がかかるという、一見すると理解に苦しむ事態も顕在化しつつあります。

本記事で提示する問題点は、「上質な日本語の指示データセットの不足」です。LLMをChatGPTのような会話型のインターフェースで用いるためには、単にテキストを読ませるだけでは不十分で、「人間との対話訓練」を行う必要があります※。このような、対話やQ&Aに関するやりとりを記録したデータを、指示データセット(instruction dataset)と呼びます。

※前者(テキストを読ませる)を事前学習、後者(対話訓練)を事後学習(ファインチューニング)と呼びます。対話訓練が必要なのは、ある意味では当たり前のことです。子供が何度も対話の経験を重ねて会話ができるようになるように、AIも会話の練習をしないと、人間とはまともにやりとりできないということです。

2024年3月時点において、日本語LLMの鍵とも言える、対話(・指示)データセットが質・量ともに、圧倒的に不足しています。

例えば、オープンな指示データセットとして有名な、dolly-15k-jaの中身を抜粋してみます。

Q: ローイングでよくある怪我は何ですか?
A: ローイングで最も多い怪我は、膝、脊椎、前腕の炎症です。また、手の水ぶくれやトラックの噛み傷もよくある怪我です。

Q: 凧って何?
A: 凧は、お店や専門店で購入できる玩具です。 凧は空気より軽いもので、糸で結んで風の流れに乗って飛ばすことができます。 凧には翼があり、それが空気と反応して揚力を生み出し、飛ぶことができます。 あなたは公園やオープンエリアで凧を揚げることができ、あなたは凧を揚げるときに安全であることが近くに送電線がないことを確認したいと思うでしょう。

dolly-15k-ja

適当に2つのQ&Aを抜粋しただけなのですが、以下のように、たくさんのツッコミどころがあります。

  • 「ローイング」とはなんでしょうか?

  • 「凧(たこ)は空気よりも軽い」のは本当でしょうか?

  • 「オープンエリア」とはなんでしょうか?

  • 「安全であることが近くに送電線がないことを確認したいと思う」という文章は、日本語として破綻していないでしょうか?

このようなぎこちないQ&Aが羅列されているのは、このデータセットが英語の自動翻訳だからです。日本語としても違和感がありますし、日本文化とは馴染みの薄いやりとりも頻発します。日本では大切とされる「共感性」を重視したやりとりも、このような翻訳データセットには、あまり含まれない印象です。

日本語の上質な指示データセットが公開されていない理由は、いくつかあります。

  • 手間がかかる: 少なくとも1000件程度のデータセットが必要というのが定説になりつつあります。公的機関や大学で働いている人工知能の研究者の方々は、とてもお忙しいので、自動翻訳に頼らざるを得ないという状況に直面します(日本語の会話を書き続けるよりも、最先端の研究をしたほうが、知的に楽しく、学会で評価されるという背景もあります)。※

  • 公開する動機が薄い: 特に会社の場合はそうなのですが、苦労して公開したデータセットを、敢えて公開する動機が薄いという事情も存在します。同業者との競争優位性を保つため、秘伝の情報を秘匿するのは常套手段です。

  • 構築には一定の知識が必要: データ量も重要ですが、質も重要です(定説)。大規模言語モデルの開発に適したデータとはどのようなものなのか、そのノウハウを理解・整理した上で作業に取り組むことで、より高品質なデータセットを作ることができます。

※23年末には、理研が指示データセットを公開するなど、取り組み自体は、広がりはじめています(研究利用は無償。24年4月頃から、有償にてデータの商用ライセンスを提供予定とのことです)。

オープンで公益性のある指示データセットを作ります

幸いにもGENIACプロジェクトでは、100人規模の有志が集まってオープンな大規模言語モデルを作る計画が進んでいます(24年3-8月)。筆者もチームリーダーの一人として参加しています。

モデル開発も重要ですが、上質な日本語データセットを構築・公開する作業は、上記の背景を踏まえると、それと同等以上に大切です。そこで、誰でも自由に改変・公開して使える・商用利用も可能・そして上質な日本語の指示データセットの構築に取り組むことにしました。
データセット構築はメンバーも力をいれて行います。ただ、人手は多い方がよいので、投稿フォームを公開することにしました(ページ最上部)
凝ったWebサイトを作る話も出ていますが、まずはたたき台として、Google formで運用します。

更に詳しく知りたい・貢献したい方(?)へ

プロジェクトのチーム内では、より良い指示データセットの構築のための勉強会のほか、もう少し凝ったQ&Aデータセットも開発中です※。
プロジェクト期間中は誰でも参加可能です。詳細は以下のURLを参照ください。

Q&Aを闇雲に作るのではなく、AIに行って欲しいタスクをカテゴリで整理したりしながら、戦略的に作業をしています(その成果は逐次、本ページの投稿formにも追加していきます)。通常のQ&Aに加え、マルチターン会話Direct Preference Optimization (DPO)などにも取り組んでいます。


この記事が気に入ったらサポートをしてみませんか?