(12/4)みなさんこんにちは。技術開発室の岡田です。re:invent2019に参加しています。昨日のキーノートでは怒涛の新サービス発表がありましたね。私の担当している機械学習関連では、SageMakerの新サービスが多く発表され、スーパーエキサイティングな1日になりました。興奮醒めやらぬ状況ではありますが、この発表をうけて新たに追加されたセッションも含め、本日までに参加できた機械学習関連のセッションについて、ご報告したいと思います。(ちょっと専門用語が多めになります。)ちなみに、今日も朝ごはんと昼ご飯は提供されました。😊キーノート振り返り昨日のキーノートでは、レイヤごとに次の新サービス・機能が発表されました。Lens:コールセンタ向けこれらに関連して追加されたセッションのうち、本日までに次のものに参加することができました。MLまた、関連して次のものもセッションに参加しました。Autopilotを用いて自動でチューニングして、よりよいモデルを作成するワークショップです。Autopilotはガウス過程回帰とベイズ最適化を用いてパラメータを探索します。ここでチューニングできるパラメータは一般的なハイパーパラメータに加え、機械学習アルゴリズム自体も自動で選択してくれます。Engineeringも実施してくれるようです(!?)。探索の結果いくつかの候補を出してくれるので、(一般的には)もっともよいメトリックのモデルを選択する、ということになります。会場ではパラメータチューニングに伴って発生する料金についての質問が出ていました。パラメータチューニングするためには何度もトレーニングを実施する必要があり、大量の計算リソースを必要としますので、当然の懸念だと思います。回答も至極当然の回答で、探索(トレーニング)にかかった時間だけそのインスタンスの料金を払うことになるよ、とのことでした。大きなモデルに使うと結構な料金がかかってしまうのではないかという不安はありますね。グリッドサーチよりも少ないイテレーションでより良いパラメータを見つけてくれる期待はあるので、グリッドサーチをやる前提であるのであれば、代わりにこちらを使った方が安上がりになる可能性もあります。機械学習に詳しくない人にとっては、ほぼ全自動でモデルの性能を向上させることができるという点は見逃せません。このため結構使われるのではないかと思います。期待のできる機能だと思いました。このワークショップで用いたノートブックは下記のgithub上にあります。実行する際には使用したリソースの料金が発生しますのでご留意ください。このノートブックのLab2を実行すると、Autopilotで作成したパラメータの候補の一覧を中間生成物のノートブックで見ることができます。Importanceなど使ってしっかりFEしてたような気がします。Monitorのセッションです。driftは、ざっくり説明すると、モデル作成中に想定した世界が時間の流れとともに変化し、モデルが現実世界に対応できなくなることです。一般的には、上記のAutopilotのようなことを行い、モデル作成の際に与えられたデータを用いて、そこで(汎化性能も含た)最高の性能を出せるようにチューニングします。時間とともに取得できるデータのばらつきが変わるため、徐々に性能が劣化していきます。温暖化の影響を受けて天候が変わるとか。最近の日本の気候もだいぶ変わったように思いますよね。このため、モデルは作成時点が最も精度が高く、徐々に劣化していくといわれたりします。Monitorはこの劣化度合いをモニタリングして、一定の条件に至るとアラートを上げる機能とのことです。Monitorがリコメンドしてくれるようですが、最終的には)モデル開発者が決める必要があるようです。constraintsのところですね。このため、ちょっと機械学習の知識がないと敷居が高いのではないかという印象でした。Autopilotで自動でモデルチューニングした後にこの条件を作成し、その良しあしを判断ができるのかが気になるところです。driftの話はFLECTが扱っている案件でも話題になりますので期待したい機能です。Debuggerのセッションです。大規模なモデルを作成した経験をお持ちの方であればお分かりになると思いますが、モデルのトレーニングにはかなりの時間がかかります。トレーニングを開始したら数日放置しておくということもあると思います。数日後にトレーニングが完了したモデルを確認すると期待したほどの精度向上がなく落ち込むと。このような悲劇を回避するためにTensorflowであれば、TensorBoardを用いたりCallbackをうまく使って通知を上げたりするのが一般的かと思います。これを行うためにはモデル開発のコードを修正する必要があり、かなり神経を使います。Debuggerはコード変更することなくトレーニング時の異常をリアルタイムに検知、報告してくれる機能とのことです。トレーニング中に作成されるデータ(おそらくチェックポイント)をS3に保管しし、逐一それを解析する処理を起動するという感じでしょうか。確かに、デバッグコードをモデル開発のコードに直接書くと見通しが悪くなったりしがちなので、そういう意味で地味にありがたい機能だと思います。Studioのセッションです。Studioは、今回発表のあった各種機能を取り込んだ機械学習モデルの統合開発環境となります。図のような繰り返し開発を行うときに活躍します。左の箱のBuildフェーズはNoteBooksを使ってAutopilotでチューニング、Debuggerでデバッグしながら中央の箱と行ったり来たりのイテレーションを行う。このイテレーションはExperimentsで管理され、最終的にはソリューションとして最適なモデルをデプロイできる。デプロイした後はMonitorでコンセプトドリフトを監視して問題があれば再度モデルを作り直す。いう流れになるかと思います。考えると、さすが機械学習の開発プロセスを熟知しているAWSの統合環境だなと思いました。Studioの発表で開発プロセスが一段レベルアップした感じです。MSといった他社の出方が気になります。learning本セッションはキーノートの直後に実施されたものです。Library(DJL)です。Java開発者にend-endの機械学習開発APIを提供するようです。Infraチームが数週間かけてリファクタリングして使っていたのだそうです。多くのエンタプライズサービスはJavaで書かれているのだから、このコストはいろんな開発現場で発生しているはず。そこでDJLを使って初めからJavaで作成しておくことで、このコストを削減するということのようだ。TeamはDJLを使うことで開発期間を30%削減できるようになったそうです。確かにPython,特にJupyterNotebookで作成するコードはそのまま使えないことは、私もよく経験することなので、なるほどなとは思いました。Comprehendと連携して、リアルタイムで推論結果を返します。いう流れになるだろうなという範疇ではあります。個人的にはSQLがあまり得意ではないので、DBという形すら取らずに、すべて自然言語でDBからAIからすべてのデータソースをクエリできるようにしてほしい。さいごに以上が私が参加した機械学習のセッションのご報告となります。FLECTは明日が最後の参加日となります。明日はキーノートがあります。何か大きな発表があったら、さすがに体力が持たないかも。どこかの会社様は数十人体制で来てるとのこと。今回のような大幅アップデートを4人で捌くのは正直きつい。来年は偉い人にお願いして増員してもらうかな。私は来年も来たいなー。頑張って楽しんできます!では、おやすみなさい。専門知識に合格しました新年明けまして、おめでとうございます。(12/3)みなさん初めまして、CI事業部のウエダです。(12/2)みなさんこんにちは。技術開発室の岡田です。v4の転移学習みなさんこんにちは。技術開発室の岡田です。専門知識に合格しました月別アーカイブはてなブログをはじめよう!flect_techさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。