メルカリは2023年10月17日、「メルカリ」上で、生成AI・大規模言語モデル(LLM)を活用した、AIアシスタント機能「メルカリAIアシスト」の提供を開始しました。
当機能は、お客さま一人ひとりのためのCopilot(副操縦士)となり、「簡単に出品できて売れる」「欲しいものが見つかる」といったメルカリ内での重要な体験に貢献すべく誕生したものです。
今後のアップデートも見据えた「メルカリAIアシスト」は、最初の機能として「出品商品の改善提案機能」を導入しました。これにより、「メルカリ」上で一定期間売れ残っている出品商品に対して、AIがメルカリの過去の情報を元に商品情報の改善提案を行うことができるようになりました。
本記事では、プロジェクトを推進したテックリードの大嶋悠司(@y-oshima)、MLエンジニアのAndre Rusli(@andre)、そしてデザイナーの織田京香(@poyomion)、の3名に、「メルカリAIアシスト」をリリースするまでの取り組みを振り返ってもらいながら、今後どのようにAIを活用していこうと考えているかの展望についても聞いていきたいと思います!
この記事に登場する人
-
大嶋悠司(Yuji Oshima)生成AI / LLM チームテックリード。2014年日本電信電話株式会社入社。OSS開発を中心に活動し、Dockerの開発やKubeFlow/Katibの立ち上げ、開発のリードを行った。2019年にMLエンジニアとしてメルカリに入社し、EdgeAIチームのTechLeadを担当。チームではモバイルアプリやブラウザ上で機械学習の推論を行う機能の開発をリード。その後出品に関わる開発チームのマネージャーに従事。2023年5月から現在のチームでLLMに関わる開発をリード。 -
Andre Rusli生成AI/LLMチーム MLエンジニア。2023年に博士号を取得し、メルカリに正式入社。主なテーマとして機械学習と自然言語処理の技術を用いた第二言語習得の支援ツールの開発について研究を行った。研究を進めながら、MLやNLPを用いたサービスを提供するベンチャー企業やEdgeAIを使ったアプリ開発などにエンジニアとして貢献。現在はメルカリの生成AI/LLMチームにてLLMを活用した機能開発や技術検証などに従事。 -
織田京香(Kyoka Oda)UX Design Team / Designer。大学卒業後、フリーランスとしてスタートアップを中心に体験およびUI設計に携わったのち、2021年にメルカリグループの株式会社ソウゾウにジョインして、メルカリShopsの体験設計を担当。2023年に株式会社メルカリへの異動を経て、現在はメルカリの取引に関わる体験や生成AI / LLM チームでAIを活用した機能開発を担う。
「メルカリに詳しい人が隣で伴走してくれる」ような体験を提供するために
──「メルカリAIアシスト」における初の機能を「出品商品の改善提案機能」にフォーカスした経緯から教えてください。
@y-oshima:メルカリアプリにAIを組み込むなら、「出品」「購入」「お困りごと解決」の3つが骨子になると考えていました。お客さまにとっての価値に直結する「出品」にまずはフォーカスしました。
メルカリには既に出品後のサポートする機能は存在していましたし、結果も伴っていたのですが、LLMを効果的に活用することでさらなる改善が見込めると考えました。また、リリースまでのスピード感も求められていたので、結果が出て、かつ、開発妥当性が合う領域であることが前提でした。
大嶋悠司(@y-oshima)
──では、プロジェクトにおけるみなさんの役割について教えてください。
@y-oshima:私はテックリードとして技術面の責任を負う立場で、全体の技術仕様の決定をしてきました。私たちAI/LLMチームは社内でも少し独自の立ち位置のチームなので、アプリ本体に係る開発となると、他チームと連携が必須であり、そこを上手く機能させる必要があります。そうしたケースで必要なコミュニケーションを私が担っています。
@andre:私は2023年の7月に生成AI/LLMチームに参加し、MLエンジニアとしてLLMを活用した機能の技術検証や、検証に伴うコーディネーションを行いました。
@poyomion:私はy-oshimaさんやandreさんとは異なり、UX Designチームに所属するデザイナーです。デザイナーの観点から必要なアイディアをまとめ、素早く手を動かす役割を期待され、プロジェクトにアサインされたと理解しています。mazeさん(VP of Generative AI / LLM 石川佑樹)から体験や仕様を早くつくることが求められていたのですが、当時はPM不在の状況だったので、エンジニアとデザイナー全員が技術と体験を照らし合わせながら開発を進めました。
また、当時はUX Designチームでの仕組み化が盛んになっていたり、社内のクリエイティブのガイドラインの整備が進行している最中でした。その中でワークさせていくので、各メンバーが臨機応変にプロジェクトを遂行することも求められていた状況でした。
──LLMを活用した機能の技術検証という話がありましたが、具体的にどのような検証をしてきたのでしょうか?
@poyomion:例えば、カテゴリ、サイズ、ブランドなどの様々な項目に沿って、AIアシスタントがチャットで提案を行うテンプレートを作る際に、商品説明に書いてあるほうがより売れやすくなるであろう情報、例えば重要や採寸情報などをAIを使って構築する部分をandreさんに協力してもらいました。
私が書いた文章を機械的に再構築してもらうのですが、メルカリにはワーディングルールやブランドガイドラインがあるので、アシスタントの言葉として適しているのかを議論をし、andreさんが随時調整してくれました。
@andre:メルカリに出品される商品は多種多様なので、その全てに対して適切な文言を用意することは難しかったので、最終的にカテゴリや文言の形式が固まってきた段階で、LLMを活用して商品説明が豊富そうな商品からいい情報を抽出して、お客さまに提供する仕組みの開発を進めてきました。
@y-oshima:商品カテゴリ毎に提案内容が違うので、この時点では全員が完成系をイメージできていませんでした。そんな中、andreさんが試作版を作ってくれたおかげで、「こんな感じで表示されるなら、こんなルールがいいんじゃないか?」と何度も議論することができました。
──「メルカリAIアシスト」は、お客さまにどのような体験を提供することを目指したのでしょうか?
@y-oshima:「商品が売れること」と「お客さまが迷わないこと」を目標に体験をつくりました。mazeさんの言葉を借りると「メルカリに詳しい人が隣で伴走してくれる」ような体験です。
@poyomion:お客さまが迷ったとき、選択肢に応じた会話が生まれるのですが、単にシステマチックな会話が表示されるだけでは物足りないと考え、新しい体験を模索しました。例えば、1回目のチャットでは「初めまして」、2回目のチャットでは「また来てくれて嬉しいです」という反応に違いを持たせたり、再出品が完了すると褒めてくれたりする。こうした内容をチーム全員で議論して決めてきました。
織田京香(@poyomion)
@y-oshima:「メルカリAIアシスト」になる前の機能の時点で、改善案を受け入れてくれた新規のお客さまの商品が売れた率は10%程度改善していました。それならLLMを活用することで、さらにお客さまの状況にあわせた提案ができるだろうし、より良い体験が生まれると考えています。
@andre:前機能のサジェスションの内容に関して、X(旧Twtitter)に改善を求めるお客さまの声があがっていたので、そうした声も取り入れながら、より納得できるサジェスションを追求しましたね。
短期間で開発できた要因は、各領域の垣根を超えたコミュニーション
──「メルカリAIアシスト」の開発期間は約2ヶ月だったそうですが、短い期間でも開発できた要因について、それぞれの観点でうかがえますか?
@y-oshima:そうですね…短期間で開発できたとはいえ、仕様がギリギリまで固まらずに進んでいったことで、プロジェクトに関わってくれた様々なメンバーにはご迷惑をおかけしたと思います。そんな状況でも開発できた要因は、関係者全員が優秀で自分がやるべきことを理解していたので、最終的に上手く噛み合ったんだと思っています。
@poyomion:デザインとエンジニアリング、それぞれの観点で「クオリティの合格ラインを決められる人」が集まっていたことが大きな要因の一つだったと思います。どうしたら良いか分からない状態でも、品質(クオリティ)を重視しながら「これでOK」というハードルを一つずつ明確に設けられたことで、無事リリースすることができました。
@andre:私は「信頼性」の高さだと思います。メンバー同士の仲が良いし、高頻度で密接なコミュニケーションを取ることができました。みんなが信頼しあっていたからこそ、この短期間でリリースできたと感じています。
@poyomion:いかんせん全員にとって初めての取り組みだったので、分からないことがあればすぐに聞くことをみんなが徹底していました。私が技術面で分からないことがあればエンジニアに聞くし、エンジニアは体験面で疑問に思ったことがあれば聞いてくれていて。それが毎日繰り返されていると、おのずと結束力のあるチームになっていくんです。他の多くのプロジェクトより、エンジニアとデザイナーの会話量は多かったんじゃないかと思います。
@andre:メルカリのエンジニアリングには、「ブレイムレス(blameless)」というカルチャーがあります。もの凄いスピード感で開発していると失敗はつきものです。失敗したことはすぐに相談する、その時の解決方法がとても良いチームです。失敗しても怖がらずに報告できる環境だったことに、とても感謝しています。
Andre Rusli(@andre)
@y-oshima:できることとできないことの見極めが特に重要でしたよね。技術的にはできるかもしれないけれど、時間がかかるのであれば、どれくらい時間が必要なのかを把握し、今後の進行方法を決めていった。そういった、当たり前だけど見落としがちなポイントがきちんと議論される形になっていたので、コミュニケーションが取りやすかったんだと思います。
──なるほど。では、初期の構想段階での想定に反して大変だったことや、リリースまでに優先度を下げたことがあれば教えてください。
@y-oshima:技術面で難しさを感じたのは、人間がきちんと手を入れないとクオリティを担保できないことです。本来であればオートマティックにできることが理想なのですが、リリースすることを最優先したため、手動でがんばって運用することが多少残っています。それらは今後のアップデートを重ねていく中で最適化していくつもりです。
@poyomion:体験面で言うと、チャット欄への自由入力を許容できなかったことですね。自由入力を許容する場合、初期にケアすべき細かな対話ケースが大幅に膨らみます。チーム内でイレギュラーなユースケースを洗い出して開発スケジュールと照らし合わせた時、適切な品質でリリース日に間に合わせるにはどうしても削らざるを得ませんでした。また、お客さまがAIとやりとりを行う回数も、どの程度までになるか想定しづらかったため、コスト的な試算も難しいと判断して、自由入力を断念しました。
──個人的な感覚ですが、そもそも漠然とした質問を行う機能ではないと思うので、現行の機能に物足りなさを感じませんでした。
@andre:それは良かった(笑)。とは言え、「メルカリAIアシスト」として、チャット欄の自由入力は最終的には実装したい機能のひとつです。コスト感もネックではありますが、機能としての重要度の判断をすることの難しさもあり、実装の難易度の高い機能だと感じています。また、お客さまには品質の高いプロダクトを提供することを大前提としていたので、ファーストスコープでは対象にしませんでした。これも、チーム内でのコミュニケーションが円滑だったからこそ、優先度を下げる判断ができたと感じます。
メルカリにおけるLLMのポテンシャルを探索し、「お客さまにとって当たり前」を更新し続ける
──最後に、「メルカリAIアシスト」のアップデートポイントや、本プロジェクトで培った経験をどのように展開をしていくのか、それぞれの考えをお聞かせください。
@y-oshima:現時点の「メルカリAIアシスト」は、出品後に限られた機能です。アップデートすべきポイントは、「出品補助」「検索」「お問い合わせ」などですね。私は、これらのやるべきことをやった後で、何をすべきかを探索していくのが楽しみです。その課題は、メルカリに限らず、LLMのポテンシャルの高さに直結すると感じています。
また、それ以外では社内の生産性改善という面で、他のチームと協業している最中です。別チームのドメインナレッジが豊富な方にLLMを積極活用してもらうことで、私達が想像していたよりも良い結果が出ています。今後も社内のチームと協力して、私たちのチームだけではできないことを拡張させていきたいですね。
@poyomion:私はデザイナーなので体験面について。「メルカリAIアシスト」の機能活用を「お客さまにとって当たり前にする」ことです。売れるための出品提案は、最初のステップに過ぎません。今後「購入」まわりの体験をデザインしていく予定ですが、「お客さまにとって当たり前」になるような機能や体験を意識して作っていきたいですね。
@andre:LLMは、今後も世界的に注目をされ続けている技術で、個人的にもその進化を楽しみにしています。メルカリにおいては、大きく2つフォーカスしていくべきポイントがあると考えています。ひとつは、LLMによって生産性をどのように向上させるか。例えば、LLMで何ができるのかの検証、コストの試算、評価までのパイプラインを作ることが大事です。
2つめはLLMに対する評価の定め方です。LLMの評価方法は、世界的に大きな課題になっています。大前提となる評価の軸もまだ曖昧ですし、そこにメルカリにおける評価軸も加わるので、まずは「メルカリでLLMを使うならこの評価方法が良いです」と言えるようにしたいです。