Published on

huggingface datasetsで使える日本語データセットのまとめ

Author
株式会社イエローバックの機械学習エンジニアです

はじめに

HuggingFace datasets は公開されたデータセットを簡単に扱えるようにしたライブラリです。

HuggingFace Dataset Hub( https://huggingface.co/datasets )には多くのデータセットが公開されていて、datasets ライブラリから簡単にアクセスできるようになっています。 今回はこのなかで、language modeling に使えそうな日本語データセットを整理してみました。

調査環境

  • python: 3.8
  • datasets: 1.10.2

データセット一覧

  • cc100: facebook 製 XLM-R 用のデータセット
  • mc4: google の mc4 データセットを allenai が前処理したバージョン
  • oscar: inria.fr 製
  • amazon_reviews_multi: amazon のレビュー
  • bertin-project/mc4-sampling: perplexity ベースのフィルタリングを可能にした mc4 の派生系

ストリーミング対応

datasets: 1.10 以降で、streaming=Trueを用いることで、全てのファイルをダウンロードし終えなくてもデータを使用できるようになりました。 ただし、cc100 で使用している xz フォーマットにはまだ対応していないようで、cc100 ではストリーミングが利用できません。

データロードのフロー

load_dataset()実行時には内部的に以下のようなフローとなっているようです。

  1. データをダウンロードします。デフォルトでは、~/.cache/huggingface/datasets/downloads/に保存されます。
  2. 必要に応じてデータを展開します。
  3. データを読み込み、arrow 形式で保存されます。~/.cache/huggingface/datasets/mc4/ (mc4 は各データセット名)などに保存されます。

一旦キャッシュされたデータがあれば、次回からはそれを利用します。

ファイルをダウンロードし展開をするので、ディスクスペースとしては最低でも dataset size + download size が必要となります。

調査結果

結果概要

各データセットについて日本語部分のみを調査結果が以下になります。

データセット名エントリ数データセットサイズ (GBytes)ダウンロードサイズ (GBytes)
cc100(ja)458,387,9428215
mc4(ja)87,337,884830316
oscar(original_ja)62,703,31523279
oscar(deduplicated_ja)39,496,43911340
amazon_reviews_multi(ja)200,0000.0860.177
  • エントリ数:
  • データセットサイズ: dataset.dataset_size の値。圧縮されたファイルを展開した後のサイズ。
  • ダウンロードサイズ: dataset.download_size の値。ダウンロードするサイズ。

cc100

  • エントリ数: 458,387,942
  • データセットサイズ: 82,042,212,602
  • ダウンロードサイズ: 15,916,192,184
  • ストリーミング: 不可

オリジナルのデータセットは、空白行を挟んで 1 ブロックのようなテキストファイルになっているようですが、 datasets ライブラリでは、1 サンプル 1 行として読み込んでいるようです。

dataset = load_dataset('cc100', lang='ja', split='train')

cc100 サンプル

{'id': '0', 'text': '午後から雨が心配だったので遠出はせず、『ふれあいロード』を走って来ました!\n'}

mc4

  • エントリ数: 87,337,884
  • データセットサイズ: 830,982,918,578
  • ダウンロードサイズ: 316,487,905,601
  • ストリーミング: 可
dataset = load_dataset('mc4', 'ja', split='train')

mc4 サンプル

{'text': '生八つ橋のタグまとめ | エキサイトブログ\n'
         '生八つ橋のタグまとめ\n'
         '「生八つ橋」のタグがついている新着記事と人気記事をまとめました。エキサイトブログには生八つ橋に関連するブログ(日記、記録、写真、レビュー、噂、まとめ)がた
くさん投稿されています。\n'
         '「生八つ橋」タグの記事(4)\n'
         '生八つ橋いろいろ\n'
         '京都旅行のお土産(我が家用)に色々な生八つ橋を買ってきました。我が家はみんな八つ橋ファンなのです~。地元の方達や京都を案内してくれたYさんは「八つ橋なんても
う何年も食べたことないわ~~~」と仰っていましたが、いやいや、美味しいですよ~~!!私は大好きです!まぁ確かに私は東京出身ですが、雷おこしや人形焼きは食べませんから
ね~。それと同じことでしょうか^^;とはいえ、舟和の芋ようかんや東京ばな奈...\n'
         '2020/03/06 23:54 - NYの小さな灯り\u3000~ヘアメイク日記~\n'
         '黒糖きな粉\n'
         '冬限定の生八つ橋「ふゆおたべ」\n'
         '日本から戻る時に大抵空港で生八つ橋か信玄餅のどちらかを必ず買って帰ってくるのですが、今回は珍しいバージョンを見かけたので生八つ橋を買う事にしました。それが
こちら、冬限定の生八つ橋「ふゆおたべ」です。切り絵のデザインも素敵ですよね^^お味は黒豆と栗きんとんの二種類。おせち料理みたいです~♪栗きんとんは元々味がそんなに個
性的でない事もあり、あまりよく分からなかったのですが(ふんわり甘くて美味しい...\n'
         '2019/03/06 00:30 - NYの小さな灯り\u3000~ヘアメイク日記~\n'
         '【株式会社 美十】ショコラこたべ\n'
         '日帰り京都旅行、あまり時間がなかったのでお土産はすべて京都駅周辺で済ませてしまいました。が、数年ぶりに訪れた京都ではお土産にも大きな変化が…!代表的な京都
土産のひとつ、生八つ橋ってあのニッキの味わいがなんか苦手…っていう方も多いと思うんですけど、今はそういう定番以外にもイマドキ風な生八つ橋がすごくいっぱいあって驚きま
した!いろんなメーカーがあると思うんですけど、「おたべ」で知られている株式会...\n'
         '2018/01/28 21:07 - 岐阜うまうま日記(旧:池袋うまうま...\n'
         '大学生の孫が、部活の全国へ大会で、京都へ4日間行ってきたそうです。おみやげに、おたべとお茶を買ってきました。来年は、福井県だそうです。まぁ!アルバイトをし
ているからいいけれど、交通費がかかりそう!!私は八十八を見て、てっきり八つ橋かと思って開けて見たらお茶でした。ちゃんと、考えて買ってきたのでした。我が家の飲んでいる
お茶は、賄い茶、たくさん飲むので、これで十分です。孫のおみやげのお茶は、細く...\n'
         '2016/08/16 17:37 - みすずのつぶやき',
 'timestamp': '2020-05-27T07:31:25Z',
 'url': 'https://www.exblog.jp/tag/keyword/%E7%94%9F%E5%85%AB%E3%81%A4%E6%A9%8B/'}

oscar

original

  • エントリ数: 62,703,315
  • データセットサイズ: 232,151,936,111
  • ダウンロードサイズ: 79,564,645,083
  • ストリーミング: 可
# ignore_verifications=Trueをつけないとエラーとなる
dataset = load_dataset('oscar', 'unshuffled_original_ja', split='train', ignore_verifications=True)

dataset = load_dataset('oscar', 'unshuffled_original_ja', split='train')
NonMatchingSplitsSizesError: [{'expected': SplitInfo(name='train', num_bytes=232216718556, num_examples=62721527, dataset_name='oscar'), 'recorded': SplitInfo(name='train', num_bytes=232151936111, num_examples=62703315, dataset_name='oscar')}]

deduplicated_ja

  • エントリ数: 39,496,439
  • データセットサイズ: 113,315,056,833
  • ダウンロードサイズ: 40,801,218,295
  • ストリーミング: 可
dataset = load_dataset('oscar', 'unshuffled_deduplicated_ja', split='train')

oscar サンプル

{'id': 0,
 'text': '神社などへ一緒に同行して、様々な角度のショットで家族写真やお子様の写真を撮影致します!お好みに合わせて様々な写真を取ることができますので、その場でカメラマ
ンへのリクエストも可能です!お子様の晴れ姿を、緊張していない自然な笑顔で残しませんか?\n'
         '※七五三の対象者が1名のプランです。ご兄弟、ご友人様もご一緒になどと、主役が2名、3名と複数名いらっしゃる場合は、+5,000円(税抜)/1名の別途料金が発生いたし
ます。(納品枚数+約15カット、撮影時間+20分/1名)\n'
         '※撮影神社、宮社によっては撮影許可料(3,000円ほど)が別途発生いたす場所がございます。こちらは弊社撮影料金には含まれておりませんので、事前に撮影希望神社へお
客様よりご確認、お支払いをお願いしております。ご確認の程よろしくお願いいたします。'}

amazon_reviews_multi

  • エントリ数: 200,000
  • データセットサイズ: 86,484,829
  • ダウンロードサイズ: 177,773,783
  • ストリーミング: 可
dataset = load_dataset('amazon_reviews_multi', 'ja', split='train')

amazon reviews サンプル

{'language': 'ja',
 'product_category': 'shoes',
 'product_id': 'product_ja_0270003',
 'review_body': '普段使いとバイクに乗るときのブーツ兼用として購入しました。見た目や履き心地は良いです。 '
                'しかし、2ヶ月履いたらゴム底が削れて無くなりました。また、バイクのシフトペダルとの摩擦で表皮が剥がれ、本革でないことが露呈しました。ちなみに防水と
も書いていますが、雨の日は内部に水が染みます。 '
                '安くて見た目も良く、履きやすかったのですが、耐久性のなさ、本革でも防水でも無かったことが残念です。結局、本革の防水ブーツを買い直しました。',
 'review_id': 'ja_0388536',
 'review_title': '本革でも防水でもない',
 'reviewer_id': 'reviewer_ja_0454098',
 'stars': 1}