
大規模言語モデル分散学習ハッカソン参加報告
今回は2023年7月に開催された「第1回大規模言語モデル分散学習ハッカソン」の参加報告について共有します!この記事では、ハッカソンの全体像から、私たちのチームが取り組んだ内容、そしてその結果を簡単にお伝えします。
目次[非表示]
はじめに
こんにちは、AI技術開発部の池田です。
今回は、7月に開催された「第1回大規模言語モデル分散学習ハッカソン」に参加した経験について皆さんに共有したいと思います。
このハッカソンは、産業技術総合研究所(以下、産総研)が主催し、ABCI利用者やABCI利用を検討中の方々を対象にしており、
ABCIを活用した大規模言語モデルの学習の実践を目的として開催されました。
※ ABCIについては、こちらの紹介ページ[1]をご覧いただけます。上記の画像は、紹介ページからの引用です。
今回は、AI技術開発部のNLPチームメンバーがこのハッカソンに参加しました。
本ブログでは、 将来的にハッカソンへの参加を検討している方々 に向けて、我々の体験を紹介します。
次回のハッカソン(第2回の開催を期待しています)への参加の準備、または今後の参考にしていただければと思います。
ハッカソンへの応募
初めに、6月13日(火)に産総研からハッカソン開催のアナウンス[2]が届きました。
参加資格を確認したところ、我々のチームは全ての条件を満たしていました。
さらに、各チームにはABCIポイントが 1000ポイント(約20万円相当) 付与されるとのことだったので、何も失うものはないと感じ、6月19日(月)には応募を完了していました!
待ちに待った1週間後、6月27日(火)に採択結果のメールが届き、我々のハッカソン参加が決定しました!
7月6日(木)のハッカソン1日目まで、ほぼ1週間しかない中で、タスク設定からABCIの利用方法を把握するための準備を進めました。
具体的には、「日本語で出力可能な画像キャプション生成モデルの構築」をタスクとして設定し、ベースライン用の画像キャプションモデル[3]をABCIのGPUで学習する段階まで事前に準備しました。
1日目 (オンライン・オフラインのハイブリッド)
1日目は、オンライン・オフラインのハイブリッド開催ということで、我々のチームは、オフラインで産総研に現地参加しました。ABCI紹介とログイン方法紹介からはじまり、言語モデル訓練の基礎のチュートリアル、参加者・チーム紹介と初日から盛りだくさんの内容でした。
チュートリアルのコードは、GitHub上に公開[4]されており、サンプルコードを確認するだけでも、有意義な内容だと感じ取れるかと思います。※ サンプルコードは、ABCI上での実行を想定されていますが、LORAを利用した学習コードはPythonコード[5]で書かれているので、非常に参考になるかと思います!
参加チームとして、合計20チーム、企業から大学まで、様々な業種や分野の方々が参加されていました。もちろん具体的な社名や大学名は、公にお伝えすることができませんが、 近年の大規模言語モデルの注目度を感じられる状況 であったことをお伝えしておきます!第2回の開催が決まった場合は、ぜひ参加していただき、その状況をご確認していただければと思います。
チュートリアル等が終わったあとは、各自モクモクタイムです。
その様子を言葉では、うまく説明できないので、初日のモクモクタイムの写真をご覧ください。
本ハッカソンのスタッフのひとりである Shinnosuke Furuya さん のツイート[6]から引用させていただいております。
2日目〜7日目(オンライン)
2日目から7日目までは、全てオンライン形式でハッカソンに取り組みました。
我々のチームでは、毎日1時間の進捗報告をオンラインで行うという方針で進めていきました。
今回のチームメンバーが全員同じ部署・同じチームであったため、日常的に利用しているツール(TeamsやGitLabなど)をそのまま活用でき、スムーズにタスクに取り組むことができました。
ハッカソン期間中には、専用のSlackが開設されており、ABCIに関する質問は産総研のスタッフ、言語モデルの学習方法やGPUに関する質問はNvidiaのスタッフから直接回答をいただくことができました。
このようなやり取りにより、オンライン上でも活発な議論が行われていました。
我々のチームメンバーの一人がABCI上でのマルチGPUの学習方法やLoraの学習方法について質問させていただき、 その迅速で丁寧な回答に感動 していました。
このような経験は初めてで、大変有意義なハッカソンとなりました。この場を借りて、ご協力いただいたすべての皆さまに感謝の意を表します。ありがとうございました。
最終日(オンライン・オフラインハイブリッド)
最終日も初日と同じく、オンラインとオフラインのハイブリッド方式で開催されました。
我々のチームは、再びオフラインで産総研に現地参加しました。
午前中は各チームが黙々と作業を進めるモクモクタイム、午後からは各チームがそれぞれの成果を発表する時間が設けられました。
今回は20チームが参加し、それぞれが 30B級のモデルの学習からVision and Languageモデルの学習 まで、様々な検証結果を発表しました。
ここでは、我々のチームが作り上げた「日本語で出力可能な画像キャプション生成モデル」の目標①の出力結果を発表資料から引用して紹介します。
例として、産総研の建物の画像をキャプショニングした結果を見てみましょう。うまく説明できているようです!
キャプション例1. 画像は[7]から引用しています。
次に、GeForce RTX 4090の画像をキャプショニングしてみましたが、「 黒と白のツートンカラーのスタイリッシュなデザインの黒い家具 」と説明されてしまい、画像がGPUであることを適切に説明できていないようでした。
キャプション例2. 画像は[8]より引用しています
この結果から考察すると、MS COCOデータセット[9]のみでファインチューニングを行った場合、認識力が不足して一般的な世界を適切に説明することが難しいようです。これは、やはりConceptual 12M[10]のような大規模データセットを用いた事前学習が必須であることを強く示しています。
おわりに
今回参加した「大規模言語モデル分散学習ハッカソン」は、非常に貴重な体験となりました。
ハッカソンという形式は、我々のチームだけでなく、他の参加者との情報交換から新たな視点やアイデアを得られる大変有益な場だと感じました。
特に、産総研やNvidiaの専門家の方々から直接助言を得られたことは、私たちの学びを深める大きな助けとなりました。
今回のハッカソンで得た知見を活かし、引き続き高性能な日本語画像キャプション生成モデルを開発することに注力していきます。また、次回のハッカソンも期待しています!
最後に、ハッカソンの開催をしてくださったスタッフの皆様、そして一緒に活動した参加者の皆様に、深く感謝の意を表します。ありがとうございました!
コニカミノルタは画像IoTプラットフォームFORXAIを通じて、お客様やパートナー様との共創を加速させ、技術・ソリューションの提供により人間社会の進化に貢献してまいります。
参考
[1] https://abci.ai/ja/about_abci/
[2] https://abci.ai/event/2023/06/13/ja_event.html
[3] https://huggingface.co/docs/transformers/v4.30.0/model_doc/vision-encoder-decoder
[4] https://github.com/ohtaman/abci-examples/tree/main/202307
[5] https://github.com/ohtaman/abci-examples/blob/main/202307/src/finetune_lora.py
[6] https://search.yahoo.co.jp/realtime/search/tweet/1676846086106005504?detail=1&ifr=tl_twdtl&rkf=1
[8] 画像キャプション事例:NVIDIA GeForce RTX 4090 24GB GDDR6X FE Founders Edition New Grapics Card https://www.google.com/imgres?imgurl=https%3A%2F%2Fm.media-amazon.com%2Fimages%2FI%2F51c1zFDNVmL._AC_UF1000%2C1000_QL80_.jpg&tbnid=nR_pypHjisBu9M&vet=12ahUKEwijpIecoLCAAxWSzjQHHX16CJEQ94IIKAF6BQgBEKMB..i&imgrefurl=https%3A%2F%2Fwww.amazon.co.jp%2FNVIDIA-GeForce-GDDR6X-Founders-Grapics%2Fdp%2FB0BJFRT43X&docid=4xZJLlL8Y5iaXM&w=1000&h=484&q=4090&ved=2ahUKEwijpIecoLCAAxWSzjQHHX16CJEQ94IIKAF6BQgBEKMB
[9] https://cocodataset.org/#download
[10] https://github.com/google-research-datasets/conceptual-12m
新卒採用については以下の採用情報ページをご覧ください。
中途採用に関する情報については以下の採用情報ページをご覧ください。