非エンジニアでも作れる! ドコモのAIエージェント基盤「セバスチャン」勉強会でエキスパートエージェントを作ってきた

渋谷のドコモR&Dサテライトスペースにて「ドコモのAIエージェント基盤セバスチャン勉強会」が5月22日、開催された。

応募者多数のため規模を拡大して50名で開催された人気の勉強会。本記事で内容の一部をレポートしていく。



話題の「セバスチャン」とは?


ドコモの「AIエージェント基盤」がプロジェクトとして始まったのは2016年6月のこと。スマートスピーカーのヒットも影響し、これからいよいよ音声会話を使ったデバイスが注目されていくという中で、ドコモが舵を切った。スマートスピーカーの中の”音声アシスタント”を汎用的に提供する事を目指す、ドコモの内部プロジェクト「project:SEBASTIEN」(セバスチャン)によって作成されたAIエージェント基盤である。AIエージェント基盤の特徴や強みについては、この記事に詳しく掲載されている

AIエージェント基盤には、普遍的な会話を司る「メインエージェント」と、専門的な会話やサービス提供を司る「エキスパートエージェント」で構成されている。後者の「エキスパートエージェント」とは、スマートフォンで言えば「アプリ」、一般的なスマートスピーカーでは「スキル」や「アクション」と呼ばれるものだ。乗り換え案内サービスと連携して、路線情報を教えてくれたり、レシピサイトと連携して料理のレシピを教えてくれたりする。今回の勉強会はそんな「エキスパートエージェント」の作り方を学ぶものだ。ワークショップ形式で行われ、触れるのが初めてである参加者もみな、仕組みを理解しながら学習を行った。エキスパートエージェントは、登録から公開まで全て無料で利用できるのも嬉しい。



自然対話技術をあらゆるプロダクトに

株式会社NTTドコモ イノベーション統括部 クラウドソリューション担当 担当課長 秋永和計氏

勉強会の冒頭、「AIエージェント基盤」の事業責任者を務める秋永和計(よしかず)氏より、セバスチャンの概要が説明された。

秋永氏は、NTTドコモで長期間に渡りR&Dを担当してきた。過去にはビッグデータ、パブリッククラウドなどを担当し、その後シリコンバレーに3年間勤務したのち、現在は「project:SEBASTIEN」を牽引する立場にある。自身は分散処理、機械学習、統計、自然言語処理、データベースなど多岐にわたる技術を有するエンジニアでもある。

「AIエージェント基盤」はあらゆるものに対話型AIを提供したいというコンセプトの元で開発が進められており、実際にその技術の中核となる自然対話技術は、様々なプロダクトに導入されてきている。講談社が販売しているパートワーク冊子「週刊鉄腕アトムを作ろう」や「ここくま」「オハナス」などが代表例である。



声は51種類から選択可能

AIエージェント基盤は、開発者がウェイクワードを自由に設定することができるだけでなく、その声色を変えることができるというのも嬉しい。

メインエージェントにおいても、エキスパートエージェントにおいても、51種類の中から声を選択することができる。例えば、20代の明るい女性の声、40代の落ち着きある男性の声などだ。低めの男性の声を使用すれば信頼感を持たせることができるだろうし、若い女性の声を使用すれば楽しそうな雰囲気を醸し出すことができるだろう。ゲームを作るにはこの声、ニュースにはこの声、ビジネス用途にはこの声など、適した声色があるはずだ。

また、アニメに登場するような既存のキャラクターに関するプロダクトを作りたい場合、担当の声優が4時間収録をすることで独自の音声合成を作ることができる。別途料金はかかるが、特にメインエージェントの声を変えたいという場合には、利用価値が大きそうだ。



エキスパートエージェントを作ってみる


秋永氏の概要説明に続いて、ロボットスタートでエバンジェリストを務める西田寛輔が講師となり、エキスパートエージェントの開発手法を学ぶワークショップが開催された。本ワークショップで使用したスライドは、Slideshareにて公開されているため、ぜひこちらを参考に作成してみて欲しい。エンジニアでなくても、簡単にエキスパートエージェントを作ることができる。

SebastienのWEBシミュレーター

なお開発用にWEBシミュレーターが用意されており、ここで会話内容を確認しながら勉強会は進められた。



勉強会では、「吉田さん」という名前のエキスパートエージェントをサンプルプログラムとして作成した。当日は「バージョン1.1」から「バージョン3.1」まで計3つの吉田さんを作成したが、本記事では「吉田さん バージョン1.1」の作り方までご紹介していく。ぜひこの記事を読みながら、サンプルプログラムを作ってみてもらいたい。



サンプルプログラムを作成してみる


まずはじめに、Developers Dashboardへアカウント登録を行う。dアカウントだけでなく、Googleアカウントでも登録ができる。登録が完了すると管理画面に入ることができ、ここからエキスパートエージェント(Bot)の新規作成を行うことができる。


エキスパートエージェントの新規作成


