Slide 1

Slide 1 text

Hyper realistic future landscape horizon Stability AI Japanにおける 大規模言語モデルの研究開発

Slide 2

Slide 2 text

自己紹介: 秋葉 拓哉 ● ~2015 東京大学 コンピュータ科学専攻 博士 ● ~2023 Preferred Networks リサーチャー → ML基盤担当VP ● 2023~ Stability AI シニアリサーチサイエンティスト https://takiba.net https://x.com/iwiwi

Slide 3

Slide 3 text

20 Apr 2023 22 Aug 2022 24 Nov 2022 Jan 2023 28 July 2023 10 Aug 2023 17 Aug 2023 Stable Diffusion テキストから画像を生成する Text-to-imageモデル。 Japan office設立 日本のクリエイター・会社・組織の想像 力・創造力を拡張。 StableLM Stability AIから初となる言語モデ ルをリリース。 Stable Diffusion XL これまでのStable Diffusionの中で 最も高性能なモデル。 Stable Diffusion V2.1 V1リリースモデルからさらなる改善がされたモデル。 基盤のText-to-imageモデルを拡張したモデルも公 開。 ● Super-Resolution Upscaler Diffusion Models ● Depth-to-Image Diffusion Model ● Updated Inpainting Diffusion Model Japanese InstructBLIP Japanese StableLM Stability AI Japan初となる日本語 特化言語モデル。 日本特化の画像言語モデル。 キャプション生成・質問応答。 Stability AI 沿革

Slide 4

Slide 4 text

日本チームは日本特化の生成モデルを開発中! Japanese StableLM Japanese InstructBLIP ● 日本語特化の言語モデル ● 日本の知識を理解したテキスト生成が可能 ● 日本特化の言語画像モデル ● キャプション生成 ● 画像についての質疑応答

Slide 5

Slide 5 text

目次 1. Japanese StableLM の紹介 ● 日本語LLM作りの雰囲気 2. より強力な日本語LLMを作るために ● 日本語LLMの今後について、考えてること・疑問に思っていること ● ご意見・アドバイス歓迎

Slide 6

Slide 6 text

6 Japanese StableLM スライドは2023/09/04「第4回 LLM 勉強会」のLeeさんのものを借用

Slide 7

Slide 7 text

🦜 Japanese StableLM (JSLM) Alpha ● Japanese-StableLM-Base-Alpha-7B ○ 7B pretrained autoregressive model using GPT-NeoX ○ Trained w/ 750B tokens (Japanese/English) ■ Japanese/English Wikipedia ■ Japanese CC-100, mC4 ■ extended Japanese OSCAR ● Japanese-StableLM-Instruct-Alpha-7B ○ SFT the above base model with Japanese instruction ■ Stanford Alpaca ■ Dolly-15k ■ Japanese translation of Anthropic HH ○ Trained with 3 epoch

Slide 8

Slide 8 text

🦜 Japanese StableLM (JSLM) Alpha ● Japanese-StableLM-Base-Alpha-7B ○ 7B pretrained autoregressive model using GPT-NeoX ○ Trained w/ 750B tokens (Japanese/English) ■ Japanese/English Wikipedia ■ Japanese CC-100, mC4 ■ extended Japanese OSCAR ● Japanese-StableLM-Instruct-Alpha-7B ○ SFT the above base model with Japanese instruction ■ Stanford Alpaca ■ Dolly-15k ■ Japanese translation of Anthropic HH ○ Trained with 3 epoch

Slide 9

Slide 9 text

🦜 Pretraining - Model architecture (Diff from standard NeoX setup) ● Working on our own fork of EleutherAI/gpt-neox ● Gated MLP (MLP with Gated Linear Unit) ○ Becoming common op since SwiGLU and the other variants have been shown to improve perf. ○ from BTLM-3B-8K: “We also found … SwiGLU further improved training efficiency.” ● xPos (Extrapolatable Position Embedding) ○ Our JSLM has seqlen=2048 ○ xPos is a upgraded version of RoPE from Roformer ○ more stable for long-term context modeling ● Advice: consider the cost to introduce new model arch and make sure to properly implement your own NeoX->HF conversion to be user friendly 🤗

Slide 10

Slide 10 text

