mistralモデルをベースとした 日本語の大規模言語モデル

7.3K Views

May 01, 24

スライド概要

profile-image

Unity Engineer: Individual Activities → Making Games

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

mistralモデルをベースとした 日本語の大規模言語モデル 2024/05/01 ようさん

2.

目次 1. 2. 3. 4. 5. 6. 自己紹介 背景 チームのゴール コーパスのクリーニング 学習内容の共有 まとめ 2

3.

自己紹介 名前 : ようさん ● Unityエンジニア ○ ゲーム ○ (VR/MR) ● 趣味でTTSやLLM周り X(Twitter) @ayousanz 3

4.

背景 loss:2.205 perplexity : 11.0228 4

5.

背景

6.

チームのゴール ● 事前学習用のクリーニング済みのコーパスの作成 ● 日本語のMistral事前学習モデルの作成

7.

チームのゴール ● 事前学習用のクリーニング済みのコーパスの作成 ● 日本語のMistral事前学習モデルの作成

8.

事前学習用のクリーニング済みコーパスの作成 以下の内容を実施 ● コーパスクリーニング用のC++ツールを実装 ● 各種日本語データセットをクリーニング

9.

コーパスクリーニングの背景 ● wikipedia、cc100、oscarデータはノイズデータ (重複、低品質文書、広告)が多く、LLMの推論性能を下げる要因に ● コーパスクリーニングによりLLMの推論性能が向上する事例が報告されている (文献1、文献2) ● 既存のpythonクリーニングツール(Hojichar, DataTrove)は有用だが処理が遅い C++で高速にコーパスクリーニングするツールを実装し処理

10.

作成したクリーニングツール リポジトリ :https://github.com/ce-lery/corpus-cleaner ドキュメント:https://ce-lery.github.io/corpus-cleaner/ 実装期間 :2024/2/15 〜 2024/4/24(約2.5ヶ月)

11.

コーパスのクリーニング処理一覧 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Normalizer: 文の正規化(mecab-neologdをC++化し、NFKC正規化等実施) URL Remover: 正規表現にマッチするURLの削除 Special Characters Remover: 特定の特殊文字(☀, ♡, ☆など)の削除 Emoji Remover: \U0001F300(🌀)から\U0001F9FF(🧿)までの絵文字の削除 Quotes Remover: 引用符([1], {245})の削除 Length Filter: 長すぎる文章や短すぎる文章(4文字以下)の削除 Language Filter: 日本語の文章であるかどうかを判定し、日本語以外を削除 Minhash Deduplicator: Minhashを使用した重複文章排除 ZeroPunctuationFilter: 句読点のない文書の削除 Sentence Segmenter: ルールに基づいてコーパスを文に分割(今回不使用) Perplexity Filter: KenLMを使用した困惑度フィルター(40000超えを除去)

12.

クリーニングにより除去されたデータの例 Minhashによる重複文書の除去(wikipedia dataset) Perplexity値による低品質文書の除去 & 句読点無し文書の削除

13.

クリーニング済みデータセット 以下のクリーニング済みコーパスを公開 1. wiki & cc100 (クリーニングによる除去率50%): https://huggingface.co/datasets/ce-lery/mistral-3b-dataset 2. oscor: https://huggingface.co/datasets/ayousanz/OSCOR-2301-ja-cleaned 3. c4(一部のみ) : https://huggingface.co/datasets/ayousanz/c4-ja-cleaned

14.

クリーニングツール残課題 ほぼ名詞で構成された文章が 除去できていない →形態素解析処理を追加し、 ほぼ名詞の文章を排除予定

15.

チームのゴール ● 事前学習用のクリーニング済みのコーパスの作成 ● 日本語のMistral事前学習モデルの作成

16.

クリーニング済データを用いた300M pretrain 3Bは作れなかったが、クリーニング済みwiki & cc100で300Mモデルを作成 2023/12 (文正規化のみ) ・生成言語に含まれる ノイズが大幅に減少 2024/4 (p.12記載の10種処理) ・学習時間も半減

17.

学習時の知見共有 1. 大規模のモデル学習をdockerに学習時の 共有メモリの不足 2. 事前準備の時間不足

18.

学習時の知見共有 大規模のモデル学習をdockerに学習時の共有メモリの不 足 「NCCL WARN Error while creating shared memory segment /dev/shm/nccl-SWCuLF (size 9637888)」 → 実行時に --shm-size=[size] のオプションで指定

19.

まとめ ● ● ● ● クリーニングツールの公開 クリーニング済みのデータの公開 クリーニングデータを使った0.3bモデルの作成 3bクラスは未完成

20.

今後の展望 ● 3bクラスの学習 ● 引き続きc4データセットのクリーニング

21.

今後の展望 ● 3bクラスの学習 ● 引き続きc4データセットのクリーニング