先日、あるお客様と1時間のアーキテクチャレビューをビデオ会議で行う予定がありました。お客様が抱えていた課題は2つ。アラートの遅延と、クラウドストレージのコストです。お客様自身もユースケースも非常に興味深く、これまで目にしてきた中でも特にクールなAI活用事例の一つでした。

当初お声がけいただいたのは、お客様がGoogleのAnthosで課題の一つを解決できるのではと考えていたためで、私自身も最近この領域に深く関わっていました。Anthosは将来的に役立つ可能性はあるものの、今回の課題に対する最適解ではない、というのが私たちの結論でした。
このエピソードをお伝えしたいのは、これこそがDoiT Internationalを他のクラウドソリューションパートナーと一線を画す姿勢だと考えるからです。Cloud Management Platformとサービスをお客様に追加コストなしでご提供している点に加え、私たちはお客様の最善の利益にならないと判断したものは決してお勧めしません。そして各メンバーには、その判断を自ら下す自由があります。これこそが、お客様に支持されている理由でもあるのです。
お客様について
このお客様のSaaSソリューションは、世界中の工場で品質管理の自動化に使われています。私が素晴らしいと感じるのは、人をロボットに置き換えるのではなく、現場の作業員の能力を引き上げ、より良い仕事ができるよう支援する道を見出した点です。これこそAIが本来約束するものだと思います。
工場が組立ラインを監視するカメラ映像を接続すると、このお客様のソフトウェアが映像をリアルタイムで解析し、各工程が正しく実施されているかを確認します。工程の抜けを検知すると即座にアラートを発し、修正を促す仕組みです。

