ITmedia NEWS > 企業・業界動向 >
ニュース
» 2019年10月04日 05時00分 公開

メルカリは機械学習に「AWS×Kubernetes」をどう使っている? CTOが仕組みを解説

AWSジャパンが開催した技術説明会に、メルカリの名村CTOが登壇。同社が「写真検索」機能などの構築に取り入れている、機械学習の仕組みを解説した。AWSの上でKubernetesを効率よく動かすため、「Amazon EKS」を使用しているという。

[濱口翔太郎,ITmedia]

 日本国内での取引件数が累計5億件、月間アクティブユーザー数が1350万人を突破するなど、成長を続けるフリマアプリ「メルカリ」。人気の要因の1つが、出品物をスマートフォンのカメラで撮影すると、AIが商品名やカテゴリーなどを推測して自動入力する「AI出品」など、テクノロジーを活用した機能を多く備えていることだ。

 「(各機能を実現するため)メルカリはAIと機械学習に力を入れ、随所で活用している。その理由は、個人間取引では、商品データにゆらぎがあり、データを画一的に扱えないことが多いためだ」。メルカリの名村卓CTO(最高技術責任者)は、アマゾン ウェブ サービス ジャパンがこのほど開いた技術説明会に登壇し、こう説明した。

 例えば、メルカリで同じ機種の「iPhone」が売られている場合でも、液晶画面が割れているものから新品同様のものまで、状態はさまざまだ。それらを同じ機種だと判断できるレベルまで画像認識の精度を高めるために、メルカリは膨大なデータをAIに機械学習させているのだ。

photo メルカリの名村卓CTO

AWSとKubernetesを活用

 名村CTOによると、メルカリの機能の中でも、機械学習が特に効果を発揮しているものが「写真検索」だという。アイテムを撮影した写真をアプリで読み込むと、メルカリで売られている商品の中から、同じ商品や似ている商品を一覧で表示する仕組みで「(企業の)カタログに載っていないような、ユーザーが手づくりしたモノの写真からでも、似た商品を探せる」(名村CTO)という。

 写真検索機能を構築する上でメルカリが活用しているのが、Amazon Web Services(AWS)とコンテナ技術だ。具体的には、クラウドストレージ「Amazon S3」に保存した億単位の画像を「Amazon EKS」のクラスタ上で学習させることで、高い分析精度を実現しているという。

 Amazon S3には、ある特定の処理をキーにして、独自の操作を実行できる「イベントフック」機能がある。Amazon EKSは、コンテナオーケストレーションツール「Kubernetes」をAWS上でフルマネージドで動かせるツールだ。

photo 「Amazon S3」と「Amazon EKS」のメリット

イベントフック機能などで機械学習を効率化

 メルカリがKubernetesを使っている理由は、カスタムリソースをユーザーが定義できる機能「Custom Resource Definitions」(CRD)を搭載し、最小限の設定を行うだけで、シンプルなワークロードを自動で構成できるため。マネージド型サービスであるAmazon EKSを使うことで、Kubernetesを管理・運用する手間も省き、膨大な機械学習をスピーディーに進めているという。

 「当社はもともと、Amazon S3に全ての商品画像を保存しているため、AWS上で連携できる相性の良さを考慮してAmazon EKSの利用を決めた。Amazon S3のイベントフック機能を活用し、ユーザーが新しい商品画像を追加したり、画像を更新したりすると、機械学習がスタートする仕様にしている」(名村CTO)

photo 機械学習のトレーニングのイメージ

コンテナをフル活用する理由とは?

 メルカリは写真検索機能の他、冒頭で触れたAI出品機能の構築や、スマートフォン決済サービス「メルペイ」の取引ログの不正検知などにも、コンテナをフル活用しているという。その理由について、名村CTOは次のように説明する。

 「コンテナを導入する前は、1つのサーバ上で多くのソフトウェアを動かしており、セキュリティが脆弱(ぜいじゃく)になるリスクがあったが、コンテナを使ってシンプルな環境を構築することで、それを防げるようになったため。また、機能の開発段階において、ローカルで動かす環境と開発環境が大きく異なると不具合につながりやすかったが、コンテナを使うことで両者を全く同じにでき、本番環境にデプロイしても問題が起きなくなったためだ」

 名村CTOはこの他、フルマネージド型のAmazon EKSの他、サーバやクラスタの管理をせずにコンテナを実行できるサーバレスの「AWS Fargate」といったツールと組み合わせることで、運用の手間を軽減できる点もコンテナの魅力だと語った。

 同CTOは最後に、「(各ツールを使うと)『どんなサーバが何台必要』などと指示する必要はない。人が携わらなくてよく、面倒な部分を全部任せられる。これを人に頼むと、『最初からいたエンジニアだけが運用ノウハウを知っている』といった属人化が起きる可能性もあるが、コンテナを使うとそうしたリスクを減らせる」と有用性を強調し、技術説明会を締めくくった。

Copyright © ITmedia, Inc. All Rights Reserved.