Mercari AI / LLM Hackathon で優秀賞を取った話

## はじめに
2024年9月25日(水)〜27日(金)まで Mercari さん主催のハッカソン「Mercari AI/LLM Hackathon」が開催され，参加してきたので雰囲気や感想をまとめます！

https://careers.mercari.com/mercan/articles/42130/

## Mercari AI/LLM Hackathon概要
### 開催日時・会場
- __開催日時__：2024年9月25日(水)〜27日(金)
- __会場__：メルカリ六本木オフィス, ベルサール六本木グランドタワー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/17b836ac-553d-1a6a-d710-4f217ed17656.png)

### チームメンバー
- エンジニア：3名 <- 自分はここ
- UI/UXデザイナー：1名
- プロンプトデザイナー：1名
- (メンターの社員さん1名)

### テーマ
__「生成AI / LLMを活用して「メルカリ」のプロダクトや機能をアップデートせよ」__

### 審査項目
- 事業へのインパクト
- 技術的な取り組み(AI/LLMの活用)
- ユーザー視点(AI/LLMの活用)
- UI/UX

## 開発したもの
それぞれの日付でやったことを述べる前にどんなものを開発したのかですが，

### タイトル：攻めろ推し活　-メルコミュ-
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/7edd6df6-14ef-ef06-d0bb-80f16d9c8ddd.png)

### ターゲット
- 10代〜20代のZ世代
- アイドルやVTuberを推す「推し活」をしているユーザ
    - 特に，「グッツ交換」をTwitter(X)をしている層

### 機能，メリット・デメリット
- 機能：「推し活」グループ機能を作成し，グッツ交換や交流を行える機能を作成する
- メリット
    - 匿名配送でのグッツ交換
    - チャット履歴をLLMで分析し，自分の推しに付いて会話されているコミュニティが強調表示される
    - コミュニティに参加していれば出品した商品に自動でタグ(#)が付与される
        - SEOで上位に
        - ユーザが探しやすく・買われやすく
- デメリット
    - 送料＋手数料が発生する
    - コミュニティ機能が活性化しない恐れがある

## Day1
ハッカソンDay1はチームビルディングやハッカソンの概要説明などから始まり，その後，各チームでハッカソンが始まりました．
チームではまず，ブレインストーミングを行い，各々が考える案を出していきました．事前調査を行ってくれたメンバーの方がいらっしゃったのでそのデータを元に議論することが多かったです．

参考サイト(一部)

https://about.mercari.com/press/news/articles/20240808_sustainabilitysurvey/

https://about.mercari.com/press/news/articles/20231108_categorysurvey/

ブレインストーミングした時のホワイトボード


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/edea20fe-df5d-eaca-ff32-e12824520166.jpeg"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/32613379-3e8e-8979-efa2-7bd03dc02649.png">

ブレインストーミングでは「推し活」，「リセール価格」，「独自ルールの問題」，「Z世代」，「不正出品」等といった題材が上がりました．

アイディアを固める際にチームを悩ませたのが「AI/LLM」をどう活用していくかという問題です．

- プロンプトデザイナーの能力をどう引き出していくか
- AI・LLMを強くするとインパクトが弱くなり，インパクトを強くするとAI・LLMが弱くなるというジレンマ
- 「推し活」の交換にフォーカスした場合，利益をどう上げていくか
- 「リセール価格」にフォーカスした場合，予測モデルをどうするか
- etc.......

などなど，書き上げたら無限に上がるくらいの試行錯誤を繰り返し，1日目の結果としては「推し活」にフォーカスしていきました．


## Day2
Day2はメルカリオフィスではなく，近くにある「ベルサール六本木グランドタワー」というところで開催されました．
Day1で決定した「推し活」についての機能を開発していきます．
具体的には，
__「推し活」でグッツのトレードを行っているTwitter(X)ユーザをメルカリに取り込む！__ 
というアイディアで開発を行っていくことになりました．(ここまで決まっているのは，Day1の深夜チームMTGがあったりなかったり，，，)

開発環境は以下の通りです．
```
- フロントエンド
    - Next.js
    - tailwindcss

- バックエンド
    - Django(Python)

- DB
    - PostgreSQL

- インフラ
    - Devcontainer(Docker)

- その他ツール
    - Figma
    - V0
    - ChatGPT API
```

Day2は個人作業が多めでした．基本的には，開発(2名)＋デザイン(1名)＋要件定義(2名)で進んでました．
要件定義をしていた1人がDBの設計図的なのを書いてくれたので，フィードバックしたり，デザインの人と詳細部分を詰めながらの開発でした．

![スクリーンショット 2024-09-26 131845.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/3835c6f6-e9b4-71c4-69fb-edeb1c67ae2e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/78305dfa-58ba-1df3-fca1-590f7686f446.png)
※作成してもらったDB設計図と開発優先順位(この時点での)

一応Day2は18:00修了なのですが，もちろん終わるわけがなく，，，ただ会場は19:30まで開けてくれたので居残り〜
居残っている時に，__「チャット機能を付けるのであれば，商品情報とチャット履歴からトレンドタグを作れるのでは！？！？」__ と思いつき，チームメンバーに共有した所好感触．(やっぱり対面いいですね)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/604efcc4-1971-9fb1-c806-f98906a3798c.png)
※チャット機能のメモ書き