(実際の映像ではなく、サンプルとしての工場映像です)
少しオタク気質が出てしまいますが、お客様が画面を共有しライブ映像に接続して、自動車のラジエーター工場でタスクが次々とチェックされていく様子(ホイールを反時計回りに回転、このバルブを締める、加圧テストなど)を見たときは本当に夢中になりました。実際に動作する様子は格別でしたね!
アラート遅延の問題
課題の一つは、問題を検知してから作業員に通知が届くまでに4秒の遅延があることでした。お客様の顧客企業からは「遅延は2秒以内」が要求されていました。手遅れになる前にラインを止めて修正する時間を確保するためです。この問題を6か月以内に解決するというミッションを与えられていました。
お客様のエンジニアたちは、ハイブリッドマルチクラウドのアプリケーションモダナイゼーションを実現するプラットフォーム、GoogleのAnthosを耳にしていました。Anthosを使えば、主要な各クラウド、仮想化されたオンプレミス環境、さらには現在ではベアメタル(エッジ)に至るまで、ポリシー・セキュリティ・構成・コンテナ化アプリケーションの管理を一元化・標準化できます。エンジニアたちは、処理を顧客側のより近い場所にシフトすればこの遅延は解消できると確信しており、加えて「目新しい技術」という点にも惹かれていました。
クラウドストレージのコスト問題
世界中の工場のカメラから(時に何年分もの)映像を保存していけば、ストレージがどれほど膨れ上がるかは想像に難くありません。各映像はマルチプレクスと圧縮を行ってもなお、720p・H.264形式で1時間あたり約700MB。1工場あたり週130時間分を処理していました。
お客様は当時、標準ティアのクラウドストレージバケットを使用しており、コストは右肩上がりに増えていました。効率改善の方策についてもアドバイスを求めていました。
アーキテクチャのウォークスルー
お客様が画面とアーキテクチャ図を共有してくださり、私と、もう一人のクラウドアーキテクチャチームのメンバーで話を伺いました。
「ライブストリームが入ってきたらGoogle Cloud Storageのバケットに保存し、そこから処理します。1ストリームにつき1GPUを割り当てたカスタムのディープラーニングニューラルネットを構築していて、特定アクションの開始と終了を識別します。生成されたデータはGoogle Cloud Bigtableに格納し、ビジネスロジックがそれを解釈します」と説明が続きます。「遅延は4.5秒で、そのうち3秒以上がニューラルネット内で発生しています。入ってきた映像をフレームに分割してニューラルネットに入力し、その後映像を再エンコードしています」
ちょっと待ってください。「なぜ映像を再エンコードしているのか教えてください」
「あぁ、これは初期段階の判断ミスに起因するものです。映像を取り込む際にタイムスタンプを取り除いてしまうので、推論後にアノテーション付き映像を生成するために再エンコードが必要になるんです」
「再エンコードにはどれくらい時間がかかりますか?」と同僚が尋ねます。
「2秒少々です」との回答。
「では、ミスを検出するまでにはどれくらいかかりますか?」
「だいたい1〜1.5秒です」
ビンゴ!
この瞬間、Anthosでworkloadsをエッジに移しても問題は解決しないことが明らかになりました。これはネットワークではなく、アプリケーション側の問題だったのです。
遅延への解決策の提案
アーキテクチャを議論した結果、検討すべき選択肢は2つという結論に至りました。1つ目は、初期取り込み時にタイムスタンプを取り除いている理由をあらためて検証し、可能であればそれ自体をやめること。2つ目は、アラート処理を再エンコードから切り離し、エンコード完了を待たずに即座にアラートを送信することです。
お客様も同意し、エンジニアにこれらの方向性を検討させ、Anthosの導入は少なくとも当面は見送ることになりました。また、コンプライアンス上の理由から映像を工場外に出したくない顧客がいることも分かりました。Anthos On-Premには近い将来に活きる用途が依然としてありますが、今は目の前の課題を優先することにしました。
あわせて、1つのGPUで複数ストリームを処理することによるコスト削減の余地や、推論・アラートを再エンコードから分離することで、それほど高性能なマシンが不要になる可能性についても指摘しました。
ストレージの解決策の提案
最初のウォークスルーで、お客様は標準ティアのストレージを使っており、アクセス頻度の低いデータ向けの割引ティアをまだ活用できていないと説明されました。ここでの分かりやすい打ち手として、Google Cloud Storageのオブジェクトライフサイクル管理を使い、保存期間やアクセス頻度に応じてオブジェクトを自動的に低価格ティアへ移行する案を提案し、合意しました。
お客様はこの提案を歓迎し、すでに検討予定だったとのことでしたが、私はもう一歩踏み込み、追加の改善余地を探りたいと考えました。H.264形式の説明を聞きながら、Ian Longellow氏やAndrew Ng氏らAIのパイオニアたちが登壇した最近の講演を思い出したのです。そこでは「ディープフェイク」以外のGAN(敵対的生成ネットワーク)のユースケースが語られており、その一つが映像圧縮の改善でした。
そこで、これらの映像をアーカイブする際に保存しなければならないデータ量をさらに削減するため、GANの活用を検討してはどうかと提案しました。お客様もその可能性を認め、ご提案を大変喜んでくださいました。エンジニアの皆さんが具体的なアクションを手にされたところで、近いうちに進捗を伺うのが楽しみです。
またひとつ、アーキテクチャレビューの成功事例!

この事例は、DoiT Internationalのシニアクラウドアーキテクトに期待していただける働きを表しています。私たちはお客様のEngineersに対し、パーソナライズされた「Stack Overflow」のようなサポートレイヤーを提供し、多くのクラウドベンダーのサポート対応と比べて半分の時間で応答し、課題解決を支援します。クラウドトレーニングを通じてお客様従業員のオンボーディングもサポートしますし、本事例のようにコスト最適化やアーキテクチャレビュー(インフラ、データ、ML/AI、ソフトウェアアーキテクチャ)もお手伝いします。
もしご興味をお持ちでしたら、ぜひ採用ページをご覧いただくか、TwitterやLinkedInからメッセージでお声がけください。優秀な人材を求めているため選考はタフですが、いったん仲間に加われば、DoiT Internationalがユニークな存在(プロダクト企業とプロフェッショナルサービス企業の中間のような立ち位置)であることをすぐに実感していただけるはずです。お客様として、あるいは同僚として、近いうちにご一緒できる日を楽しみにしています。