「Python自動化プログラムコンテスト」で優勝したのでその要因を考察する
2023-12-23
azblob://2023/12/22/eyecatch/2023-12-22-automation-contest-000.jpg
2023年12月16,17日に株式会社ケアリッツ・テクノロジーズと私が所属している42Tokyoのコラボによって開催された、「Python自動化プログラムコンテスト」で優勝したのでその要因を考察します。
 

共感を呼ぶ

ここで意識したことは以下の2つです。
  • 参加者の属性を考慮した。
  • 作成背景を重視した成果発表を行った。

参加者の属性の考慮

今回のコンテストでは事前に評価の基準として、成果発表後に参加者の投票を行うことが示されていました。
そのため、どのように工夫すれば参加者の方々から投票していただけるのか考えたあらかじめ考えました。その結果、高い技術力を見せるのではなく(私のチームにはPythonに強いメンバーはいなかったので)、普段全員が使用しているツールや日常作業で面倒な作業を何か考え、その面倒な作業を自動化して改善することが最善策であると結論付けました。全員というところがポイントです。参加者全員に共感のアプローチをすることができる方針ですね。
 

作成背景を重視した成果発表

このようなコンテストの成果発表では、使用した技術やその難しさを重視した発表と課題やその背景を重視した発表の2パターンが存在すると感じています。
今回は多くはないですが、Python初心者の方もいたので、経験者も含め、この層にも共感を呼ぶアプローチをするのであれば、後者の方が得策と考えて課題やその背景を重視した発表を行いました。
 

難しいことは避ける

これだけ聞くと、できることだけで何もチャレンジしなかったように見えますが、そうではありません。
実際、APIやツール、話題の画像生成AIなど、チーム内で誰も触ったことがない複数のツールを使用しました。
限られた時間内(案だしから開発まで14時間程度)で、少し頑張れば難しいけどできそうという技術には積極的にチャレンジしていきました。
では、具体的にどのようなことは避けたのかというと、主にモデルのチューニングです。
作りたいものが決まったのちに、生成AIを取り入れたいとなりましたが、その領域に知識のあるメンバーがいなかったので、生成AIを使用するうえで作業時間や得られる効果を考慮したコストパフォーマンスのランキング付けをしました。
そのランキングが以下の通りです。
 
  1. 既存のモデルを使用する
  2. 既存の学習セットからモデルを作成して使用する。
  3. 自ら学習セットを作成し、モデルを作成して使用する。
  4. モデルの制度を上げる(チューニング)
     
チーム内で4番が作業に一番時間必要としてかつあまり評価使用に影響を与えないと考えたため、最低でもモデルのチューニングは避ける決断をしました。実際に本番で使用したの1の既存モデルのみでした。
 

発表準備を入念にした

素晴らしい作品を作っても、発表時に動作しなければ、評価する側は何もわかりません。
このようなコンテストで、まれに発表時に動かない事例をいくつか見てきました。
そのため、最終発表時に成果物が動作しないことを想定してデモ動画を作成しました。
リスクヘッジ大事ですね。改めて実感しました。
 

最後に

今回コンテストの参加を経て、気づいたことがあります。
それは、学生の方が生成AIまわりに詳しいのではないかということです。
生成AIプロダクトを作成している企業に勤めているので、学生に負けないように可能な限りキャッチアップしていきたいですね。
また、少し前と違ってアイデアがあまり出て来ませんでした。
おそらく最近は与えられたタスクをこなすことに集中しているため、あまり考えて行動ができていなかったことが原因かもしれないのでここは反省ですね。
 
※優勝商品としてアマギフをいただいたので人生初のラズパイを買って遊ぼうか検討中です。