はじめに
突然ですがハッカソンに参加してきました。
「LLM(大規模言語モデル)を用いて現実にある問題を解決しよう」をテーマに開催されたグループ会社横断ハッカソンです。
今回がはじめましてのメンバーで4日間をフルに使ってプロダクトを作り、そして最後にプレゼン発表するというとても刺激的なイベントに縁あって参加がすることができ、個人的に興味深い気づきや今後やっていきたいな〜と思うことがあったのでここに書き留めておこうと思います。
※この記事では技術系の話は出てこないです
ハッカソンの準備
ハッカソンのキックオフから当日まで3週間ほど期間がありました。
その間メンバー同士で議論を重ね、プロダクトのアーキテクチャをざっくり決めるところまで行い当日を迎えました。
この期間を振り返っての反省にはなりますが、特に大切だなと感じたことが2点あったので紹介します。
①一次情報のインプットをたくさんする
良い仮説を得るためにはまず生のデータをみて、イメージを膨らませ、メンバーとフリーで議論することが大切です。そうすることでテーマの本質的な課題とその解決に役立ちそうな情報が見えやすくなります。そしてその中から自ずと独創性のあるアイデアが生まれてくるのだなと思いました。闇雲に「〜だろう」といった思いこみのまま話を進めてしまうとやることが迷走しがちになるので、ここのインプットは特に入念に行うことをおすすめします。
②当日までにできることはあらかじめやっておく
察していただけるかも分かりませんが、ハッカソンはとにかく時間がないです。
開発で使用するgithub、APIキー、一元管理できるメモ置き場の用意など、事前にできることは何でもやってしまいましょう。
また、アーキテクチャの全体像の共有およびメンバー間での合意はなるべく詳細にやっておくといいです。ここをきちんとできているチームほど、最終的な評価が高かった印象でした。(今回のハッカソンの準備は通常業務と並行して行わないといけなかったので色々と難しい面はありましたが)
ハッカソンで作ったプロダクト
データ処理、および今回のハッカソンでテーマとなった問題に対する出力をLLMを用いて実装しました。プロダクトの詳細については申し訳ないのですがここでは割愛させていただきます!
いい感じのものを作ってしまったがゆえに社外公開不可...orz
超ざっくりと本プロダクトの概要を説明すると、人間の能力(情報処理能力、認知能力、思考力、etc...)にはさまざまな限界があるため従来の手法ではアプローチ可能な領域に限界がありました。その限界をLLMを使って乗り越えてしまおうというものです。テーマについてのヒアリングを重ねる中でいくつか見えてきたペインポイントに対してLLMを使用した本プロダクトを適用することで、人間ならではの限界に縛られない網羅的なアプローチを可能とし、かつその先のアクションについての提案を行うところまで実現しました。
ハッカソンをふりかえって
私自身経験が浅く、どのように進めればうまくいくかのイメージが持てなかったため、自分主体で動くのが難しい場面が多々ありました。期間中にたびたびフォローして頂いたり、修行を兼ねてやれること何でもやってみたり、またまたLLMを使い倒すという開発経験を積む中で学ばせていただくことは本当に多かったです。そのうえで、特に大きな気づきになったなと思うのが以下の2点です。
①アウトプットにとことんこだわる
ハッカソンは技術と時間の勝負です。何もできずに時間を浪費してしまうのだけは絶対に避けたい。しかし振り返ってみると、今回のハッカソンで無駄にしてしまった時間が多々あったと思います。
その反省から、大事だなと思ったスキルは言語化能力です。
どんなに面白い考え・発想が頭の中に浮かんだとしてもそれを言語化してチーム全体で共有することができなければもはや何の役にも立たないんですよね。今回のようにスピード感が求められる状況では、自分自身で確証がなかったとしてもどんどん案出しをし、議論の中でアイデアを磨いていくことが必要になります。そして話す側はもちろん、聞く側もこの能力は持つべきだと思います。なぜならば話す側からのインプットを得てどんどん不明点や指摘事項を返していかないとアイデアを磨くということが実現しえないし、何より構造化したイメージをチームメンバーで共有することが難しくなるからです。そのため各メンバーが主体性をもち、どんどん言語化してブラッシュアップしていくことでプロジェクトを前へ前へ進めて行こうとする意識は絶対になくてはならないと感じました。
私自身、ハッカソン期間中に実践を重ねる中で言語化できることが増えてきた感覚があったのでこれは本当に実践あるのみだと思っています。できるだけ緊張感をもってこういった経験が出来る環境になるべく身を置いていきたいですね。
②LLMは万能ではない
どれだけ凄くても、やっぱりLLMに出来ることは人間が普段行っていることの「置き換え」でしかないんだと思います。当たり前ですが最初からLLMに丸投げしたところで、求めている出力はなかなか出してくれません。よく分からないけど良い感じに出力してくれたからと、無闇に信用してしまうとあとで痛い目を見ることもあります。
事前に調査を重ねた上で、
・今回取り組む課題にはどこに問題があるのか
・何が解決できればありがたいのか
などの課題分析を人間側で事細かに行い、その上で仮説立てをして使うことが必要なんだと思います。
例えば今回のプロダクトの中で人間個人の発想の限界を超えるような、独創的な要素をLLMに出力させることを試みたのですが、ここはかなり苦戦しました。なぜならば独創的とは何かを定義してその情報をLLMに与えるのが困難だからです。われわれ人間が独創性、言い換えれば「今までにないような斬新な要素とは何なのか」を理解していないのに、LLMがそれを理解してよしなに出力してくれるはずがありません。課題解決のためにほしいアウトプットはどんなものか自分自身で明確にイメージし、例えば思考回路が自分と異なり、非常にユニークな思考をする人格設定をLLMに盛り込めばうまくいくのでは?と仮説を立てた上ではじめてLLMに頼ることで、ほしいアウトプットに近い情報が得られるのだと思います。
さいごに
自分自身技術力がなくて不安...という気持ちで参加しましたが、終わってみると収穫が多くとても楽しいイベントでした。ハッカソンに参加して別に何かを失う訳ではないので、よほどの理由がなければ興味本位で参加しちゃっていいと思います。そして困ったときは(困ってないときでも)パッションがあればだいたいどうにかなります笑
軽い感じで書いていますがこれは意外と侮れないことだと思っていて、やっぱり人の強い気持ちは関わる人やプロジェクトを大きく動かすことができるんですよね。実際にハッカソンに参加してそう感じずにはいられなかったですし、その実感を得たいならハッカソンは本当におすすめです!
あとはハッカソンを通して仲間が出来るというのが本当に良いことだと思います。ワクトのみんながグループ会社のメンバーとも今後もっともっと繋がって行ければ理想的だなと感じますし、自分自身としては機械学習や分析などの分野に挑戦したいので出来るだけ...と言わずどうにかしてより強い関わり方をしていきたいですね!