19:30までいても全然終わらず，，，各々でタスクを分配して持ち帰る形となりました．自分の残タスクとしては
- デモ動画に必要な画面実装を行う
- 発表の流れをまとめてメンターさんにお伝えする

ちなみにデモ動画は以下の画面を使うことに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/6581afce-d045-120f-3800-788654cfe972.png)


## Day3
やってきてしまった，Day3．とりあえず頑張れる部分まで頑張るしかないという感じでした．

Day3の朝の段階で進捗率としては以下になります．
- 全体：60％
    - 要件定義：100％
    - フロント実装：50％
    - デザイン実装：90％
    - AIの制度検証：30％
    - 発表資料：0％ <- ヤバイ!!


期限としては __15:30のスライド提出__ で，そこまで全力全身です！！
人員配置としては，開発(2名)＋発表スライド(2名)＋プロンプト機能ブラッシュアップ(1名)となりました．昨日の最後の方で思いついた「推しタグ」機能を実現するためにプロンプトデザイナーの方には様々なデータで精度検証を行っていただきました．

Day3はとにかく作業だったので，特に話すこともなく．．．ちなみに，完成したスライドは以下のとおりです

https://speakerdeck.com/akin0ri/llm-hackathon-teamd-fa-biao-zi-liao

## 発表・結果発表
発表5分＋質疑応答5分で，
発表は時間がなかったので1人で行うことにして，↑にあるスライドで発表を行いました．その後審査員の方からの質疑応答で少し戸惑ってしまう部分(英語だったので)があったもののしっかりと発表を行えました．

結果は．．．．

__「優秀賞」__ でした！！！(めちゃ嬉しい)
![GYhWLFKakAALgRu.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/619aff0f-3d05-8583-b51a-8ef950127ba5.jpeg)

審査員の方から厳しい意見をもらいつつも，受賞できたのはとても嬉しかったです！！
チームの皆さん，メンターの社員さん，他アドバイザーの方々ありがとうございました．

## おわりに
Mercari AI / LLM Hackathon に参加して，成長できた部分と自身の課題を見つけることができたので今後につなげていきたいと思います！！
辛い部分や苦しい部分もありましたが，総じてとても楽しいハッカソンになったと思います！！！！

## おまけ
懇親会がDay1, Day3にあり，とっても豪華でした！これが六本木という街の力かと感じさせるような懇親会でした．

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/ce48cb40-9f2b-7e51-cfc3-1268fa39d4ed.jpeg"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543125/2878294b-0ef6-f43a-9606-7394db035cc7.jpeg">


ハッカソン自体は定期的にやっているっぽかったので，是非興味ある方は参加してみてはいかがでしょうか！？

長々と読んでいただきありがとうございました．