【まとめ】AWSでエッジコンピューティングができる環境を作ってみた
AWSでエッジコンピューティング環境を作る 最終回です!(時間が空いてしまいました。)
試行錯誤しながらラズパイとAWSを用いて
エッジコンピューティングを実現してきました。最後に、まとめと今後の展望を載せておこうと思います。
システム鳥瞰図
Part1からPart9まで、もう一度図でまとめておきます。なるべく流れに沿って書いているつもりですが、ところどころバラけたりしているので、自分がどこのパートを見たいかの参考にしてください。
レシピ
Part 1. きっかけとやりたいこと
Part 2. Greengrass環境構築編
Part 3. Greengrass/Lambda設定編
Part 4. ラズパイデプロイ編
Part 5. S3に画像を送る 1. パイプライン設計
Part 6. S3に画像を送る 2. 画像のエンコーディング
Part 7. モデル軽量化手法 Distillerとは
Part 8. SageMakerNeoでハードウェア最適化
Part 9. DLR(Deeplearning Runtime)とエッジ推論
作ろうと思った目的
今回これを作ろうと思ったのは、
・ディプラーニングとクラウドの知識が一緒に学べる
・ソリューションとして使える武器を増やしたい
と思ったからです。前者はやってみて実際に勉強になったので、是非皆さんにもやってもらいたいです。大事なのは読むだけじゃなく、実際に自分なりに構築してみることです。AIchi勉強会のときも思いましたが「とりあえず作ってみる」ができる人は、強いです。理解度と定着が数倍変わります。(そしてわかりにくかったら加筆修正しようと思っているので、連絡くれると嬉しいです)
後者は、汎用的な武器を増やしたいなと思ったのです。AIブームの時代において、本丸のデータを調理する人はたくさんいても、その周辺技術に長けた人はまだそこまで多くないのでは?と感じているところです。そして、それらの技術は今後結構大事になってくるんじゃないのかなー、と予想しています。その一つはデータを作り出せる人。そして今回のターゲットである安定した分析基盤を作れる人。これらを目標にいろいろ勉強中です。
そして、エッジコンピューティングをするときには、現場環境に応じた柔軟なインフラ設計が大事だと思ったので、その入門として、遠隔デプロイの仕組みを作ってみたというわけです。
感想と今後やりたいこと
今回はAIchi勉強会駆動開発だったのですが、やはり人前でしゃべるというのと、締切がきっちり決められているというのは良いですね。メンタル的にはなかなかクるものもありますが、それなりにきちんと調べてアウトプットを出そうと頑張ります。どんなレベルであれ、形にしようとすることは大事ですよね。今回はサービス間のつなぎのエンジニアリングと、バグへの対処法について知見がかなり溜まりました。今後にも活かせそうです。
とはいえ、限られた時間だった(というか手をつけ始めるのがあまりに遅すぎた)全然技術的には未熟な部分が多いというのも事実です。
・機械学習はローカルでしているじゃないか。サーバーでしないの?
・アノテーションはどこでやるの?
・工場に実際投入して、Raspiで性能が足るのか?
・そもそもAWSじゃなくても、Github Actionとかあるやん。
などなど...叩けばいくらでもホコリが出てきます。これは締め切り駆動開発の一番のデメリットかもしれませんが。「締め切り過ぎたらとたんにやらなくなってしまう」ことが多すぎるというところです。これに対する最も有効な手段は「新しい締切を作る」ということだと思っているので、またどこかで実戦投入の場/再発表の場を作ろうと思っております。必ず...多分...いつかどこかで...!
エッジコンピューティングに興味がある方はちらっと読んでみて、楽しそうだと思った方は是非一緒に勉強しましょう!ではではっ!
サポートいただけると励みになります! よろしくおねがいします!!