見出し画像

未来のソフトウエアを作る開発チームの紹介 〜PKSHA Chatbot 篇〜

PKSHAグループでは、社会課題の解決のため、自然言語処理、音声認識技術等のAIを用いて、多くのユーザーが利用可能な PKSHA AI SaaS というプロダクト群を提供しています。PKSHA が Research や AI ソリューション事業により長年培ってきた技術、蓄積した業界ノウハウを活用したソフトウェアを、SaaS として手軽に導入することができます。この記事では、PKSHA AI SaaSプロダクトの1つである、PKSHA Chatbot の運用開発チームについてご紹介します。

中川 岳 | 株式会社PKSHA Communication エンジニアリングマネージャー
コンピュータエンジニアリングの領域で博士号を取得後、富士通研究所にてミドルウェアの研究に従事。最前線で研究課題を探すために、SaaSスタートアップに転職しエンジニアに転向。開発支援系のSaaSプロダクトの運用開発、開発マネジメント、製品デザインなど幅広く経験。AIを用いたWebサービスのシステム形態に興味があり、PKSHAに参画。


PKSHA Chatbotの概要

PKSHA Chatbot は AI を搭載したチャットボットサービスです。PKSHA 独自の自然言語処理技術と機械学習技術により、ユーザが入力した自然文から意図をくみ取り、最適な回答を返すことができます。

表現のブレを吸収しつつ、最適な回答をしている例

また、対話の中でユーザーから情報を集めたり、外部システムと連携して対話内容を動的に生成する機能も持っています。これにより、単純な質問→回答だけでなく、問い合わせ内容の自動受付、各種申し込み処理などを実装することができます。

問い合わせの自動受付の例
外部APIによる情報取得の例

現在、PKSHA Chatbot は主に顧客コミュニケーションと社内コミュニケーションの二つの領域で利用されています。

顧客コミュニケーション領域では、主に企業の Web ページで利用されるチャットボットとして、利用企業に代わってエンドカスタマーとのコミュニケーションを担当しています。これにより、エンドユーザーは、24 時間いつでも問い合わせをすることができますし、利用企業にとっても、顧客からの有人窓口(電話/メール/来店)への問い合わせ対応コストが削減できるメリットがあります。オプション機能として有人チャット機能もあり、自動応答で解決できない場合でも、解決まで顧客コミュニケーションを完結させることができます。また、他社様のチャットボット製品のバックエンドサービスとしての利用実績もあります。

社内コミュニケーション領域においては、企業内での問い合わせ対応コスト削減の観点で導入が進んでいます。一般的に企業内では定型の問い合わせが多く飛びかっており、その対応に多くの労力が割かれています。それを PKSHA Chatbot による自動回答で置き換えることで、業務効率化を図ることができます。自動回答で解決できなかった場合は、社内担当者にエスカレーションされ、後日回答することもできます。特に、総務、経理、労務、社内情報システムといった領域では大きな効果を発揮しており、Chatbot の導入により社内の問い合わせ電話窓口を廃止した事例もあります。対話のインタフェースとして、Microsoft Teams も利用可能であり、企業の日常業務の中での問い合わせが容易になっています(Teams と連携したサービス提供については、別の記事で発信予定です)

システム構成

PKSHA Chatbot のシステムは主にクライアント、対話サーバー、管理サーバーの 3 つの要素から成り立っています。

クライアントは、ユーザーと PKSHA Chatbot の対話システムとのインターフェースとして機能します。主に Web ページに埋め込まれたクライアントソフトウェアとして利用されていますが、後述する対話 API を用いれば、任意の実装形態でサービスを利用可能です。

対話サーバーは、REST API を介してユーザーの発話に対する回答を生成します。この対話サーバーは、ユーザーとシステム間の対話の核となる部分です。対話サーバーでの処理は、対話の流れを制御する対話コアロジックと機械学習モジュールに分離されており、機械学習モジュールには PKSHA の持つ独自の自然言語処理技術と機械学習技術が組み込まれています。

管理サーバーは、PKSHA Chatbot の設定、改善、および問い合わせ傾向の分析など、チャットボットの管理のための Web UI を提供します。PKSHA Chatbot の契約者(利用企業)は、簡便な UI によって独自のチャットボットを構築し、対話結果に基づきチャットボットの改善を行うことができます。また、対話数、対話でのユーザの満足度などの指標を分析する機能も搭載しており、客観的な指標に基づいてチャットボット利用の効果測定を行うことができます。

技術スタックに関しては、対話サーバーや管理サーバーの API エンドポイントは Ruby on Rails で実装されています。対話サーバーの処理のうち、対話生成を行うコアロジックと機械学習モジュールは Python で実装されています。管理サーバーの Web インターフェースは Vue3 を用いたシングルページアプリケーションとして構築されており、レスポンシビリティが高い UI を提供しています。

開発チームの構成・開発スタイル

