*本記事は旧TechblogからCOLORSに統合した記事です。
はじめに
こんにちは。株式会社エイアイ・フィールドのS.Mです。2020年4月に中途入社し、現在はR&D部署にて自社サービスの開発などに従事しています。
みなさんはAmazonの開発したAIアシスタント、Alexaを使ったことはあるでしょうか。
私はありませんでした。日本国内ではスマートスピーカーの利用が活発ではありません。
SiriやGoogleアシスタントのようにスマホ内蔵の音声アシスタントならまだしも、
Alexaをふんだんに活用している人はまだまだ少ないと思われます。
一方、アメリカではスマートスピーカーの普及はめざましく、Alexaはその中でもトップシェアを持つそうです。それを受けてか、2015年の一般発売(日本は2017年)以来、すでに第4世代まで進んでおり、
・Echo Dot
・Echo Show
・Echo Flex
・Echo Studio
etc…
と、様々なラインナップを繰り出しながら、さらなる拡大へと力を入れているのが伺えます。
そんなAlexaですが、単なるユーザーとしてだけではなく、
スキルと呼ばれる音声UIアプリを誰でも作成することができます。
このAlexaスキル開発についての認定資格が、AWSによって実施されているのはご存じでしょうか。
お客様からAlexaスキル開発についてご相談があったことをきっかけとして、この資格取得を目指すことになりました。入社以来触れる機会が多くなったAWS、ソリューションアーキテクトアソシエイトの受験をちょうど検討している頃合いでしたので、「同じAWS資格、いっそこの機会に両方取りにいってしまえ!」という勢いで、久しぶりに複数科目(?)の受験勉強がスタートしました。
日本語版は昨年8月に始まったばかりのAlexaスキルビルダー資格、今後受ける人の参考になればと思い、本稿ではスキルビルダーを中心に、取得までの過程を合格記というかたちで振りかえろうと思います。
資格について
AWS認定試験は2020年10月現在、全12種の資格があります。
クラウドプラクテショナー(CLF)や先述のソリューションアーキテクト(SAA)はご存じの方も多いと思います。
それら比較的広範な知識や経験を求められるコースと独立して、
セキュリティやデータベース、機械学習といった分野ごと、
「専門知識/スペシャリティ」というくくりの特化型の資格が6つあります。
Alexaスキルビルダー(AXS)もそうしたスペシャリティ資格の1つです。
試験の内容については公式のガイダンスを見ていただくのが一番と思いますが、
・ユーザーエクスペリエンスの設計
・開発、テスト、検証、およびトラブルシューティング
・スキル公開プロセス
・Alexa デベロッパーコンソールを使用する能力
など、Alexaスキルに関わる一連の流れすべてと考えて差し支えないと思います。
開始前
勉強開始時点で私のクラウド経験として、3ヶ月程度のAWS利用経験がありました。
lambda、S3、DynamoDBといったサービスを用いて、サーバーレスアプリの開発をしています。Pythonのプログラミングや、JSONの取り回しなどの基礎的な知識はある状態でした。
その他、AWS知識については、並行しているソリューションアーキテクト(アソシエイト)をベースに学習しながらのと取り組みとなります。
この時点でAlexaは使ったことがなく、取得を目指すと同時にechoを購入しました。
対策
試験までは大きく3つのステップで取り組みました。
1. 動画「Alexa道場」シリーズ
2. サンプル問題、whizlabを使った問題演習
3. 2で弱かった部分を中心に技術ドキュメントの確認
1はYouTube上で公開されているセルフラーニング用のビデオ教材です。
全6シーズンで、カスタムスキルの開発やテストの流れをさらうことができます。
1シーズンあたり1~2時間程度の内容にまとまっているので、
自分の環境で手を動かしながら視聴しても、1週間あれば全体像をつかむことができると思います。
注意点としては、教材中で使用されるSDKはNode.jsのものです。
私の場合PythonのSDKに読み替えながらだったので、そこに多少の時間がかかりました。
また、シリーズ化されているもの以外に、アカウントリンクやスキル内課金など単発の動画もあります。これらも、後述の問題演習から必要に応じて視聴していました。
サンプル問題を見て、ある程度理解が進んだ感触があったので問題演習に移りました。
ただ、公式の模試は使っていません。理由としては、
・自分で控えておかないと後から問題を確認できない、
・間違えた問題がどれかは開示されない
ということで、最後の力試し以外で使うのにはあまり向いていないと感じたためです。
代わりにwhizlabsという外部サービスの問題集を使いました。
有料かつ英語ですが、公式模試も費用はかかりますし、
Chrome機能などで機械的に翻訳にかけても、大方は題意や選択肢が読みとれます。
正答の根拠となるドキュメントへのリンクもあるので復習がしやすかったです。
実際の試験も少し怪しい日本語が混じって英語原文を見たりもするので、
ある意味でそこも実践に近いかもしれません。
問題演習後は、間違えた問題に関する公式ドキュメントを確認しました。
Alexa道場はカスタムスキルをはじめて作るのに必要な要素がわかりやすくまとめられているのですが、あくまで入門教材と思われ、補わなければいけない知識も当然あります。
例えば、スマートホームスキルなどの別のスキルモデルに関する話はほとんど登場しません。そうした不足部分が問題演習で浮き彫りになるので、ドキュメントで補っていきました。
以上の対策を2回分の問題集で実施したあたりで受験しています。
結果
ソリューションアーキテクトアソシエイト:
787/1000点 (合格ライン 720点)
Alexaスキルビルダー:
931/1000 点 (合格ライン 750点)
以上の結果となり、両資格とも無事合格することができました。
学習計画上、試験の直前はAlexaスキルビルダーの対策が中心になったことが少し響いているように思います。
ソリューションアーキテクトは余裕の合格とはいきませんでした。ただ、頻出するVPCの構成やサービスの特徴を中心に抑えていけば、合格は可能なことがわかりました。
一方で、スキルビルダーは結果的に点数にかなり余裕をもって合格できました。
当日の手ごたえでは、2~3割程度は自信のない解答がありましたので、回答が選択方式なのが味方したところも多分にあると思いますが、得点に結びつけられたのは対策の甲斐がありました。
身についたスキル
というわけで試験に無事合格し、知識面ではある程度の水準を習得することができました。加えて、今回の試験勉強や合格後に自分の手で実装してみたものを整理してみると、
以下のようなことを実現できるようになりました。
・一時/永続セッションを利用した会話の保持
「”カフェオレ”を”ホット”で”2杯”」というようないくつかの要素があり、必ずしも1度のやり取りで完結しないような注文フローを、音声UIでデザインすることができます。
・音声マニュアル(DBを介したAlexaの応答)
AlexaのリクエストはLambdaで処理することが一般的です。Alexaへのレスポンス時間制限など制約ももちろんありますが、DB接続などの処理は通常のAPIを作るような場合とほぼ同じ様に実装することができます。例えば、技術用語をAlexaに問いかけると専用マニュアルから解説を返すような、音声マニュアルを作成できます。
・LWAを用いた認証
アカウントリンクと呼ばれる仕組みを利用すると既存の認証とAlexaを連携させることができます。今回はAmazonの認証:Login With Amazonと連携して、Amazonアカウントの情報を連携を試しました。先述の注文フローやDB利用、まだ試せていないところですがAmazon Payあたりと組み合わせると、Alexa上での会員制ショップのようなことも実現できそうです。
振り返り
初めて触れたときから限られた期間で受験することになり心配していましたが、
試験ガイドに沿った要素をある程度抑えていけば、
開発や運用に熟練した経験がなくても資格取得は十分狙えることがわかりました。
とはいえ、ほぼドキュメントだけで学習していた部分、特に音楽再生スキルや、
画面付きデバイス向けのスキル開発については、思った以上に出題の比重が大きく、
受験当日は安心できなかったです。
時間が取れるならば、やはり実際に自分で各種スキルを作成する時間を確保して挑む方が望ましいと感じました。
AWSの中でもAlexaで利用する部分にかなり絞って出題されるので、
例えばLambdaやDynamoDBといった関連サービスも細かいところは訊かれず、
Alexaスキルの実装も各プログラミング言語の知識が必要になる部分については触れられませんでした。
その点は同時並行のソリューションアーキテクトと比べるとかなり対策がしやすかったです。
一方で、Alexaコンソールの使い方や公開の要件といった、他の知識の応用は効かないような部分も結構突っ込まれます。
この辺は、さすがスペシャリティ資格といったところでしょうか。
いわゆる参考書などがほとんどなく、どう対策したものかと思っていましたが、
その点はドキュメント以外に公式の教材があるのがかなり参考になりました。
試験勉強を通してAlexaで実現できることを知って、面白い使い方を考える。
そんな風に挑戦してもいい資格かもしれません。