Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LLMの開発は難しい?簡単?Stability AIの現場から (2023/10/11, W&B Fully Connected)

Takuya Akiba
October 11, 2023

LLMの開発は難しい?簡単?Stability AIの現場から (2023/10/11, W&B Fully Connected)

Takuya Akiba

October 11, 2023
Tweet

More Decks by Takuya Akiba

Other Decks in Programming

Transcript

  1. PROPRIETARY & CONFIDENTIAL
    Hyper realistic future landscape horizon
    LLMの開発は難しい?簡単?
    Stability AIの現場から

    View Slide

  2. GPT-4
    って
    凄いですよね

    View Slide

  3. GPT-4
    を作れってもし
    上司に明日言われたら
    作れますか?

    View Slide

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

    View Slide

  5. 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 沿革

    View Slide

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

    View Slide

  7. 🦜 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

    View Slide

  8. オープンなLLMが続々と出ている
    英語など
    ● Stable LM (Stability AI)
    ● Stable Beluga (Stability AI)
    ● Llama-2 (Meta)
    ● Mistral (Mistral)
    ● Qwen (Alibaba Cloud)
    ● XGen (Salesforce)
    ● MPT (MosaicML)
    ● ……
    日本語
    ● Japanese Stable LM (Stability AI)
    ● PLaMo (Preferred Networks)
    ● ELYZA-Japanese-Llama-2 (ELYZA)
    ● Weblab (松尾研)
    ● japanese-large-lm (LINE)
    ● bilingual-gpt-neox-4b (りんな)
    ● OpenCALM (CyberAgent)
    ● ……
    GPT-4はこれらの延長線上にあるの?

    View Slide

  9. 9
    LLMの作り方

    View Slide

  10. View Slide

  11. LLMの作り方
    Fine-Tuning
    02
    ● 人の指示を聞いたり、対話を可能にする。
    ● SFT, RLHF 等の方法が用いられる。
    このために作られたデータが必要。
    Pretraining
    01
    ● ウェブ等の大量のデータを学習。
    基礎的な言語能力や知識を身につける。
    ● 大きな計算資源が必要。
    どこが大変?

    View Slide

  12. LLM構築 タイムアタック!
    Pretraining
    1. GPUを確保する
    2. データを準備する
    3. GPT-NeoXをインストール&実行
    Fine-Tuning
    1. データを準備する
    2. TRLXをインストール&実行
    ここが一番大変かも

    View Slide

  13. LLM構築 タイムアタック!
    Pretraining
    1. GPUを確保する
    2. データを準備する
    3. GPT-NeoXをインストール&実行
    Fine-Tuning
    1. データを準備する
    2. TRLXをインストール&実行
    英語ならとりあえずRedPajama
    今すぐダウンロード

    View Slide

  14. LLM構築 タイムアタック!
    Pretraining
    1. GPUを確保する
    2. データを準備する
    3. GPT-NeoXをインストール&実行
    Fine-Tuning
    1. データを準備する
    2. TRLXをインストール&実行
    フレームワークはお好みのもので
    GPT-NeoX, llm-foundry, Megatron DeepSpeed……
    すんなり動かない場合には問題解決にHPC関連の知識が必要になるかも
    学習設定はとりあえず確立したもので

    View Slide

  15. LLM構築 タイムアタック!
    Pretraining
    1. GPUを確保する
    2. データを準備する
    3. GPT-NeoXをインストール&実行
    Fine-Tuning
    1. データを準備する
    2. TRLXをインストール&実行

    View Slide

  16. View Slide

  17. LLM構築 タイムアタック!
    Pretraining
    1. GPUを確保する
    2. データを準備する
    3. GPT-NeoXをインストール&実行
    Fine-Tuning
    1. データを準備する
    2. TRLXをインストール&実行
    Alpaca, Anthropic HH, Dolly, OpenOrca, ……
    今すぐダウンロード

    View Slide

  18. LLM構築 タイムアタック!
    Pretraining
    1. GPUを確保する
    2. データを準備する
    3. GPT-NeoXをインストール&実行
    Fine-Tuning
    1. データを準備する
    2. TRLXをインストール&実行
    急ぎなら一旦SFTだけでとりあえず良い
    SFTだけなら既存フレームワークを使うほどでもないが……

    View Slide

  19. LLM構築 タイムアタック!
    Pretraining
    1. GPUを確保する
    2. データを準備する
    3. GPT-NeoXをインストール&実行
    Fine-Tuning
    1. データを準備する
    2. TRLXをインストール&実行
    コードをほぼ書かずにLLM完成!?

    View Slide

  20. 20
    より優れたLLMを作るには

    View Slide

  21. OpenAI, GPT-4 Technical Report, 2023.
    https:/
    /arxiv.org/abs/2303.08774
    https:/
    /gist.github.com/iwiwi/fc174b1f2341c2c0170be87c5b2e1d31

    View Slide

  22. ① Pretraining
    モデルアーキテクチャ
    ● 基本的には今の所 Transformer 一択
    ● 細かい差異によりじわじわと進化している

    ● 活性化関数: SwiGLU, SquaredReLU, ……
    ● 位置埋め込み: RoPE系, ALiBi, ……
    ● 注意機構: MQA, GQA, SWA, ……
    ちなみに、GPT-4に関して言うと、学習されたのが少し昔だし、そんなに先進的なアーキテクチャを利用していないのではないかと予想。
    実際、この辺で工夫するために試行錯誤に時間使うぐらいなら、その分だけモデルを大きくして長く学習する方が、性能が良くなるかもしれない。
    一方で、特に最近の小さいサイズのモデルの進化(Mistral 7B等)には、この辺の進歩も結構寄与しているかもしれない。

    View Slide

  23. ① Pretraining
    大規模分散学習
    大きなモデルの学習をメモリに収める + 効率を出す
    ● 〜中規模:Data Parallelism
    ○ PyTorchのFSDP、DeepSpeedのZeRO
    ● 大規模〜:3D Parallelism (Data + Tensor + Pipeline)
    ○ Megatron (及びそれをベースとしたMegatron DeepSpeedやGPT NeoX)
    個人的意見としては、DPで事足りるのであればそれが良い。色々と楽なので。
    全体的なやり方既には確立しており、OSS実装も利用可能だが、改善の余地はまだあるようにも感じる。

    View Slide

  24. ① Pretraining
    Mixture of Experts (MoE)
    各トークンがモデルの一部だけを通るようにし、パラメタを増やしても計算量を増加させない仕組み
    GPT-4はMoEを利用しているという噂だが、オープンLLMの世界ではほとんど模索されていない。
    3D Parallelism × MoEはエンジニアリングコストも跳ね上がる。
    https://blog.research.google/2022/11/mixture-of-experts-with-expert-choice.html

    View Slide

  25. ① Pretraining
    学習データ
    ● どういったデータを利用するか?
    ○ Web Crawl, Wikipedia, ArXiv, GitHub, ……
    ● どのような割合で混合するか?
    ● どのように前処理するか?
    ○ 重複除去、フィルタリングなど
    恐らく事前学習において最も重要な点だが、何がどのようにモデルに影響したかの検証が難しい。

    View Slide

  26. ② Fine-Tuning (SFT + RLHF)
    学習データ
    ● 高品質で多様なアノテーションデータが必要
    ○ 内容によっては専門家がアノテーションする必要あり
    ● オープンLLMの一部はGPT-4等にアノテーションさせている、が……
    ○ ライセンスの都合上、このように作ったデータを利用するとモデルの利用が制限される
    ○ とはいえ、まずは一旦GPT-4で試せるようになったのはいずれにせよ便利
    Fine-tuningのあれこれの重要性については諸説ある。
    とはいえ、この中だと個人的には最終的にはここが一番大きな差になり得るかなぁと思ってる。

    View Slide

  27. ② Fine-Tuning (SFT + RLHF)
    RLHFは必要なのか?
    ● GPT-4やLlama-2-Chat等はRLHFしている
    ● オープンLLMはRLHFせずSFTのみのものも多い
    個人的な予想としては、結局RLHFもすることになるのではないかなと……
    Stable Beluga 2
    (SFT)
    Llama 2
    (SFT + RLHF)

    View Slide

  28. ③ Evaluation & Analysis
    ● GPT-4 Tech Reportだとここが一番人数が多い
    ● LLMは汎用性が高く色々なことが出来るので、
    その能力や安全性を理解するために、様々なタスクを準備し評価する
    ● 評価がより正確にできれば、改善もより効率的に行える、かもしれない。

    View Slide

  29. Stability AIでの取り組みの例
    ● Pretraining
    ○ GPT-NeoXの改善・独自フレームワークの実装
    ○ 独自データセットの構築
    ● Fine-Tuning
    ○ 独自データセットの構築
    ● Evaluation & Analysis
    ○ 日本語lm-eval-harnessの構築 https://github.com/Stability-AI/lm-evaluation-harness/tree/jp-stable
    ○ 日本語MT-Benchの構築 https://github.com/Stability-AI/FastChat/tree/jp-stable/fastchat/llm_judge#llm-judge
    ○ 安全性の試験に向けた準備
    ● 日本語等のデータ量が限られる言語に向けた研究

    View Slide

  30. Stability AIでの取り組み
    W&Bめちゃくちゃ活用しています!!
    https://stability.wandb.io/stability-llm/stable-lm/reports/StableLM-3B-4E1T--VmlldzoyMjU4?accessToken=u3zuji
    penkx5g7rtcj9qojjgxpconyjktjkli2po09nffrffdhhchq045vp0wyfo

    View Slide

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

    View Slide

  32. 終わりに
    1. LLMの作り方
    ● とにかく作るだけ、というなら簡単
    2. より優れたLLMを作るには
    ● Pretraining, Fine-Tuning, Evaluation等の進歩
    ● Stability AIでの取り組み
    今日は分かりやすさのためにGPT-4との対比を繰り返しましたが、恐らく多くのグループはそもそもGPT-4を作りたいとは思っていないと思います。
    それよりも、限定的な場面で安価に推論可能な小〜中規模のモデルの性能を向上したいと考えているグループが多そうです。
    ただ、やることや考え方は共通している部分も多いと思います。

    View Slide

  33. PROPRIETARY & CONFIDENTIAL
    Hyper realistic future landscape horizon in the valleys

    View Slide