現在、7 名のソフトウェアエンジニアと、QA チーム、SRE、PdM で開発を行っています(業務委託メンバー含む)。この他に、カスタマーサポート、セールスなどのプロダクトを支えるチームがあり、ソフトウェアエンジニアは開発運用に集中できる環境になっています。
PKSHA Chatbot の AI 推論機能は、PKSHA グループに所属するアルゴリズムエンジニアと協働して開発と改善を行っています。(アルゴリズムエンジニアとの協力体制については後述します)
開発スタイルとしては、2 週間のスプリント開発を行っています。1 週間での開発について、翌週に QA チームによる新機能テスト及びリグレッションテストを行います。テストは QA チームが行うため、開発サイクルは毎週スタートし、テストと開発が並行します。

リリースサイクル

これはリリースサイクルを図示したものです。スプリントを色別に表現してあります。説明のために Week 1, 2 では前週、前々週から続く動きを省略しているので、実際には Week 3, 4 の動きを毎週繰り返すことになります。

リリースを機能完成時に都度行わず、2 週間の固定周期としているのには、2 つの理由があります。1 つは、リリース内容の事前告知を行っているため、もう 1 つは、手厚いテストを行うためです。やや複雑なフローではありますが、エンタープライズ SaaS に求められるリリース管理、品質管理の厳密さと、開発スピードを両立することができています。

技術的なおもしろさ・やりがい

PKSHA Chatbot の開発チームで働くたのしみはいろいろありますが、ここでは代表的なものをいくつか取り上げてご紹介します。

アルゴリズムの専門家との協働

PKSHA グループには問題の解決手法を考え、そのコアとなるアルゴリズム開発を専門とするアルゴリズムエンジニア(AE)が多数在籍しています。世界的な機械学習コンペティションのプラットフォーム「Kaggle」における、最高ランクのタイトルである Competion Grandmaster を保持している日本国内の参加者は 62 名なのですが、このうち 3 名が PKSHA グループに所属しています。(2023 年 12 月 30 日時点、出典:Kaggle Grandmaster 分析レポート 2024 年 -update版-

AE は主にアルゴリズムを開発するのが仕事ですが、アルゴリズムだけではサービスは存在し得ず、それをサービスとして仕立て、安定して稼働させることが必要です。こちらはソフトウェアエンジニア(SWE)が担当しています。この 2 職種が互いの専門性を持ち寄ることで、最先端の AI 技術を取り入れたサービスを提供しています。PKSHA Chatbot の開発チームには SWE が所属しており、機械学習に関する開発は AE と連携して進めています。

PKSHA Chatbot における協働例として、対話アルゴリズムの改善を紹介します。ある利用企業では、PKSHA Chatbot に数千の対話パターンを登録し、大規模にご利用いただいています。しかしながら、PKSHA Chatbot が利用している対話アルゴリズムでは、対話パターン数が膨大になると精度が低下する性質を持っており、この抑止が課題になっていました。そこで AE とプロジェクトチームを立ち上げ、最適なアルゴリズムの選定・チューニングをリアルデータを用いて実施し、見事に対話精度を 10 %以上向上させました。

AI サービスを安定的に提供する技術を追求できる

機械学習を用いた Web サービスでは、一般的な Web アプリにはない問題が多くあります。例えば、機械学習処理に伴うレイテンシの大きさ、インフラコストの問題、不適切な学習を繰り返した機械学習モデルの劣化などが挙げられ、安定したサービスを提供するためには、これらの問題と上手く付き合っていくことが必要です。このような AI 時代特有の問題に取り組めるのも、楽しみの 1 つです。また、PKSHA Chatbot では多数のエンタープライズ顧客を持つことから、日々大量のリクエストを安定して処理することも行います。このように AI を「提供する」リアルな経験は、これからのエンジニアのキャリアにとっても重要になってくると考えられます。

チャットボットでは、ユーザの発言にスムーズに応答するリアルタイム処理が求められます。PKSHA Chatbot では、対話リクエストの処理時間を平均して 1 秒以内に抑えることを目標としています。PKSHA Chatbot は、複数のチャットボットを 1 つのシステムでホスティングしているため、この時間制約をクリアすべく、独自技術を開発しています。

以下は、ある工夫を適用する前後の対話リクエストの処理時間の p99 値をプロットしたものです。赤の破線が適用タイミング示しています。適用前後で処理時間のばらつき、幅がしっかり抑制されていることが確認できます。

おわりに

PKSHA Chatbot をはじめ、PKSHA AI SaaS の各プロダクトでは、共に製品を成長させ、社会の問題を解いていく仲間を募集中です。なお、募集要件に機械学習の実装技術、経験は含まれていません。「機械学習を用いた Web サービスで社会課題を解いてみたいけど、機械学習の経験がない…」と尻込みせず、興味のある方はぜひ一度お話しましょう!

▼ ソフトウェアエンジニア:26卒インターン、25卒本選考はこちら

▼ ソフトウェアエンジニア【AI SaaS】
PKSHA AI SaaS のサービス開発に興味がある中途の方はこちらを選択ください。

▼ 募集職種の一覧/応募フォームはこちら

▼ カジュアル面談のお申し込みはこちら


この記事が参加している募集