日本語LIMAデータセットlima-jaを作成したので公開します
日本語LIMAデータlima-jaを作成しました!
データセットをすぐに利用したい方はこちらから取得ください。
今回作成したデータセットを用いてLoRAでファインチューニングする方法を知りたい方はこちらをご覧ください。
概要
LIMA: Less Is More for Alignmentは、Meta AIの研究者たちが書いた論文です。
簡単にまとめると(間違っている場合は指摘ください。)
- ほとんどすべての知識は事前学習で学習されており、高品質な出力を生成するためには限られた指示調整データだけで十分である
- LIMAは65BパラメータのLLaMa言語モデルを約1000個のプロンプトとレスポンスで微調整したもの
- LIMAは複雑なクエリに対して高品質な出力を生成し、未見のタスクにも良く一般化する
ということが示唆されています。
今回はこの論文内で用いられた公開されているデータセットを日本語訳したものを公開します。
データセットの作成方法
データセットの作成(翻訳)には、ChatGPTのAPIを用いました。
ChatGPTのモデルについては、「gpt-3.5-turbo」「gpt-3.5-turbo-16k」を使っています。
何はともあれChatGPTにすべて翻訳してもらいました。プロンプトは後述します。
もとのデータセットの中身を見ていただければ分かるのですが、順番に読み込んで600~800のデータ(sourceがwikihow)はかなり長いです。
この部分については、gpt-3.5-turbo-16kを使っています。また、600~800以外にも長いものがあり翻訳が途中になっているものがあったので、個別にgpt-3.5-turbo-16kを使用しました。
以下のステップについては完璧にはできていません。
すべてはできてないですが、不自然な翻訳を修正しました。といっても順番に読み込んで~80あたりまでです。
こちらも順番に読み込んで~80あたりまで修正できたと思っています。
翻訳するにあたり、元のデータが中国語→英語の翻訳タスクの場合、中国語→日本語のように改変しています。これも~80あたりまでは見ています。
翻訳プロンプト
ChatGPTは翻訳文のみを生成しないことがあるのでプロンプトで調整する必要がありました。
以下、使用したプロンプトです。
あなたは日本語と英語の翻訳エキスパートです。以下の原文を日本語に翻訳してください。
原文: {ここに翻訳文を入力する}
和訳:
このプロンプトである程度制御できていました。
他にいいプロンプトがあれば教えてください。
データの取得方法
以下のコードで簡単に取得することができます。
from datasets import load_dataset
dataset = load_dataset('zan/lima-ja')
今後バージョンアップさせようと思っているので以下のコードでも取得できるようにしています。
dataset = load_dataset('zan/lima-ja', "v1") # バージョンを指定
データセットのバージョンについて
2023/07/08時点でv1のみ公開しています。
これは、ほとんどChatGPTによる翻訳のみのバージョンになります。
今後、色々と日本語にとって良いと思うような修正を加えたデータセットをv2, v3として公開したいと思います。
感想
今回は質がとてもいいと言われているデータセットを日本語訳しました。
個人的にこのデータを使ってopen-calm-7bをLoRAでファインチューニングしてみましたが、結構いい感じの出力がされていました。
記事にしたいと思います。冒頭でも紹介した通り記事にしています。
また、LIMAデータセットはライセンス的に制約が多いので、今後は独自のデータセットも公開していきたいと思っています。
日本の自然言語処理分野において少しでも貢献できるようなデータセットを公開したいと思います。
コメント