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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-536372プログラム簡略化を介したトレーニングデータ拡張
<>
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図1
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図2
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図3
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図4
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図5
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図6
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図7
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図8
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図9
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図10
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図11
  • 特表-プログラム簡略化を介したトレーニングデータ拡張 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】プログラム簡略化を介したトレーニングデータ拡張
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240927BHJP
   G06F 11/36 20060101ALI20240927BHJP
【FI】
G06N20/00 130
G06F11/36 104
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024520777
(86)(22)【出願日】2022-09-22
(85)【翻訳文提出日】2024-04-04
(86)【国際出願番号】 IB2022058950
(87)【国際公開番号】W WO2023062461
(87)【国際公開日】2023-04-20
(31)【優先権主張番号】17/498,463
(32)【優先日】2021-10-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】スネジャ、サヒル
(72)【発明者】
【氏名】ジュアン、ユファン
(72)【発明者】
【氏名】ゼン、ユンフイ
(72)【発明者】
【氏名】モラリ、アレッサンドロ
(72)【発明者】
【氏名】ラレド、ジム
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH08
(57)【要約】
1又は複数のAIモデルをトレーニングするために1又は複数のトレーニングデータセットを拡張することに関する技術が提供される。例えば、本明細書に説明された1又は複数の実施形態は、コンピュータ実行可能コンポーネントを記憶し得るメモリを含み得る、システムを有し得る。システムはまた、メモリに動作可能に結合され、メモリに記憶されたコンピュータ実行可能コンポーネントを実行し得るプロセッサを含み得る。コンピュータ実行可能コンポーネントは、トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成し得るトレーニング拡張コンポーネントを含み得る。
【特許請求の範囲】
【請求項1】
コンピュータ実行可能コンポーネントを記憶するメモリ;及び
前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、ここで、前記コンピュータ実行可能コンポーネントは:
トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成するトレーニング拡張コンポーネント
を有する、プロセッサ
を備える、システム。
【請求項2】
前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する簡略化コンポーネント、ここで、前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する
をさらに備える、請求項1に記載のシステム。
【請求項3】
前記簡略化されたソースコードサンプルの正確性を検証する検証コンポーネント;及び
タスク固有のラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けるするラベラーコンポーネント
をさらに備える、請求項1に記載のシステム。
【請求項4】
前記検証コンポーネントによる認証及び前記ラベラーコンポーネントによるラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加するデータセットコンポーネント
をさらに備える、請求項3に記載のシステム。
【請求項5】
前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングするモデルトレーニングコンポーネント
をさらに備える、請求項4に記載のシステム。
【請求項6】
コンピュータ実行可能コンポーネントを記憶するメモリ;及び
前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、ここで、前記コンピュータ実行可能コンポーネントは:
トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングするモデルトレーニングコンポーネント
を有する、プロセッサ
を備える、システム。
【請求項7】
前記ソースコードサンプルを縮小することによって前記簡略化されたソースコードサンプルを生成すべく簡略化アルゴリズムを実行する簡略化コンポーネント
をさらに備える、請求項6に記載のシステム。
【請求項8】
前記簡略化コンポーネントは、一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する、請求項7に記載のシステム。
【請求項9】
前記簡略化されたソースコードサンプルの正確性を検証する検証コンポーネント;
タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けするラベラーコンポーネント;及び
前記検証コンポーネントによる認証及び前記ラベラーコンポーネントによるラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加することによって、前記拡張されたトレーニングデータセットを生成するデータセットコンポーネント
をさらに備える、請求項6に記載のシステム。
【請求項10】
プロセッサに動作可能に結合されたシステムが、トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成する段階を備える、コンピュータ実装方法。
【請求項11】
前記システムが、前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する段階、ここで、前記簡略化されたソースコードサンプルは、前記複数の簡略化されたソースコードサンプルからのものである
をさらに備える、請求項10に記載のコンピュータ実装方法。
【請求項12】
前記システムが、前記一連の反復的な縮小を実行すべくデルタデバッギングアルゴリズムを利用する段階
をさらに備える、請求項11に記載のコンピュータ実装方法。
【請求項13】
前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する、請求項11に記載のコンピュータ実装方法。
【請求項14】
前記システムが、前記簡略化されたソースコードサンプルの正確性を検証する段階;及び
前記システムが、タスク固有のラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする段階
をさらに備える、請求項10に記載のコンピュータ実装方法。
【請求項15】
前記システムが、前記検証及び前記ラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加する段階;及び
前記システムが、前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングする段階
をさらに備える、請求項14に記載のコンピュータ実装方法。
【請求項16】
プロセッサに動作可能に結合されたシステムが、トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングする段階を備える、コンピュータ実装方法。
【請求項17】
前記システムが、前記トレーニングデータセットから前記ソースコードサンプルを縮小することによって前記簡略化されたソースコードサンプルを生成すべく簡略化アルゴリズムを実行する段階
をさらに備える、請求項16に記載のコンピュータ実装方法。
【請求項18】
前記システムが、一連の反復的な縮小を実行することによって複数のソースコードサンプルを生成する段階、ここで、前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する
をさらに備える、請求項16に記載のコンピュータ実装方法。
【請求項19】
前記システムが、前記簡略化されたソースコードサンプルの正確性を検証する段階;
前記システムが、タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする段階;及び
前記システムが、前記検証及び前記ラベル付けに続いて前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加する段階
をさらに備える、請求項16に記載のコンピュータ実装方法。
【請求項20】
人工知能モデルをトレーニングするためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、それに具現化されたプログラム命令を有するコンピュータ可読記憶媒体を備え、前記プログラム命令は、プロセッサに:
前記プロセッサが、トレーニングデータセット内に含まれたソースコードサンプルから簡略化されたソースコードサンプルを抽出することによって、前記人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成すること
を実行させるように前記プロセッサによって実行可能である、コンピュータプログラム製品。
【請求項21】
前記プログラム命令は、
前記プロセッサが、前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成すること、ここで、前記簡略化されたソースコードサンプルは、前記複数の簡略化されたソースコードサンプルからのものである
をさらに前記プロセッサに実行させる、請求項20に記載のコンピュータプログラム製品。
【請求項22】
前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する、請求項21に記載のコンピュータプログラム製品。
【請求項23】
前記プログラム命令は、
前記プロセッサが、前記一連の反復的な縮小を実行すべくデルタデバッギングアルゴリズムを利用すること
を前記プロセッサに実行させる、請求項22に記載のコンピュータプログラム製品。
【請求項24】
前記プログラム命令は、
前記プロセッサが、前記簡略化されたソースコードサンプルの正確性を検証すること;及び
前記プロセッサが、タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けすること
を前記プロセッサにさらに実行させる、請求項20に記載のコンピュータプログラム製品。
【請求項25】
前記プログラム命令は、
前記プロセッサが、前記拡張されたトレーニングデータセットを生成すべく、検証及びラベル付けに続いて、前記トレーニングデータセットに前記ソースコードサンプルを追加すること;及び
前記プロセッサが、前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングすること
を前記プロセッサにさらに実行させる、請求項23に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、1又は複数の人工知能(「AI」)モデルのためのトレーニングデータを拡張すること、より具体的には、ソースコードサンプルを簡略化することによって1又は複数のAIモデルトレーニングデータセットを拡張することに関する。
【背景技術】
【0002】
AIモデルは、多様なソースコード理解タスク、例えば、欠陥検出、コード要約、コード完成、バグ修正、機能及び変数の命名、コード推奨、ソフトウェア開発ワークフロー、及び/又は同様のもの等において利用される。しかしながら、ソースコード理解タスクのためにAIモデルをトレーニングすることは:データ重複バイアス、ラベル付けの品質、低いロバスト性及び/又は一般化、モデルの過学習(例えば、データセットのサイズの制限による)、クラス不均衡(例えば、異なるクラスに属するサンプルのカウント間の不一致による)、及び/又は同様のものを含む多様な信頼性の懸案事項に直面し得る。例えば、AIモデルの性能の品質は、モデルがソースコードのタスク関連態様を学習したかどうかによって影響され得る。
【0003】
例えば、従来通りにトレーニングされたAIモデルは、コードサンプル間の予想外の相関関係等の所与のタスクに対する非代表的信号を使用して、欠陥のあるソースコードサンプル及び健全なソースコードサンプルの間においてセパレータを学習し得る。それによって、AIモデルは、データセットニュアンスを学習するようにトレーニングされ、これは結果として、理論上の文脈以外の設定に適用されたときに性能の障害をもたらし得る。
【発明の概要】
【0004】
以下では、本発明の1又は複数の実施形態の基本的な理解を提供するために概要が提示される。この概要は、重要な又は必須の要素を識別すること、又は特定の実施形態のいかなる範囲又は特許請求の範囲のいかなる範囲も定めることを意図するものではない。その唯一の目的は、後に提示されるより詳細な説明への前置きとして簡略化された形態で概念を提示することである。本明細書に説明された1又は複数の実施形態において、1又は複数の人工知能モデルをトレーニングするための1又は複数の拡張されたトレーニングデータセットを生成し得るシステム、コンピュータ実装方法、装置及び/又はコンピュータプログラム製品が説明されている。
【0005】
実施形態によると、システムが提供される。システムは、コンピュータ実行可能コンポーネントを記憶し得るメモリを含み得る。システムはまた、前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行し得るプロセッサを含み得る。前記コンピュータ実行可能コンポーネントは、トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成するトレーニング拡張コンポーネントを含み得る。そのようなシステムの利点は、人工知能モデルをトレーニングするための追加のトレーニングサンプルの生成であり得る。
【0006】
いくつかの例において、前記システムはまた、前記簡略化されたソースコードサンプルの正確性を検証し得る検証コンポーネントを含み得る。さらに、前記システムは、タスク固有のラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けし得るラベラーコンポーネントを含み得る。そのようなシステムの利点は、新たに生成されたトレーニングサンプルによる品質制御の実装であり得る。
【0007】
別の実施形態によると、システムが提供される。システムは、コンピュータ実行可能コンポーネントを記憶し得るメモリを含み得る。システムはまた、前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行し得るプロセッサを含み得る。コンピュータ実行可能コンポーネントは、トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングし得るモデルトレーニングコンポーネントを含み得る。
【0008】
いくつかの例において、システムは、前記ソースコードサンプルを縮小することによって前記簡略化されたソースコードサンプルを生成すべく簡略化アルゴリズムを実行し得る簡略化コンポーネントを含み得る。そのようなシステムの利点は、よりノイズの少ないデータを含む可能性を有する新たなトレーニングサンプルの生成であり得る。
【0009】
実施形態によると、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムが、トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成する段階を含み得る。そのようなコンピュータ実装方法の利点は、モデルがトレーニングサンプルのタスク関連態様に焦点を当てることを可能にすることによる、人工知能モデルによる向上した性能であり得る。
【0010】
いくつかの例において、コンピュータ実装方法は、システムが、前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する段階を含み得る。前記簡略化されたソースコードサンプルは、前記複数の簡略化されたソースコードサンプルからのものであり得る。そのようなコンピュータ実装方法の利点は、単一の親ソースコードサンプルからの複数の簡略化されたソースコードサンプルの生成であり得る。
【0011】
別の実施形態によると、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムが、トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングする段階を含み得る。
【0012】
いくつかの例において、コンピュータ実装方法は、システムが、簡略化されたソースコードサンプルの正確性を検証する段階を含み得る。また、コンピュータ実装方法は、システムが、タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする段階を含み得る。さらに、コンピュータ実装方法は、システムが、検証及びラベル付けに続いて、簡略化されたソースコードサンプルをトレーニングデータセットに追加する段階を含み得る。そのようなコンピュータ実装方法の利点は、元々のソースコードサンプル及び簡略化されたソースコードサンプルの両方を含む拡張されたトレーニングデータセット上の人工知能システムのトレーニングであり得る。
【0013】
実施形態によると、人工知能モデルをトレーニングするためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含み得る。プログラム命令は、プロセッサが、トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成することをプロセッサに実行させるように、プロセッサによって実行可能であり得る。そのようなコンピュータプログラム製品の利点は、人工知能モデルのトレーニング中における過学習及び/又はクラス不均衡の縮小であり得る。
【0014】
いくつかの例において、プログラム命令はさらに、プロセッサが、ソースコードサンプルの一連の反復的な縮小を介してソースコードサンプルから複数の簡略化されたソースコードサンプルを生成することをプロセッサに実行させ得る。簡略化されたソースコードサンプルは、複数の簡略化されたソースコードサンプルからのものであり得る。また、一連の反復的な縮小の反復は、一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純であり得る新たな簡略化されたソースコードサンプルを生成し得る。さらに、プログラム命令は、プロセッサが、前記一連の反復的な縮小を実行すべくデルタデバッギングアルゴリズムを利用することをプロセッサに実行させ得る。そのようなコンピュータプログラム製品の利点は、より効率的なソースコードトークン縮小スキームを介した、簡略化されたソースコードサンプルのより拡張可能な生成であり得る。
【図面の簡単な説明】
【0015】
図1】本明細書に説明された1又は複数の実施形態に従って、1又は複数の拡張されたトレーニングデータセット上における1又は複数のAIモデルのトレーニングを容易にし得る例示的且つ非限定的なシステムのブロック図を示す。
【0016】
図2】本明細書に説明された1又は複数の実施形態に従って、1又は複数のAIモデルをトレーニングすべく利用され得る1又は複数のトレーニングデータセットを拡張するために、簡略化されたソースコードサンプルを検証及び/又はラベル付けし得る例示的且つ非限定的なシステムのブロック図を示す。
【0017】
図3】本明細書に説明された1又は複数の実施形態に従って実行され得る簡略化されたソースコードサンプルの例示的な認証及び/又はラベル付けを示す例示的且つ非限定的な表の図を示す。
【0018】
図4】本明細書に説明された1又は複数の実施形態に従って、1又は複数のAIモデルをトレーニングするための1又は複数の拡張されたトレーニングデータセットを生成し得る例示的且つ非限定的なシステムの図を示す。
【0019】
図5】本明細書に説明された1又は複数の実施形態に従って、1又は複数の拡張されたトレーニングデータセット上における1又は複数のAIモデルをトレーニングし得る例示的且つ非限定的なシステムの図を示す。
【0020】
図6】本明細書に説明された1又は複数の実施形態に従って、1又は複数の拡張されたトレーニングデータセット上における1又は複数のAIモデルのトレーニングのために実装され得る例示的且つ非限定的な訓練スキームの図を示す。
【0021】
図7】本明細書に説明された1又は複数の実施形態に従って、1又は複数のトレーニングデータセットの拡張の有効性を示し得る例示的且つ非限定的なグラフの図を示す。
図8】本明細書に説明された1又は複数の実施形態に従って、1又は複数のトレーニングデータセットの拡張の有効性を示し得る例示的且つ非限定的なグラフの図を示す。
【0022】
図9】本明細書に説明された1又は複数の実施形態に従って、1又は複数の拡張されたトレーニングデータセット上における1又は複数の拡張されたトレーニングデータセットの生成及び/又は1又は複数のAIモデルのトレーニングを容易にし得る例示的且つ非限定的なコンピュータ実装方法のフロー図を示す。
【0023】
図10】本明細書に説明された1又は複数の実施形態に従って、クラウドコンピューティング環境を示す。
【0024】
図11】本明細書に説明された1又は複数の実施形態に従って、抽象化モデル層を示す。
【0025】
図12】本明細書に説明された1又は複数の実施形態が容易にされ得る例示的且つ非限定的な動作環境のブロック図を示す。
【発明を実施するための形態】
【0026】
以下の詳細な説明は、例示に過ぎず、実施形態及び/又は実施形態の応用又は使用を限定することを意図するものではない。さらに、前述の背景技術又は発明の概要セクションにおいて、又は発明を実施するための形態セクションにおいて提示される任意の明示された又は示唆された情報によって制約されることを意図するものではない。
【0027】
ここで、図面を参照して1又は複数の実施形態が説明され、全体を通して、同様の参照番号は、同様の要素を指すために使用される。以下の説明では、説明の目的で、多くの特定の詳細が、1又は複数の実施形態のより完全な理解を提供すべく記載される。しかしながら、様々な場合では、1又は複数の実施形態は、これらの特定の詳細なしに実施され得ることが明らかである。
【0028】
AIモデルトレーニングの他の実装に関する問題を考慮すると、本開示は、1又は複数の簡略化プロセスを介してトレーニングデータセットを拡張して、コードの複雑性が変動するソースコードサンプルの分布を作成することによって、これらの問題のうちの1又は複数に対する解決手段を生成するために実装され得る。有利に、本明細書に説明された1又は複数の実施形態は、トレーニング中に、所与のソースコードのタスク関連態様に焦点を当てる際に1又は複数のAIモデルを支援するデータ駆動型手法を利用し得る。例えば、本明細書に説明された1又は複数の実施形態は、AIモデル学習にコードの複雑性を組み込み得る。データ駆動型手法を利用することによって、本明細書に説明された1又は複数の実施形態は、タスク不可知論的、プログラミング言語不可知論的、及び/又は多種多様なAIモデルタイプ(例えば、線形回帰、サポート・ベクター・マシン、決定木、主成分分析、単純ベイズ分類器等の従来の機械学習モデル、畳み込みニューラルネットワーク(「CNN」)、リカレントニューラルネットワーク(「RNN」)、グラフニューラルネットワーク(「GNN」)等のニューラルネットワークアーキテクチャ、それらの組み合わせ、及び/又は同様のものを含む)への適用であり得る。
【0029】
本発明の様々な実施形態は、効率的な、有効な、自律的な(例えば、直接の人間指導なしの)AIモデルトレーニングを容易にするコンピュータ処理システム、コンピュータ実装方法、装置及び/又はコンピュータプログラム製品を対象とし得る。例えば、本明細書に説明された1又は複数の実施形態は、1又は複数のソースコードサンプルを簡略化することによって1又は複数のトレーニングデータセットを拡張し得る。例えば、簡略化されたプログラムサンプルは、デルタデバッギング等の簡略化アルゴリズムを利用することによって生成され得る。それによって、本明細書に説明された様々な実施形態は、例えば、トレーニングデータセットのタスクプロファイルを維持しながら、より小さくて潜在的によりノイズの少ないソースコードサンプルを使用して、1又は複数のトレーニングデータセットを拡張し得る。
【0030】
コンピュータ処理システム、コンピュータ実装方法、装置及び/又はコンピュータプログラム製品は、抽象的でなく且つ人間による精神的な活動のセットとして実行されることができない、本質的に非常に技術的な問題(例えば、AIモデルトレーニング)を解決するためにハードウェア及び/又はソフトウェアを利用する。例えば、個人、又は複数の個人は、トレーニングデータセットのタスクプロファイルを維持しながら、プログラム簡略化スキームを介してトレーニングデータセットを容易に拡張することができない。また、本明細書に説明された1又は複数の実施形態は、コードの複雑性が変動する多様なトレーニングサンプルを作成すべく、トレーニングデータセットを拡張することによって従来のAIモデルトレーニングに対する技術的改善点を構成し得る。さらに、本明細書に説明された1又は複数の実施形態は、タスク不可知論的であり且つ多種多様なAIモデルアーキテクチャに適用可能なデータ駆動型手法を介してAIモデルのトレーニングを改善することによって実際の適用を有し得る。例えば、本明細書に説明された様々な実施形態は、コードの複雑性のアウェアネス(complexity awareness)を組み込むことで、1又は複数のAIモデルのためのタスク関連学習を可能にし得る。本明細書に説明された1又は複数の実施形態は、複数の簡略化されたソースコードサンプルを生成すべく1又は複数のトレーニングデータセットを拡張することによって、1又は複数のAIモデルのトレーニングプロトコルを制御し得る。
【0031】
図1は、1又は複数のAIモデルのトレーニングのために1又は複数のトレーニングデータセットを拡張し得る例示的且つ非限定的なシステム100のブロック図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。本発明の様々な実施形態におけるシステム(例えば、システム100等)、装置、又はプロセスの態様は、1又は複数の機械内で具現化された、例えば、1又は複数の機械に関連付けられた1又は複数のコンピュータ可読媒体において具現化された、1又は複数の機械実行可能コンポーネントを構成し得る。1又は複数の機械(例えば、コンピュータ、コンピューティングデバイス、仮想機械、それらの組み合わせ、及び/又は同様のもの)によって実行されると、そのようなコンポーネントは、機械に、説明される動作を実行させることができる。
【0032】
図1に示されたように、システム100は、1又は複数のサーバ102、1又は複数のネットワーク104、及び/又は1又は複数の入力デバイス106を含み得る。サーバ102は、トレーニング拡張コンポーネント110を含み得る。トレーニング拡張コンポーネント110は、通信コンポーネント112及び/又は簡略化コンポーネント114をさらに含み得る。また、サーバ102は、少なくとも1つのメモリ116を含むこと又は別様それに関連付けられることができる。サーバ102はさらに、例えば、限定されないが、トレーニング拡張コンポーネント110及び関連コンポーネント、メモリ116、及び/又はプロセッサ120等の様々なコンポーネントに結合され得るシステムバス118を含み得る。サーバ102が図1において示されているが、他の実施形態では、様々なタイプの複数のデバイスが、図1において示されている特徴に関連付けられることができるか、又は当該特徴を含むことができる。さらに、サーバ102は、1又は複数のクラウドコンピューティング環境と通信することができる。
【0033】
1又は複数のネットワーク104は、限定されないが、セルラネットワーク、ワイドエリアネットワーク(WAN)(例えば、インターネット)又はローカルエリアネットワーク(LAN)を含む有線及び無線ネットワークを含むことができる。例えば、サーバ102は、例えば、限定されないが、セルラ、WAN、ワイヤレスフィデリティ(Wi-Fi(登録商標))、WiMAX(登録商標)、WLAN、Bluetooth(登録商標)技術、それらの組み合わせ、及び/又は同様のものを含む任意の望ましい有線又は無線技術を仮想的に使用して、1又は複数の入力デバイス106と通信し得る(逆もまた同様である)。さらに、示された実施形態においては、トレーニング拡張コンポーネント110が1又は複数のサーバ102上に提供され得るが、システム100のアーキテクチャはそのように限定されないことを理解されたい。例えば、トレーニング拡張コンポーネント110、又はトレーニング拡張コンポーネント110の1又は複数のコンポーネントは、例えば別のサーバデバイス、クライアントデバイス及び/又は同様のもの等の別のコンピュータデバイスに位置し得る。
【0034】
1又は複数の入力デバイス106は:パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話(例えば、スマートフォン)、(例えば、プロセッサを含む)コンピュータ化されたタブレット、スマートウォッチ、キーボード、タッチスクリーン、マウス、それらの組み合わせ、及び/又は同様のものを含むことができるが、これらに限定されない1又は複数のコンピュータ化されたデバイスを含むことができる。1又は複数の入力デバイス106は、1又は複数のトレーニングデータセット122及び/又はAIモデル124をシステム100に入れるために利用され得、それによって、上記データをサーバ102と(例えば、直接接続を介して及び/又は1又は複数のネットワーク104)を介して)共有する。例えば、1又は複数の入力デバイス106は、データを通信コンポーネント112に(例えば、直接接続を介して及び/又は1又は複数のネットワーク104を介して)送信することができる。加えて、1又は複数の入力デバイス106は、システム100によって生成された1又は複数の出力をユーザに提示することができる1又は複数のディスプレイを含むことができる。例えば、1又は複数のディスプレイは:ブラウン管ディスプレイ(「CRT」)、発光ダイオードディスプレイ(「LED」)、電子発光ディスプレイ(「ELD」)、プラズマディスプレイパネル(「PDP」)、液晶ディスプレイ(「LCD」)、有機発光ダイオードディスプレイ(「OLED」)、それらの組み合わせ、及び/又は同様のものを含むことができるが、これらに限定されるものではない。
【0035】
様々な実施形態において、1又は複数の入力デバイス106及び/又は1又は複数のネットワーク104は、1又は複数の設定及び/又はコマンドをシステム100に入力するために利用することができる。例えば、本明細書に説明された様々な実施形態において、1又は複数の入力デバイス106は、サーバ102及び/又は関連コンポーネントを動作及び/又は操作するために利用することができる。加えて、1又は複数の入力デバイス106は、サーバ102及び/又は関連コンポーネントによって生成された1又は複数の出力(例えば、ディスプレイ、データ、視覚化、及び/又は同様のもの)を表示するために利用することができる。さらに、1又は複数の実施形態では、1又は複数の入力デバイス106は、クラウドコンピューティング環境内に備えられることができ、及び/又は当該クラウドコンピューティング環境に動作可能に結合されることができる。
【0036】
例えば、1又は複数の実施形態において、1又は複数の入力デバイス106は、1又は複数のメモリ116に記憶され得る1又は複数のトレーニングデータセット122(例えば、1又は複数のソースコードサンプル123を含む)をシステム100に入れるために利用され得る。さらに、トレーニング拡張コンポーネント110は、1又は複数のAIモデル124(例えば、1又は複数のソースコード理解タスク)をトレーニングすべく、1又は複数のトレーニングデータセットを利用し得る。例えば、1又は複数のトレーニングデータセット122は、1又は複数のソースコードサンプル123を含み得る。1又は複数の実施形態において、1又は複数の入力デバイス106はまた、1又は複数のメモリ116に記憶されること及び/又はトレーニング拡張コンポーネント110によってトレーニングされることができる1又は複数のAIモデル124をシステム100に入れるために利用され得る。さらに、様々な実施形態において、1又は複数の入力デバイス106は、AIモデル124のトレーニングの1又は複数の設定及び/又はパラメータを定義するために利用され得る。様々な実施形態において、通信コンポーネント112は、1又は複数の入力(例えば、1又は複数の入力デバイス106を介してシステム100に入る)を、本明細書に説明された1又は複数の実施形態に従って、トレーニング拡張コンポーネント110の関連コンポーネントと共有し得る。
【0037】
様々な実施形態において、1又は複数のAIモデル124は、1又は複数の機械学習タスクを容易にするために使用され得る。1又は複数の実施形態において、AIモデル124は、抽象的なバージョンのニューロンに類似し得るいくつかの相互接続処理ユニットをシミュレートし得る。例えば、処理ユニットは、変動する接続強度(例えば、当技術分野において「重み」と一般的に言及され得る)によって接続された複数の層(例えば、1又は複数の入力層、1又は複数の隠れ層、及び/又は1又は複数の出力層)において配置され得る。AIモデル124は、トレーニングを介して学習し得、ここで、既知の成果を有するデータはコンピュータモデルに入力され、データに関する出力は既知の成果と比較され、及び/又は、コンピュータモデルの重みは既知の成果を複製するために比較に基づいて自律的に調整される。1又は複数のAIモデル124がトレーニングを行うと、コンピュータモデルはますます正確になり得、したがって、トレーニングされたAIモデル124は、トレーニングデータからのレッスン学習に基づいて、未知の成果を有するデータを正確に分析して、1又は複数の機械学習タスクを容易にし得る。AIモデル124の例は、限定されないが、パーセプトロン(「P」)、フィードフォワード(「FF」)、動径基底ネットワーク(「RBF」)、深層フィードフォワード(「DFF」)、リカレントニューラルネットワーク(「RNN」)、長/短期記憶(「LSTM」)、ゲート付き回帰型ユニット(「GRU」)、オートエンコーダ(「AE」)、変分AE(「VAE」)、ノイズ除去AE(「DAE」)、スパースAE(「SAE」)、マルコフ連鎖(「MC」)、ホップフィールド・ネットワーク(「HN」)、ボルツマン・マシン(「BM」)、ディープ・ビリーフ・ネットワーク(「DBN」)、深層畳み込みネットワーク(「DCN」)、逆畳み込みネットワーク(「DN」)、深層畳み込みインバース・グラフィックス・ネットワーク(「DCIGN」)、敵対的生成ネットワーク(「GAN」)、液体状態マシン(「LSM」)、エクストリーム・ラーニング・マシン(「ELM」)、エコー状態ネットワーク(「ESN」)、深層残差ネットワーク(「DRN」)、コホーネン・ネットワーク(「KN」)、サポート・ベクター・マシン(「SVM」)、及び/又はニューラル・チューリング・マシン(「NTM」)を含み得る。
【0038】
1又は複数の実施形態において、トレーニング拡張コンポーネント110は、1又は複数のAIモデル124のトレーニングを容易にすべく、1又は複数のトレーニングデータセット122を拡張し得る。例えば、トレーニング拡張コンポーネント110は、1又は複数の簡略化アルゴリズムを実行することで1又は複数のトレーニングデータセット122から簡略化されたソースコードサンプル126を生成し得る簡略化コンポーネント114を含み得る。図1に示されたように、1又は複数の実施形態において、簡略化コンポーネント114によって生成された簡略化されたソースコードサンプル126は、例えば1又は複数のメモリ116に記憶され得る。様々な実施形態において、1又は複数の簡略化されたソースコードサンプル126は、1又は複数のトレーニングデータセット122に含まれた親ソースコードサンプル123から導出されたより小さなサンプルであり得、それによって、トレーニング拡張コンポーネント110は、1又は複数のトレーニングデータセット122から1又は複数のAIモデル124をトレーニングするために利用されたトレーニングサンプルの数を増加させ得る。
【0039】
例えば、簡略化コンポーネント114は、1又は複数のトレーニングデータセット122内に含まれたソースコードサンプル123を、単一の簡略化されたソースコードサンプル126に簡略化し得る。別の例において、簡略化コンポーネント114は、1又は複数のトレーニングデータセット122内に含まれた単一のソースコードサンプル123を、複数の簡略化されたソースコードサンプル126に簡略化し得る。1又は複数の実施形態において、簡略化コンポーネント114は、1又は複数のトレーニングデータセット122内に含まれたソースコードサンプル123を、サイズに基づいて、複数の簡略化されたソースコードサンプル126に簡略化し得、ここで、ソースコードサンプル123から生成された簡略化されたソースコードサンプル126の数は、ソースコードサンプル123のサイズが大きくなるほど増加し得る。例えば、1又は複数のトレーニングデータセット122からのソースコードサンプル123が増加すると、簡略化コンポーネント114は、1又は複数の簡略化アルゴリズムを介して追加の縮小反復を実行して、結果として、より多くの簡略化されたソースコードサンプル126をもたらし得る。
【0040】
さらに、簡略化コンポーネント114は、1又は複数のトレーニングデータセット122内に含まれたソースコードサンプル123の各々、又は、1又は複数のトレーニングデータセット122内に含まれたソースコードサンプル123の一部を簡略化し得る。例えば、1又は複数の実施形態において、簡略化コンポーネント114は、全ての、又は実質的に全ての、1又は複数のトレーニングデータセット122内に含まれたソースコードサンプル123を簡略化し得る。別の例において、1又は複数の実施形態において、簡略化コンポーネント114は、コードの複雑性、又は、定義された閾値(例えば、1又は複数のコードの複雑性のメトリックによって定義された)より大きいサイズを有する1又は複数のトレーニングデータセット122内に含まれたソースコードサンプル123を簡略化し得る。
【0041】
様々な実施形態において、簡略化コンポーネント114は、1又は複数のAIモデル124によって実行されるべきソースコード理解タスクのタスク関連特徴を保持する縮小されたサンプル(例えば、簡略化されたソースコードサンプル126)を生成しながらソースコードサンプル123の入力を縮小し得る任意の簡略化アルゴリズムを利用し得る。例示的な簡略化アルゴリズムは、限定されないが、ナイーブな方式で、ランダム化方式で、総当たり方式で、又は拡張可能縮小スキーム(例えば、デルタデバッギングアルゴリズム等)を介して、ソースコードサンプル123からトークン及び/又はステートメントをドロップし得るアルゴリズムを含み得る。
【0042】
例えば、簡略化コンポーネント114は、デルタデバッギングアルゴリズムを利用して、1又は複数の簡略化されたソースコードサンプル126を生成し得るが、しかしながら、簡略化コンポーネント114のアーキテクチャは、デルタデバッギングアルゴリズムの利用に限定されるものではない。簡略化コンポーネント114は、簡略化アルゴリズム(例えば、デルタデバッギングアルゴリズム)を利用して、所与のソースコードサンプル123によって確立されたタスクプロファイルを維持(例えば、脆弱性検出設定の場合において健全なコード又は欠陥のあるコードの脆弱性プロファイルを維持)しながら、1又は複数のトレーニングデータセット122からの所与のソースコードサンプル123を連続的に簡略化し得る。例えば、簡略化コンポーネント114は、1又は複数の簡略化アルゴリズムを利用して、簡略化手順の対象となるソースコードサンプル123からソースコードトークンを反復的に除去し得、ここで、ソースコードトークン除去の各反復は、それぞれの簡略化されたソースコードサンプル126を生成し得る。様々な実施形態において、簡略化コンポーネント114は、例えば:二分探索(例えば、デルタデバッギングアルゴリズムを介した)に類似したスマート縮小、線形手法(例えば、複数の反復を介して一度に1つずつトークンを除去する)、ランダム化手法(例えば、ここでトークンは除去のためにソースコードサンプル123からランダムに選択される)、マルチトークンレベルでの動作、ステートメントレベルでの動作、マルチステートメントレベルでの動作、それらの組み合わせ、及び/又は同様のものに基づいて、トークンを除去し得る。少なくとも、簡略化されたソースコードサンプル126はトレーニングデータセット122からのソースコードサンプル123の縮小なので、簡略化されたソースコードサンプル126は、1又は複数のトレーニングデータセット122より少ないノイズデータを含み得る。
【0043】
図2は、本明細書に説明された1又は複数の実施形態に従って、検証コンポーネント202及び/又はラベラーコンポーネント204をさらに含む例示的且つ非限定的なシステム100の図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。様々な実施形態において、簡略化されたソースコードサンプル126は、検証コンポーネント202及び/又はラベラーコンポーネント204によって分析され得る簡略化コンポーネント114によって生成されて、1又は複数のトレーニングデータセット122を拡張するための好適な候補を識別する。
【0044】
1又は複数の実施形態において、検証コンポーネント202は、簡略化されたソースコードサンプル126が正しい(例えば、コンパイル及び/又は実行可能)かどうかを決定し得る。例えば、検証コンポーネント202は、簡略化されたソースコードサンプル126がコンパイル及び/又は実行され得るかどうかを決定し得る。例えば、簡略化コンポーネント114は、縮小(例えば、ソースコードトークン縮小)が、結果として得られる簡略化されたソースコードサンプル126を正しくない(例えば、コンパイル不可及び/又は実行不可)ようにするかどうかにかかわらず、簡略化されたソースコードサンプル126を生成し得る。検証コンポーネント202は、簡略化コンポーネント114によって実行された縮小の後に、正しいままである簡略化されたソースコードサンプル126を識別し得る。例えば、検証コンポーネント202はコンパイラであり得、ここで、有効な簡略化されたソースコードサンプル126は、コンパイルされることが可能(例えば、コンパイルされた簡略化されたソースコードサンプル126が、それが導出された親ソースコードサンプル123とは異なる方式で動作する場合でも)であり得、無効な簡略化されたソースコードサンプル126はコンパイルされることが不可能であり得る。様々な実施形態において、トレーニング拡張コンポーネント110は、無効な簡略化されたソースコードサンプル126を破棄し得、その結果、無効な簡略化されたソースコードサンプル126は、1又は複数のトレーニングデータセット122の拡張には存在しないようにされ得る。別の例において、検証コンポーネント202は、親ソースコードサンプル123の主要な態様(例えば、API呼び出し、コード変数、及び/又は同様のものの他の構築)が維持されることを確実にすべく、(例えば、1又は複数の入力デバイス106によって定義された1又は複数の設定を介して)調整され得る。
【0045】
1又は複数の実施形態において、有効な簡略化されたソースコードサンプル126はさらに、有効な簡略化されたソースコードサンプル126が、有効な簡略化されたソースコードサンプル126が導出された1又は複数の親ソースコードサンプル123と同じタスクプロファイルを有するかどうかを決定すべく、ラベラーコンポーネント204によって分析され得る。1又は複数の実施形態において、ラベラーコンポーネント204は:1又は複数のトレーニングデータセット122に含まれたラベラーコンピュータロジックを含むこと;ラインベースのコード特徴マッチング(例えば、簡略化されたソースコードサンプル126を、1又は複数のトレーニングデータセット122からの親ソースコードサンプル123と比較する)を利用することができ;静的解析器を含むこと、ファズテストアルゴリズムを含むこと、内容領域専門家によって容易にされることができ;それらの組み合わせ、及び/又は同様のことができる。さらに、ラベラーコンポーネント204は、親ソースコードサンプル123と同じタスクプロファイルを示す有効な簡略化されたソースコードサンプル126をラベル付けし得る。例えば、簡略化されたソースコードサンプル126は、親ソースコードサンプル123と同じタスクプロファイルを示し得、ここで簡略化されたソースコードサンプル126の生成は1又は複数の新たな欠陥の生成を回避する。例えば、簡略化されたソースコードサンプル126は、親ソースコードサンプル123と同じタスクプロファイルを示し得、ここで、簡略化されたソースコードサンプル126は:欠陥から自由であるか;又は、1又は複数の欠陥又は他のタスク関連特徴を含むが、上記1又は複数の欠陥又は他のタスク関連特徴は、親ソースコードサンプル123にも存在する。それらが由来する親ソースコードサンプル123とは異なるタスクプロファイルを示す簡略化されたソースコードサンプル126は、親ソースコードサンプル123には存在しない1又は複数の欠陥を含み得る。1又は複数の実施形態において、ラベラーコンポーネント204は、親ソースコードサンプル123と同じタスクプロファイルを示すそれらの簡略化されたソースコードサンプル126を記憶する(例えば、及び/又はそれに従ってラベル付けする)ことができる。1又は複数の実施形態において、ラベラーコンポーネント204は、親ソースコードサンプル123とは異なるタスクプロファイルを示すそれらの簡略化されたソースコードサンプル126を記憶する(例えば、及び/又はそれに従ってラベル付けする)ことができる。
【0046】
様々な実施形態において、ラベラーコンポーネント204によって実行されるラベル付けは、1又は複数のAIモデル124によって実行されるべき機械学習タスクに基づき得る。例えば、ラベラーコンポーネント204は、1又は複数のAIモデル124のタスクによって定義された1又は複数のラベル付けスキームに従って(例えば、タスク固有のオラクルコードに従って)、簡略化されたソースコードサンプル126(例えば、有効である及び/又は親ソースコードサンプル123のタスクプロファイルを維持すると決定された)をラベル付けし得る。例えば、脆弱性タスクに関して、ラベラーコンポーネント204は、定義された脆弱性を含む簡略化されたソースコードサンプル126を「1」で、定義された脆弱性が欠如している簡略化されたソースコードサンプル126を「0」でラベル付けし得る。1又は複数の実施形態において、ラベラーコンポーネント204によって利用されたラベルパラメータは、1又は複数のAIモデル124によって実行されるべきタスクに基づいて、(例えば、1又は複数の入力デバイス106を介して)カスタマイズされ得る。加えて、1又は複数の実施形態において、ラベラーコンポーネント204は、簡略化されたソースコードサンプル126に割り当てられた生成されたラベルに関連付けられた1又は複数の信頼度値を決定し得る。
【0047】
例えば、ラベラーコンポーネント204は:簡略化されたソースコードサンプル126が、同じ欠陥を含むか、又は、1又は複数の簡略化されたソースコードサンプル126が導出された1又は複数のソースコードサンプル123の、所与のソースコード理解タスクに関連した他の特徴を含むか;欠陥から自由であるか;又は、新たな欠陥(例えば、簡略化されたソースコードサンプル126が導出された1又は複数のソースコードサンプル123と比較した)を含むかを決定し得る。簡略化されたソースコードサンプル126に欠陥が存在しない場合、ラベラーコンポーネント204は、簡略化されたソースコードサンプル126がタスクプロファイルを維持すると決定し得、タスクベースのラベル付けスキームに従って簡略化されたソースコードサンプル126をラベル付けし得る。簡略化されたソースコードサンプル126が1又は複数の欠陥を含み、上記1又は複数の欠陥が、簡略化されたソースコードサンプル126が由来するソースコードサンプル123内にも含まれた場合;ラベラーコンポーネント204は、簡略化されたソースコードサンプル126がタスクプロファイルを維持すると決定し得、タスクベースのラベル付けスキームに従って、簡略化されたソースコードサンプル126をラベル付けし得る。簡略化されたソースコードサンプル126が、簡略化されたソースコードサンプル126が由来するソースコードサンプルの内に含まれていない1又は複数の欠陥を含む場合;ラベラーコンポーネント204は、簡略化されたソースコードサンプル126が親ソースコードサンプル123と異なるタスクプロファイルを有すると決定し得、これは、簡略化されたソースコードサンプル126を、1又は複数のトレーニングデータセット122の拡張に不適切なものにし得る。それによって、ラベラーコンポーネント204は、トレーニング拡張コンポーネント110によって実行される1又は複数のトレーニングデータセット122の拡張が、新たな欠陥(例えば、1又は複数のトレーニングデータセット122と比較して)を1又は複数のAIモデル124のトレーニングに導入することを回避し得ることを確実にし得る。
【0048】
図3は、本明細書に説明された1又は複数の実施形態に従って、1又は複数のトレーニングデータセット122からの例示的なソースコードサンプル123、及び/又は、検証コンポーネント202及び/又はラベラーコンポーネント204によって分析され得る簡略化されたソースコードサンプル126を含み得る例示的且つ非限定的な表300の図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。ソースコードサンプル#1は、脆弱性検出タスクにおいて1又は複数のAIモデル124をトレーニングするための1又は複数のトレーニングデータセット122からの例示的なソースコードサンプルであり得る。本明細書に説明された様々な実施形態に従って、トレーニング拡張コンポーネント110によって実行された簡略化、認証、及び/又はラベル付けは、ソースコードサンプル123又はソースコード理解タスクの特定のタイプに限定されるものではない。
【0049】
図3に示されたように、例示的なソースコードサンプル#2から#22は、簡略化コンポーネント114によって生成される例示的な簡略化されたソースコードサンプル126であり得る。例えば、簡略化コンポーネント114は、例示的なソースコードサンプル#2~#3を生成すべく、例示的なソースコードサンプル#1を半分に縮小し得る。加えて、簡略化コンポーネント114は、例示的な簡略化されたソースコードサンプル#3~#22を生成すべく、例示的なソースコードサンプル#1から1又は複数のトークンを除去し得る。例えば、簡略化コンポーネント114は、トークンレベルの縮小に到達すべく、より細かい粒度で例示的なソースコードサンプル#1を反復的に縮小し得る。
【0050】
検証コンポーネント202は、例示的なソースコードサンプル#1~#22(例えば、簡略化されたソースコードサンプル126を含む)のコンパイルを試み得る。簡略化されたソースコードサンプル126がコンパイルされ得る場合、検証コンポーネント202は、ソースコードサンプル126が有効であると決定し得る(例えば、表300におけるチェックマークによって示されるように)。簡略化されたソースコードサンプル126がコンパイルされることができない場合、検証コンポーネント202は、ソースコードサンプル126が無効であると決定し得る(例えば、表300における「X」によって示されるように)。図3に示されたように、検証コンポーネント202は、例示的なソースコードサンプル#13及び#22が有効な簡略化されたソースコードサンプル126であり得、その一方、例示的なソースコードサンプル#2~#5及び#21は無効な簡略化されたソースコードサンプル126であり得ると決定し得る。
【0051】
さらに、ラベラーコンポーネント204は、本明細書に説明された様々な実施形態に従って、例示的なソースコードサンプル#2から#22(例えば、簡略化されたソースコードサンプル126)が例示的なソースコードサンプル#1(例えば、親ソースコードサンプル123)と同じタスクプロファイルを示し得るかどうかを決定し得る。例えば、ラベラーコンポーネント204は、有効な簡略化されたソースコードサンプル#13及び#22がソースコードサンプル#1のタスクプロファイルを維持すると決定し得、これは、少なくとも、例示的な簡略化されたソースコードサンプル#13及び#22に欠陥が欠如している、及び/又は、例示的なソースコードサンプル#1にも存在する欠陥が含まれているからである。さらに、ラベラーコンポーネント204は、簡略化されたソースコードサンプル126が1又は複数の定義された脆弱性を含むかどうかに基づいて、例示的なソースコードサンプル#13及び#22をラベル付けし得る。
【0052】
図4は、本明細書に説明された1又は複数の実施形態に従って、データセットコンポーネント402をさらに含む例示的且つ非限定的なシステム100の図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。様々な実施形態において、データセットコンポーネント402は、検証コンポーネント202及び/又はラベラーコンポーネント204によって有効である及び/又は好適であると決定された簡略化されたソースコードサンプル126を利用することで1又は複数の拡張されたトレーニングデータセット404を生成し得る。
【0053】
例えば、拡張されたトレーニングデータセット404は:1又は複数のトレーニングデータセット122の全ての又は実質的に全てのソースコードサンプル123と組み合わせて有効であると見られる、及び/又は、ラベル付けされた、全ての又は実質的に全ての簡略化されたソースコードサンプル126;1又は複数のトレーニングデータセット122のソースコードサンプル123の一部と組み合わせて有効であると見られる及び/又はラベル付けされた、全ての又は実質的に全ての簡略化されたソースコードサンプル126;1又は複数のトレーニングデータセット122の全ての又は実質的に全てのソースコードサンプル123と組み合わせて有効であると見られる及び/又はラベル付けされた簡略化されたソースコードサンプル126の一部;1又は複数のトレーニングデータセット122のソースコードサンプル123の一部と組み合わせて有効であると見られる及び/又はラベル付けされた簡略化されたソースコードサンプル126の一部;及び/又は、単に有効であると見られる及び/又はラベル付けされた簡略化されたソースコードサンプル126を含み得る。
【0054】
例えば、データセットコンポーネント402は、トレーニングデータセット122のソースコードサンプル123を、有効であると(例えば、検証コンポーネント202及び/又はラベラーコンポーネント204を介して)決定された及び/又は1又は複数の拡張されたトレーニングデータセット404を生成するようにラベル付けされた簡略化されたソースコードサンプル126と組み合わせることによって1又は複数のAIモデル124をトレーニングする間の過学習を縮小し得る。例えば、ラベル付けされた及び/又は検証された簡略化されたソースコードサンプル126を1又は複数のトレーニングデータセット122に追加することは、トレーニングデータセット122によって元々提供されていたそれよりも多くのトレーニングサンプルを含む1又は複数の拡張されたトレーニングデータセット404を生成し得る。トレーニングサンプルの追加量は、1又は複数のAIモデル124のトレーニングに含まれるノイズデータのパーセンテージを縮小すること、及び/又は、トレーニングデータセット122のタスク関連態様の学習において1又は複数のAIモデル124を容易にすることができる。
【0055】
別の例において、データセットコンポーネント402は、少数分類された簡略化されたソースコードサンプル126(例えば、有効である及び/又は好適であると決定された)を1又は複数のトレーニングデータセット122に追加することで1又は複数の拡張されたトレーニングデータセット404を生成することによって、1又は複数のAIモデル124のトレーニング中のクラス不均衡を縮小し得る。例えば、1又は複数のトレーニングデータセット122の内に含まれたソースコードサンプル123は、2又はそれより多くのクラスに分類され得、ここで、ソースコードサンプル123の分布は、クラス間の不均衡であり得る。上記不均衡を縮小すべく、データセットコンポーネント402は、過疎したクラスに属しているとラベル付けされた有効な簡略化されたソースコードサンプル126を1又は複数のトレーニングデータセット122に追加して、1又は複数の拡張されたトレーニングデータセット404を生成し得、ここで、他のクラスに属しているとラベル付けされた有効な簡略化されたソースコードサンプル126は、1又は複数の拡張されたトレーニングデータセット404から外され得る。
【0056】
図5は、本明細書に説明された1又は複数の実施形態に従って、モデルトレーニングコンポーネント502をさらに含む例示的且つ非限定的なシステム100の図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。様々な実施形態において、モデルトレーニングコンポーネント502は、1又は複数のソースコード理解タスク(例えば、1又は複数の入力デバイス106を介して定義された)のために、1又は複数の拡張されたトレーニングデータセット404及び/又はトレーニングデータセット122上で1又は複数のAIモデル124をトレーニングし得る。
【0057】
1又は複数の実施形態において、1又は複数の拡張されたトレーニングデータセット404は、1又は複数のトレーニングデータセット122からのソースコードサンプル123、及び、検証された及び/又はラベル付けされた簡略化されたソースコードサンプル126を含み得;ここで、モデルトレーニングコンポーネント502は、1又は複数のAIモデル124をトレーニングすべく、1又は複数の拡張されたトレーニングデータセット404からランダムにサンプリングし得る。代替的に、モデルトレーニングコンポーネント502は、ソースコードサンプル123及び/又は簡略化されたソースコードサンプル126の1又は複数のパラメータに基づいて、拡張されたトレーニングデータセット404からサンプリングし得る。例えば、モデルトレーニングコンポーネント502は、ノイズデータコンテンツ、コードの複雑性、サイズ、クラスラベル、信頼度値、それらの組み合わせ、及び/又は同様のものに基づいて、1又は複数の拡張されたトレーニングデータセット404からサンプリングし得る。例えば、モデルトレーニングコンポーネント502は、1又は複数の拡張されたトレーニングデータセット404をサンプリングし、その結果、サンプルは、最も小さいものから最も大きいものへのプログレッシブ順序で、1又は複数のAIモデル124に供給され得る。別の例において、モデルトレーニングコンポーネント502は、1又は複数の拡張されたトレーニングデータセット404をサンプリングし、その結果、サンプルは、最小コード複雑性から最大コード複雑性へのプログレッシブ順序で、1又は複数のAIモデル124に供給され得る。
【0058】
1又は複数の実施形態において、1又は複数の拡張されたトレーニングデータセット404は、検証された及び/又はラベル付けされた簡略化されたソースコードサンプル126を単に含み得;ここで、モデルトレーニングコンポーネント502は、1又は複数の拡張されたトレーニングデータセット404からランダムにサンプリングすることに加えて、1又は複数のトレーニングデータセット122からサンプリングし得る。1又は複数の実施形態において、1又は複数の拡張されたトレーニングデータセット404は、検証された及び/又はラベル付けされた簡略化されたソースコードサンプル126を単に含み得;ここで、モデルトレーニングコンポーネント502は、単に1又は複数の拡張されたトレーニングデータセット404から(例えば、ランダムに又はプログレッシブ順序に従って)サンプリングし得る。
【0059】
図6は、本明細書に説明された1又は複数の実施形態に従って、トレーニング拡張コンポーネント110によって実行され得る例示的且つ非限定的な訓練スキーム600の図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。訓練スキーム600は、本明細書に説明された特徴の組み合わせを示してトレーニング拡張コンポーネント110の動作を例示するが;しかしながら、トレーニング拡張コンポーネント110のアーキテクチャはそのように限定されるものではない。例えば、訓練スキーム600は、ソースコードサンプル123の反復的な縮小を示しているが;しかしながら、ソースコードサンプル123は、本明細書に説明された1又は複数の実施形態に従って、単一の縮小を介して又は互いに独立した複数の縮小を介して縮小され得る。別の例において、訓練スキーム600は、トレーニングデータセット122及び簡略化されたソースコードサンプル126を組み合わせることによってトレーニングデータセット122を拡張することを示しているが;しかしながら、トレーニングデータセット122及び簡略化されたソースコードサンプル126は、本明細書に説明された1又は複数の実施形態に従って互いから独立してサンプリングされることもできる。
【0060】
602において、トレーニング拡張コンポーネント110は、1又は複数のトレーニングデータセット122から1又は複数のソースコードサンプル123を取得して、1又は複数の後続の簡略化、認証、及び/又はラベル付けプロセスのための最初のソースコードサンプル入力604としてサービス提供し得る。606において、トレーニング拡張コンポーネント110は、ソースコードサンプル入力604を、簡略化コンポーネント114と共有し得る。本明細書に説明された様々な実施形態に従って、簡略化コンポーネント114は、1又は複数の簡略化アルゴリズムを実行して、ソースコードサンプル入力604を簡略化されたソースコードサンプル126に縮小し得る。608において、トレーニング拡張コンポーネント110は、簡略化されたソースコードサンプル126を、検証コンポーネント202と共有し得る。本明細書に説明された様々な実施形態に従って、検証コンポーネント202は、簡略化されたソースコードサンプル126の正確性を検証(verify)し得る。例えば、検証コンポーネント202は、簡略化されたソースコードサンプル126をコンパイルすることを試み得;ここで、コンパイルされ得る簡略化されたソースコードサンプル126は有効であり、コンパイルしない簡略化されたソースコードサンプル126は無効である。
【0061】
610において、簡略化されたソースコードサンプル126は有効であると決定されており、トレーニング拡張コンポーネント110は、有効な簡略化されたソースコードサンプル126を、ラベラーコンポーネント204と共有し得る。本明細書に説明された様々な実施形態に従って、ラベラーコンポーネント204は、有効な簡略化されたソースコードサンプル126がソースコードサンプル入力604のタスクプロファイルを維持するという決定に基づいて、1又は複数のラベル付けスキームを介して、有効な簡略化されたソースコードサンプル126をラベル付けし得る。612において、トレーニング拡張コンポーネント110は、ラベル付け及び検証された簡略化されたソースコードサンプル126を、データセットコンポーネント402と共有し得る。また、614において、トレーニング拡張コンポーネント110は、検証及びラベル付けされた簡略化されたソースコードサンプル126のコピーを、次の縮小の反復及び/又は簡略化されたソースコードサンプル126の生成のためのソースコードサンプル入力604として利用し得る。616において、モデルトレーニングコンポーネント502は、1又は複数のAIモデル124をトレーニングすべく、1又は複数のトレーニングデータセット122、及び/又は、1又は複数のラベル付けされた及び/又は有効な簡略化されたソースコードサンプル126からサンプリングし得る。
【0062】
本明細書に説明された様々な実施形態の有効性を示すべく、システム100は、複数のデータセットに対する脆弱性検出の使用事例に関して利用されているが、しかしながら、様々な実施形態は、他のソースコード理解タスクに適用可能である。システム100の有効性を示すために利用された例示的なトレーニングデータセット122は:s‐bAbI合成データセット(「s‐bAbI」)、ジュリエットテストスイート(「Juliet」)、及びD2Aデータセットを含む。s‐bAbI、Juliet、及びD2Aデータセットは、本明細書に説明された様々な実施形態の有効性を示すために利用されているが、しかしながら、トレーニング拡張コンポーネント110の特徴は、例示的なs‐bAbI、Juliet、及びD2Aデータセットに限定されるものではなく、むしろ、他のソースコードデータセットが分析され得る。s‐bAbIは、バッファオーバーフロー脆弱性に焦点を当てた些細でない制御フローを有する構文的に有効なCプログラムを含む。脆弱性検出タスクの目的のために、s‐bAbI生成器はデータセットを作成するために使用され得、ここで、「UNSAFE」タグを有するサンプルは1でラベル付けされ得、「SAFE」タグを有するサンプルは0でラベル付けされ得る。Julietデータセットは、静的解析器をテストするために設計された、様々な脆弱性タイプを有する合成例を含む。Julietテストケースから、「悪い(bad)」としてタグ付けされ且つJulietのmanifest.xmlにより明確なバグ情報を有するサンプルは、「良い(good)」でタグ付けされたサンプルが0としてラベル付けされ得る一方、1としてラベル付けされ得る。D2Aデータセットは、複数のGithubプロジェクト‐OpenSSL、FFMpeg、HTTPD、Nginx、及びlibtiffを介して構築された現実世界の脆弱性検出データセットである。D2Aデータセットは、バグ修正コミットの前後に、連続したレポジトリバージョンのインファー静的解析器の出力上において差分分析を使用した導出された、詳細なトレースレベルのバグ情報を含む。D2Aトレースからの関数レベルのサンプル抽出は、(例えば、修正前コミットから)1としてラベル付けされたトレーニング関数、及び(例えば、修正後コミットから)0としてラベル付けされたトレーニング関数をもたらし得る。さらに、1又は複数の実施形態において、畳み込みニューラルネットワーク(「CNN」)、リカレントニューラルネットワーク(「RNN」)、及び/又はグラフニューラルネットワーク(「GNN」)AIモデル124は、システム100の有効性を示すために利用され得る。
【0063】
図7図8は、本明細書に説明された1又は複数の実施形態に従って、トレーニング拡張コンポーネント110の有効性を示し得る例示的且つ非限定的なグラフ704、802及び/又は804の図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。トレーニング拡張コンポーネント110は、トレーニングデータセット122のファクタとして、s‐bAbIの9倍サンプル、Julietの9.6倍サンプル、及びD2Aの53倍を含む拡張されたトレーニングデータセット404を生成し得る。拡張レベルの変動は、トレーニングデータセット122内に含まれたソースコードサンプル123のサイズにおける差が原因であり得る。例えば、ソースコードサンプル入力604が大きいほど、より多くの縮小反復が簡略化コンポーネント114により実行され得;それによって、潜在的により多くの有効な及び/又はラベル付けされた簡略化されたソースコードサンプル126を結果としてもたらす。
【0064】
図7に示されたように、より多くの装入された拡張されたトレーニングデータセット404によって1又は複数のAIモデル124をトレーニングすることは、モデル性能を強化し得る。例えば、グラフ704は、拡張されたJulietデータセットのランダムなサンプリングでトレーニングされたGNNモデル124に関する。信号認識再呼び出しメトリック(signal‐aware recall metric)は、トレーニング拡張コンポーネント110を介して達成され得る、AIモデル124の性能の向上を示すために使用され得る。信号認識再呼び出しメトリックは、AI‐for‐codeモデルの信号認識を測定するために使用され得る。例えば、脆弱性検出タスクの文脈において、再呼び出し測定は、モデルが正しく予測する脆弱なサンプルの割合を測定し得る一方、信号認識再呼び出しメトリックは、それらの場合のうちどれほど多くにおいて、予測に到達するために正しい信号をモデルが捕捉するかを測定し得る。例えば、脆弱性検出の文脈において、信号認識再呼び出しメトリックは、AIモデル124が正しく予測(例えば、タスク関連信号を使用して)する脆弱なサンプルの割合を測定し得る。グラフ704のx軸は、生成されたセットからランダムに選択され、ベースラインモデル性能を参照する左端点(例えば、x=0)を有するトレーニングデータセット122に追加されたサンプルの割合を(例えば、ベースデータセットサイズのパーセンテージで)示す。加えて、トレーニング拡張コンポーネント110は、例えば:精度、F1値、平均精度(例えば、PR‐AUC)、それらの組み合わせ、及び/又は同様のもの等の他の評価メトリックに関してのAIモデル124の性能を向上させ得る。図7に示されたように、モデル性能における利得は、より多くの拡張とともに継続し得る。目前のタスクに関連した特性を依然として含みながらより小さなサンプルを有するAIモデル124を提示することによって、AIモデル124は、ソースコードサンプル123のタスク関連態様に対してはより多く焦点を当てるように、ノイズデータ又はデータセットニュアンスに対してはより少なく焦点を当てるようにトレーニングされ得る。
【0065】
グラフ802及び/又は804は、トレーニング拡張コンポーネント110によって達成可能な強化AIモデル124の性能は、サンプル集団を単に増大するより多くに帰属し得ることを例示する。例えば、図8は、s‐bAbIデータセットのいくつかの代表的な拡張レベルについて、トレーニング拡張コンポーネント110によって実行された拡張と比較して一般的な拡張で取得される信号認識再呼び出し値を示す。図8に示されたように、モデル性能における利得は、より多くの拡張とともに継続され得、信号認識再呼び出しは、50%の拡張でその達成可能な最大のほぼ96%に到達しており、単にトレーニングデータセット122を用いたAIモデル124のトレーニングより113%の向上に達している。図8にも示されるように、サンプル集団を増加させるための一般的な拡張は、AIモデル124の性能に対して(例えば、信号認識再呼び出しメトリックに関して)ほとんど効果がない場合がある。これに対して、トレーニングデータセット122を拡張することで有効な及び/又はラベル付けされた簡略化されたソースコードサンプル126をさらにサンプリングすることは、AIモデル124の性能を著しく向上させ得る。加えて、グラフ804に示されたように、向上した性能は、多種多様なAIモデル124のタイプにわたって達成され得る。
【0066】
図9は、本明細書に説明された1又は複数の実施形態に従って、1又は複数の拡張されたトレーニングデータセット404上で、1又は複数の拡張されたトレーニングデータセット404を生成すること及び/又は1又は複数のAIモデル124をトレーニングすることを容易にし得る例示的且つ非限定的なコンピュータ実装方法900のフロー図を示す。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。
【0067】
902において、コンピュータ実装方法900は、1又は複数のソースコードサンプル123を含み得る1又は複数のトレーニングデータセット122を、プロセッサ120に動作可能に結合されたシステム100によって(例えば、通信コンポーネント112を介して)受け取る段階を含む。例えば、1又は複数のトレーニングデータセット122は、1又は複数の入力デバイス106を介してシステム100に入れられ得る。904において、コンピュータ実装方法900は、1又は複数のトレーニングデータセット122の1又は複数のソースコードサンプル123を縮小することによって、1又は複数の簡略化されたソースコードサンプル126を生成し得る1又は複数の簡略化アルゴリズムを、システム100によって(例えば、簡略化コンポーネント114を介して)実行し得る。例えば、1又は複数の簡略化されたソースコードサンプル126は、1又は複数のトレーニングデータセット122の1又は複数のソースコードサンプル123から1又は複数の部分を抽出することによって生成され得る。別の例において、1又は複数の簡略化されたソースコードサンプル126は、1又は複数のトレーニングデータセット122の1又は複数のソースコードサンプル123から1又は複数のトークンを除去することによって生成され得る。さらなる例において、1又は複数の簡略化されたソースコードサンプル126は、本明細書に説明された様々な実施形態に従って、1又は複数のトレーニングデータセット122のソースコードサンプル123の1又は複数の反復的な縮小を介して生成され得る。
【0068】
906において、コンピュータ実装方法900は、1又は複数の簡略化されたソースコードサンプル126の正確性を、システム100によって(例えば、検証コンポーネント202)を介して)検証する段階を含み得る。例えば、906における検証する上記段階は、1又は複数の簡略化されたソースコードサンプル126をコンパイルする試みを含み得る。コンパイルされ得る簡略化されたソースコードサンプル126は、正しい及び/又は有効であると決定され得、その一方、コンパイルできない簡略化されたソースコードサンプル126は、正しくない及び/又は無効であると決定され得る。908において、コンピュータ実装方法900は、タスクベースのラベル付けスキームを介して、1又は複数の簡略化されたソースコードサンプル126を、システム100によって(例えば、ラベラーコンポーネント204を介して)ラベル付けする段階を含み得る。例えば、親ソースコードサンプル123のタスクプロファイルを維持する簡略化されたソースコードサンプル126は、定義された機械学習タスクに基づいて、1又は複数のクラス、グループ及び/又はクラスターにラベル付けされ得る。
【0069】
910において、コンピュータ実装方法900は、1又は複数のAIモデル124をトレーニングするための1又は複数の簡略化されたソースコードサンプル126を含み得る1又は複数の拡張されたトレーニングデータセット404を、システム100によって、(例えば、データセットコンポーネント402を介して)生成する段階を含み得る。例えば、910における生成する上記段階は、1又は複数の拡張されたトレーニングデータセット404を生成すべく、1又は複数のトレーニングデータセットに1又は複数の簡略化されたソースコードサンプル126を追加する段階を含み得る。912において、コンピュータ実装方法900は、1又は複数の拡張されたトレーニングデータセット404上で1又は複数のAIモデル124を、システム100によって(例えば、モデルトレーニングコンポーネント502を介して)トレーニングする段階を含み得る。
【0070】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示内容の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在既知又は今後開発される任意の他のタイプのコンピューティング環境と併せて実装されることが可能である。
【0071】
クラウドコンピューティングは、管理の労力又はサービスのプロバイダとの対話を最小限に抑えながら迅速にプロビジョニング及びリリースされ得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、及びサービス)の共有プールに対する便利なオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル及び少なくとも4つの展開モデルを含み得る。
【0072】
特性は以下のとおりである。
【0073】
オンデマンドセルフサービス:クラウド消費者は、サービスプロバイダとの人的対話を要することなく、必要に応じて自動的に、サーバ時間及びネットワークストレージ等のコンピューティング能力を一方的にプロビジョニングすることができる。
【0074】
幅広いネットワークアクセス:この能力は、ネットワークを介して利用可能であり、異種のシン又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA(登録商標))による使用を促す標準メカニズムを通してアクセスされる。
【0075】
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービス提供するようにプールされており、様々な物理リソース及び仮想リソースが需要に沿って動的に割り当て及び再割り当てされる。消費者は、概して、提供されるリソースの正確な位置に対する制御又は知識を有しないが、より高い抽象化レベル(例えば、国、州、又はデータセンタ)では位置を指定することが可能であり得るという点において、ある種の位置独立性がある。
【0076】
迅速な弾力性:この能力は、迅速かつ弾力的に、いくつかの事例では自動的にプロビジョニングして、早急にスケールアウトし、かつ迅速にリリースして早急にスケールインすることができる。消費者にとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時点において任意の量で購入することができる。
【0077】
計測サービス:クラウドシステムは、ある抽象化レベルでサービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した計測能力を活用することにより、リソースの使用を自動的に制御及び最適化する。リソース使用率は、モニタリング、制御、及び、報告され、こうすることで、利用されるサービスのプロバイダ及び消費者の両方に透明性を提供することができる。
【0078】
サービスモデルは以下のとおりである。
【0079】
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行しているプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを介して、様々なクライアントデバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は、個々のアプリケーション能力さえも含む基礎となるクラウドインフラストラクチャを管理又は制御しないが、限定的なユーザ固有のアプリケーション構成設定は例外となる場合がある。
【0080】
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成された、消費者が作成又は取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む基礎となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション及び、場合によっては、アプリケーションホスティング環境の構成を制御する。
【0081】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、消費者は、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを展開し、実行させることが可能である。消費者は、基礎となるクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
【0082】
展開モデルは以下のとおりである。
【0083】
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。それは組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスに存在してよい。
【0084】
コミュニティクラウド:このクラウドインフラストラクチャは、いくつかの組織によって共有され、共有される関心事項(例えば、ミッション、セキュリティ要件、ポリシ及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。コミュニティクラウドは、それらの組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0085】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大規模な業界団体にとって利用可能になり、クラウドサービスを販売する組織により所有される。
【0086】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、これは、一意的なエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化された技術又は独自技術によって共に結合される。
【0087】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、及び意味的相互運用性に焦点を当てたサービス指向型である。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
【0088】
ここで図10を参照すると、例示的なクラウドコンピューティング環境1000が示されている。示されているように、クラウドコンピューティング環境1000は、例えば、携帯情報端末(PDA)又は携帯電話1004、デスクトップコンピュータ1006、ラップトップコンピュータ1008、及び/又は自動車コンピュータシステム1010等の、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信し得る、1又は複数のクラウドコンピューティングノード1002を備える。ノード1002は、互いに通信し得る。それらは、本明細書の上記で説明されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウド、又はそれらの組み合わせ等の1又は複数のネットワーク内で物理的に又は仮想的にグループ化されてよい(図示せず)。これにより、クラウドコンピューティング環境1000は、インフラストラクチャ、プラットフォーム及び/又はソフトウェアを、クラウド消費者がそのためにローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能になる。図10において示されているコンピューティングデバイス1004~1010のタイプは、単に例示を意図し、コンピューティングノード1002及びクラウドコンピューティング環境1000は、任意のタイプのネットワーク及び/又はネットワークアドレス指定可能接続を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信することができることが理解される。
【0089】
ここで図11を参照すると、クラウドコンピューティング環境1000(図10)によって提供される機能抽象化層のセットが示されている。本明細書において説明される他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔性のために省略される。図11に示されているコンポーネント、層、及び機能が例示のみを意図したものであり、本発明の実施形態がそれらに限定されないことを事前に理解されるべきである。図示のように、以下の層及び対応する機能が提供される。
【0090】
ハードウェア及びソフトウェア層1102は、ハードウェアコンポーネント及びソフトウェアコンポーネントを備える。ハードウェアコンポーネントの例は、メインフレーム1104;RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ1106;サーバ1108;ブレードサーバ1110;ストレージデバイス1112;及び、ネットワーク及びネットワーキングコンポーネント1114を含む。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア1116及びデータベースソフトウェア1118を備える。
【0091】
仮想化層1120は、仮想エンティティの次の例、すなわち、仮想サーバ1122、仮想ストレージ1124、仮想プライベートネットワークを含む仮想ネットワーク1126、仮想アプリケーション及びオペレーティングシステム1128並びに仮想クライアント1130が提供され得る抽象化層を提供する。
【0092】
一例において、管理層1132は、以下で説明される機能を提供してよい。リソースプロビジョニング1134は、クラウドコンピューティング環境内でタスクを実行するために利用される、コンピューティングリソース及び他のリソースの動的な調達を提供する。計測及びプライス設定1136は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、及びこれらのリソースの消費に対する請求又はインボイス作成を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウド消費者及びタスクについての識別情報検証、並びに、データ及び他のリソースの保護を提供する。ユーザポータル1138は、消費者及びシステム管理者のために、クラウドコンピューティング環境へのアクセスを提供する。サービス水準管理1140は、要求されるサービス水準が満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービス水準合意(SLA)計画及び履行1142は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースの事前手配及び調達を提供する。
【0093】
ワークロード層1144は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例には、マッピング及びナビゲーション1146、ソフトウェア開発及びライフサイクル管理1148、仮想教室教育の提供1150、データ分析処理1152、トランザクション処理1154、及びAIモデルトレーニング1156が含まれる。本発明の様々な実施形態は、図10及び図11を参照して説明されたクラウドコンピューティング環境を利用して、1又は複数のトレーニングデータセットを拡張する及び/又は1又は複数のAIモデルをトレーニングすることが可能である。
【0094】
本発明は、任意の可能な技術的詳細レベルで統合されたシステム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数のコンピュータ可読記憶媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持及び記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、限定されないが、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は上述したものの任意の好適な組み合わせであり得る。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(random access memory:RAM)、リードオンリメモリ(read-only memory:ROM)、消去可能プログラマブルリードオンリメモリ(erasable programmable read-only memory:EPROM、又はフラッシュメモリ)、スタティックランダムアクセスメモリ(static random access memory:SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(compact disc read-only memory:CD-ROM)、デジタルバーサタイルディスク(digital versatile disk:DVD)、メモリスティック、フロッピディスク、命令が記録されているパンチカード又は溝の中の隆起構造等の機械的にエンコードされたデバイス、及び上述したものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を通じて伝送される電気信号といった、一時的な信号それ自体と解釈されるべきではない。
【0095】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、又は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部ストレージデバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを有し得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0096】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk(登録商標)又はC++等のようなオブジェクト指向プログラミング言語、及び、「C」プログラミング言語又は同様のプログラミング言語等の手続き型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして、完全にユーザのコンピュータ上で実行すること、部分的にユーザのコンピュータ上で実行することができ、部分的にユーザのコンピュータ上で実行し部分的にリモートコンピュータ上で実行すること、又は、完全にリモートコンピュータ又はサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、又はその接続が、(例えば、インターネットサービスプロバイダを使用するインターネットを介して)外部コンピュータに対して行われ得る。いくつかの実施形態において、本発明の態様を実施するために、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラマブルロジックアレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることで、コンピュータ可読プログラム命令を実行することができる。
【0097】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されよう。
【0098】
これらのコンピュータ可読プログラム命令は、マシンを生成するために汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供され得、その結果コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令は、フローチャート及び/又はブロック図の1又は複数のブロックにおいて指定された機能/動作を実装するための手段を作成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに特定の方式で機能するように指示できるコンピュータ可読記憶媒体内に記憶され得、その結果、その中に記憶された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の1又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製品を備える。
【0099】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上へロードされて、一連の動作段階をコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行させ、コンピュータ実装プロセスを生成してもよく、その結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート及び/又はブロック図の1又は複数のブロックで指定された機能/動作を実装する。
【0100】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を図示する。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1又は複数の実行可能命令を含む命令のモジュール、セグメント、又は一部を表し得る。いくつかの代替的な実装形態において、ブロック内に記されている機能は、図面中に記されている順序とは異なる順序で生じ得る。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され得るか、又は、関連する機能に応じてブロックが逆の順序で実行されることもあり得る。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能又は動作を実行するか、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する専用ハードウェアベースシステムによって実装することができることにも留意されたい。
【0101】
本明細書に説明された様々な実施形態のための追加の文脈を提供すべく、図12及び以下の説明は、本明細書に説明された実施形態の様々な実施形態が実装され得る好適なコンピューティング環境1200の一般的な説明を提供するように意図している。実施形態が1又は複数のコンピュータ上で実行され得るコンピュータ実行可能命令の一般的な文脈において上記で説明されてきたが、当業者であれば、実施形態が他のプログラムモジュールとの組み合わせで及び/又はハードウェア及びソフトウェアの組み合わせとしても実装され得ることを認識するであろう。
【0102】
概して、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装するルーチン、プログラム、コンポーネント、データ構造、及び/又は同様のものを含む。さらに、当業者であれば、本発明の方法は、これらの各々が1又は複数の関連付けデバイスに動作可能に結合され得るシングルプロセッサ又はマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、モノのインターネット(「IoT」)デバイス、分散型コンピューティングシステム、並びにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベース又はプログラマブル消費者エレクトロニクス等を含む他のコンピュータシステム構成を用いて実施され得ることを理解するだろう。
【0103】
本明細書における実施形態の示された実施形態は、特定のタスクが通信ネットワークを通してリンクされたリモート処理デバイスによって実行される分散型コンピューティング環境においても実施され得る。分散型コンピューティング環境では、プログラムモジュールは、ローカル及びリモート両方のメモリストレージデバイスに位置し得る。例えば、1又は複数の実施形態では、コンピュータ実行可能コンポーネントは、1又は複数の分散型メモリユニットを含むことができるか、又は1又は複数の分散型メモリユニットから構成されることができるメモリから実行することができる。本明細書において使用される場合、「メモリ」及び「メモリユニット」という用語は、置き替え可能である。さらに、本明細書に説明された1又は複数の実施形態は、分散された方式で、コンピュータ実行可能コンポーネントのコードを実行し得、例えば、複数のプロセッサが組み合わせて又は共同で動作して、1又は複数の分散型メモリユニットからコードを実行する。本明細書において使用される場合、「メモリ」という用語は、1つの位置、又は複数のメモリ、又は1又は複数の位置でのメモリユニットでの単一のメモリ又はメモリユニットを包含し得る。
【0104】
コンピューティングデバイスは典型的には、その2つの用語が以下のように互いに異なるように本明細書で使用される、コンピュータ可読記憶媒体、機械可読記憶媒体、及び/又は通信媒体を含み得る多様な媒体を以下のとおり含む。コンピュータ可読記憶媒体又は機械可読記憶媒体は、コンピュータによってアクセスされ得、揮発性媒体及び不揮発性媒体の両方、取り外し可能媒体及び取り外し不能な媒体の両方を含む任意の利用可能な記憶媒体であり得る。例として、限定されないが、コンピュータ可読記憶媒体又は機械可読記憶媒体は、コンピュータ可読又は機械可読命令、プログラムモジュール、構造化データ又は非構造化データ等の情報の記憶のための任意の方法又は技術に関連して実装され得る。
【0105】
コンピュータ可読記憶媒体は、ランダムアクセスメモリ(「RAM」)、リードオンリメモリ(「ROM」)、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、フラッシュメモリ又は他のメモリ技術、コンパクトディスクリードオンリメモリ(「CD-ROM」)、デジタルバーサタイルディスク(「DVD」)、ブルーレイディスク(「BD」)又は他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気ストレージデバイス、ソリッドステートドライブ又は他のソリッドステートストレージデバイス、又は所望の情報を記憶するために使用され得る他の有形及び/又は非一時的媒体を含むことができるが、これらに限定されるものではない。これに関して、ストレージ、メモリ、又はコンピュータ可読媒体に適用される本明細書での「有形」又は「非一時的」という用語は、修飾子としてそれ自体で伝搬する一時的な信号のみを排除するものとして理解されるべきであり、それ自体で伝搬するだけの一時的な信号ではない全ての標準的なストレージ、メモリ、又はコンピュータ可読媒体に対する権利を放棄しない。
【0106】
コンピュータ可読記憶媒体は、媒体によって記憶された情報に関する多様な動作のために、例えば、アクセスリクエスト、クエリ又は他のデータ取得プロトコルを介して、1又は複数のローカル又はリモートコンピューティングデバイスによってアクセスされ得る。
【0107】
通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、又は他の構造化又は非構造化データを、被変調データ信号、例えば、搬送波又は他の輸送機構等のデータ信号において具現化し、任意の情報送達又は輸送媒体を含む。「被変調データ信号」という用語又は信号は、その特性セットのうちの1又は複数を有する信号、あるいは1又は複数の信号内の情報をエンコードするような方式で変更された信号を指す。例として、限定されないが、通信媒体には、有線ネットワーク又は直接有線接続等の有線媒体、並びに音波、RF、赤外線、及び他の無線媒体等の無線媒体が含まれる。
【0108】
再び図12を参照して、本明細書に記載の態様の様々な実施形態を実装するための例示的な環境1200は、コンピュータ1202、処理ユニット1204を含むコンピュータ1202、システムメモリ1206、及びシステムバス1208を含む。システムバス1208は、システムメモリ1206を含むがそれに限定されるものではないシステムコンポーネントを処理ユニット1204に結合する。処理ユニット1204は、様々な市販のプロセッサのいずれかであり得る。デュアルマイクロプロセッサ及び他のマルチプロセッサアーキテクチャはまた、処理ユニット1204として利用され得る。
【0109】
システムバス1208は、多様な市販のバスアーキテクチャのいずれかを使用する(メモリコントローラを有するか又は有しない)メモリバス、ペリフェラルバス、及びローカルバスにさらに相互接続し得るいくつかのタイプのバス構造のうちのいずれかとすることができる。システムメモリ1206は、ROM1210及びRAM1212を含む。基本入出力システム(「BIOS」)は、BIOSが、スタートアップ中等にコンピュータ1202内の要素間で情報を転送するのに役立つ基本ルーチンを含むROM、消去可能プログラマブルリードオンリメモリ(「EPROM」)、EEPROM等の不揮発性メモリに記憶され得る。RAM1212はまた、データをキャッシュするための静的RAMのような高速RAMを含み得る。
【0110】
コンピュータ1202は、内部ハードディスクドライブ(「HDD」)1214(例えば、EIDE、SATA)、1又は複数の外部ストレージデバイス1216(例えば、磁気フロッピディスクドライブ(「FDD」)1216、メモリスティック又はフラッシュドライブリーダ、メモリカードリーダ、それらの組み合わせ、及び/又は同様のもの)及び光ディスクドライブ1220(例えば、CD-ROMディスク、DVD、BD、及び/又は同様のものから読み出すか又は書き込むことができる)をさらに備える。内部HDD1214がコンピュータ1202内に位置するように示されているが、内部HDD1214はまた、好適なシャシ(図示せず)における外部使用のために構成され得る。加えて、環境1200に不図示ではあるが、ソリッドステートドライブ(「SSD」)は、HDD1214に加えて、又は、その代わりに使用され得る。HDD1214、外部ストレージデバイス1216及び光ディスクドライブ1220は、それぞれHDDインタフェース1224、外部ストレージインタフェース1226及び光ドライブインタフェース1228によって、システムバス1208に接続され得る。外部ドライブ実装のためのインタフェース1224は、ユニバーサルシリアルバス(「USB」)及び米国電気電子学会(「IEEE」)1394インタフェース技術のうちの少なくとも1又は両方を含むことができる。他の外部ドライブ接続技術は、本明細書で説明する実施形態の意図の中に含まれる。
【0111】
ドライブ及びその関連するコンピュータ可読記憶媒体は、データ、データ構造、コンピュータ実行可能命令等の不揮発性ストレージを提供する。コンピュータ1202のために、ドライブ及び記憶媒体は、好適なデジタルフォーマットでの任意のデータの記憶を適応させる。上記のコンピュータ可読記憶媒体の説明はそれぞれのタイプのストレージデバイスを参照するが、現在存在しているものでも又は将来開発されるものでもコンピュータによって可読である他のタイプの記憶媒体も例示的な動作環境において使用し得ること、及びさらに任意のそのような記憶媒体が本明細書で説明する方法を実行するためのコンピュータ実行可能命令を含み得ることが当業者によって理解されるべきである。
【0112】
オペレーティングシステム1230、1又は複数のアプリケーションプログラム1232、他のプログラムモジュール1234、及びプログラムデータ1236を含む、いくつかのプログラムモジュールは、ドライブ及びRAM1212に記憶され得る。オペレーティングシステム、アプリケーション、モジュール、及び/又はデータの全て又は一部はまた、RAM1212にキャッシュされ得る。本明細書で説明するシステム及び方法は、様々な市販のオペレーティングシステム、又はオペレーティングシステムの組み合わせを利用して実装され得る。
【0113】
コンピュータ1202は任意選択的に、エミュレーション技術を備え得る。例えば、ハイパーバイザ(図示せず)又は他の仲介するものが、オペレーティングシステム1230のためのハードウェア環境をエミュレートすることができ、エミュレートされたハードウェアは、図12において示されたハードウェアとは任意選択で異なり得る。そのような一実施形態では、オペレーティングシステム1230は、コンピュータ1202においてホストされた複数の仮想機械(「VM」)のうちの1つのVMを含むことができる。さらに、オペレーティングシステム1230は、アプリケーション1232のための、Java(登録商標)ランタイム環境又は.NETフレームワーク等のランタイム環境を提供することができる。ランタイム環境は、アプリケーション1232が、ランタイム環境を含む任意のオペレーティングシステム上で実行されることを可能にする一貫性のある実行環境である。同様に、オペレーティングシステム1230は、コンテナをサポートし得、例えば、コード、ランタイム、システムツール、システムライブラリ、及びアプリケーションのための設定を含むソフトウェアの軽量、スタンドアロン、かつ実行可能なパッケージ、アプリケーション1232は、コンテナの形態であり得る。
【0114】
さらに、コンピュータ1202は、信頼された処理モジュール(「TPM」)等のセキュリティモジュールを用いて有効化することができる。例えば、TPMを用いると、ブートコンポーネントは、次のブートコンポーネントをロードする前に、時間的に次に来るブートコンポーネントをハッシュし、保護された値への結果の一致するのを待つ。このプロセスは、コンピュータ1202のコード実行スタックにおける任意の層で生じ得、例えば、アプリケーション実行レベル又はオペレーティングシステム(「OS」)カーネルレベルにおいて適用され、それによって、コード実行の任意のレベルにおけるセキュリティを可能にする。
【0115】
ユーザは、1又は複数の有線/無線入力デバイス、例えば、キーボード1238、タッチスクリーン1240、及びマウス1242のようなポインティングデバイスを通じてコンピュータ1202にコマンド及び情報を入力し得る。他の入力デバイス(図示せず)は、マイクロフォン、赤外線(「IR」)リモートコントロール、無線周波数(「RF」)リモートコントロール、又は他のリモートコントロール、ジョイスティック、仮想現実コントローラ及び/又は仮想現実ヘッドセット、ゲームパッド、スタイラスペン、画像入力デバイス、例えば、カメラ、ジェスチャセンサ入力デバイス、ビジョンムーブメントセンサ入力デバイス、表情又は顔検出デバイス、生体認証入力デバイス、例えば、指紋又は虹彩スキャナ等を含むことができる。これら及び他の入力デバイスは、多くの場合、システムバス1208に結合することができる入力デバイスインタフェース1244を通して処理ユニット1204に接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース、BLUETOOTH(登録商標)インタフェース、及び/又は同様のもののような他のインタフェースによって接続され得る。
【0116】
モニタ1246又は他のタイプのディスプレイデバイスはまた、ビデオアダプタ1248のようなインタフェースを介してシステムバス1208に接続され得る。モニタ1246に加えて、コンピュータは、典型的には、スピーカ、プリンタ、それらの組み合わせ、及び/又は同様のもののような他のペリフェラル出力デバイス(図示せず)を含む。
【0117】
コンピュータ1202は、リモートコンピュータ1250等、1又は複数のリモートコンピュータに対する有線通信及び/又は無線通信を介した論理接続を使用して、ネットワーク化された環境において動作し得る。リモートコンピュータ1250は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースエンタテインメント機器、ピアデバイス又は他の一般的なネットワークノードとすることができ、典型的には、簡潔性のためにメモリ/ストレージデバイス1252のみが示されているが、コンピュータ1202に関して説明された多くの又は全ての要素を含む。示された論理接続は、ローカルエリアネットワーク(「LAN」)1254及び/又はより大きいネットワーク、例えば、ワイドエリアネットワーク(「WAN」)1256への有線/無線接続性を含む。そのようなLANネットワーキング環境及びWANネットワーキング環境は、オフィス及び企業でよく見られ、イントラネットのような企業規模のコンピュータネットワークを容易にし、これらの全ては、グローバル通信ネットワーク、例えば、インターネットに接続し得る。
【0118】
LANネットワーキング環境において使用される場合、コンピュータ1202は、有線及び/又は無線通信ネットワークインタフェース又はアダプタ1258を通してローカルネットワーク1254に接続することができる。アダプタ1258は、無線モードにおいてアダプタ1258と通信するためにそこに配置された無線アクセスポイント(「AP」)も含むことができるLAN1254への有線又は無線通信を容易にすることができる。
【0119】
WANネットワーキング環境において使用されるとき、コンピュータ1202は、モデム1260を含み得るか、又はインターネットによってのような、WAN1256上の通信を確立するための他の手段を介してWAN1256上の通信サーバに接続され得る。内部又は外部であり得、有線又は無線デバイスであり得るモデム1260は、入力デバイスインタフェース1244を介してシステムバス1208に接続され得る。ネットワーク化された環境では、コンピュータ1202に対して示されたプログラムモジュール又はその一部は、リモートメモリ/ストレージデバイス1252に記憶され得る。示されたネットワーク接続は例示的であり、コンピュータ同士の間の通信リンクを確立する他の手段が使用され得ることが理解されるだろう。
【0120】
LAN又はWANネットワーキング環境のいずれかにおいて使用されるとき、コンピュータ1202は、上記で説明されたように、外部ストレージデバイス1216に加えて、又はその代わりに、クラウドストレージシステム又は他のネットワークベースストレージシステムにアクセスし得る。概して、コンピュータ1202及びクラウドストレージシステムの間の接続は、LAN1254又はWAN1256上で、例えば、それぞれアダプタ1258又はモデム1260によって確立され得る。コンピュータ1202を関連付けられたクラウドストレージシステムに接続すると、外部ストレージインタフェース1226は、アダプタ1258及び/又はモデム1260の補助を用いて、外部ストレージの他のタイプを管理するように、クラウドストレージシステムによって提供されたストレージを管理し得る。例えば、外部ストレージインタフェース1226は、あたかもそれらのソースがコンピュータ1202に物理的に接続しているかのように、クラウドストレージソースへのアクセスを提供するように構成することができる。
【0121】
コンピュータ1202は、無線通信において動作可能に配置された任意の無線デバイス又はエンティティ、例えば、プリンタ、スキャナ、デスクトップ及び/又はポータブルコンピュータ、携帯情報端末、通信衛星、無線で検出可能なタグに関連付けられた任意の機器又はロケーション(例えば、キオスク、ニューススタンド、店舗の棚、及び/又は同様のもの)、及び電話と通信するように動作可能であり得る。これは、ワイヤレスフィデリティ(「Wi-Fi(登録商標)」)及びBLUETOOTH(登録商標)無線技術を含み得る。したがって、通信は、従来のネットワークと同じく事前定義された構造、又は単に、少なくとも2つのデバイス間のアドホック通信であり得る。
【0122】
上で説明されてきたものは、システム、コンピュータプログラム製品、及びコンピュータ実装方法の単なる例を含む。当然ながら、本開示を説明する目的で、コンポーネント、製品及び/又はコンピュータ実装方法のあらゆる考えられる組み合わせを説明することは可能ではなく、当業者であれば、本開示の多くのさらなる組み合わせ及び置換が可能であることを認識し得る。さらに、詳細な説明、特許請求の範囲、付録及び図面において、「含む(includes)」、「有する(has)」、及び、「所有する(possesse)」等の用語が使用される範囲で、そのような用語は、「備える(comprising)」が特許請求の範囲の移行語として利用されるときに解釈されるのと同様に、「備える(comprising)」という用語と同様の方法で包括的であることを意図している。様々な実施形態の説明は、例示のために提示されてきたが、包括的あるか、又は開示された実施形態に限定されることを意図するものではない。説明されている実施形態の範囲及び主旨から逸脱することのなく、多くの修正及び変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、実際の適用又は市場で見られる技術に対する技術的改善を最適に説明し、又は、本明細書において開示される実施形態を当技術分野の他の当業者が理解することを可能にするように選択された。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【手続補正書】
【提出日】2024-04-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ実行可能コンポーネントを記憶するメモリ;及び
前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、ここで、前記コンピュータ実行可能コンポーネントは:
トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成するトレーニング拡張コンポーネント
を有する、プロセッサ
を備える、システム。
【請求項2】
前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する簡略化コンポーネント、ここで、前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する
をさらに備える、請求項1に記載のシステム。
【請求項3】
前記簡略化されたソースコードサンプルの正確性を検証する検証コンポーネント;及び
タスク固有のラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けるするラベラーコンポーネント
をさらに備える、請求項1又は2に記載のシステム。
【請求項4】
前記検証コンポーネントによる認証及び前記ラベラーコンポーネントによるラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加するデータセットコンポーネント
をさらに備える、請求項3に記載のシステム。
【請求項5】
前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングするモデルトレーニングコンポーネント
をさらに備える、請求項4に記載のシステム。
【請求項6】
コンピュータ実行可能コンポーネントを記憶するメモリ;及び
前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、ここで、前記コンピュータ実行可能コンポーネントは:
トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングするモデルトレーニングコンポーネント
を有する、プロセッサ
を備える、システム。
【請求項7】
前記ソースコードサンプルを縮小することによって前記簡略化されたソースコードサンプルを生成すべく簡略化アルゴリズムを実行する簡略化コンポーネント
をさらに備える、請求項6に記載のシステム。
【請求項8】
前記簡略化コンポーネントは、一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する、請求項7に記載のシステム。
【請求項9】
前記簡略化されたソースコードサンプルの正確性を検証する検証コンポーネント;
タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けするラベラーコンポーネント;及び
前記検証コンポーネントによる認証及び前記ラベラーコンポーネントによるラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加することによって、前記拡張されたトレーニングデータセットを生成するデータセットコンポーネント
をさらに備える、請求項6から8のいずれか一項に記載のシステム。
【請求項10】
プロセッサに動作可能に結合されたシステムが、トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成する段階を備える、コンピュータ実装方法。
【請求項11】
前記システムが、前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する段階、ここで、前記簡略化されたソースコードサンプルは、前記複数の簡略化されたソースコードサンプルからのものである
をさらに備える、請求項10に記載のコンピュータ実装方法。
【請求項12】
前記システムが、前記一連の反復的な縮小を実行すべくデルタデバッギングアルゴリズムを利用する段階
をさらに備える、請求項11に記載のコンピュータ実装方法。
【請求項13】
前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する、請求項11に記載のコンピュータ実装方法。
【請求項14】
前記システムが、前記簡略化されたソースコードサンプルの正確性を検証する段階;及び
前記システムが、タスク固有のラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする段階
をさらに備える、請求項10から13のいずれか一項に記載のコンピュータ実装方法。
【請求項15】
前記システムが、前記検証及び前記ラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加する段階;及び
前記システムが、前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングする段階
をさらに備える、請求項14に記載のコンピュータ実装方法。
【請求項16】
プロセッサに動作可能に結合されたシステムが、トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングする段階を備える、コンピュータ実装方法。
【請求項17】
前記システムが、前記トレーニングデータセットから前記ソースコードサンプルを縮小することによって前記簡略化されたソースコードサンプルを生成すべく簡略化アルゴリズムを実行する段階
をさらに備える、請求項16に記載のコンピュータ実装方法。
【請求項18】
前記システムが、一連の反復的な縮小を実行することによって複数のソースコードサンプルを生成する段階、ここで、前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する
をさらに備える、請求項16又は17に記載のコンピュータ実装方法。
【請求項19】
前記システムが、前記簡略化されたソースコードサンプルの正確性を検証する段階;
前記システムが、タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする段階;及び
前記システムが、前記検証及び前記ラベル付けに続いて前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加する段階
をさらに備える、請求項16又は17に記載のコンピュータ実装方法。
【請求項20】
人工知能モデルをトレーニングするためのコンピュータプログラムであって、プロセッサに:
前記プロセッサが、トレーニングデータセット内に含まれたソースコードサンプルから簡略化されたソースコードサンプルを抽出することによって、前記人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成する手順
を実行させるためのコンピュータプログラム。
【請求項21】
前記プロセッサに:
記プロセッサが、前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する手順、ここで、前記簡略化されたソースコードサンプルは、前記複数の簡略化されたソースコードサンプルからのものである
をさらに実行させるための請求項20に記載のコンピュータプログラム。
【請求項22】
前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する、請求項21に記載のコンピュータプログラム。
【請求項23】
前記プロセッサに:
記プロセッサが、前記一連の反復的な縮小を実行すべくデルタデバッギングアルゴリズムを利用する手順
を実行させるための請求項22に記載のコンピュータプログラム。
【請求項24】
前記プロセッサに:
記プロセッサが、前記簡略化されたソースコードサンプルの正確性を検証する手順;及び
前記プロセッサが、タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする手順
をさらに実行させるための請求項20から23のいずれか一項に記載のコンピュータプログラム。
【請求項25】
前記プロセッサに:
記プロセッサが、前記拡張されたトレーニングデータセットを生成すべく、検証及びラベル付けに続いて、前記トレーニングデータセットに前記ソースコードサンプルを追加する手順;及び
前記プロセッサが、前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングする手順
をさらに実行させるための請求項23に記載のコンピュータプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0122
【補正方法】変更
【補正の内容】
【0122】
上で説明されてきたものは、システム、コンピュータプログラム製品、及びコンピュータ実装方法の単なる例を含む。当然ながら、本開示を説明する目的で、コンポーネント、製品及び/又はコンピュータ実装方法のあらゆる考えられる組み合わせを説明することは可能ではなく、当業者であれば、本開示の多くのさらなる組み合わせ及び置換が可能であることを認識し得る。さらに、詳細な説明、特許請求の範囲、付録及び図面において、「含む(includes)」、「有する(has)」、及び、「所有する(possesse)」等の用語が使用される範囲で、そのような用語は、「備える(comprising)」が特許請求の範囲の移行語として利用されるときに解釈されるのと同様に、「備える(comprising)」という用語と同様の方法で包括的であることを意図している。様々な実施形態の説明は、例示のために提示されてきたが、包括的あるか、又は開示された実施形態に限定されることを意図するものではない。説明されている実施形態の範囲及び主旨から逸脱することのなく、多くの修正及び変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、実際の適用又は市場で見られる技術に対する技術的改善を最適に説明し、又は、本明細書において開示される実施形態を当技術分野の他の当業者が理解することを可能にするように選択された
[項目1]
コンピュータ実行可能コンポーネントを記憶するメモリ;及び
前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、ここで、前記コンピュータ実行可能コンポーネントは:
トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成するトレーニング拡張コンポーネント
を有する、プロセッサ
を備える、システム。
[項目2]
前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する簡略化コンポーネント、ここで、前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する
をさらに備える、項目1に記載のシステム。
[項目3]
前記簡略化されたソースコードサンプルの正確性を検証する検証コンポーネント;及び
タスク固有のラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けるするラベラーコンポーネント
をさらに備える、項目1に記載のシステム。
[項目4]
前記検証コンポーネントによる認証及び前記ラベラーコンポーネントによるラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加するデータセットコンポーネント
をさらに備える、項目3に記載のシステム。
[項目5]
前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングするモデルトレーニングコンポーネント
をさらに備える、項目4に記載のシステム。
[項目6]
コンピュータ実行可能コンポーネントを記憶するメモリ;及び
前記メモリに動作可能に結合され、前記メモリに記憶された前記コンピュータ実行可能コンポーネントを実行するプロセッサであって、ここで、前記コンピュータ実行可能コンポーネントは:
トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングするモデルトレーニングコンポーネント
を有する、プロセッサ
を備える、システム。
[項目7]
前記ソースコードサンプルを縮小することによって前記簡略化されたソースコードサンプルを生成すべく簡略化アルゴリズムを実行する簡略化コンポーネント
をさらに備える、項目6に記載のシステム。
[項目8]
前記簡略化コンポーネントは、一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する、項目7に記載のシステム。
[項目9]
前記簡略化されたソースコードサンプルの正確性を検証する検証コンポーネント;
タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けするラベラーコンポーネント;及び
前記検証コンポーネントによる認証及び前記ラベラーコンポーネントによるラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加することによって、前記拡張されたトレーニングデータセットを生成するデータセットコンポーネント
をさらに備える、項目6に記載のシステム。
[項目10]
プロセッサに動作可能に結合されたシステムが、トレーニングデータセット内に含まれたソースコードサンプルからの簡略化されたソースコードサンプルを抽出することによって人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成する段階を備える、コンピュータ実装方法。
[項目11]
前記システムが、前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成する段階、ここで、前記簡略化されたソースコードサンプルは、前記複数の簡略化されたソースコードサンプルからのものである
をさらに備える、項目10に記載のコンピュータ実装方法。
[項目12]
前記システムが、前記一連の反復的な縮小を実行すべくデルタデバッギングアルゴリズムを利用する段階
をさらに備える、項目11に記載のコンピュータ実装方法。
[項目13]
前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する、項目11に記載のコンピュータ実装方法。
[項目14]
前記システムが、前記簡略化されたソースコードサンプルの正確性を検証する段階;及び
前記システムが、タスク固有のラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする段階
をさらに備える、項目10に記載のコンピュータ実装方法。
[項目15]
前記システムが、前記検証及び前記ラベル付けに続いて、前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加する段階;及び
前記システムが、前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングする段階
をさらに備える、項目14に記載のコンピュータ実装方法。
[項目16]
プロセッサに動作可能に結合されたシステムが、トレーニングデータセットからのソースコードサンプルの簡略化されたソースコードサンプルを含む拡張されたトレーニングデータセット上で人工知能モデルをトレーニングする段階を備える、コンピュータ実装方法。
[項目17]
前記システムが、前記トレーニングデータセットから前記ソースコードサンプルを縮小することによって前記簡略化されたソースコードサンプルを生成すべく簡略化アルゴリズムを実行する段階
をさらに備える、項目16に記載のコンピュータ実装方法。
[項目18]
前記システムが、一連の反復的な縮小を実行することによって複数のソースコードサンプルを生成する段階、ここで、前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する
をさらに備える、項目16に記載のコンピュータ実装方法。
[項目19]
前記システムが、前記簡略化されたソースコードサンプルの正確性を検証する段階;
前記システムが、タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けする段階;及び
前記システムが、前記検証及び前記ラベル付けに続いて前記トレーニングデータセットに前記簡略化されたソースコードサンプルを追加する段階
をさらに備える、項目16に記載のコンピュータ実装方法。
[項目20]
人工知能モデルをトレーニングするためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、それに具現化されたプログラム命令を有するコンピュータ可読記憶媒体を備え、前記プログラム命令は、プロセッサに:
前記プロセッサが、トレーニングデータセット内に含まれたソースコードサンプルから簡略化されたソースコードサンプルを抽出することによって、前記人工知能モデルをトレーニングするための拡張されたトレーニングデータセットを生成すること
を実行させるように前記プロセッサによって実行可能である、コンピュータプログラム製品。
[項目21]
前記プログラム命令は、
前記プロセッサが、前記ソースコードサンプルの一連の反復的な縮小を介して前記ソースコードサンプルから複数の簡略化されたソースコードサンプルを生成すること、ここで、前記簡略化されたソースコードサンプルは、前記複数の簡略化されたソースコードサンプルからのものである
をさらに前記プロセッサに実行させる、項目20に記載のコンピュータプログラム製品。
[項目22]
前記一連の反復的な縮小の反復は、前記一連の反復的な縮小によって生成された以前の簡略化されたソースコードサンプルより単純な新たな簡略化されたソースコードサンプルを生成する、項目21に記載のコンピュータプログラム製品。
[項目23]
前記プログラム命令は、
前記プロセッサが、前記一連の反復的な縮小を実行すべくデルタデバッギングアルゴリズムを利用すること
を前記プロセッサに実行させる、項目22に記載のコンピュータプログラム製品。
[項目24]
前記プログラム命令は、
前記プロセッサが、前記簡略化されたソースコードサンプルの正確性を検証すること;及び
前記プロセッサが、タスクベースのラベル付けスキームを介して前記簡略化されたソースコードサンプルをラベル付けすること
を前記プロセッサにさらに実行させる、項目20に記載のコンピュータプログラム製品。
[項目25]
前記プログラム命令は、
前記プロセッサが、前記拡張されたトレーニングデータセットを生成すべく、検証及びラベル付けに続いて、前記トレーニングデータセットに前記ソースコードサンプルを追加すること;及び
前記プロセッサが、前記拡張されたトレーニングデータセットから前記人工知能モデルをトレーニングすること
を前記プロセッサにさらに実行させる、項目23に記載のコンピュータプログラム製品。
【国際調査報告】