
2025.02.18
AIが「嘘のデータ」を返してしまう アルペンが生成AI導入で味わった失敗と、その教訓
リンクをコピー
記事をブックマーク
渡辺慎二郎氏:「大規模データをAIに活かすワークフローツールの紹介 約300万画像を画像検索システムで検索可能にした事例紹介」ということで、ZOZO研究所 福岡・渡辺慎二郎が登壇いたします。よろしくお願いします。
最初に簡単に自己紹介します。株式会社ZOZOテクノロジーズ ZOZO研究所 福岡、研究開発エンジニアの渡辺慎二郎です。Twitterでは「@shikajiro」でやっています。
すごく簡単に経歴も紹介しますと、2010年から8年ぐらいフリーランスとしてAndroidアプリを専門にしていました。2018年からZOZO研究所 福岡に入りまして、バックエンドを担当しています。その担当している内容を今日お話ししたいと思います。
あと、もうすごく犬が好き。Twitterをフォローしてもらえると犬が定期的に流れてきますので、オススメです。ぜひフォローしてください(笑)。
「#zozotech_gcp」というハッシュタグがありますので、shikajiroの話がおもしろい・おもしろくない、どっちでも「shikajiroの話おもしろいなー」とツイートしてください。あと、質問は「#zozotech_gcp」をつけてツイートしてください。お待ちしています。
今日は、まず僕の役割である研究開発エンジニアについて軽く紹介いたします。次に事例を紹介しながら、その事例のインフラやAPIの仕組み、ワークフローの構成をお話しします。このワークフローの構成というのが今日のメインのものになります。最後はまとめと質疑応答というかたちでいきたいと思います。
最初に会社の組織の中でも「研究所とはなんぞや?」というところを紹介します。
まず、親会社としてZOZOがあります。子会社としてZOZOテクノロジーズがありまして、ここがITの部門。開発、デザイン、あと運用、研究ですね。先ほどお話ししてくれた児玉さん(@dama_yuさん)の発表も、こちら、テクノロジーズの話ですね。
僕が所属しているのは、さらにその内部組織で1つの部署である「ZOZO Research(ZOZO研究所)」と呼ばれているところになります。ここは主に研究開発を行なっています。どんなことをしているかといいますと、「ファッションを数値化する」というテーマで研究をしています。
似合う服というのは何なのか? 例えば僕は今日ピンクの服を着ていますが、その下に着るのは何がいいのか。この僕の服は今から出かける場所に合っているのか、季節的にどうなのかとか、そういったところを数値化できないだろうかということをやっています。すてきなファッションになるための組み合わせだとか、そういうことですね。
ファッションの数理モデルを獲得し実用化をやっていくというのを長期プラン、短期プランでいろいろやっています。ほかにも繊維的な、服の繊維の研究とかいろいろやっていまして、そのうちの1つですね。ファッションの数値化を行なっています。
僕はMLエンジニアではなく「研究開発エンジニア」という名前でやっています。主にバックエンドをやっているんですが、どういうことをやっているかというと、「MLエンジニアがMLしやすくする」というのがテーマです。もっと言うと、ML以外全部やるという気概でやっています。
もうちょっと具体的に紹介しますと、MLエンジニアとの協働です。MLエンジニア、要は機械学習だとかAI、ML・DLあたりを使ってモデルを作っていくいろいろ研究していく人たちなんですが、そのエンジニアが学習しやすい環境づくりをします。
「Kubernetesを使いたいです」とか「画像がたくさんあるのでいっぱい欲しいです」とか、「並列でいっぱい処理したいです」だとかですね。そういう環境づくりをしたりしています。
彼らが作ったモデルを基にプロトタイプ開発もしています。「すごいのできたんですが、ちょっとプレゼンではわかりにくいです」「じゃあプロトタイプを作ってしまいましょう」みたいな感じで、プロトタイプの開発をやっていきます。
フロントエンドからサーバーからパッと作ってしまって、社内にいるみんなに見せて「おお、いいね、これ。やっちゃいなよ」という流れを作っていきます。そのモデルをプロダクションの中でAPIとして動かすような仕組みを作っていっています。
先ほどちょうどお話してくださった@dama_yuさんが所属しているMLOpsチームと一緒に作ったモデルのサービスを、きちんとプロダクションのサービスに足るような性能に引き上げる仕組みをやっています。
「一緒にこういうモデルを作っていこうと思います。こういうサービスにしようと思います」と言って、インフラから「じゃあ、こういうインフラにしていきましょう」という設計をしていって、どんどん性能を引き上げていきます。
もうちょっと言いますと、研究開発エンジニアが普通のインフラやバックエンドをやっている人と何が違うかというと、ビッグデータを使って学習するところ。もう1つはビッグデータに対して予測するところです。
大量にすごいデータがあるとき、それに対するAPIを作ったり事前準備をするなどの部分が、僕たち研究開発エンジニアが必要とされているところになってきます。ビッグデータに対して予測するというのは、APIの部分だったり、そういったところになります。
今からは事例を紹介しながら、その中で使っているGCPの紹介をしたいと思います。今日お話しする内容ではありませんが、ZOZOがやっている「WEAR」というファッションサービスのアプリがありまして、その中の「髪型別コーデ検索」というのをちょっと前にリリースしました。
これはロング、ミディアムなどの髪型、例えば「私は今ボブだけど、ほかの人はボブに似合うどんなファッションをしているんだろうか?」というのをすぐ探せる仕組みになります。これも「WEAR」にある大量の画像データから機械学習を使って髪型を識別・選別し、検索可能にするというのを行ないました。
次は一時期話題になったのでけっこう有名かと思うのですが、ZOZOTOWNの類似アイテム検索。
要は画像検索なんですが、この画像でいうと、左の女性が着ている花柄の服に似ているものを探したいときに、ボタンをポチッと押すと、それっぽいファッションの服が出てきます。その中から自分が気に入ったものを探す。「この花柄なんだけど、もうちょっと襟が広いのがいいなぁ」みたいなときに押してもらえると、いろいろな似たものから探すことができます。
今回はそのZOZOTOWNの画像検索、類似アイテム検索で、裏側で動いているGCPのワークフローの紹介をしたいと思います。これは最近ちょうどテックブログに載せた内容でして、それの補完みたいなかたちになるんですが、よければそちらも併せて見ていただけるとうれしいです。あと、はてブもしてくれるとうれしいです。
ZOZOTOWNの類似アイテム検索のインフラ紹介になります。GCP、もちろん使っています。今回お話しするメインはワークフローという仕組みなんですけれど、これはあとで紹介していきます。
MLエンジニアはGCPの、例えばCompute Engine、インスタンスを立てて、GPUや、今回ではTPUも、TensorFlowのTensor Processing Unitだとかそういったものを使って学習を行ない、すごいクールなモデルを作っていったりしています。
僕みたいな開発者はそれを動かすためのAPIを作り、GitHubでCI/CDを使ってデプロイして、Container Registryに乗せたりとかをしています。そうやってできた仕組みをユーザーはロードバランサーを経由してAPI叩いて、内部的にはKubernetes Engineが動いています。GKEですね。これを使って動かしています。
その前に、簡単に中身を紹介します。この画像検索、今回「画像検索」という名称で呼んじゃいますが、画像検索は「物体検索」「特徴量抽出」「最近傍探索」という3つのステップを踏んで検索しています。それを、GKEを使って動かしています。
ユーザーが「この似ている服を探したい」と言っているAPIを総称して、推論するAPI、「推論API」と呼んでいます。今回はワークフローの話なんですが、いったんこの推論APIについて流れを紹介します。
この服がいいなと思ったら、まずこの服から物体検出を行ないます。この服には、どんな服があるか。物体、洋服だとか上着だとかズボンだとかトップスだとかといったところを、まず検出を行ないます。
具体的な画像検索の中身についての解説は次回のミートアップとかに委ねたいと思いますので、今回はちょっと端折ります。
まずtopsを取りまして、そこから特徴量を抽出して数字にします。ZOZOTOWNには、今回で言うと300万ぐらい対象となる画像がありまして、それに対してあらかじめ全部この特徴量に計算し、インデックス化をしておきます。
そのインデックスに入っている特徴量とこの花柄の服の特徴量と照らし合わせて計算することで、似たものを、最も似ているものをどんどん出していくというもの。この3つのステップを経て推論APIはできあがっています。というのが前提ですね。
GCPを選んだ理由なんですが、まずBigQueryがあること。ZOZOTOWNの300万画像という大量にある情報のデータがBigQueryですでにあるということ。
画像検索ではすごい計算量を使いまして、GPUとか使いたいなという要望がありました。その中でGPUがまず使えること。TPUも使おうと思えばできるということがあります。実際、GPUは推論APIで使っていますし、学習のときはGPUはもちろんTPUも使って、ものすごい計算を短時間でできるようにしています。
ですので、GPUを推論APIをするときに普通のGoogle App Engineだとかでは使いにくかった、できなかったので、k8sのマネージドサービスGKEを使いました。これがほかのクラウドサービスの中ではKubernetesのマネージドサービスが安定しているので、これを選択しました。という、このあたりが一番大きな理由ですね。
推論APIのおさらいになるのですが、物体検出と特徴量抽出と近似最近傍探索を行なうという流れなんですが、近似最近傍探索をするにあたって、あらかじめZOZOにある画像データの検索対象になるもののインデックスを作っておく必要があります。対象となる画像は具体的には300万ぐらいあります。
関連タグ:
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
限られた時間で成果を上げるドイツ式仕事術
2025.01.21 - 2025.01.21
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29