IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ サービスナウ, インコーポレーテッドの特許一覧

<>
  • 特開-テキスト入力からの自動フロー実装 図1
  • 特開-テキスト入力からの自動フロー実装 図2
  • 特開-テキスト入力からの自動フロー実装 図3
  • 特開-テキスト入力からの自動フロー実装 図4
  • 特開-テキスト入力からの自動フロー実装 図5A
  • 特開-テキスト入力からの自動フロー実装 図5B
  • 特開-テキスト入力からの自動フロー実装 図5C
  • 特開-テキスト入力からの自動フロー実装 図6
  • 特開-テキスト入力からの自動フロー実装 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023172931
(43)【公開日】2023-12-06
(54)【発明の名称】テキスト入力からの自動フロー実装
(51)【国際特許分類】
   G06F 8/30 20180101AFI20231129BHJP
   G06N 20/00 20190101ALI20231129BHJP
【FI】
G06F8/30
G06N20/00
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023083598
(22)【出願日】2023-05-22
(31)【優先権主張番号】17/752,564
(32)【優先日】2022-05-24
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】515156946
【氏名又は名称】サービスナウ, インコーポレーテッド
【氏名又は名称原語表記】ServiceNow,Inc.
【住所又は居所原語表記】2225 Lawson Lane, Santa Clara, California 95054,U.S.A.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】アミーネ・エル・ハッタミ
(72)【発明者】
【氏名】クリストファー・ジョセフ・パル
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC32
5B376BC46
5B376FA19
(57)【要約】      (修正有)
【課題】テキスト入力からの自動フロー実装において、グラフィカルユーザインターフェースの利用が困難であるシナリオにおいて効率的なコンピュータワークフロー生成を可能にする方法、システム及びプログラムを提供する。
【解決手段】方法は、所望のワークフローの少なくとも一部のユーザ提供テキスト記述を受信し、所望のワークフローに関連付けられているコンテキスト情報を決定し、テキスト記述およびコンテキスト情報に少なくとも部分的に基づいた機械学習入力を、所望のワークフローに対する実装予測を決定するために機械学習モデルへ提供し、1または複数のプロセッサを用いて、所望のワークフローの少なくとも一部のコンピュータ化ワークフロー実装として実装予測を自動的に実施する。
【選択図】図1
【特許請求の範囲】
【請求項1】
方法であって、
所望のワークフローの少なくとも一部のユーザ提供テキスト記述を受信し、
前記所望のワークフローに関連付けられているコンテキスト情報を決定し、
前記所望のワークフローに対する実装予測を決定するために、前記テキスト記述および前記コンテキスト情報に少なくとも部分的に基づいた機械学習入力を機械学習モデルへ提供し、
1または複数のプロセッサを用いて、前記所望のワークフローの少なくとも一部のコンピュータ化ワークフロー実装として前記実装予測を自動的に実施すること、
を備える、方法。
【請求項2】
請求項1に記載の方法であって、前記ユーザ提供テキスト記述は、自然言語入力を含む、方法。
【請求項3】
請求項1に記載の方法であって、前記所望のワークフローは、コンピュータ上で実行するよう構成されており、トリガ条件と、前記トリガ条件が生じたとの判定に応じて実行するよう構成されている1または複数のアクションステップと、を備える、方法。
【請求項4】
請求項1に記載の方法であって、前記コンテキスト情報は、前記所望のワークフロー内の既存ステップに関連付けられている処理データを含む、方法。
【請求項5】
請求項1に記載の方法であって、前記コンテキスト情報は、前記機械学習モデルの調整パラメータに関連付けられている処理データを含む、方法。
【請求項6】
請求項1に記載の方法であって、前記コンテキスト情報を決定することは、拡張マークアップ言語(XML)またはJavaScriptオブジェクトノーテーション(JSON)フォーマットのデータをテキストフォーマットへ変換することを含む、方法。
【請求項7】
請求項1に記載の方法であって、前記コンテキスト情報を決定することは、テンソルデータオブジェクトリストからテンソルデータオブジェクトを選択することを含み、前記テンソルデータオブジェクトリストの各テンソルデータオブジェクトは、前記機械学習モデルのための異なる埋め込み重みに関連付けられている、方法。
【請求項8】
請求項1に記載の方法であって、前記機械学習モデルは、テキストツーテキスト・事前トレーニング済み言語モデルである、方法。
【請求項9】
請求項8に記載の方法であって、前記テキストツーテキスト・事前トレーニング済み言語モデルは、エンコーダ・デコーダアーキテクチャを備える、方法。
【請求項10】
請求項1に記載の方法であって、前記機械学習モデルは、大規模な言語データセットについて事前トレーニングされ、次いで、テキストツーワークフロー・予測タスクに向けて微調整されている、方法。
【請求項11】
請求項1に記載の方法であって、前記機械学習モデルは、合成的に生成されたトレーニングデータに少なくとも部分的に基づいてトレーニングされている、方法。
【請求項12】
請求項11に記載の方法であって、前記合成的に生成されたトレーニングデータは、非合成的に生成されたワークフロー記述の複数のバリエーションを含む、方法。
【請求項13】
請求項1に記載の方法であって、前記1または複数のプロセッサを用いて、前記コンピュータ化ワークフロー実装として前記実装予測を自動的に実施することは、前記実装予測をテキストフォーマットから1または複数のアプリケーションプログラミングインターフェースメッセージに変換することを含む、方法。
【請求項14】
請求項13に記載の方法であって、さらに、前記コンピュータ化ワークフロー実装を生成するよう構成されているアプリケーションに対して前記1または複数のアプリケーションプログラミングインターフェースメッセージを送信することを備える、方法。
【請求項15】
請求項1に記載の方法であって、前記コンピュータ化ワークフロー実装は、前記所望のワークフローの一部である、方法。
【請求項16】
請求項1に記載の方法であって、さらに、前記コンピュータ化ワークフロー実装を含む前記所望のワークフローをグラフィカルユーザインターフェースに表示することを備える、方法。
【請求項17】
請求項16に記載の方法であって、さらに、前記グラフィカルユーザインターフェースを介して、前記所望のワークフローにステップを追加するためのユーザ要求を受信することを備える、方法。
【請求項18】
請求項1に記載の方法であって、前記ユーザ提供テキスト記述は、情報技術案件に関連付けられている、方法。
【請求項19】
システムであって、
1または複数のプロセッサであって、
所望のワークフローの少なくとも一部のユーザ提供テキスト記述を受信し、
前記所望のワークフローに関連付けられているコンテキスト情報を決定し、
前記所望のワークフローに対する実装予測を決定するために、前記テキスト記述および前記コンテキスト情報に少なくとも部分的に基づいた機械学習入力を機械学習モデルへ提供し、
前記所望のワークフローの少なくとも一部のコンピュータ化ワークフロー実装として前記実装予測を自動的に実施するよう構成されている、1または複数のプロセッサと、
前記1または複数のプロセッサの少なくとも1つに接続され、前記1または複数のプロセッサの少なくとも1つに命令を提供するよう構成されているメモリと、
を備える、システム。
【請求項20】
コンピュータプログラム製品であって、持続性のコンピュータ読み取り可能な媒体内に具現化され、
所望のワークフローの少なくとも一部のユーザ提供テキスト記述を受信するためのコンピュータ命令と、
前記所望のワークフローに関連付けられているコンテキスト情報を決定するためのコンピュータ命令と、
前記所望のワークフローに対する実装予測を決定するために、前記テキスト記述および前記コンテキスト情報に少なくとも部分的に基づいた機械学習入力を機械学習モデルへ提供するためのコンピュータ命令と、
1または複数のプロセッサを用いて、前記所望のワークフローの少なくとも一部のコンピュータ化ワークフロー実装として前記実装予測を自動的に実施するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータ命令のマシン支援型開発は、開発者が、コンピュータ言語についてのかなりの知識を必要とせずにコンピュータアクションの実行可能なシーケンスを生成することを可能にする。コンピュータ命令は、自動プロセス、コンピュータプログラム、または、どのように動作するのかをコンピュータに伝える命令群の形態でありうる。コンピュータ命令を開発するために、例えば、開発者は、開発ツールのグラフィカルユーザインターフェースとやり取りできる。しかしながら、時に、開発者は、開発ツールの利用法を学ぶ困難に見舞われうる。開発者は、開発ツール内の多くのオプションに圧倒されることがあり、ベストプラクティスを利用しない場合がある。したがって、この点で開発者を支援する技術が求められている。
【図面の簡単な説明】
【0002】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【0003】
図1】テキスト入力に基づいてコンピュータ化フローを自動的に実装するためのシステムの一実施形態を示すブロック図。
【0004】
図2】コンピュータ化フローの一例を示す図。
【0005】
図3】ベストプラクティスを促進する自動的に実装されたコンピュータ化フローの一例を示す図。
【0006】
図4】トレーニングデータを合成的に生成するためのシステムの一実施形態を示すブロック図。
【0007】
図5A】テキスト入力に基づいてコンピュータ化フローを自動的に実装することに関連付けられているユーザインターフェース例を示す図。
図5B】テキスト入力に基づいてコンピュータ化フローを自動的に実装することに関連付けられているユーザインターフェース例を示す図。
図5C】テキスト入力に基づいてコンピュータ化フローを自動的に実装することに関連付けられているユーザインターフェース例を示す図。
【0008】
図6】テキスト入力に基づいてコンピュータ化フローを自動的に実装するための処理の一実施形態を示すフローチャート。
【0009】
図7】プログラムされたコンピュータシステムを示す機能図。
【発明を実施するための形態】
【0010】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書で用いられているように、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するよう構成されている1または複数のデバイス、回路、および/または、処理コアを指す。
【0011】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0012】
テキスト入力からの自動フロー実装が開示されている。所望のワークフローの少なくとも一部のユーザ提供テキスト記述が受信される。所望のワークフローに関連付けられているコンテキスト情報が決定される。テキスト記述およびコンテキスト情報に少なくとも部分的に基づいた機械学習入力が、所望のワークフローに対する実装予測を決定するために機械学習モデルへ提供される。1または複数のプロセッサが、所望のワークフローの少なくとも一部のコンピュータ化ワークフロー実装として実装予測を自動的に実施するために用いられる。
【0013】
多くのローコード環境は、グラフィカルユーザインターフェースに依存しており、それは、ワークフローに関連付けられている実行可能コードを隠す。本明細書で用いられているように、ワークフローは、「コンピュータ化ワークフロー」、「コンピュータ化フロー」、「自動フロー」、「アクションフロー」、「フロー」、などとも呼ばれることがあり、アクションのシーケンスで構成された(例えば、プログラムされたコンピュータシステムによって実行される)自動プロセスのことである。アクションのシーケンスは、ステップのシーケンス、アクションステップのシーケンス、などとも呼ばれうる。しばしば、ワークフローは、アクションのシーケンスのためのトリガも含む。フローの例が、図2図3、および、図5Cに示されている。本明細書で開示されている技術は、グラフィカルユーザインターフェースの利用が困難であるシナリオにおいて効率的なコンピュータワークフロー生成を可能にする技術的課題を解決する。本明細書で開示されている技術は、ユーザが、自由形式の自然言語を用いてワークフローのステップをインスタンス化することを可能にし、ステップは、グラフィカルユーザインターフェース内に視覚的なステップとして表示されうる。換言すると、自動フローが、自然言語記述から生成されうる。グラフィカルユーザインターフェースの利用は、特に、数百の利用可能なステップが存在しうるため、経験の浅いユーザにとっては困難でありうる。本明細書で開示されている技術は、ユーザ学習曲線を低減し、初心者ユーザのためのベストプラクティスを促進し、経験豊富なユーザが新たな特徴を発見する助けとなるなど、多くの利点を有する。
【0014】
様々な実施形態において、本明細書で開示されている技術は、大きい事前トレーニングされた言語モデルを利用することで、わずかなラベル付きサンプルのみを必要とする高度に適応可能なシステムにつながり、結果として、ルールベースの技術と比べてユーザ入力のばらつきに対してロバストである。本明細書で開示されている技術は、異なるタイプの自動フロービルダーアプリケーションに幅広く適用可能である。様々な実施形態において、本明細書でさらに詳述するように、トレーニングされた機械学習モデルが、フローの自然言語記述を受信し、次いで、適切な順序でフローのためのアクションすべてを予測する。機械学習モデルは、トレーニング例からこのタスクを実行することを学習しているので、手動の処理および特徴量エンジニアリングが必要とされない。さらに、ユーザ入力がそのまま取り込まれうるので、事前処理が必要とされない。様々な実施形態において、機械学習モデルの出力は、フロービルダーアプリケーションへ送信されるアプリケーションプログラミングインターフェース(API)コールに変換される。これらの技術について、以下でさらに詳しく説明する。
【0015】
図1は、テキスト入力に基づいてコンピュータ化フローを自動的に実装するためのシステムの一実施形態を示すブロック図である。図の例において、テキストツーフロー(text-to-flow)・ユニット100は、入力アグリゲータ102、フローツーテキスト(flow-to-text)・コンバータ104、コンテキストツーテキスト(context-to-text)・コンバータ106、埋め込みセレクタ108、テキストツーテキスト(text-to-text)・モデル110、および、テキストツーAPI(テキストツーAPI)・コンバータ112で構成されている。図の例において、フロービルダーアプリケーション114は、テキストツーフロー・ユニット100から離れているが、他の実施形態において、フロービルダーアプリケーション114がテキストツーフロー・ユニット100の構成要素として組み込まれることも可能である。いくつかの実施形態において、フローツーテキスト・ユニット100(その構成要素を含む)は、プログラムされたコンピュータシステムの汎用プロセッサ(例えば、中央処理装置(CPU))で実行されるコンピュータプログラム命令で構成されている。図7は、プログラムされたコンピュータシステムの一例を示す。また、フローツーテキスト・ユニット100のロジックは、その他のハードウェア上で実行される(例えば、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を用いて実行される)ことも可能である。図の例において、テキストツーフロー・ユニット100は、フロービルダーアプリケーション114へ出力を提供する。様々な実施形態において、フロービルダーアプリケーション114は、APIを介してインターフェースされうるソフトウェアを含む。図の例において、テキストツーフロー・ユニット100への入力データは、フロー記述120、ビルダー現在状態122、コンテキスト124、および、フロー埋め込み126である。
【0016】
様々な実施形態において、フロー記述120は、全体フロー、部分フロー、または、単一のステップ(例えば、フロー内の単一のアクション)のいずれかを記述する必須テキスト入力である。フロー記述120は、既知の記述または任意のその他の意味的に等価な記述でありうるステップ記述を含む(例えば、「レコードを作成」および「テーブルにレコードを追加」は両方とも、同じフローステップを生成する)。図の例において、フロー記述120は、入力アグリゲータ102によって受信される。様々な実施形態において、入力アグリゲータ102は、テキストツーテキスト・モデル110のための入力テキストを作成する。様々な実施形態において、入力アグリゲータ102は、フロー記述120を変更しない。様々な実施形態において、入力アグリゲータ102は、フロー記述120が必須であることから、フロー記述120が空でない文字列であることを補償するために保証するためにチェックするが、テキストツーフロー・ユニット100へのその他の入力は必須ではない。図の例において、入力アグリゲータ102は、さらに、フローツーテキスト・コンバータ104およびコンテキストツーテキスト・コンバータ106からテキスト入力を受信する。様々な実施形態において、入力アグリゲータ102は、フロー記述120とフローツーテキスト・コンバータ104の出力とに基づいてフロー記述を決定し、これをコンテキストツーテキスト・コンバータ106のテキスト出力であるコンテキスト情報と組み合わせる。いくつかの実施形態において、テキストツーテキスト・モデル110の出力により大きい影響を有する要素で始めることがより良い結果につながりうるので、情報を組みあわせる特定の順序が存在する。
【0017】
本明細書で開示されている技術は、オーディオまたはビデオなど、他の情報媒体にも適用可能である。換言すると、フロー記述は、別の形式(例えば、オーディオ、ビデオ、など)で提供されてもよい。オーディオまたはビデオのフロー記述が受信される実施形態について、テキストツーフロー・ユニット100は、オーディオおよび/またはビデオを受信してオーディオおよび/またはビデオをテキストに変換するメディアツーテキスト(media-to-text)・コンバータを備えてよい。例えば、オーディオをテキストに変換するために、当業者に周知の様々な音声認識技術の内のいずれかが、オーディオ入力のテキスト形式(例えば、フロー記述120と同じフォーマットのもの)を生成するために用いられてよい。次いで、テキストツーフロー・ユニット100は、フロー記述120について説明したのと同じ方法でテキスト形式を利用できる。同様に、当業者に周知のビデオツーテキスト(video-to-text)技術が、ビデオ入力からテキスト形式を生成するために用いられてよい。
【0018】
図の例において、ビルダー現在状態122は、部分フローを予測する時に用いられる任意選択的な入力である。部分フローの予測は、単一のステップまたは複数のステップのいずれかを指定することによって不完全なフローにステップを追加する。単一のステップを利用するケースは、本明細書で開示されている技術が、ユーザが段階的にフローを作成するためにやり取りを提供するチャットボットのようなシステム内で機能することを可能にしうる。様々な実施形態において、ビルダー現在状態122は、以下の2つの項目を含む。1)既存ステップ:ユーザインターフェースまたはテキストツーフロー・ユニット100への以前のコールのいずれかを用いてビルダーにおいてユーザによってすでに作成されたステップ、および、2)現在位置:ユーザがフローの生成を要求した位置(換言すると、既存ステップのリスト内のインデックス)。図の例において、ビルダー現在状態122は、フローツーテキスト・コンバータ104によって受信される。フローツーテキスト・コンバータ104は、既存フローおよび現在位置をテキスト形式に変換する。いくつかの実施形態において、ビルダー現在状態122における既存ステップは、拡張マークアップ言語(XML)またはJavaScriptオブジェクトノーテーション(JSON)フォーマットのいずれかである。したがって、いくつかの実施形態において、フローツーテキスト・コンバータ104は、XMLまたはJSONのデータをテキストに変換する。ビルダー現在状態122は、任意の既知のデータフォーマット(例えば、XML、JSON、など)でありうる。XMLおよびJSONの例は、単に例示であり、限定ではない。
【0019】
既存ステップが、「Eメールを送信」(「Eメールを送信」はステップ名である)および「インシデントレコードを作成」(「レコードを作成」はステップ名であり、「インシデント」はテーブル名を表すステップパラメータである)であると仮定する。現在位置は、第3位置であり、挿入ポイントを示している。様々な実施形態において、フローツーテキスト・コンバータ104は、まず、一対一マッピングを用いて各ステップを名称から記述へ変換して任意の既存ステップパラメータを抽出することによって、既存ステップをシリアル化する。生成される出力は、以下のフォーマットであってよい。「既存ステップ:ステップ1[パラメータ1]、ステップ2、・・・、ステップN[パラメータN]現在位置:X」。このフォーマットにおいて、「既存ステップ」および「現在位置」は、既存ステップを現在位置と区別するプレフィックスである。これは、フローツーテキスト・コンバータ104の出力がテキストフォーマットであるため、必要である。様々な実施形態において、テキストツーテキスト・モデル110は、部分フローを予測する時に、既存ステップを用いて出力を調節し、これは、以前に作成されたステップから影響を受けるステップに役立つ。テキストツーテキスト・モデル110は、テキストツーテキスト・モデル110のトレーニング段階中に学習した以前のステップを前提として、特定のステップが発生する可能性を検証できる。ユーザがテキストツーフロー・ユニット100へコールする前にステップを全く作成しなかったシナリオでは、ビルダー現在状態122は、意味のある情報を全く持たず、フローツーテキスト・コンバータ104の出力は、空の文字列になる。
【0020】
図の例において、コンテキスト124は、別の任意選択的な入力である。コンテキスト124は、テキストツーテキスト・モデル110の出力を調整するために用いられてよい。この調整は、ユーザによって提供されたフロー記述以外の外部要因に基づいて、テキストツーテキスト・モデル110の予測を改善することを目的とする。コンテキスト124に関して、テキストツーテキスト・モデル110は、特定の利用可能なコンテキスト項目を用いて、その出力を調節することができる。例えば、フローの作成者または事業単位に応じて、エラー処理、ロギング、または、承認管理など、いくつかのケースの処理が異なりうる。例えば、フローが失敗した場合に、ユーザまたはユーザ集団が管理者へEメールを送信してよく、その間に、その他のユーザが、エラーメッセージを記録し、フローを終了させる。コンテキスト124は、テキストツーテキスト・モデル110をトレーニングするために用いられたトレーニングデータのパターンを通して、テキストツーテキスト・モデル110に影響を与える。いくつかの実施形態において、コンテキスト124は、以下の項目を含む。1)アプリケーションメタデータ:アプリケーションプロパティ(アプリケーション名、事業単位、作成者、など)、2)フローメタデータ:フロープロパティ(タイトル、作成日、作成者、など)、3)プリファレンス(例えば、(後に詳述するように)一対一予測を有効化し、(ドメイン外ステップ記述に関して後に詳述するように)利用するステップのリストを設定し、(フロー埋め込みに関して後に詳述するように)IDを埋め込む)。コンテキスト124は、XML、JSON、または、その他の周知のデータフォーマットであってよい。上記は、テキストツーテキスト・モデル110の調整パラメータと見なされうる。
【0021】
様々な実装形態において、コンテキストツーテキスト・コンバータ106は、(例えば、XMLまたはJSONフォーマットの)コンテキスト124を受信し、フロー埋め込みIDを除くコンテキストのすべての要素をテキストフォーマットにエンコードする。様々な実施形態において、コンテキストのすべての要素が、キー/値ペアのリストとして表され、これは、コンテキストツーテキスト・コンバータ106のテキスト出力が以下のようにフォーマットされうることを意味する。「プリファレンス:キー1[値1]、・・・、キーn[値n]アプリメタデータ:キー1[値1]、・・・、キーn[値n]フローメタデータ:キー1[値1]、・・・、キーn[値n]」。「プリファレンス」、「アプリメタデータ」、および、「フローメタデータ」は、シリアル化されたテキストの各部分を区別するプレフィックスである。コンテキストツーテキスト・コンバータ106は、すべてのコンテキスト項目を利用可能にさせる必要はない。例えば、フローメタデータが欠落している場合、フローツーテキスト・コンバータ106が、その他の利用可能な項目のみをシリアル化することを意味する。コンテキスト全体が利用できないシナリオでは、コンテキストツーテキスト・コンバータ106は、空の文字列を出力する。
【0022】
図の例において、フロー埋め込み126は、別の任意選択的な入力である。フロー埋め込み126は、以前に学習されたフロー埋め込みのリストを含む。様々な実施形態において、フロー埋め込み126は、既存フローに基づいていて、テキストツーテキスト・モデル110を調整するために利用できる埋め込みを含む。かかる調整は、テキストツーテキスト・モデル110の出力を、以前に作成されたフローに似せるように調整できる。いくつかの実施形態において、フロー埋め込み126は、テキストツーテキスト・モデル110のトレーニング中に個々に学習される固定サイズのテンソルのリストである。各フロー埋め込みは、単一のデータセットに関連しうるものであり、ディスクまたはメモリに格納されてよい。埋め込みは、或るデータセットと別のデータセットとのトレーニングの差を記述する方法として、または、モデル重みを因数分解する方法として見なされうる。例えば、2つの異なるデータセットが、データセットの各々に対して単一のセットのモデル重みと2つの異なる埋め込みとを有する単一の機械学習モデルをトレーニングするために、トレーニング段階中に用いられてよい。次いで、推論モードでの機械学習モデルのデプロイ中に、埋め込みは、機械学習モデルを中断することなしに、各トレーニングデータセットに一致するように交換されうる。2つの異なるモデルをトレーニングすることによって、埋め込みを利用することなしに同様の結果を達成できるが、埋め込みを利用すると、単一のモデルのみを作成、デプロイ、および、維持すればよいので、計算コストおよびその他のコストが削減される。上記にもかかわらず、埋め込み機能は任意選択的であるので、2つの異なるモデルをトレーニングし、本明細書で開示されている技術を用いることも可能である。これは、(例えば、機密性の理由で)データセットを分離する必要があるシナリオで有用でありうる。図の例において、埋め込みセレクタ108は、フロー埋め込み126から埋め込み(例えば、テンソル)を選択してロードする。これは、コンテキスト124のフロー埋め込みIDを用いて選択を指示することによって達成されうる。フロー埋め込みIDが提供されないシナリオでは、埋め込みセレクタ108は、NULLテンソルを出力する。いくつかの実施形態において、選択された埋め込みテンソルは、埋め込みが選択された時に、テキストツーテキスト・モデル110を実装するプロセッサ(例えば、中央処理装置(CPU)、グラフィックス処理装置(GPU)など)にロードされる。
【0023】
様々な実施形態において、テキストツーテキスト・モデル110は、フロー記述120に少なくとも部分的に基づいて、全体フローまたは部分フローを予測する。テキストツーテキスト・モデル110は、ビルダー現在状態122およびコンテキスト124に応じて、ユーザ提供のフロー記述以外の入力も利用してよい。具体的には、テキストツーテキスト・モデル110の予測は、コンテキストパラメータ、既存ステップ、および/または、フロー埋め込み、などの入力によって調節されてよい。いくつかの実施形態において、フローは、以下のようなテキストフォーマットのテキストツーテキスト・モデル110によって予測される。「ステップ記述1、ステップ記述2[パラメータ1]、・・・、ステップ記述N[パラメータ1、・・・、パラメータM]」。ユーザ入力に応じて、出力は、単一のパラメータ、複数のパラメータ、または、ゼロパラメータを含みうる。テキストツーテキスト・モデル110のアーキテクチャは、トランスフォーマおよびリカレントニューラルネットワーク(RNN)(大規模言語モデル(LLM))など、入力から出力へのセマンティックマッピングのエンドツーエンド学習を実行するよう構成されている様々な機械学習アーキテクチャに基づいていてよい。テキストツーテキスト・モデル110は、テキスト例についてトレーニングされており、テキスト入力を受信してテキスト出力を生成するよう構成されている。様々な実施形態において、テキストツーテキスト・モデル110は、転移学習を利用してトレーニングされたものである。転移学習は、まず、データの豊富なタスクでモデルを事前トレーニングし、次いで、下流のタスクでモデルを微調整することを意味する。いくつかの実施形態において、テキストツーテキスト・モデル110は、エンコーダ・デコーダアーキテクチャを有するLLMである。様々な実施形態において、テキストツーテキスト・モデル110は、各タスクがテキストツーテキスト・フォーマットに変換される教師なしタスクおよび教師ありタスクのマルチタスク混合で事前トレーニングされている。エンコーダ・デコーダアーキテクチャを備えたLLMモデルの一例は、T5モデルである。
【0024】
テキストツーテキスト・モデル110は、フロー記載内でユーザが要求したよりも多くのことを予測するよう構成されてよい。例えば、テキストツーテキスト・モデル110は、ユーザが「承認を求める」ステップのみを要求したとしても、「承認を求める」ステップの後に「if」ステップというパターンがトレーニングデータで頻繁に生じることから、そのパターンを予測しうる。この機能の目的は、ユーザがベストプラクティスに従い、フロー記述の長さを短縮するのを助けることである。この機能は、初心者ユーザに有益でありうるが、経験豊富なユーザは、気が散ると感じる場合がある。したがって、様々な実施形態において、この機能は、(上述したように)コンテキスト124内のプリファレンスとして一対一予測(ユーザが記述していることを正確に予測するようにテキストツーテキスト・モデル110が構成される)を有効化することによって、無効化されうる。
【0025】
また、コンテキスト124は、テキストツーテキスト・モデル110によってドメイン外ステップ記述を制御するために用いられてもよい。テキストツーテキスト・モデル110がドメイン外ステップを全く出力しないことを保証するために、ユーザは、コンテキスト124を介して可能なステップのリストを提供できる。テキストツーテキスト・モデル110は、提供されたリストにステップがない場合、このモードでそのステップを予測しない。例えば、「Eメールを送信し、牛乳を購入し、インシデントレコードを作成する」に対するモデル出力は、「牛乳を購入」ステップが可能なステップのリストにない場合に「牛乳を購入」ステップを除外して、「Eメールを送信し、テーブルレコード[インシデント]を作成する」となる。一方、ユーザが、可能なステップのリストを提供していない場合、この例のモデル出力は、「Eメールを送信し、牛乳を購入し、テーブルレコード[インシデント]を作成する」となる。しかしながら、テキストツーAPIコンバータ112は、このステップのためのAPIコールマッピングを有していない場合があるで、「牛乳を購入」ステップを取り除いて記録してもよい。地位で、システム管理者は、テキストツーフロー・ユニット100が何を扱うよう構成されるべきかを決定するために、記録された情報を用いてユーザ要求を分析する。例えば、テキストツーフロー・ユニット100が、個人と通信するために「Eメールを送信」のみを扱う一方で、ユーザがショートメッセージサービス(SMS)によって情報を送信しようとしている場合に、システム管理者は、この情報を用いて、「SMSを送信」ステップを構成してよい。また、ユーザは、可能なステップのリストに新たなステップ(トレーニングデータ内で見られないステップ)を提供できる。したがって、新たなステップを生み出す代わりに、テキストツーテキスト・モデル110は、フロー記述に一致する新たに追加されたステップを利用できる。例えば、フロー記述が、「SMS経由で通信」を含むと仮定する。ユーザが可能なステップのリストに「SMSを送信」ステップを追加した場合、テキストツーテキスト・モデル110は、「SMSを送信」を出力する。あるいは、ユーザ提供ステップがない場合、テキストツーテキスト・モデル110は、自身で「SMSで通信」を予測しうる(このステップを生み出す)。この機能により、テキストツーテキスト・モデル110を再トレーニングする必要がなくなり、テキストツーテキスト・モデル110をトレーニングするための計算コストが削減される。様々な実施形態において、ユーザは、テキストツーテキスト・モデル110がフロービルダーのユーザインターフェースから不正確に出力した結果を手動で編集することもできる。
【0026】
いくつかの実施形態において、フローステップを予測することに加えて、テキストツーテキスト・モデル110は、ステップのスロット値も抽出する。例えば、「インシデントレコードを作成」という入力において、スロット値は、「インシデント」であり、レコードが作成されるテーブル名を表す。図5Cは、テーブルを表すスロット値の別の例を示す。テキストツーテキスト・モデル110は、識別子名(例えば、テーブル名、アプリケーション名、など)を持つ値の正確な名称を提供することをユーザに求めない。例えば、テキストツーテキスト・モデル110は、「案件」テーブルが存在しない場合、「インシデントレコードを作成」および「案件レコードを作成」に対して同じテーブル名を予測しうる(インシデントレコードから案件レコードに外挿する)。したがって、テキストツーテキスト・モデル110のアーキテクチャおよびトレーニングにより、ユーザがスロット値を記述しうる方法のばらつきが、自動的に処理される。例えば、モデルの観点からは、「インシデントレコードを作成」は、自然言語の類似性により、「インシデントテーブルにレコードを作成」と類似している。日付および時刻の値のスロット値フォーマットのばらつきがトレーニング中に見られるため、処理されうる。例えば、様々な実施形態において、テキストツーテキスト・モデル110は、「8pm(午後8時)」、「20h(20時)」、および、「8p.m.(午後の8時)」から同じ時刻値を抽出するようにトレーニングされる。また、トレーニング中にすべての可能な組み合わせを見ることなしに、正しい結果に得ることが可能である(例えば、トレーニング中に同様のタイプミスが見られるので、タイプミスのあるパターンに遭遇しなくても、タイプミスを修正できる)。自然言語の事前トレーニングを利用することにより、信頼性の高い性能を達成するために必要なトレーニングデータの量を削減できる。
【0027】
利用されるテキストツーテキスト・アーキテクチャにより、テキストツーテキスト・モデル110は、モデルに全く変更を加えることなしに、新たなステップセットに適応できる。これは、必要なモデリングおよび実験の労力を削減する。さらに、この機能は、ユーザが、急速に展開しうる様々な有効ステップを有するので、利用事例の観点から極めて重要である。このように、本明細書で開示されている技術を用いて、各ユーザに対して新たなモデルを作成することを回避できるため、コストが削減される。上述のように、テキストツーテキスト・モデル110は、ユーザがフローを記述する方法のばらつきを処理し、これは、既存の一致ベースのシステムよりも強力である。例えば、テキストツーテキスト・モデル110は、「ルックアップレコード」および「テーブル内のエントリの検索」が利用事例に応じて同じものを参照できるかどうかを判定できる。対照的に、ルールベースのシステムまたは古典的な自然言語処理(NLP)モデルのいずれかでこれを処理することは、非常に困難でありうる。別の利点は、テキストツーテキスト・モデル110が、ステップのポジショナリティおよびフローの構成を理解できることである。本明細書で開示されているフロー例では、フローは、トリガ(例えば、「メールが受信された時」)から始まる。しかしながら、ユーザは、トリガ記述でフロー記述を開始しなくてもよい。例えば、テキストツーテキスト・モデル110は、「インシデントレコードを作成するのは、電子メールが受信された時」および「電子メールが受信された時、インシデントレコードを作成する」に対して同じフローを生成する。この利点は、ステップ数が増加するにつれて非常に重要になる(例えば、10ステップのフロー長に対して)。テキストツーテキスト・モデル110は、テクストツーオートメーション・フロータスク用に微調整される前に、大規模な言語データセットについて教師なしで事前トレーニングされるため、意味的に同じことを記述するためのすべての可能な組み合わせまたは方法を見る必要がなく、これは、テキストツーテキスト・モデル110の微調整に必要なデータ要件を低減する。
【0028】
モデルデプロイの観点から、テキストツーテキスト・アーキテクチャの利用は、性能試験またはハードウェア互換性試験をやり直す必要がないため、新たなモデルをデプロイする手間を軽減する。対照的に、固定数の出力カテゴリを有する単一の分類レイヤを用いて分類を実行する他の機械学習モデルは、分類クラスの数が変わった時に修正される必要があり、これは、アプリケーションが求める上限を超えてモデルの応答時間を押し上げうる。さらに、クラスの数が指数関数的に増加する場合、従来のモデルは、利用可能なハードウェアにもはや適合しえない。従来の機械学習実装において、マルチタスク設定において各タスクに対する新たな分類コンポーネントを追加する必要もありうる。対照的に、本明細書で開示されている技術では、単一の構成のみを修正すればよい。
【0029】
図の例において、テキストツーAPI・コンバータ112は、テキストツーテキスト・モデル110のテキスト出力をAPIフォーマットに変換する。いくつかの実施形態において、テキストツーAPI・コンバータ112は、ステップ記述からAPIコールへの定義済みの一対一マッピングを用いる。様々な実施形態において、テキストツーテキスト・モデル110の出力が、ドメイン外ステップ記述を含む場合、テキストツーAPI・コンバータ112は、ドメイン外ステップを除去し、監視システムに対するイベントを記録する。したがって、テキストツーAPI・コンバータ112は、有効なステップに対するAPIコールのみを実行する。
【0030】
図の例において、テキストツーフロー・ユニット100は、最終フローを作成せず、むしろ、テキストフォーマットの予測フローの実際のフローへの変換を完了させるために、APIコールをフロービルダーアプリケーション114へ出力する。フロービルダーアプリケーション114は、APIコールを介して、フローを作成するよう命令される。フロービルダーアプリケーションの一例は、ServiceNow(登録商標)Flow Designer Platformである。ただし、この例は、単に例示であり、限定ではない。本明細書で開示されている技術は、このビルダーに限定されず、任意のその他の自動フロービルダーアプリケーションで利用できる。新たなビルダーアプリケーションの処理は、テキストツーテキスト・モデル110の出力として用いられるステップ記述を作成し、新たなAPIコールでテキストツーAPI・コンバータ112を更新する(例えば、一対一マッピング更新を作成する)ことを含む。さらに、テキストツーフロー・ユニット100と、1または複数のフロービルダーアプリケーションのいずれかが、本明細書で開示されている技術を変更することなしに、単一の結合ユニットに統合されてもよい。
【0031】
図の例では、構成要素の間の通信経路の一部が示されている。その他の通信経路が存在してよく、図1の例は、この例を明確に示すために単純化されている。図面を単純化するために構成要素が1つずつ示されているが、図1に示す構成要素のいずれかが追加で存在してもよい。図1に示す構成要素数および接続は、単なる例示である。図1に示していない構成要素が存在してもよい。
【0032】
図2は、コンピュータ化フローの一例を示す図である。この例において、フロー200が、情報技術管理プロセスを自動化するために用いられる。図の例において、フロー200は、トリガと、トリガに応答する13の動作ステップとで構成されている。図に示すように、ステップは、アクション(単一のステップ)、サブフロー(ステップのグループ)、または、フローロジック(例えば、「if」文など)でありうる。別の例として、フローは、以下のプロセスを自動化しうる。「電子メールが受信された時、インシデントレコードを作成する」。ここで、電子メール受信は、トリガであり、インシデントレコードの作成は、トリガ条件が満たされた時に実行されるステップである。また、フロー200は、グラフィカルユーザインターフェース環境を用いて作成されたコンピュータ化フローの一例である。かかる環境でフローを作成するために、ユーザは、ステップを追加または修正するために、1セットのボタンに依存しうる。例えば、図の例では、ボタン202が、アクション、サブフロー、または、フローロジックを追加するために利用されうる。
【0033】
本明細書で上述したように、グラフィカルユーザインターフェースを用いてフローを生成する場合、制約がある。例えば、ユーザは、アプリケーションまたはプロセスが利用するプラットフォームテーブルおよびフィールドに精通しなければならず、すべての利用可能なステップを知っている必要がある。これらの要件は、特に新規ユーザにとって、そして、特に設計環境が多くの利用可能なステップおよび構成を有する場合に、グラフィカルユーザインターフェースの利用を学ぶことをより困難にする。別の制約は、経験豊富なユーザが新しい機能に気付かない場合があり、古い機能および方法を用いてフローを構築しうることである。いくつかのケースにおいて、最新の機能を利用しないことが、生成されるフローの性能、安定性、または、セキュリティに影響しうる。ユーザのトレーニングが、この制約を克服する方法であるが、それにはかなりの人的努力が必要となる。別の制約は、経験の浅いユーザがフローを構築する際にベストプラクティスに従わない場合があることである。一部のステップは、さらなる処理(例えば、フローの実行の品質および安定性に影響を与えるエラーまたはエッジケースのチェックなど)を必要とする。テキスト入力に基いた自動フロー生成のための本明細書に開示の技術は、上記の制約に対処する。
【0034】
図3は、ベストプラクティスを促進する自動的に実装されたコンピュータ化フローの一例を示す図である。概略的には、コンピュータ化フローを作成することは、コンピュータコードを書くことと同様であり、ユーザが、テキストエディタでコンピュータコードを書く代わりに、ユーザインターフェースとやり取りしてコンピュータ化フローを作成できる点が異なっている。コンピュータコードを書くのと同様に、ユーザは、品質およびロバスト性を保証するようにフローを構築しつつ、ベストプラクティスに従うことが好ましい。ベストプラクティスの例は、エラーまたはエッジケースを処理すること、ならびに、ユーザグループがいくつかの具体的な利用事例を扱う方法に従うことを含む。例えば、実行エラーを報告するステップは、或るグループが、管理者に電子メールを送信し、または、別のグループにSMSを送信することでありうる。しかしながら、経験の浅いユーザは、これらのプラクティスに従わない場合がある。本明細書で開示されている技術を用いれば、機械学習モデルが、データにおけるパターンに基づいてベストプラクティスを予測できるため、特徴量エンジニアリングまたは手動介入を全く必要としない。さらに、この機能は、データセントリックであるため、トレーニングの手順および利用法を全く変更することなしに、単一のユーザまたはユーザグループに適応されうる。例えば、以下の冗長なフロー記述を仮定する。「インシデントレコードが作成された時、発信側がチーフを含む場合に、インシデントレコードを更新し、そうでない場合、発信側の国がブラジルである場合に、インシデントレコードを更新し、そうでない場合、発信側がVPである場合に、インシデントレコードを更新する。その後、インシデントケースを分類する。信頼度が80%を超える場合に、インシデントレコードを更新する」。フロー300は、上記のフロー記述について本明細書で開示されている技術を用いて予測されたフローである。フロー300は、if-else文のセットを含まない(上の下線部)。その代わり、デシジョンテーブルステップが予測され、フロー300に含められており、これは、保持するのがより困難なif-else文のセットと比較して、かかる利用事例を処理するためのより良い方法である。これは、技術的な観点からフローを改善するベストプラクティスを促進し、さらに、経験の浅いユーザにコンピュータ化フローを適切に構築する方法を教える一例である。これは、特に非技術系の貢献者が対象ユーザの大部分である場合に、経験の浅いユーザのトレーニングに必要な時間を削減する。
【0035】
図4は、トレーニングデータを合成的に生成するためのシステムの一実施形態を示すブロック図である。いくつかの実施形態において、合成的に生成されたトレーニングデータは、図1のテキストツーテキスト・モデル110をトレーニングするために用いられる。図1のテキストツーテキスト・モデル110は、合成的に生成されたトレーニングデータを用いた結果として、ほとんどまたは全くラベル付きトレーニングデータを利用せずにトレーニング可能である。また、合成的に生成されたトレーニングデータを利用することなしに、ラベル付きトレーニングデータを用いて従来の機械学習モデルトレーニングを実行することも可能である。テキストツーテキスト・モデル110は、深層学習モデルであるため、大量のトレーニングデータがあることが重要である。しかしながら、許容可能な量のラベル付きデータを見つけることは、困難なタスクである。データを利用できる以前の作業がほとんどない場合があり、データのラベル付けは、手作業が必要なためコストがかかる。これらの問題を解決するために、いくつかの実施形態において、テキストツーテキスト・モデル110は、以下の2つの段階で訓練される。モデルが、合成的に生成された大量のデータのセットで訓練される第1段階(この段階の目標は、実際のステップ、順序、フロー長などに関わらず、自然言語記述からフローを予測する方法を学習することである)と、モデルが、実際のユーザのパターンを反映するより小さいセットのデータでトレーニングされる第2段階。これらのトレーニング技術は、モデルの性能を向上させ、ラベル付きデータの必要性を低減する。いくつかのシナリオでは、かなりの量のデータがなければ、機械学習ベースの技術はルールベースのシステムよりも性能が悪いため、これらのトレーニング技術が必要である。換言すると、トレーニングデータの不足に起因して、データ拡大技術が必要になりうる。
【0036】
図の例において、言い換えモデル404が、記述402を受信する。様々な実施形態において、記述402は、既知のテキスト入力である。これらは、図1のフロービルダーアプリケーション114によって以前に生成されたフローの既知のステップであってよい。様々な実施形態において、言い換えモデル404は、記述402の言い換えテキストを生成するようにトレーニングされたテキストツーテキスト・機械学習モデルである。いくつかの実施形態において、言い換えモデル404は、言い換えタスクのために特別にトレーニングされたLLM(例えば、T5モデル)である。言い換えモデル404のパラメータ(例えば、シード、出力長、流暢さ、など)が、記述402の各入力に対して1セットのバリエーション406を生成するために、制御および変更されうる。十分に妥当な記述が生成された後、自動フローが、合成データジェネレータ408によって生成されうる。いくつかの実施形態において、合成データジェネレータ408は、入力パラメータとフローのステップとに基づいてフローを構築するよう構成されている1または複数のプロセッサで構成されている。図の例において、合成データジェネレータ408は、バリエーション406、ステップ分布410、および、値412を受信して、合成フロー414を生成する。様々な実施形態において、合成データジェネレータ408は、まず、既存の利用特性に一致する既知の長さ分布に従ってフロー長をランダムに決定する。フロー長は、合成データジェネレータ408がバリエーション406から合成フローを構築するステップの数を示す。次いで、様々な実施形態において、各ステップについて、合成データジェネレータ408は、ステップ分布410に従ってステップをランダムに選択し、ステップの妥当な記述の1つを等しい確率でランダムに選択し、日付、時刻、電子メール、などについてランダムに、または、等しい確率でランダムに、スロット値を値412から生成する。様々な実施形態において、ステップ分布410は、実際の状況で特定のステップが発生する可能性を示す既知の分布である。ステップ分布410は、特定のユーザのパターンを既存のフローと一致させるように実際のデータから得られ、または、ランダムに生成されうる。様々な実施形態において、値412は、テーブル、名、システム名などに対する1セットの既知の値である。合成データジェネレータ408は、複数の合成フローを生成するために、複数回呼び出されうる。
【0037】
図5A図Cは、テキスト入力に基づいてコンピュータ化フローを自動的に実装することに関連付けられているユーザインターフェース例を示す図である。図5Aのユーザインターフェ-スウィンドウ500において、ユーザは、(この具体例において)情報技術(IT)案件に関連する様々な情報(IT案件のテキスト記述など)をテキストボックス502に入力できる。図5Bのウィンドウ510は、ユーザがユーザインターフェ-スウィンドウ500に情報を提出した後に、開発者によって利用されるインターフェ-ス要素の一例である。テキストボックス512内のテキストは、フロー生成に利用される。図の例において、このテキストは、以下の通りである。「案件提出が作成された時、すべての影響領域について、コンプライアンス案件タスクレコードを作成して、通知を送信する」。図の例において、ユーザは、提出されたフロー記述に基づいたフローの自動生成に向けて、テキストボックス512内のフロー記述を提出するために、提出ボタン514をクリックすることができる。いくつかの実施形態において、フロー記述は、テキストツーフロー・ユニット100へ提出される図1のフロー記述120である。いくつかの実施形態において、図1のテキストツーテキスト・モデル110は、フロー記述をAPIコールに変換して、対応するフローを生成するために用いられる。図の例において、フロー記述の提出は、フローをグラフィカルに生成するために用いられるのと同じユーザインターフェース内で行われる。換言すると、この例において、テキストボックス512にテキスト記述を提出する代わりに、トリガ追加ボタン516およびアクション追加ボタン518を用いてグラフィカルユーザインターフェースを介してトリガおよびアクションを追加することによって、同じフローが生成されうる。
【0038】
図5Cのフロー520は、テキストボックス512を介して提出されたフロー記述に基づいて生成されたフローである。図の例において、フロー520のフォーマットは、図2のフロー200および図3のフロー300のフォーマットと同じである。図の例において、フロー記述の「案件提出が作成された時」の部分が、フロー520のトリガ部分522に対応し、フロー記述の他の部分が、対応するアクションステップに対応している。図に示す例において、ユーザは、アクション追加ボタン524をクリックすることによってグラフィカルかつ手動で、生成されたフローにさらなるアクションステップを追加できる。また、図の例において、ユーザは、トリガ部分522をクリックすることによって、トリガの詳細を調べることができる。これにより、トリガに関する情報(トリガに対して生成されたスロット値など)を含むユーザインターフェース要素526が表示される。この例では、スロット値は、テーブル528である。
【0039】
図6は、テキスト入力に基づいてコンピュータ化フローを自動的に実装するための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、図6の処理は、図1のテキストツーフロー・ユニット100によって実行される。
【0040】
工程602で、所望のワークフローの少なくとも一部のユーザ提供テキスト記述が受信される。いくつかの実施形態において、ユーザ提供テキスト記述は、図1の工程120フローの記述である。様々な実施形態において、ユーザ提供テキスト記述は、ユーザからの自然言語入力である。
【0041】
工程604で、所望のワークフローに関連付けられているコンテキスト情報が決定される。いくつかの実施形態において、コンテキスト情報は、受信されたユーザ提供テキスト記述以外の受信入力から決定される。かかる入力の例は、図1のビルダー現在状態122、コンテキスト124、および、フロー埋め込み126を含む。コンテキスト情報は、生成された最終的なコンピュータ化フローを調整および微調整するために利用できる様々なタイプの情報の形態であり、(生成されたフローが既存ステップに追加される部分フローであるシナリオにおける)フローの既存ステップ、フローに関連付けられたメタデータおよびフロー生成プリファレンス、ならびに、コンピュータ化フローを予測するために利用される基本的な機械学習モデルを重み付けおよび/またはバイアスするフロー埋め込み選択、を含むが、それらに限定されない。
【0042】
工程606で、テキスト記述およびコンテキスト情報に少なくとも部分的に基づいた機械学習入力が、所望のワークフローに対する実装予測を決定するために機械学習モデルへ提供される。いくつかの実施形態において、機械学習モデルは、図1のテキストツーテキスト・モデル110である。様々な実施形態において、機械学習モデルは、実装予測をテキスト形式で出力する。
【0043】
工程608で、1または複数のプロセッサが、所望のワークフローの少なくとも一部のコンピュータ化ワークフロー実装として実装予測を自動的に実施するために用いられる。いくつかの実施形態において、実装予測は、テキストフォーマットからフロービルダーアプリケーションへのAPIコールに変換される。いくつかの実施形態において、フロービルダーアプリケーションは、図1のフロービルダーアプリケーション114である。
【0044】
図7は、プログラムされたコンピュータシステムを示す機能図である。いくつかの実施形態において、図6の処理は、コンピュータシステム700によって実行される。コンピュータシステム700は、プロセッサの一例である。
【0045】
図の例において、コンピュータシステム700は、以下に述べるように、様々なサブシステムを備える。コンピュータシステム700は、少なくとも1つのマイクロプロセッササブシステム(プロセッサまたは中央処理装置(CPU)とも呼ばれる)702を備える。コンピュータシステム700は、物理システムまたは仮想システム(仮想マシンなど)であってよい。例えば、プロセッサ702は、シングルチッププロセッサまたはマルチプロセッサによって実装されうる。いくつかの実施形態において、プロセッサ702は、コンピュータシステム700の動作を制御する汎用デジタルプロセッサである。メモリ710からリトリーブされた命令を用いて、プロセッサ702は、入力データの受信および操作、ならびに、出力デバイス(例えば、ディスプレイ718)上でのデータの出力および表示を制御する。
【0046】
プロセッサ702は、メモリ710と双方向的に接続されており、メモリ710は、第1プライマリストレージ(典型的には、ランダムアクセスメモリ(RAM))および第2プライマリストレージ領域(典型的には、リードオンリーメモリ(ROM))を含みうる。当業者に周知のように、プライマリストレージは、一般的な記憶領域として、および、スクラッチパッドメモリとして利用可能であり、また、入力データおよび処理済みデータを格納するために利用可能である。プライマリストレージは、さらに、プロセッサ702上で実行される処理のための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態で、プログラミング命令およびデータを格納できる。また、当業者に周知のように、プライマリストレージは、通例、機能(例えば、プログラムされた命令)を実行するためにプロセッサ702によって用いられる基本的な動作命令、プログラムコード、データ、および、オブジェクトを備える。例えば、メモリ710は、例えば、データアクセスが双方向である必要があるか、単方向である必要があるかに応じて、後述する任意の適切なコンピュータ読み取り可能な記憶媒体を含みうる。例えば、プロセッサ702は、頻繁に必要になるデータをキャッシュメモリ(図示せず)に直接的かつ非常に迅速に格納し取り出すことができる。
【0047】
永続メモリ712(例えば、着脱可能マスストレージデバイス)が、コンピュータシステム700にさらなるデータ記憶容量を提供しており、プロセッサ702に対して双方向(読み出し/書き込み)または単方向(読み出しのみ)に接続されている。例えば、永続メモリ712は、磁気テープ、フラッシュメモリ、PCカード、携帯型マスストレージデバイス、ホログラフィックストレージデバイス、および、その他のストレージデバイスなどのコンピュータ読み取り可能な媒体も含みうる。固定マスストレージ720も、例えば、さらなるデータ記憶容量を提供しうる。固定マスストレージ720の最も一般的な例は、ハードディスクドライブである。永続メモリ712および固定マスストレージ720は、一般に、プロセッサ702によって通例はあまり利用されないさらなるプログラミング命令、データなどを格納する。永続メモリ712および固定マスストレージ720に保持された情報は、必要であれば、仮想メモリとしてのメモリ710(例えば、RAM)の一部に標準的な方式で組み込まれうることが理解される。
【0048】
プロセッサ702がストレージサブシステムにアクセスできるようにすることに加えて、バス714が、その他のサブシステムおよびデバイスへのアクセスを可能にするために用いられてもよい。図に示すように、これらは、ディスプレイモニタ718、ネットワークインターフェース716、キーボード704、および、ポインティングデバイス706、ならびに、必要に応じて、補助入力/出力デバイスインターフェース、サウンドカード、スピーカ、および、その他のサブシステムを含みうる。例えば、ポインティングデバイス706は、マウス、スタイラス、トラックボール、または、タブレットであってよく、グラフィカルユーザインターフェースと相互作用するのに有用である。
【0049】
ネットワークインターフェース716は、図に示すように、ネットワーク接続を用いて、別のコンピュータ、コンピュータネットワーク、または、遠隔通信ネットワークにプロセッサ702を接続することを可能にする。例えば、ネットワークインターフェース716を通して、プロセッサ702は、方法/処理工程を実行する過程で、別のネットワークから情報(例えば、データオブジェクトまたはプログラム命令)を受信したり、別のネットワークに情報を出力したりすることができる。情報は、しばしば、プロセッサ上で実行される一連の命令として表され、別のネットワークから受信され、別のネットワークへ出力されうる。インターフェースカード(または同様のデバイス)と、プロセッサ702によって実装(例えば、実行/実施)される適切なソフトウェアとを用いて、コンピュータシステム700を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。処理は、プロセッサ702上で実行されてもよいし、処理の一部を共有するリモートプロセッサと共に、ネットワーク(インターネット、イントラネットワーク、または、ローカルエリアネットワークなど)上で実行されてもよい。さらなるマスストレージデバイス(図示せず)が、ネットワークインターフェース716を通してプロセッサ702に接続されてもよい。
【0050】
補助I/Oデバイスインターフェース(図示せず)が、コンピュータシステム700と共に用いられてよい。補助I/Oデバイスインターフェースは、プロセッサ702がデータを送信すること、ならびに、より典型的には、他のデバイス(マイクロフォン、タッチセンサ方式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声または手書き認識装置、バイオメトリクスリーダ、カメラ、携帯型マスストレージデバイス、および、他のコンピュータなど)からデータを受信することを可能にする汎用インターフェースおよびカスタマイズされたインターフェースを含みうる。
【0051】
さらに、本明細書に開示された様々な実施形態は、さらに、様々なコンピュータ実装された動作を実行するためのプログラムコードを備えたコンピュータ読み取り可能な媒体を含むコンピュータストレージ製品に関する。コンピュータ読み取り可能な媒体は、データを格納できる任意のデータストレージデバイスであり、そのデータは、後にコンピュータシステムによって読み出されうる。コンピュータ読み取り可能な媒体の例は、上記の媒体すべてを含むがそれらに限定されない。ハードディスク、フロッピーディスク、および、磁気テープなどの磁気媒体、CD-ROMディスクなどの光学媒体、光学ディスクなどの磁気光学媒体、ならびに、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、および、ROM/RAMデバイスなど、特別に構成されたハードウェアデバイス。プログラムコードの例としては、例えば、コンパイラによって生成されるマシンコード、または、インタープリタを用いて実行できる高水準コード(例えば、スクリプト)を含むファイルが挙げられる。
【0052】
図7に示したコンピュータシステムは、本明細書に開示された様々な実施形態と共に利用するのに適切なコンピュータシステムの一例にすぎない。かかる利用に適した他のコンピュータシステムは、より多いまたは少ないサブシステムを含みうる。さらに、バス714は、サブシステムをつなぐよう機能する任意の相互接続スキームの例である。異なる構成のサブシステムを有する他のコンピュータアーキテクチャが利用されてもよい。
【0053】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
【外国語明細書】