メインコンテンツへスキップ
見出し画像

DeepSpeedの使い方をまとめてみた

    こんにちは、福田です。

    今回はLLMの学習において今後さらに注目されていくと予想されるライブラリ、「DeepSpeed」を紹介したいと思います。

    DeepSpeedは一言で言うと、「深層学習全般の訓練と推論の高速化をしてくれるフレームワーク」です。
    数年前から存在は把握していましたが、LLM関連の盛り上がりの影響でAI研究者やエンジニア以外からも注目が集まっているようです。

    こちらの記事を参考にさせていただきました。

    このdeepspeed、いずれにせよ深く学ぶ必要が出てくると思うので、一度ここでアウトプットをしておきたいと思います。

    DeepSpeedのメリット

    • 大規模かつ高速な深層学習を容易に実現する様々な機能を持ったソフトウェアであること

    • オープンソースソフトウェア利用可能であること

    Githubに公開されています。


    使い方・学び方

    日本人でQiitaやZennなどをやっている方の活用例を見ればいいと思っていたのですが、DeepSpeedに関する記事を日本語で出している方はかなり少ないですね。
    特にLLMに関する内容を扱っている方はほんの一握りのようです。

    調べてみた結果こちらが一番最適だと感じています。

    DeepSpeedの例をまとめたGithubリポ


    DeepSpeedで何ができるか

    訓練時

    画像

    LLMに特化して話を進めていきます。

    LLMにおいて、PreTraining時には3つの要素を常に考える必要があります。

    • パラメータ数

    • 計算量

    • データセット

    これらの調整やテクニックによってLLMの性能が変わってくるわけで、これらをよりよくさせるための研究が日々行われています。

    その中でもZeRO, 3D parallelism, MoEなどは大きく影響を与える(良い方向に)ことがわかっており、こちらが簡単に利用できるのでとてもありがたいところですね。

    推論時

    画像

    推論においても、さまざまな課題があります。
    ChatGPTをはじめとするAPIサービスからもわかるように、推論時の課題や問題点を最小限にした状態でプロダクトを提供したいと考える事業者は多いでしょう。

    これらのサービスは最小限の手間で高性能の推論機能を実装させることが可能になります。

    学習時・推論時どちらにおいても、開発工数や計算リソースがもともと少ない人にとっては大きなメリットになるはずです。

    DeepSpeed-Chatを紹介

    画像

    DeepSpeed-Chatとは

    「ChatGPTライクな大規模モデルを作るためのフレームワーク」
    であり、簡単・高速・低コスト、かつ あらゆるスケールで学習するためのフレームワークです。

    AlpacaやVicunaよりも使い勝手が良く、ChatGPTと近い方法(下図参考)で学習することが可能になっています。

    画像

    こちらについて、実際に使ってみたい!という方は以下を参考にしてみてください。

    https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-chat/japanese

    最後まで読んでいただき、ありがとうございました。


    あなたへのおすすめ