Gradioを使った機械学習モデルのデモンストレーションをAWS App Runnerでサービスする TL;DR Gradioを利用すると機械学習モデルをデモンストレーションするためのWebアプリを簡単に作成することが可能です。Gradioを利用したWebアプリを他の人に使ってもらう方法として、クラウド上にデプロイすることが考えられますが、比較的安価かつ簡単にデプロイする環境としてAWS App Runnerを使ってみました。
GitHub Actions + Hugo + AWS S3 + CloudFrontでホームページをリニューアルしました TL;DR www.inoue-kobo.comは静的サイトジェネレータにより生成しています。今まではMkDocsで運用していたのですが、Hugoに乗り換えてみました。ついでにCI/CDパイプラインをAWS CodeBuildからGitHub Actionsに変更しています。
SageMaker Canvasを使ってみた TL;DR AWS re:Invent 2021でSageMakerの新機能であるSageMaker Canvasが発表されました。GUIで操作を完結できるテーブルデータに対するAutoMLサービスです。
SageMakerで利用できるDeepChemのためDockerfile TL;DR SageMakerでトレーニングのために使用できるDeepChem用のDockerfileです。 バージョン依存にするため、取り急ぎ以下のバージョン専用です。
deepchem-2.3.0 python-3.6 tensorflow-1.14.0 Dockerfileにより独自コンテナでSageMaker上でトレーニングする方法はSageMakerで独自コンテナでトレーニングする方法を参照してください。
SageMakerで独自コンテナでトレーニングする方法 TL;DR AWS SageMakerで独自コンテナでトレーニングする方法です。 メトリクスの設定などを含めて必要最小限の設定でトレーニングするためのサンプルとなります。 ローカルモードとSageMaker上のトレーニングジョブとしての実行もフラグの切替で可能となっています。
AWS DeepLens Tips TL;DR AWS DeepLensがやっと届いたので動かしてました。 挙動を掴むまで結構ハマったので、注意点とか確認方法などのTipsを纏めてみました。
SageMakerでKerasの独自モデルをトレーニングしてデプロイするまで(Python3対応) TL;DR AWS SageMakerにおいて、Kerasによる独自モデルをトレーニングし、SageMakerのエンドポイントとしてデプロイします。 また、形態素解析やベクトル化のような前処理を、個別にDockerコンテナを作成することなしにエンドポイント内で行うようにします。このために、SageMaker TensorFlow Serving Containerを利用します。
SageMakerでTensorFlow+Kerasによる独自モデルをトレーニングする方法 TL;DR AWS SageMakerにおいて、TensorFlow+Kerasで作成した独自モデルをScript Modeのトレーニングジョブとして実行します。 トレーニングジョブ用のDockerイメージについてはSageMakerが提供するイメージをそのまま利用します。このため、独自のイメージをビルドする必要はありません。
AWS re:Invent 2018 新機能・新サービス纏め ML 新サービス AWS RoboMaker ロボットを制御するためのアプリケーション開発をサポートするプラットフォームです。シミュレータによりロボットの動作を確認した上で、実機にデプロイすることが可能です。 AWS DeepRacer SageMakerやRoboMakerで作成した自動運転用のモデルで制御されるラジコンカーです。 Amazon Personalize AutoMLとして学習させるリコメンデーションエンジンです。独自のモデルを簡単に作成することができます。 Amazon Forecast 簡単に時系列予測用のモデルが作成出来るサービスです。 Amazon Textract OCR+物体検出で構造化されたデータとして読み込む事ができるスマートOCRです。現在英語版のみです。 新機能 SageMaker Neo SageMakerはAWSのML用プラットフォームサービスです。SageMaker Neoとして、SageMakerの外部で作ったモデルを最適化できる機能が追加されました。最適化されたモデルの実行が早くなります。 Amazon Comprehend Medical 症例報告のようなナラティブから医薬品や有害事象、患者の年齢などのエンティティ抽出を行うことができるAPIです。MedNLP(医療言語処理)と呼ばれる分野のサービスです。現在は英語のみです。 Amazon Translateで独自の用語の指定が可能に 翻訳用APIです。独自の用語(対訳)が指定できるようになりました。Google Translationには無い機能(ただし、GCP AutoMLでは可能)なのでかなり便利になると思います。 Amazon Elastic Inference 推論専用チップであるAWS InferentiaをEC2インスタンスにアタッチできます。 SageMaker Ground Truth ラベルデータ作成用のプラットフォームです。画像分類、物体検出(BoundingBox/Semantic Segmentation)、テキスト分類用のラベルデータ作成を行う事ができます。ラベルデータ作成の外注も可能です。 AWS SageMaker Ground Truthでテキストのラベリングを試してみる Marketplace for machine learning Marketplaceで学習済みモデルを購入・販売することができます。 Amazon SageMaker RL SageMakerに対して強化学習をサポートするための機能を追加したものです。シミュレータなどが付属します。 その他 AWS Inferentia AWSが独自に開発した推論専用チップです。 Network 新サービス AWS Ground Station 衛星通信のための地上の基地局をクラウドとして利用できるサービスです。災害などで地上のネットワークが停止しても(地上局まで通信できれば)通信が可能です。 新機能 AWS Global Accelerator ロードバランサーです。Globalの名前の通りRegion別にエンドポイントを設定することができます。なお、固定IPを割り振ることができます。 AWS Transit Gateway 今までVPCはPeerでしか接続ができませんでしたが、Transit Gatewayでスター型のトポロジーが可能になります。複数のVPC管理している人にとっては待望の機能です。 Control 新サービス AWS Resource Access Manager 複数のAWSアカウントでAWSリソースを共有するためのサービスです。AWSのベストプラクティスとして組織や開発・本番などの用途別にAWSアカウントを分ける事が推奨されていますが、一部のAWSリソースを共有したいこともあり(今までも可能でしたが設定が面倒でした)、相当便利になると思います。 AWS Control Tower (Preview) 複数のAWSアカウントにおいて、セキュリティ設定の統制を行うためのサービスです。 AWS Security Hub Security関連のAWSサービスが提供することを纏めて確認するためのサービスです。 AWS App Mesh マイクロサービス用監視サービスです。 Storage 新サービス AWS DataSync オンプレのストレージからS3/EFSにファイルを転送するためのサービスです。 Amazon FSx for Windows File Server EFSのWindowsサーバ版です。SMB/CIFSでアクセスが可能です。 Amazon FSx for Lustre 分散ファイルシステムを採用したファイルサーバです。機械学習などの用途で使用される想定です。 新機能 AWS Transfer for SFTP S3に対してSFTP/SCPによるファイル転送が可能になります。マネージドですがヘッドサーバが作成されるようですので、追加のコストがかかります。 EFS Infrequent Access Storage Class EFSはフルマネージドなファイルサーバです。Infrequent Access Storage Classが追加になったことにより、使用頻度の低いファイルを格納するストレージのコストを抑えることが可能になりました。ライフサイクルポリシーもサポートされるので、自動的なコスト最適化が可能になります。 S3 Intelligent-Tiering S3には用途に応じた複数のストレージクラスがあり、それぞれでコストが異なります。Intelligent-Tieringを使用すると、アクセス頻度に応じて自動的に最適なストレージクラスに変更してくれるようになります。ライフサイクルポリシーのようなルールベースでは無く、機械学習による推論により最適化が行われます。 Amazon S3 Object Lock S3上のオブジェクトをロックし、変更や削除ができないようにする機能です。バージョニングは有効なので、個人的にはそこもロックできるようになって欲しいです。今後に期待。 AWS SnowballEdge Amazon S3 Batch Operations(Preview) S3上のオブジェクトに対して一括処理が可能になります。今までも可能でしたが、オブジェクトのリストを取得して処理するという普通のプログラミングの流れでした。このため、大量のオブジェクトを処理するために色々な考慮が必要でしたが、バッチ処理機能を利用することで、処理の実行についてはAWSがジョブ管理してくれるようになります。 Glacier Deep Archive Glacierは低頻度アクセスファイル格納用の低コストストレージです。法令対応などで長期保存が必要なファイルの保存に適しています。Glacier Deep Archiveではさらに安くなっています。 Development 新サービス AWS Amplify Console AmplifyはAWSが進めているWebアプリケーション開発用のフレームワークです。今回追加されたAWS Amplify Consoleでは、Webアプリケーションのビルド~デプロイまでのCI/CD環境に加え、公開用のS3の用意やドメインのセットアップなどのリリースのために必要な設定を一括で行う事ができます。 SPAのように静的コンテンツで構成されたWebアプリケーションであれば、インフラを一切考慮することなくリリースが完了します。 新機能 AWS CodeDeploy/AWS CodePipelineでAWS Fargate/Amazon ECSのCI/CDをサポート CodeDeployは開発パイプラインを実現するためのサービスです。FargateやECSを開発パイプラインにのせてCI/CDすることが可能になります。 AWS Lambda Layer AWS Lambdaを共通コンポーネントとして階層化するための機能です。Lambdaをライブラリのように扱う事ができます。 [検証]LambdaのLayer機能を早速試してみた AWS Lambda Runtime API AWS Lambdaで様々なプログラミング言語を使用することができるようになりました。 AWS Toolkits for PyCharm, IntelliJ (Preview), and Visual Studio Code (Preview) SAM(Serverless Application Model)について、PyCharm, IntelliJ, Visual Studio Code用のプラグインが追加されました。 Compute, Database, Messaging, Analytics, and Machine Learning Integration for AWS Step Functions StepFunctionsはサーバレスのWorkflowを実装するためのサービスです。今回、以下のAWSリソースをStepFunctionsから直接操作できるようになりました。 DynamoDB AWS Batch Amazon ECS Amazon SNS Amazon SQS AWS Glue Amazon SageMaker AWS Cloud Map サービスディスカバリサービスです。 Operations 新機能 Amazon CloudWatch Logs Insightsでログの分析が可能に CloudWatch Logsでログは集中管理するのが定番ですが、あまり分析的な機能はなかったのでElasticsearchなどを併用するのが定石でした。これでログ分析についてはElasticsearch使わなくてもよくなるかも? Database 新サービス AWS Lake Formation データレイクを簡単にセットアップするためのサービスです。 Amazon Timestream サーバーレスな時系列データベースです。 Amazon Quantum Ledger Database フルマネージドな台帳データベースです。完全追記型のデータベースになります。 新機能 DynamoDBのトランザクションサポート DynamoDBはサーバレスのスキーマレスデータベースサービスです。トランザクションが追加されたことにより、RDB感覚での処理に近づきました。結構衝撃の機能追加です。 Amazon DynamoDB on Demand 面倒だったキャパシティプランニングが自動になりました。こっちも衝撃の機能追加です。 Preview of Amazon Aurora PostgreSQL Serverless Aurora Serverlessはデータベースインスタンスを常時起動することなく、リクエストに応じて自動的に起動・処理・停止する仕組みです。MySQL版はリリース済みでしたが、新しくPostgreSQL版も利用できるようになりました。 Data Analysis 新機能 Amazon QuickSightのダッシュボードを独自のアプリケーションに埋め込み可能に QuickSightはBIのためのサービスです。ダッシュボードを独自に組み込めると、グラフやチャートを表示するアプリで個別に開発が不要になって便利です。 Amazon QuickSight announces ML Insights(Preview) まぁ、このあたりは定番ですね。 Package Business 新機能 Private Marketplace Marketplaceは仮想マシンのイメージ(AMI)を販売・購入するためのサービスです。AMIを社内にだけ公開とかそういうことができるようになりました。 AWS Marketplace for Containers これは以外と便利です。AMIを直接コンテナとしてデプロイできます。 Instance 新機能 Elastic Fabric Adapter 高速なネットワークインターフェイスです。GPUクラスタなどでの利用を想定していると思われます。 A1 AWSが独自に設計したCPUを使うインスタンスです。費用対効果に優れます。 C5n 高いネットワーク帯域幅を備えたC系インスタンスです。HPC用です。 P3dn 高いネットワーク帯域幅を備えたP系インスタンスです。基本的に機械学習用です。 Amazon Lightsail Now Provides an Upgrade Path to EC2 Amazon Lightsailは簡単にVPSとしてサーバを起動出来るサービスです。Lightsailで作成したインスタンスを、簡単にEC2に移行できるようになりました。試験的にLightsailで作り、EC2で本番運用することが可能です。 Hibernate Your EC2 Instances EC2インスタンスをハイバネーションで停止出来ます。ハイバネーションなので停止から復帰指示にプロセスが生きた状態で再開できます。ElasticCacheとかでも実装されないかなぁ。 IoT 新サービス AWS IoT SiteWise AWS IoT Device Tester AWS IoT Events Training 新機能 AWS Certified Machine Learning AWSの機械学習エンジニア用トレーニングコンテンツです。現在は英語のみです。 Other 新サービス AWS Managed Blockchain ブロックチェーンサービスです。ブロックチェーンに必要なインフラをマネージドな環境で利用することができます。 Amazon Outposts オンプレでAWSの機能一式を運用することが可能です。 OSS Dynamic training DeepLearningにおいて学習用インスタンスを動的に増減させるためのミドルウェアです。EC2インスタンスなどで利用します。 Firecracker FargateやLambdaを実現しているコンテナ管理の仕組みです。Dockerみたいなもんです。 Media AWS Elemental MediaConnect 参考文献 【速報】AWS re:Invent 2018 Keynote 1日目で発表された新サービスまとめ AWS re:Invent 製品発表
mkdocs-macrosを利用してサムネイル表示する TL;DR MkDocsのプラグインであるmkdocs-macrosを利用してサムネイル表示します。 以下の様なサムネイルを自動的に表示できるようにします。
mkdocs-macrosとは MkDocsでMarkdownドキュメントをHTMLに変換する際に一部をPythonで変換するためのプラグインです。 mkdocs-macrosを利用すると、以下のような記述ができます。