昨日weights&biases(Wandbの会社)が開催した日本語LLMのミートアップに参加しました。⇩
今回のトピックは非常に面白い内容で、日本語LLMをチューニングするために学習データをどのように準備するかを教えてもらいました。(これは多くの人が悩む問題だと思います)
現時点では、大きく分けて4つの手法があるそうです。
①翻訳ツール (Google、DeepL) で海外のデータセットを翻訳して使う
この方法では比較的簡単にデータを作成できますが、翻訳の質によっては誤りが含まれていたり、品質が低かったりするデータも多いです。そのため、翻訳されたデータの中から品質を評価する指標を作り、品質の高いデータだけを残して使用します。その結果、700件の高品質データでトレーニングされたモデルは、元の50,000件のデータでトレーニングされたモデルよりも性能が高かったです。(この品質を評価する指標の作り方は、データの有無によって精度がどの程度変化するかを比較ことで影響度を逆算し、プラスの影響度が高いデータを品質の高いデータと定義します)
②LLMで生成
こちらについては、基本的な方法に加えて、2つの最新手法についても紹介がありました。
一つはMicrosoftが公開した "GLAN" という手法です。まず、GPT-4を使って人間の知識を網羅的かつ非常に細かく木構造で表現し、それを参考に各項目ごとにinstructionデータを生成させる方法です。
もう一つは、AppleのWRAPという手法です。これは、LLMを活用してデータをクリーニングする方法で、品質の低いデータを特定し、それを再生成することでデータセットを拡張するものです。
③既存データの活用
IPA試験の過去問題や官公庁が公開された高品質なデータをメインで活用しています。
講演者の方は、”J-ResearchCorpus”という日本語論文で構成されたデータも作成中です。
④人力で作成
ここからは ichikaraデータセットの話になります。
このデータセットは非常に高品質な日本語データで、かなり複雑な手順で生成されています。(1万件で2,000万円かかったそうで、日本語教授の方とかから作ってもらった感じです。)
詳細は⇩の論文にも記載されています。
ちなみに、このデータセットは1,500万円で販売されています。(高いですがもう18社へ売れました)
その後は、最近のLLMファインチューニングに関する発見についても共有されました。ちょうど数日前の発見ですが、モデルのハルシネーションの8割は固有表現(人名、時間とか)が多い問題に発生する傾向がありました。なので、固有表現を含まない1,000件ほどのデータでファインチューニングを行うと、精度が大幅に向上し、以前は間違えていた質問にも正しく回答できるようになったです。
wandbについて: