Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
全身画像からコーデアイテムを抽出し 毎日にIRODORIを!デバイス完結型アプリを作る Copyright © ZOZO, Inc. 1 株式会社ZOZO ZOZOTOWN開発本部 ZOZOTOWN開発1部 iOSブロック だーはま / 濵田 悠樹 Copyright © ZOZO, Inc.
Slide 2
Slide 2 text
© ZOZO, Inc. 株式会社ZOZO ZOZOTOWN開発本部 ZOZOTOWN開発1部 iOSブロック 濵田 悠樹 @ios_hamada 2 ● 25年新卒でZOZOに入社 ● 学生時代はAIの研究, iOSやPdMの長期インターン ● 服でユーザーの人生を変えるためZOZOへ入社 ● 新卒4人で IRODORI を開発中(業務外)
Slide 3
Slide 3 text
© ZOZO, Inc. 3 IRODORI : コーディネートの”相棒”ができる ○ 写真1枚からコーデの分析や提案をしてくれる → コーデに悩まなくなる, 自信を持てる AIを使ったアイテム抽出
Slide 4
Slide 4 text
© ZOZO, Inc. 4 開発始めたてのある日 AIモデル使って、全身画像からトップスとボトムスを抽出したい いいね!使えそうなAIモデル調べてみる AIエンジニア
Slide 5
Slide 5 text
© ZOZO, Inc. 5 開発始めたてのある日 AIモデル使って、全身画像からトップスとボトムスを抽出したい いいね!使えそうなAIモデル調べてみる AI動かすために GPUサーバー6万円/月かかる。いいね! AIエンジニア インフラエンジニア
Slide 6
Slide 6 text
© ZOZO, Inc. 6 AIモデル使って、全身画像からトップスとボトムスを抽出したい いいね!使えそうなAIモデル調べてみる いいね!AI動かすためにGPUサーバー6万円/月かかる。いいね! ん....??
Slide 7
Slide 7 text
© ZOZO, Inc. 7 会話から得た 気づき と 課題 AIは 便利な反面 金かかる AIを動かすGPUサーバーを立てるためのコスト : 6万/月 by だーはま
Slide 8
Slide 8 text
© ZOZO, Inc. 8 課題の解決策 オンデバイス でAIを動かす
Slide 9
Slide 9 text
© ZOZO, Inc. 9 課題の解決策 オンデバイス でAIを動かす
Slide 10
Slide 10 text
© ZOZO, Inc. 10 iPhone オンデバイスなら 0円さ GPUサーバー6万/月 → オンデバイス0万/月 by だーはま 結果
Slide 11
Slide 11 text
© ZOZO, Inc. 11 Step1. HuggingFaceを使ったAIモデルの選定 ○ 世界中の研究者や企業がモデルを共有するWEBサービス ○ 数10万のモデル公開 ○ ダウンロード数, パラメータ数, 公開日 を参考に選定 https://huggingface.co/mattmdjaga/segformer_b2_clothes ダウンロード数 パラメータサイズ 公開日
Slide 12
Slide 12 text
© ZOZO, Inc. 12 Step2. Swiftで扱えるファイル形式(.mlpackage)へ変換 ○ pythonのモデル変換ライブラリ Exporters を使い1行で変換可能 ■ HugginFace Hub で公開されているモデル が対象 # 1. exports をインストール $ git clone https://github.com/huggingface/exporters $ cd exporters $ pip install -e . # 2. 変換:タスク=セマンティックセグメンテーション $ python -m exporters.coreml \ --model=mattmdjaga/segformer_b2_clothes \ --feature=semantic-segmentation \ exported/
Slide 13
Slide 13 text
© ZOZO, Inc. 13 Step3. モデルの呼び出し・実行 // モデルの設定 let config = MLModelConfiguration() config.computeUnits = .all // 実行するチップを指定 ○ .mlpackage をXcodeへドラッグ&ドロップ
Slide 14
Slide 14 text
© ZOZO, Inc. 14 Step3. モデルの呼び出し・実行 // モデルの設定 let config = MLModelConfiguration() config.computeUnits = .all // 実行するチップを指定 // AIモデルの呼び出し var model: SegformerB2Clothes? do { model = try SegformerB2Clothes(configuration: config) } catch { print("モデルのロードまたは設定に失敗しました: \(error)") } } ○ .mlpackage をXcodeへドラッグ&ドロップ
Slide 15
Slide 15 text
© ZOZO, Inc. 15 Step3. モデルの呼び出しおよび実行 ○ モデルに CVPixelBuffer (or MLMultiArray) を渡す ■ モデルの入力形式に依存している func segmentation() async { // 1. 入力 guard let pixelBuffer = coordinateImage.toCVPixelBuffer() else { return } let input = SegformerB2ClothesInput(image: pixelBuffer) guard let model else { return }
Slide 16
Slide 16 text
© ZOZO, Inc. 16 Step3. モデルの呼び出しおよび実行 ○ モデルに CVPixelBuffer (or MLMultiArray) を渡す ■ モデルの入力形式に依存している func segmentation() async { // 1. 入力 guard let pixelBuffer = coordinateImage.toCVPixelBuffer() else { return } let input = SegformerB2ClothesInput(image: pixelBuffer) guard let model else { return } do { // 2. 実行 let output = try await model.prediction(input: input) AI
Slide 17
Slide 17 text
© ZOZO, Inc. 17 Step3. モデルの呼び出しおよび実行 ○ モデルに CVPixelBuffer (or MLMultiArray) を渡す ■ モデルの入力形式に依存している func segmentation() async { // 1. 入力 guard let pixelBuffer = coordinateImage.toCVPixelBuffer() else { return } let input = SegformerB2ClothesInput(image: pixelBuffer) guard let model else { return } do { // 2. 実行 let output = try await model.prediction(input: input) // 3. 出力を整形 let fashionItemMap = output.classLabelsShapedArray.scalars .map { SegmentationConverter.fashionItems[Int($0)] } // 省略 AI
Slide 18
Slide 18 text
© ZOZO, Inc. 18 検証 解像度の低い全身画像(190×260) からのアイテム抽出に成功 ○ 処理時間は 0.9〜1.1s → 実用的
Slide 19
Slide 19 text
© ZOZO, Inc. 19 まとめ AIモデルをオンデバイスで動かし、コストを6万→0万へ削減
Slide 20
Slide 20 text
© ZOZO, Inc. 20 まとめ AIモデルをオンデバイスで動かし、コストを6万→0万へ削減 GPUサーバー使わなくても 3万円/月 飛んでます IRODORI って実は...
Slide 21
Slide 21 text
© ZOZO, Inc. 21 まとめ AIモデルをオンデバイスで動かし、コストを6万→0万へ削減 IRODORI と 新卒4人 はこれからどうなるのか to be continued ... IRODORI って実は... IRODORI って実は... GPUサーバー使わなくても 3万円/月 飛んでます
Slide 22
Slide 22 text
No content