「Expert Agents」のメニューをクリックし、「Expert Agentを追加」ボタンを押すと新規作成が開始される。ここでエキスパートエージェントのプロフィールを入力していく。今回はサンプルプログラムのため情報は与えられているが、シナリオを作成する前に口癖や性格を決めておくと、開発もしやすくなる。


エキスパートエージェントの概要を入力していく

まず「Name」は、後々どんな内容だったかをわかりやすくするため、「伝説のエキスパート吉田さん」などわかりやすい名前にしておこう。続いて「Invocation name(呼び出すキーワード)」に「吉田さん」と入力する。このInvocation nameに入れた単語プラス、「お願い」「呼んで」「につないで」などでエキスパートエージェントを呼び出すことができる。今回は「吉田さんお願い」などでエキスパートエージェントを呼び出すことができる。

「Welcome message」には、吉田さんを呼び出した時のメッセージを入力しよう。今回は「よくぞ呼んでくれました。吉田に、なんでも聞いてよ。」とした。

またここで「voice」を選択すると51種類の声から、声色を選択することができる。今回のサンプルプログラムでは「sadao(男性:ガテン系)」とした。


「Intent」の作成

続いて「Intent」を作成していく。まずは、デフォルトの値を設定する。これは、ユーザーに言われた言葉が聞き取れなかった場合や、想定外のワードを言われた際に返す言葉だ。吉田さんでは、「よくわからないから、別の言い方で吉田に聞いてよ。」と返すことにした。


Intentの作成

今回は「天気予報を教えてくれる機能」を追加するため、Intentを「Weather」としておき、話す内容を決める。「Utterances」には、聞き取るワードを決めておく。天気という単語に反応させたいため、「〇〇の天気を教えて」、「天気教えて」、「天気」などに対応できるように、ワイルドカード「*」を使って、「*天気」「天気*」「*天気*」「天気」といった具合に指定していった(「*天気」を入力してからEnterキーを押すと指定することができる)。


「Slot」の作成

続いて、Slotを定義していく。これは変数のようなもので、ここでは天気予報における「場所」を変数としていく。「Name」には「location」と入れて、Required(必須)にチェックを入れて必須とし、Reflective Sentence(聞き返し)にSlotが発話されなかった場合に聞き返す文章を入れる。ここでは「どの場所の天気を知りたいのか言ってよ」としておく。「Entity」という項目には「@sebastien.location」を選択しておく。これにより、従来のプログラム言語にありがちな「未入力か判定して聞き返し処理を行う」というロジックを、コードを書かずに実現することが出来る。もしも、会話の中で地域を意味する言葉をユーザーが発話していなければ、自動的に聞き返してくれるのだ。


Slotを定義していく

「Entity」とは関連する単語をまとめたもの。指定することで、Slotの型を決めることができる。定義済みのEntityを使用する他、自分でも作ることができる。

「location」のSlot作成が終わったら、Slotをもう一つ追加する。今度はいつの天気を知りたいかを指定するため、「Name」に「date」と入れて、Requiredにチェックを入れた上で、Entityに「@sebastien.datetime」を選択する。


完成、試してみよう

最後にEndpointを指定する。これは会話を処理するためのサーバーURLを指定するものだ。今回はお天気機能だけなので、テスト用のエンドポイントを「@sebastien.weatherBot」と指定する。

「次へ」ボタンを押せばエキスパートエージェントが完成する。



SebastienのWEBシミュレーターにアクセスし、Developers Dashboardと同じアカウントでログインすると、吉田さんを実際に試すことができる。


参加者が途中で離脱しないように、わからないことがあればすぐにサポートスタッフを呼び、皆がまずエキスパートエージェントを完成できるように進められた

勉強会ではこの先の「吉田さんバージョン2.1」、「バージョン3.1」の作成も進められた。これらの作り方は、上述のSlideshareに掲載されている。気になる方はぜひ試してみて欲しい。



勉強会に参加してみて

筆者は編集部の人間として勉強会に参加してきた。エンジニアではないし、開発経験もない。そんな中でも数十分の勉強会参加で、基礎的なものではあるが、エキスパートエージェントを作ることができた。エンジニアであれば、これを学ぶだけで応用して色々なエキスパートエージェントを作ってみたくなるのではないだろうか。

現在のところエキスパートエージェントを作成し、申請した場合にも、販売されているプロダクトで使うことはできない。しかし、今後Amazon Echoのような、セバスチャンのメインエージェントを活用したプロダクトが増えていったとき、多くの人に使ってもらえるエージェントになるだろう。



先日、セバスチャンハッカソンも開催され、そこではこれらの前提知識のもと様々なアイデアが発表された。音声UIという新しい領域だからこそ、試行錯誤をしながら皆走り始めている。セバスチャンはその中でも開発者にとってとっつきやすいサービスだと言えるだろう。

あらゆるモノに 対話型AIサービスを提供することを目指して展開を進めるNTTドコモのセバスチャン。ロボスタでも引き続き最新情報を発信していく予定だ。

ABOUT THE AUTHOR / 

ロボスタ編集部

ロボスタ編集部では、ロボット業界の最新ニュースや最新レポートなどをお届けします。是非ご注目ください。

PR

連載・コラム