󰳐 Pretraining - Curriculum learning (CL) ● There are many kinds of CL. The core idea of CL is to presents easier/simpler examples earlier during training and gradually increases the sample difficulties. ● Aim to improve NN’s training stability or training efficiency, but usually not both. ● We used Sequence Length Warmup (SLW) which define the difficulty as seqlen. In our 1B runs, SLW improved both training stability and efficiency which is great! 😎 ● Start w/ SL=64, use 20k steps to reach SL=2048 (make sure to count #tokens right!) Li+, The Stability-Efficiency Dilemma: Investigating Sequence Length Warmup for Training GPT Models, NeurIPS’22 https://arxiv.org/abs/2108.06084

Slide 11

Slide 11 text

🍸 Pretraining - Data mixtures ● We included both Japanese and English corpus during pretraining (check list of corpus in our model page) and simply set the language ratio as 50:50. ● For different domains (web/wiki/books etc), we eventually set the domain weight based on their quantity (#tokens) so large portion of final corpus is web-based text (~85%). ● We tried DoReMi to find the optimal domain weights w/ our own implementation but had no success. Recently, the paper author released their official code so we might revisit this later. Xie+,DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining, 2023. https://arxiv.org/abs/2108.06084

Slide 12

Slide 12 text

👍 Pretraining - Rule of thumb to allow you to sleep well at night ● Use BF16 for mixed precision. FP16 might work if seqlen is short (e.g, 256-512), but OPT-175B and Bloom showed us for longer seqlen probably better to use BF16. ● If loss spikes happen still, try setting gradient clipping to 1 and use lower LR (for 7B model, 1.2e-4 should work) ● Try curriculum learning like SWL, or skip some batches right before spikes to bypass the spike.

Slide 13

Slide 13 text

🦜 Japanese StableLM (JSLM) Alpha ● Japanese-StableLM-Base-Alpha-7B ○ 7B pretrained autoregressive model using GPT-NeoX ○ Trained w/ 750B tokens (Japanese/English) ■ Japanese/English Wikipedia ■ Japanese CC-100, mC4 ■ extended Japanese OSCAR ● Japanese-StableLM-Instruct-Alpha-7B ○ SFT the above base model with Japanese instruction ■ Stanford Alpaca ■ Dolly-15k ■ Japanese translation of Anthropic HH ○ Trained with 3 epoch

Slide 14

Slide 14 text

🦜 Japanese StableLM (JSLM) Alpha ● Japanese-StableLM-Base-Alpha-7B ○ 7B pretrained autoregressive model using GPT-NeoX ○ Trained w/ 750B tokens (Japanese/English) ■ Japanese/English Wikipedia ■ Japanese CC-100, mC4 ■ extended Japanese OSCAR ● Japanese-StableLM-Instruct-Alpha-7B ○ SFT the above base model with Japanese instruction ■ Stanford Alpaca ■ Dolly-15k ■ Japanese translation of Anthropic HH ○ Trained with 3 epoch

Slide 15

Slide 15 text

⚖ Evaluation - lm-evaluation-harness for Japanese LLMs ● When we started to build Japanese LLM months ago, we were surprised that there is not easy way to evaluate these models’ Japanese ability. ● We extended lm-evaluation-harness with the community to allow everyone to evaluate Japanese LLMs easily. ● Useful for evaluating general Japanese NLU ability but hard to evaluate NLG ability esp. for autoregressive models like GPT.

Slide 16

Slide 16 text

⚖ Evaluation - Japanese MT-Bench for Japanese LLMs ● Inspired by LLM-as-a-judge approach, we also extended their work for Japanese LLMs evaluation recently. ● Japanese MT-Bench includes: ○ 160 2-turn Japan/Japanese-relevant questions across 8 domains (writing, roleplay, math etc) ○ auto-graded by GPT-4, serve as a proxy measure to enable fast iteration ○ used with lm-evaluation-harness together to get a better understanding of how these Japanese LLMs perform. ● Feel free to send PRs and collaborate!

Slide 17

Slide 17 text

17 より強力な日本語LLMを 作るために

Slide 18

Slide 18 text

最初に 話をわかりやすくするために「日本語」と書いていますが、 技術的には英語以外の多くの言語に当てはまる話も多いと思います。

Slide 19

Slide 19 text

Scaling Law を正しく理解していますか?

Slide 20

Slide 20 text

① Scaling Law を正しく理解していますか? 「モデルサイズを大きくすれば、性能が上がる」 誤りではないが…… 「性能を上げるには、モデルサイズと学習トークン数を一緒に大きくすると良い」 ● Chinchilla Scaling Law ○ 学習コストを固定する場合、およそ1:1で大きくしていくとよい ○ その場合の性能向上は予測可能である ● 実用的には、Chinchillaより学習トークン数をもっと大きくするのが普通 (モデルサイズを大きくすると、推論コストが上がってしまうため) とりあえず一旦、学習トークン数を増やしたい気持ちになってください(この後の話のために) Hoffmann+,Training Compute-Optimal Large Language Models, 2022. https://arxiv.org/abs/2203.15556

Slide 21

Slide 21 text

① Scaling Law を正しく理解していますか? Chinchilla Scaling関連の計算のためのnotebook https://gist.github.com/iwiwi/2528e4121bd339ffa71a18b6b47ac868 Hoffmann+,Training Compute-Optimal Large Language Models, 2022. https://arxiv.org/abs/2203.15556 H100の枚数 × 学習日数 → モデルサイズ Llama2の実際の学習トークン数と Chinchilla Optimalの比較

Slide 22

Slide 22 text

② 日本語のデータ、足りてる? https://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia https://commoncrawl.github.io/cc-crawl-statistics/plots/languages

Slide 23

Slide 23 text

② 日本語のデータ、足りてる? Muennighoff+,Scaling Data-Constrained Language Models, 2023. https://arxiv.org/abs/2305.16264

Slide 24

Slide 24 text

② 日本語のデータ、足りてる? 1. 量 ? 2. 内容 例えば、以下のようなデータは日本語にはないかもしれない。 ● プログラミング関連のドキュメント ● StackOverflowのような上質なプログラミングに関するQA

Slide 25

Slide 25 text

③ 英語データを併用するアプローチ アプローチ1: Multilingual Training 日本語と英語のデータを混合して学習を行う 例:stabilityai/stablelm-ja-base-alpha-7b, rinna/bilingual-gpt-neox-4b, matsuo-lab/weblab-10b アプローチ2: Cross-Lingual Transfer 英語で学習したモデルに、日本語で追加の学習を行う 例:elyza/ELYZA-japanese-Llama-2-7b, BLOOM+1, x-LLAMA Yong+, BLOOM+1: Adding Language Support to BLOOM for Zero-Shot Prompting, ACL 2023. https://arxiv.org/abs/2212.09535 Zhu+, Extrapolating Large Language Models to Non-English by Aligning Language, 2023. https://arxiv.org/abs/2308.04948 Japanese StableLM StableLM

Slide 26

Slide 26 text

③ 英語データを併用するアプローチ Multilingual Training vs Cross-Lingual Transfer この2つはどう違う? ● どのようなトレードオフの関係にあるか?どう使い分ければ良いのか? ● できるモデルに定性的な違いはあるのか? Curriculum Learning 2つのアプローチを組み合わせる。例えば、少しずつ日本語の割合を増やす。 例:PolyLM Wei+, PolyLM: An Open Source Polyglot Large Language Model, 2023. https://arxiv.org/abs/2307.06018 🤔

Slide 27

Slide 27 text

④ 学習データの割合はどのように決めればよい? https://www.mosaicml.com/blog/mpt-30b https://arxiv.org/pdf/2302.13971.pdf

Slide 28

Slide 28 text

④ 学習データの割合はどのように決めればよい? Multilingual Trainingの場合は、さらに複雑 ● 言語 × データ種別、という2つの軸が出てくる ● 日本語と英語でデータサイズが大きく異なる ● 最終的には日本語での性能が高まることが目標 DoReMi (Google) ● GroupDROに基づくアルゴリズムでデータの混合割合を決定 ● ヒューリスティクスではなく体系だった決め方 👍 ● 最終的な性能に関する希望を反映させる介入が一切不可能 👎 ● 極端なデータ内容やグループの分け方に対し不安定? 👎 Xie+,DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining, 2023. https://arxiv.org/abs/2108.06084 🤔

Slide 29

Slide 29 text

⑤ トークナイザの影響 トークナイザは重要? 英語圏では恐らく興味が失われつつある話題? まともなトークナイザでさえあれば(BPE or ULM、まともなデータでまともな設定で学習) 恐らくモデルの性能や挙動に大きな差異を生まない……? 多分「ちゃんと作られたトークナイザであればどれ使っても大差ない」と思われている。 かなり昔に学習されたトークナイザが使われ続けている。

Slide 30

Slide 30 text

⑤ トークナイザの影響 日本語CC-100における圧縮率の雑な比較 https://gist.github.com/iwiwi/418807c3637367aa121b957960a97e4d ← 英語で主に学習したトークナイザ ← 日本語を学習に十分含めたトークナイザ

Slide 31

Slide 31 text

⑤ トークナイザの影響 日本語 & Cross-Lingual Transfer 日本語を考えて作られたトークナイザかどうかで(学習データに日本語が十分含まれていたかどうかで) 例えば圧縮率(1トークンあたりの平均文字数)におよそ倍の差が出る。 そして、前ページで見たように、実際にオープンになっているLLMの間で、トークナイザの圧縮率は大きく違う。 これは当然、日本語以外でも直面する問題です。一方で、英語を主な対象としたLLM(例えばLlama-2)の開発のみに取り組んで いる場合、実用的にはこういった状況に直面することはないと思われます。実用上こんなに圧縮率が違うトークナイザが使われた モデル同士を比較することになる状況にはならない可能性が高いでしょう。

Slide 32

Slide 32 text

⑤ トークナイザの影響 日本語に向けて学習されたトークナイザを使った方がモデルの性能も良くなるのか? 「Yes」と即答する人が多い印象だが、個人的にはこの話は意外と結構ややこしい。 ● 推論速度に差が出るのは当然として、それ以外に、 どのような、どの程度の影響があるのだろうか? ● 一部の人は、単語や文字がぶった切りになることが予測性能などに対し極めて悪い影響を持つ と予想している。しかし、実際には、それほど悲惨な影響はない印象もある。 (例: matsuo-lab/weblab-10b, elyza/ELYZA-japanese-Llama-2-7b) ● モデルサイズと推論コスト、公平な比較のためには何を揃えるのが正しいか? (更にややこしいことに、学習に関しても、同じトークン数学習しても、学習した文字数が違う……) ● 圧縮率以外に重要な指標はあるのか? 🤔

Slide 33

Slide 33 text

⑤ トークナイザの影響 日本語に向けて学習されたトークナイザを使った方がモデルの性能も良くなるのか? Cross-Lingual Transferをする場合、更にトレードオフは複雑になる。 学習済みモデルのトークナイザを変更すると? ● 生成が速くなる👍 ● Transfer Learningの効率が悪くなる 👎 ● 他の影響は? 🤔 Artexe+, On the Cross-lingual Transferability of Monolingual Representations. ACL 2020. https://arxiv.org/abs/1910.11856 Vries+, As Good as New. How to Successfully Recycle English GPT-2 to Make Models for Other Languages, ACL 2021. https://arxiv.org/abs/2012.05628 Minixhofer+, WECHSEL: Effective initialization of subword embeddings for cross-lingual transfer of monolingual language models, NAACL 2022. https://arxiv.org/abs/2112.06598 Ostendorff+, Efficient Language Model Training through Cross-Lingual and Progressive Transfer Learning, 2023. https://arxiv.org/abs/2301.09626

Slide 34

Slide 34 text

⑤ トークナイザの影響 https://note.com/elyza/n/na405acaca130 https://note.com/elyza/n/na405acaca130 ELYZAさんの日本語Llama-2モデル ● “ELYZA” は元のトークナイザのまま ● “ELYZA (fast)” は日本語の語彙をトークナイザに追加したモデル

Slide 35

Slide 35 text

⑤ トークナイザの影響 Char-Level LM, Byte-Level LM トークナイザについて思考実験する場合、極端なケースとして、これらも考えた方が面白い。 (例えば、これらについて考えた際に成り立たない仮説は、仮説として良くないはず。) ● Char-Level:1文字 = 1トークン ● Byte-Level:1バイト = 1トークン Yu+, MEGABYTE: Predicting Million-byte Sequences with Multiscale Transformers, 2023. https://arxiv.org/abs/2305.07185 Horton+, Bytes Are All You Need: Transformers Operating Directly On File Bytes, 2023. https://arxiv.org/abs/2306.00238

Slide 36

Slide 36 text

まとめ Western scene in video game Medieval scene in video game

Slide 37

Slide 37 text

目次 1. Japanese StableLM の紹介 ● 日本語LLM作りの雰囲気 2. より強力な日本語LLMを作るために ● Scaling Law、日本語のデータの量、英語データ併用の必要性 ● 学習データの割合はどのように決めれば良いのか ● トークナイザがモデルに与える影響

Slide 38

Slide 38 text

PROPRIETARY & CONFIDENTIAL Hyper realistic future landscape horizon in the valleys