MusubiInsight のダッシュボードチームでは、四半期に一回ぐらいのペースでオフサイトミーティングを行なっています。今期は、そのオフサイトミーティングで LLM(大規模言語モデル)のハッカソンを行いました。 OpenAI が ChatGPT を発表してから、チームの中でも GitHub Copilot を導入したり ChatGPT を利用したりと、LLM を使ったツールを業務で活用するメンバーが増えてきていました。LLM を使った業務改善をプロダクトに活かせないか議論したいと言う話は以前からあったのですが、なかなか時間を取れていなかったこともあり今回のハッカソンを企画してみました。
今回のブログでは、どのようにハッカソンを進めたのか?と、どのような成果があったのか?学びがあったのか?を紹介します。
ハッカソンの目的
まずは、ハッカソン企画の目的としては、以下の二つとしました。
- LLM を使った業務改善をプロダクトに活かすアイデアを出す
- チーム内の LLM の理解を深める
まずアイデアを出す理由は、今後業界での生成 AI の活用は進む中 LLM を使ったシステムのアイデアはどんどん特許化されていて、いざプロダクトに活かそうとすると既に特許が取られていて活用できないということが起こり得るからです。そのため、早めにたくさんアイデアを出して、特許を取ることが重要だと考えました。 また、LLM 理解を深める理由としては、チーム内で LLM の理解が深まれば LLM を使った機能開発のハードルが下がって、いつでも開発ロードマップに載せられるようになったり、仮に機能を出せないとしても、顧客向けに LLM を使った機能をリリースしない理由を説明できるようになると考えたからです。
今回は、チーム内(8 名)を対象にしたハッカソン企画として、進行方法を考えていきました。
ハッカソンの進行方法
ハッカソンの進行方法としては、以下のようにしました。
- 事前に LLM の勉強会を行う(30 分)
- アイデア出しを行う(30 分)
- GPTs を使って実際に PoC を作る(1 時間 30 分)
- まとめ(30 分)
実施した内容を、 具体的に紹介したいと思います。
1. 事前の LLM の勉強会
事前に LLM の勉強会を行うのは、LLM の理解を深めるためです。オフサイトミーティング当日には 3 時間の枠をもらっていたのですが、その枠内で LLM の学習とアイデア出しと PoC 作成の三つ全てを行うのは難しいと考えたため、オフサイトミーティングの前に 30 分間ほどの時間を使って事前の勉強会を行いました。
今回は、以下の 3 つの資料を使わせていただき説明を行いました。
勉強会では、LLM で何ができて何ができないか?を理解することを中心に情報共有を行いました。 特に、トークン・プロンプト・ハルシネーションなどの LLM 独自の用語の説明を行いハッカソンの導入になるようにしました。
2. アイデア出しを行う(ブレインストーミング)
アイデア出しはハッカソン当日に行いました。理由は、ハッカソンでものを作る前にアイデアを発散する場を設けたかったためです。 短時間でたくさんのアイデアを出したかったので、Crazy8 というブレインストーミング手法を使って行いました。 SCAMPER などの方法も考えましたが、手法の説明などを考えると時間がかかりそうで 3 時間枠に収まらない可能性があることと、アプリケーションを作る実践側に時間を使いたかったため、今回は Crazy8 にしました。
チーム割り
今回は参加者が 8 人だったので、自分も含め 2 つの 4 人グループでブレインストーミングを行いました。 いろいろな意見が出るように、各チームにプロダクトマネージャーとエンジニアは最低一人は入るようにしました。
時間割り
時間 | 内容 |
---|---|
10min | ブレストの目的・Crazy8 の進め方の説明 |
10min | 1 つ目のテーマについて |
10min | 2 つ目のテーマについて |
10min | 3 つ目のテーマについて |
10min | グループ発表 |
Crazy8 で短時間でアイデアを出すことを目的としているため、1 つのテーマ当たり 10 分で行いました。
1 つのテーマについては、以下の時間配分で進めました。
- 5 分で 8 つのアイデアを作る(8 つ以上でも良い)
- できれば 8 つ埋める。いろいろ出すことが大事
- 4 分でグループでシェアする
- 1 分インターバル
- 5 分で 8 つのアイデアを作る(8 つ以上でも良い)
準備
- A4 用紙 2 枚を手元に取る
- 3 回折って 8 つの枠を作る
- 枠の真ん中にテーマを書く
一人当たり A4 用紙 2 枚とペンがあれば良いです。
こちらは、crazy8 が終わったあとの紙のイメージです。
テーマ
- チームとプロダクトの課題
- LLM でできること・できないこと
- LLM で課題を解決するアイデア
今回はアイデアを出すことを目的としているため、Crazy8 の練習も兼ねて、 考えやすいものから順番に思考の導入をしていくアプローチで進めました。
3. GPTs を使って実際に PoC を作る(ハッカソン)
ハッカソンに使える時間は 1 時間だったということもあり、LLM を使ったアプリケーションを簡単に作ることができる GPTs を利用することにしました。
チーム割り
元々は 4 人の 2 チームで行う予定でしたが、ChatGPT Plus の契約者が 4 人いたため、2 人の 4 チームで行うことにしました。
時間割り
時間 | 内容 |
---|---|
10min | ハッカソンの流れの説明・GPTs の使い方の説明 |
60min | ハッカソン |
20min | グループ発表 |
準備
- GPTs を利用するには ChatGPT Plus を契約する必要があったので、グループに最低一人は契約者がいる状態にしました。
- 最初の 20 分で GPTs の使い方を説明しました。
- 作成方法
- instructions(プロンプト) の修正方法
- アップロードしたファイルの扱い
- Web 検索・画像生成・コードインタプリタのオプションについて
- (Function Calling についてはさらっとだけ説明しました)
4. まとめ(情報整理・振り返り)
目的
今回のブレインストーミングとハッカソンで出たアイデアをまとめて、実務に活かせる形に落とすため、まとめの時間を設けました。 アイデアの整理方法としては、コスパが良いものから順番に取り組めるように、「効果」と「実現性」の 2 軸で整理するペイオフマトリックスを使いました。
時間割り
時間 | 内容 |
---|---|
20min | ペイオフマトリックス作成 |
10min | 振り返り |
準備
- Figjam にマトリックスを作成し、ブレインストーミングの発表時に出たアイデアを貼り付けておきました。
振り返り
以上の流れでハッカソンを進めたのですが、終わってみてどうだったかを振り返りたいと思います。
目的は達成できたか?
座学 + 実践を通して LLM の理解は深めてもらえたと思います。 ハッカソンでは、1 時間という短い時間で完成度の高いものを作るのは難しかったところではありましたが、 それぞれのチームでは、ブレストで出たアイデアをもとに PoC を作ることができていました。 GPTs を使って作るという点も、チャットを使ってアプリケーションを作るという今までにない体験に驚いたというフィードバックもあったので、LLM の可能性を感じてもらえたポイントだったかなと思います。
また、8 人 x 8 つのアイデアが出て、重複したものや出しきれないものはあったものの、全部で 21 個ものアイデアが出たのには驚きました。 アイデア出しの際に色々な職種の方に課題を提起してもらって、その課題をそれぞれの職種の人の視点で解決策を考えてもらうことでアイデアの幅が広がるという期待通りの結果が出たと思います。 また、ペイオフマトリックスにまとめることで、どのアイデアを優先して取り組むかをチーム内で合意することができた点も良かったと思います。
中身はお見せできませんが、ペイオフマトリックスはこのようになりました。
失敗したこと
事前準備の中で有償版の ChatGPT Plus の契約を進める中、自分が登録した時と違い ChatGPT Plus の契約の前に一度 waitlist 登録が必要で、当日までに契約ができなかったことが失敗でした。ギリギリ、プライベートのアカウントで招待リンクを発行すれば waitlist を飛ばして契約できることがわかったのでその方法で契約を進めましたが、事前に確認しておくべきでした。
今回ブレインストーミングで Crazy8 という手法を使いましたが、時間設定に課題がありました。 アイデア出しに 5 分というのはちょうど良い時間だったかなと思う一方、4 分で全員のアイデアを共有するにはやや時間が足りないということがわかりました。テーマにもよるかとは思うのですが、5,6 分あってもよかったかもしれません。
あとは、ハッカソン中に GPTs の利用制限に達してしまい、開発ができなくなってしまったことが致命的でした。 1 時間のうち後半の 10 分ぐらい何もできなかったグループもあったので、GPTs の利用制限については事前に説明しておくべきだったかなと思いました。
最後に
今回は、オフサイトミーティングで LLM のハッカソンをやってみたという話をしました。 3 時間程度で、チームビルディングにもなりましたし、新しい技術に触れて新鮮な気持ちで自分のプロダクトを見直すきっかけにもなると思いますので、ぜひ皆さんもやってみてください。