本記事では、デモ開発に用いられたマルチモーダルAIの技術や、技術の実装の舞台裏、そして、これらの技術の今後の発展可能性について、開発に関わった技術者達から解説いたします。
成澤 直輝(なりさわ なおき) | 長南 翔(ちょうなん しょう) | 菊池 雄太郎(きくち ゆうたろう) |
2022年新卒入社 機械学習エンジニア |
2015新卒入社 プロダクトエンジニア |
2019年新卒入社 機械学習エンジニア |
ブレインパッド広報の長谷川です。
今回の記事は、2023年11月に開催された「Google Cloud Next Tokyo '23」において、Google Cloud のデモブースに展示されたデモの開発に携わった技術者へのインタビュー記事です。
該当のデモ「集英社『ONE PIECE』で体験するマルチモーダル AI」は、以下の動画にて紹介されておりますので、ぜひ動画をご覧になった後に、この記事を読み進めていただけますと幸いです。
www.youtube.com
Google Cloud Japan 公式 YouTube「集英社「ONE PIECE」で体験するマルチモーダル AI」(2023/12/11 公開)
※このたび株式会社ブレインパッドが開発に携わったのは、動画の前半(3分12秒頃まで)に収録されているマルチモーダル AIデモの部分のみとなります。
- 多種多様なデータに触れてきたブレインパッドならではの技術力と創意工夫が生んだ開発スピード
- プロダクト開発エンジニアと機械学習エンジニアによるコラボ成功の秘訣は、お互いの技術領域へ染み出し合うこと
- マルチモーダルAIにより、非構造化データの活用の可能性が広がっていく未来に期待
公開直後のマルチモーダルAI技術を、約1週間で実装
長谷川
開発したデモの概要と当社の関わりを教えていただけますでしょうか。
長南
今回のデモは、「マルチモーダルエンベディング(Multimodal Embeddings )」という技術が体験できるデモです。同技術は、画像とテキストといった複数種類のデータを数字のリスト(ベクトル)に変換する技術です。
今回開発したデモは、テキストにマッチする画像(今回のデモでは「漫画のコマ」)を瞬時に検索したり、自由に撮影した画像から類似する画像を検索することができるものです。
本ブログに使用する画像は、一部モザイク処理を施しております。
菊池
今回のデモ開発において、ブレインパッドは、アプリケーション開発だけでなく、エンベディングや検索精度の向上、処理速度を早めるためのプロセス設計を行いました。
成澤
デモの完成度を上げるために、どのようにデータを扱えば検索の質が高まるのか、処理速度が早くなるのかについて、何度も仮説検証を繰り返しました。
長谷川
どれほどの期間で、開発されたんですか?
長南
開発協力の依頼があってから、約1週間で完成までこぎつけました。
長谷川
すごいスピード感ですね!
成澤
そうですね。今回、プロダクト開発エンジニアであり、本プロジェクトのリーダーである長南さんが、最初の1日~2日くらいで、最低限動くアプリケーションを作ってくださいました。
なので、私たち機械学習エンジニア(以下、MLE)は、このデモの完成度を上げるための工夫に集中することができました。
菊池
社内での検証後にお客様に見せて、お客様から検索精度や動作に対するフィードバックをもらい、また社内で検証する、を繰り返しました。早い段階から実際に動くシステムをお客様に見ていただくことができたので、短期間でお客様がやりたいことに近づけられたと思います。
成澤
今回使用したAPIは、リリースされてから間もない状況だったので、とにかく使ってみながらその特徴を理解していくのが大変でした。
長南
おそらく、Google Cloud の開発者以外で最も早くこのAPIに触れたのが私たちかもしれません。世の中には、いわゆる「使ってみた」的なブログ等も出ていなかったので、公式ドキュメントを頼りにしながら、とにかく自分達で使い方をマスターしていきました。
菊池
とても画期的な技術なので、使いながらわくわくする一方で、デモへの実装に向けてはさまざまな課題に直面し、試行錯誤を重ねながら開発を進めました。
精度と速度を高める技術的な工夫
長谷川
実装における課題とは、どのようなものだったのですか?
長南
今回利用した「Vertex AI」には、画像から画像を検索するという基本機能が備わっています。当初、その機能をそのまま利用してみたのですが、意図した漫画のコマがうまく検索できないという課題が見つかりました。理由は、撮影した人物の背景に天井や壁の線など写っていると、それらの要素まで捉えてしまい、線が入った漫画のコマを探してきてしまうといったことが起きたのです。
菊池
今回のデモでは、写真を撮る際の撮影場所や背景などに制約を設けないので、この課題は絶対になんとかしなければなりません。そこで私たちは、検索精度を高めるために、あえて、どんな写真なのかをテキストに変換して、そのテキストから漫画のコマを検索する方式に変更しました。
長南
写真に写っているメインの要素(人物など)や、その特徴をテキスト化することで、人物の背景などのメインではない要素に引っ張られずに、何を主題とする写真なのかを正しく認識することができるようになりました。
長谷川
なるほど。APIそのものは画期的な技術ではありますが、それに頼りきらずに、今回のテーマに合うような改善方法を探したのですね。
菊池
そうです。また、精度を落とさないことに加え、検索・出力の処理速度を高める工夫も並行して実施しました。
長南
元々「Vertex AI」には目をみはる速さが備わっています。その速さをデモ上でも活かすには、使用するPythonなどのライブラリも速度が出るものを選定するようにしました。
菊池
限られた開発期間の中でも、「Vertex AI」とライブラリの組み合わせを多数試し、より速い組み合わせが見つかるまで試行錯誤しました。
長南
遅い要素が一つ入るだけで、デモ全体のスピードが失われてしまう。常に全体のプロセスを見ながら各要素を選定していきました。
成澤
検索対象となる画像データ(漫画のコマ)自体の品質の調査と、それらのデータの整備にも力を入れました。検証を進める中で、提供されたデータの中には、検索時のノイズになるようなデータも含まれていることがわかりました。例えば、漫画のキャラクターが描かれていない風景・景色だけのコマなどです。
菊池
ここでも「Vertex AI」を活用し、ノイズになりうる画像データの選別作業を自動化しました。漫画の巻数でいうと10巻分の大量の画像データを扱っていたので、できるだけ効率的にデータをクレンジングする必要があったのです。
長南
こういった工夫の積み重ねで、今回の処理速度と検索精度を実現できたのだと思います。
技術と経験。そして、データに向き合う姿勢
長谷川
なぜこのようなスピーディーな開発ができたのでしょうか?
長南
まずは、こういった新技術を扱う際の経験値がものを言ったと思います。今回扱ったマルチモーダルAIは初めて扱う技術ではありましたが、私たちは過去のプロジェクトにおいて、何度も初めての技術にチャレンジしてきています。ですので、今回のデモ開発においても、目的に即した技術をスピーディーかつ、当たりよく選ぶことができたと思います。
成澤
MLEの視点で言えば、今までさまざまな業種や業態における多様なデータ群と向き合ってきた経験が役に立ちました。今回のデータは、漫画のコマというこれまで取り扱ったことのないデータでしたが、過去の経験から、データの特徴やノイズの排除方法などをある程度予測できていたので、スムーズな検証と開発ができたと思います。
菊池
今回、長南さんが「プロダクト開発エンジニア」、私と成澤さんが「機械学習エンジニア」と、専門領域が異なるメンバーが集まってチームを組成したことも、デモ開発がうまくいった理由だと思います。
長南
私がスピーディーにアプリケーションを開発し、そこにMLEの2人が検証・開発したモデルを実装していったのですが、この専門領域が異なるメンバーが集まったからこそ、仮説検証を繰り返せたのだと思います。
プロダクト開発エンジニアと機械学習エンジニア。それぞれの得意分野と共通言語が最大限に発揮されたコラボレーション
長谷川
なぜ専門領域の異なる皆さんがうまくコラボレーションできたのでしょうか?
菊池
お互いの持っている技術力や知識に、お互いが助けられたというのはもちろんあると思います。それに加えて、長南さんはプロダクト開発エンジニアなのにも関わらず、機械学習の知識も豊富で、「Vertex AI」の機能理解や実装する際のヒントをくれたりもしました。
長南
確かに3人とも、相手の専門領域についての基礎的な知識を持ち合わせていますし、何より相手の専門領域に対する興味も強いので、お互いの領域が少しずつ重なり合うような感じで進めることができました。
MLEのお2人とも、コードが書けるし読める。エンジニア力が高いんです。なので、事前情報や前提条件をいちいち説明しなくても、私が書いたコードを渡すだけで何がどうなっているのかを理解してもらえました。
菊池
MLEは、アプリケーションやシステムに機械学習をどのように組み込むと適切に動作するのか、UIの使い勝手は良いか、全体として費用をどれだけ適正化できるか、といったところも求められますので、普段のプロジェクトにおいても、相手の専門領域に対する知識や理解力が求められるんです。
長南
ブレインパッドのエンジニアには、多角的な視点を持っていて、技術のバランスのとれた方が多いですよね。皆それぞれに自分が好きな技術、こだわりの技術を持っていたりもしますが、それ以上に、プロジェクトの目的やお客様を最優先に考えるという点も共通しています。
成澤
今回のデモ開発でもざっくりとした役割分担はありましたが、プロダクト開発エンジニアだからアプリケーションを作るだけ、MLEだからモデルを扱うだけといった分け方にはなっていませんでした。開発期間が限られていたというのもありますが、できる人がその時に必要なタスクを自発的に処理していました。このように役割分担や専門を決めすぎずに、協力しながら進める方法は、とても楽しかったです。
菊池
確かに、「●●さんのパートが仕上がらないと困るよ」のような誰かの責任を追及するようなコミュニケーションはなかったです。誰かが困っていたら「それってもしかしたらこうなんじゃないですか?」と役割に関係なく意見を出し合って進めていましたね。
長南
「実験的なプロジェクトなんだから、うまくいかないこともたくさんあるよね」という共通認識のもとで進められたのも大きいでしょうね。
成澤
私は年次としては一番下になりますが、思ったことはどんどん意見できました。皆さんが、年次や経験の壁を感じさせないようなチーム環境を作ってくださっていたのだと思います。
マルチモーダルAIのデモ開発を経て感じた、未来への可能性
長谷川
まさに、ブレインパッドらしいプロジェクトだったと感じました。今回のデモ開発をふまえて、今後の展望を教えていただけますか?
成澤
今回使った「Vertex AI」は、人間の表情や、眼鏡をかけているとか、何を持ってるかといったことまで高い精度で認識します。直近リリースされた新バージョンでは、動画や音声を認識できていて、人間の認知にさらに近づいてきたなと感じています。
長南
これまで、多額の費用をかけてディープラーニングを行い、このレベルに近い精度を実現した例はありました。しかし、今回のようにある程度誰にでも使える技術が出てきたのには驚きました。
菊池
APIとして誰でも使えて、値段も現実的になってきたので、これからはどんどん社会実装事例が増えていきそうですよね。
長南
社会実装が進むもう一つの要因として、マルチモーダルエンベディングによって、構造化データ(データストレージに配置される前に事前定義され、ある定められた構造となるように整形されたデータ)だけではなく、非構造化データ(ネイティブな形式のまま保存され、使用時まで処理されないデータ)が比較的楽に扱えるようになることは、とても大きな深化だと思います。
これまでだと、例えば、非構造化データの代表例である画像や自由記述のテキストデータを使おうとすると、人間が予めタグなどの識別のための情報を付与する作業が必要となり、データの準備に多大な時間と工数がかかっていました。
しかし、今回のように画像の内容をテキスト化することは、非構造化データを瞬時に構造化データに転換しやすくなるとも言えるのです。そうすることで、コールセンター業務で生まれた音声データにタグ付けをしたり、求人応募の自己アピール文から条件に合致する人材を分類したりすることができそうです。
長谷川
とてもワクワクしますね。とはいえ、実際の道のりには、今回のデモ開発のように課題もありそうですね。
菊池
はい。新技術を手軽に試せるようになったのは大きな進歩ですが、だからこそ、どうやって実際のシーンに合わせて実装するかが重要になってきます。今回のデモ開発でもあったように、技術は、その技術を利用する環境や活用目的によって成果に差が出ます。そのため、いくら手軽に試せるようになったとしても、使いものになるまでの試行錯誤はつきものだと思います。
長南
技術はどんどん進化していくので、この技術さえ使えば大丈夫、とはいきません。使う側が貪欲にさまざまな技術を試し、活用の工夫をし続けることが何より重要な時代になってきたと言えます。
成澤
道具として簡単に使えるようになってきた分、現実の課題に当てはめて、何を選んで、何を捨てるのか、といった判断力が求められるのだと思います。この判断力は、たくさんのユースケースや、たくさんのデータ、技術に触れていないと身につかないように思います。そういう意味で、ブレインパッドで得られる多様な機会と経験はありがたいです。
長南
多様な仲間もどんどん増えてほしいですよね。今回のプロジェクトも、お互いの強みや特徴を活かしたからこその成功でした。今後はビジネス職の中から、機械学習やエンジニアリングをかじった人が増えてくると、僕としてはさらにわくわくできると思います。
菊池
多様な仲間との新しいチャレンジは、本当に楽しいですよ。どんな難しいことでも解決できるのではないかと思えます。
長南
今後もこういったコラボレーションを楽しんでいきたいですね!
長谷川
そうですね。今日は、たくさんのお話をありがとうございました!
三人
ありがとうございました!
*Google Cloud および Vertex AI は Google LLC の商標です。
■ブレインパッドでは新卒採用・中途採用共にまだまだ仲間を募集しています。
ご興味のある方は、是非採用サイトをご覧ください!
www.brainpad.co.jp
www.brainpad.co.jp