日本語 LLM のためのデータセットメモ
LLaMa 再現のためのデータセット.
主には Commoncrawl で構成.
LLaMa では英語しかないが, cc_net 自体は一応多言語対応のため, 生 Commoncrawl データセットから日本語のを抜き出せば, 日本語 cc100 とはまた別のデータセットが作れそう?
主には
- Wikipedia
- 日本語 CC100(Commoncrawl)
- 日本語 mC4
- 日本語 OSCAR
でしょうか. ただ mC4 も OSCAR も Commoncrawl のデータをベースのようなので, 実質 Wikipedia or web データ(Commoncrawl)というところカナ
対話用
OSCAR: huggingface で落とせる.
日本語は 1 ファイル 600 MB x 119 ファイル = 77 GB ほど.
認証がいるため, file path を wget では落とせない. git + lfs で落とすがよいかも?
CC-100
日本語は 15 GB ほど. ただサーバが弱いのかダウンロードには時間かかる.
...
台湾料理の店でチャーハンと餃子を食べて、函南の道の駅で買い物して、スーパーで夕飯のおかずを買って帰宅。
試しにマクタロウと半分個して食べてみようってことで1個ずつ買ってみました。
これだと咲いているように見えますが、咲いている木から木まで結構な距離があります。
伊豆シャボテン動物公園 〒413-0231 静岡県伊東市富戸1317−13
なんとなく物足りなかったので…思い切ってシャボテン公園にカピバラを見に行ってみました!
ちょうどお風呂タイムでカピバラ一家が気持ち良さそうにお風呂に入ってました。
...
内容としては一定のクリーニングがされているようでした(文字化けなどない)
ただ, ↑のように二つの記事(段落?)が mix されているような文章が多く, 微妙におかしい日本語文章が結構ある感じでした
(とくに "..." が含まれている文章)
あと, ファイルは(展開しても)一個なので, 適当に分割するなりが必要でしょう.
ここで LLaMa 論文再訪
- English CC(CommonCrawl)
- 英語のみ
- CCNet で無駄な部分など処理 https://github.com/facebookresearch/cc_net
- mC4
- 元データはある程度キュレーションされている. 追加で LLaMa 側でフィルタリング処理など
- 日本語はデータセットの時点で微妙なので, フィルタリングされたとしてもあまりいい感じになっていいないと思われる
- Wikipedia, book3
- 日本語は含まれていない
- ArXiv, stackexchange, Github...
したがって LLaMa での日本語知識は mC4 or ArXiv,Github あたりで獲得しているのじゃろか...
ちょっと寄り道して...
Textbooks Are All You Need
主に Python コード生成用であるが, クオリティ高いデータセットで学習すればクオリティ高い結果が少ないデータセットとネットワーク規模で実現できる.
mC4
AllenAI のところにある.
huggingface datasets では ja は 300 MB x 1024 個.
AllenNLP のどこかにデータセット直接ホスティングされていないかしらん
(datasets 経由の取得めんどい)
日本語はほとんど生データ.
クリーニングしないと使い物にならない.
Chinese LLaMa では中国語(20 GB くらい)を追加学習(オリジナルの LLaMa checkpoint からはじめて, Chinese 要素増やした tokenizer と中国語データセットで LoRA 学習)している
これの中国語性能がよいのであれば(たぶん良いであろう), llama 10 ~ 30B 規模の pretrained からはじめて CC100 日本語データセットで追加学習させてみるのもよいかもしれません(llama.cpp あたり使えば CPU cluster 32 台で 1 週間とかでいけそう?)
Text dedup(重複除去)
真面目にやると結構いろいろ考えることがある.
https://publish.obsidian.md/chenghao/posts/20230220150602 )
(が参考となるだろうか
gpt-2 の学習に使われた webtext を reproduce する? もの.
日本語はないが, 日本語の URL に置き換えて crawling などの参考にすることはできるであろう