[0001] 本願は、2020年3月31日に出願された「人工知能モデルを取得するための方法、装置、及びデバイス、並びに記憶媒体」と題する中国特許出願第202010246686.8号に対する優先権を主張しており、その全体が参照により本件に援用される。
[0002] 技術分野
本願は、人工知能技術の分野に関連し、特に、人工知能モデルを取得するための方法、装置、及びデバイス、並びに記憶媒体に関連する。
[0003] 背景
人工知能技術の発達とともに、多くの人工知能(artificial intelligence,AI)モデル、及び人工知能モデルを取得するための多くの方法、例えば人工知能モデルを取得するための連合学習(federated learning, FL)が存在している。
[0004] 連合学習は、新しい基本的な人工知能技術であり、元々は、アンドロイド携帯電話端末のユーザーがモデルをローカルに更新する問題を解決するために使用されていたものであり、端末データ及び個人データのプライバシーを保護し且つ合法性を確保することを前提として、複数の参加者又は演算ノード間で効率的な機械学習を実施することを目的としている。現在、連合学習は、データ共有をせずにAIモデルを共同で構築し、AIモデルの効果を改善するために拡張されている。
[0005] 本願の実施形態は、人工知能モデルを取得する方法、装置、及びデバイス、並びに記憶媒体を提供し、関連技術における問題を解決する。技術的解決策は以下のとおりである。
[0006] 第1の態様によれば、人工知能モデルを取得する方法が提供される。クライアントが方法を実行することが一例として使用される。方法は:クライアントが、サービス・エンドにより送信された第1の人工知能AIモデルを受信するステップであって、第1のAIモデルは複数のニューロンを含む、ステップ;クライアントが、複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するステップであって、訓練の現在のラウンドは訓練の最初のラウンドではなく、ターゲット・ニューロンの数は複数のニューロンの総数より少ない、ステップ;クライアントが、ターゲット・ニューロンをローカル・データに基づいて訓練するステップ;及びクライアントが、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すステップであって、ターゲット・ニューロンに対応するパラメータ・データは、収束したターゲットAIモデルを取得するためにサービス・エンドにより使用される、ステップを含む。
[0007] 本願のこの実施形態で提供される方法によれば、モデル内の全てではないニューロンが訓練されることを必要とし、一部のニューロンが、活性状態に基づいて訓練のために選択される。これは、消費電力を削減し、訓練速度を向上させることができる。更に、クライアントは、訓練されたニューロンに対応するパラメータのみをサービス・エンドへ送信するので、通信帯域幅を減らすことができる。
[0008] 例示的な実施形態では、ターゲット・ニューロンは、ニューロンの活性度が条件を満たしているニューロンである。例えば、ターゲット・ニューロンの活性度は、活性度閾値より大きい。
[0009] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有し、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、ニューロンが訓練の現在のラウンドに関与していることを示す。複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するステップは、ニューロンのフローズン・アクティブ・フラグ・ビットが第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するステップを含む。
[0010] フローズン・アクティブ・フラグ・ビットは活性状態を示すので、ターゲット・ニューロンは、フローズン・アクティブ・フラグ・ビットを使用することにより直接的に決定されることが可能である。従って、ターゲット・ニューロンの決定速度は比較的速い。これは、訓練時間を更に短縮し、訓練速度を向上させる。
[0011] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間を有し、フローズン期間は、ニューロンが訓練に関与しない期間を示し;且つ
何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。
[0012] 例示的な実施形態では、ニューロンのフローズン・アクティブ・フラグ・ビットが第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するステップの前に、当該方法は、更に:
複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップであって、活性度は、ニューロンが、ローカル・データによって影響を受ける程度を示す、ステップ;及び
訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンのフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新するステップを含む。
[0013] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間カウンタを更に有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示し;且つ
訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップは:
何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了していることを示していることに応答して、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップを含む。
[0014] 例示的な実施形態では、複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するステップは:
複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップであって、活性度は、ニューロンが、ローカル・データによって影響を受ける程度を示す、ステップ;及び
訓練の前ラウンドにおける何れかのニューロンの活性度は活性度閾値より大きいことに応答して、何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するステップを含む。
[0015] 例示的な実施形態では、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップは:
何れかのニューロンの訓練の前ラウンドより前に得られるパラメータの第1の平均値と、何れかのニューロンの訓練の現在のラウンドより後に得られるパラメータの第2の平均値とを取得するステップ;
第1の平均値と第2の平均値との間の差分を取得するステップ;及び
差分の絶対値と前記第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおける何れかのニューロンの活性度を決定するステップを含む。
[0016] 例示的な実施形態では、サービス・エンドにより送信された第1の人工知能AIモデルを受信するステップの前に、当該方法は、更に:
サービス・エンドにより送信された第1の人工知能AIモデルを受信し、複数のニューロンにおける全てのニューロンをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練するステップを含む。
[0017] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すステップは、更に:
各ニューロンのフローズン・アクティブ・フラグ・ビットをサーバーへ送信するステップ、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサーバーへ送信するステップを含む。
[0018] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すステップは:
ターゲット・ニューロンに対応するパラメータ・データのみを、サービス・エンドへ返すステップを含む。
[0019] 人工知能モデルを取得する方法が提供される。方法は:
訓練対象の第1の人工知能AIモデルを、サービス・エンドにより取得するステップであって、第1のAIモデルは複数のニューロンを含む、ステップ;
第1のAIモデルを複数のクライアントへ、サービス・エンドにより送信するステップ;
ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントのうちの各クライアントにより返されて来るものを、サービス・エンドにより受信するステップであって、ターゲット・ニューロンに対応するパラメータ・データであって何れかのニューロンにより返されて来るものは、第1のAIモデルにおけるターゲット・ニューロンを訓練することにより、何れかのクライアントにより取得され、ターゲット・ニューロンの数は複数のニューロンの総数より少ない、ステップ;及び
ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを、サービス・エンドにより復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するステップを含む。
[0020] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元するステップは:
何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新して、何れかのクライアントに対応する第2のAIモデルを取得するステップを含む。
[0021] 例示的な実施形態では、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するステップは:
各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得するステップ;及び
第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するステップ;又は
第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けるステップを含む。
[0022] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元するステップの前に、当該方法は、更に:
各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、前記複数のクライアントにより返されて来るものを受信するステップ;及び
各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを利用することにより、複数のニューロンのうちのターゲット・ニューロンを決定するステップを含む。
[0023] 人工知能モデルを取得する装置が提供される。装置は:
サービス・エンドにより送信された第1の人工知能AIモデルを受信するように構成された通信ユニットであって、第1のAIモデルは複数のニューロンを含む、通信ユニット;及び
複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するように構成された処理ユニットであって、訓練の現在のラウンドは訓練の最初のラウンドではなく、ターゲット・ニューロンの数は複数のニューロンの総数より少ない、処理ユニットを含む。
[0024] 処理ユニットは、ターゲット・ニューロンをローカル・データに基づいて訓練するように更に構成されている。
[0025] 通信ユニットは、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すように更に構成されている。ターゲット・ニューロンに対応するパラメータ・データは、収束したターゲットAIモデルを取得するためにサービス・エンドにより使用される。
[0026] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有し、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、ニューロンが訓練の現在のラウンドに関与していることを示す。
[0027] 処理ユニットは、ニューロンのフローズン・アクティブ・フラグ・ビットが第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0028] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間を有し、フローズン期間は、ニューロンが訓練に関与しない期間を示す。
[0029] 何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。
[0030] 例示的な実施形態では、処理ユニットは、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように更に構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ処理ユニットは、訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンのフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新するように更に構成されている。
[0031] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間カウンタを更に有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示す。
[0032] 処理ユニットは、何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了していることを示していることに応答して、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されている。
[0033] 例示的な実施形態では:処理ユニットは、訓練の現在のラウンドが訓練の最初のラウンドではないことに応答して、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ処理ユニットは、訓練の前ラウンドにおける何れかのニューロンの活性度は活性度閾値より大きいことに応答して、何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0034] 例示的な実施形態では、処理ユニットは:何れかのニューロンの訓練の前ラウンドより前に得られるパラメータの第1の平均値と、何れかのニューロンの訓練の現在のラウンドより後に得られるパラメータの第2の平均値とを取得し;第1の平均値と第2の平均値との間の差分を取得し;且つ差分の絶対値と第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおける何れかのニューロンの活性度を決定するように構成されている。
[0035] 例示的な実施形態では、処理ユニットは、更に:サービス・エンドにより送信された第1の人工知能AIモデルを受信し、複数のニューロンにおける全てのニューロンをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練するように構成されている。
[0036] 例示的な実施形態では、通信ユニットは、各ニューロンのフローズン・アクティブ・フラグ・ビットをサーバーへ送信するか、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサーバーへ送信するように更に構成されている。
[0037] 例示的な実施形態では、通信ユニットは、ターゲット・ニューロンに対応するパラメータ・データのみを、サービス・エンドへ返すように構成されている。
[0038] 人工知能モデルを取得する装置が提供される。装置は:
訓練対象の第1の人工知能AIモデルを取得するように構成された処理ユニットであって、第1のAIモデルは複数のニューロンを含む、処理ユニット;及び
第1のAIモデルを複数のクライアントへ送信するように構成された通信ユニットを含む。
[0039] 通信ユニットは、ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントのうちの各クライアントにより返されて来るものを受信するように更に構成されている。ターゲット・ニューロンに対応するパラメータ・データであって何れかのニューロンにより返されて来るものは、第1のAIモデルにおけるターゲット・ニューロンを訓練することにより、何れかのクライアントにより取得され、ターゲット・ニューロンの数は複数のニューロンの総数より少ない。
[0040] 処理ユニットは、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するように更に構成されている。
[0041] 例示的な実施形態では、処理ユニットは、何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新し、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを補足して、何れかのクライアントに対応する第2のAIモデルを取得するように構成されている。
[0042] 例示的な実施形態では、処理ユニットは:各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得し;且つ第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するか;又は第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けるように構成されている。
[0043] 例示的な実施形態では、通信ユニットは、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、複数のクライアントにより返されて来るものを受信するように更に構成されている。
[0044] 処理ユニットは、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを利用することにより、複数のニューロンのうちのターゲット・ニューロンを決定するように構成されている。
[0045] 人工知能モデルを取得するデバイスが更に提供される。デバイスは、メモリとプロセッサを含む。メモリは少なくとも1つの命令を記憶し、少なくとも1つの命令は、第1の態様又は第1の態様の例示的な実施形態のうちの任意の1つによる人工知能モデルを取得する方法を実行するために、プロセッサによりロードされて実行される。
[0046] 人工知能モデルを取得するデバイスが更に提供される。デバイスは、メモリとプロセッサを含む。メモリは少なくとも1つの命令を記憶し、少なくとも1つの命令は、第2の態様又は第2の態様の例示的な実施形態のうちの任意の1つによる人工知能モデルを取得する方法を実行するために、プロセッサによりロードされて実行される。
[0047] コンピュータ読み取り可能な記憶媒体が更に提供される。記憶媒体は少なくとも1つの命令を記憶し、命令は、人工知能モデルを取得するための前述の方法のうちの任意の1つを実行するために、プロセッサによりロードされて実行される。
[0048] 別の通信装置が提供される。装置は、トランシーバ、メモリ、及びプロセッサを含む。トランシーバ、メモリ、及びプロセッサは、内部接続チャネルを介して互いに通信する。メモリは、命令を記憶するように構成されている。プロセッサは、メモリに記憶された命令を実行し、信号を受信するようにトランシーバを制御し、且つ信号を送信するようにトランシーバを制御するように構成される。更に、プロセッサがメモリに記憶された命令を実行すると、プロセッサは、第1の態様及び第1の態様の可能な実装による方法を実行することが可能になる。
[0049] 別の通信装置が提供される。装置は、トランシーバ、メモリ、及びプロセッサを含む。トランシーバ、メモリ、及びプロセッサは、内部接続チャネルを介して互いに通信する。メモリは、命令を記憶するように構成されている。プロセッサは、メモリに記憶された命令を実行し、信号を受信するようにトランシーバを制御し、且つ信号を送信するようにトランシーバを制御するように構成される。更に、プロセッサがメモリに記憶された命令を実行すると、プロセッサは、第2の態様及び第2の態様の可能な実装による方法を実行することが可能になる。
[0050] 例示的な実施形態では、1つ以上のプロセッサが存在し、1つ以上のメモリが存在する。
[0051] 例示的な実施形態では、メモリはプロセッサと一体化されてもよいし、或いはメモリはプロセッサから独立して配置されてもよい。
[0052] 特定の実装プロセスでは、メモリは、リード・オンリー・メモリ(read-only memory,ROM)のような非一時的な(non-transitory)メモリである可能性がある。メモリ及びプロセッサは、1つのチップに統合されてもよいし、或いは異なるチップに別々に配置されてもよい。メモリの種類、及びメモリやプロセッサが配置される方法は、本願のこの実施形態で限定されない。
[0053] コンピュータ・プログラム(製品)が提供される。コンピュータ・プログラム(製品)は、コンピュータ・プログラム・コードを含む。コンピュータ・プログラム・コードがコンピュータ上で実行されると、コンピュータは、前述の態様に従って方法を実行することが可能である。
[0054] チップが提供される。チップは、メモリに記憶されている命令をメモリから起動し、命令を実行するように構成されたプロセッサを含み、その結果、チップが組み込まれていてる通信デバイスは、前述の態様に従って方法を実行する。
[0055] 別のチップが提供される。チップは、入力インターフェース、出力インターフェース、プロセッサ、及びメモリを含む。入力インターフェース、出力インターフェース、プロセッサ、及びメモリは、内部接続チャネルを介して互いに接続される。プロセッサは、メモリ内のコードを実行するように構成されている。コードが実行されると、プロセッサは、上記の態様に従って方法を実行するように構成されている。
[0056] 図1は、本願の実施形態による連合学習のためのネットワーク・アーキテクチャの概略図である。
[0057] 図2は、本願の実施形態による連合学習のためのネットワーク・アーキテクチャの概略図である。
[0058] 図3は、本願の実施形態による人工知能モデルを取得する方法のフローチャートである。
[0059] 図4は、本願の実施形態による人工知能モデルを取得する際の相互作用プロセスの概略図である。
[0060] 図5は、本願の実施形態によるクライアントに関する人工知能モデル取得プロセスの概略図である。
[0061] 図6は、本願の実施形態による人工知能モデルを取得する装置の構造の概略図である。
[0062] 図7は、本願の実施形態による人工知能モデルを取得する装置の構造の概略図である。
[0063] 図8は、本願の実施形態による人工知能モデルを取得する装置の構造の概略図である。
[0064] 本願の実装部分で使用される用語は、本願の実施態様を説明するために使用されているに過ぎず、本願を限定するようには意図されていない。
[0065] 人工知能技術の発達とともに、益々多くの人工知能モデルが存在し、AIモデルを取得するための連合学習方法のような、人工知能モデルを取得する方法も増えつつある。連合学習は、新しい基本的な人工知能技術であり、元々は、アンドロイド携帯電話端末のユーザーがモデルをローカルに更新する問題を解決するために使用されていたものであり、端末データ及び個人データのプライバシーを保護し且つ合法性を確保することを前提として、複数の参加者又は演算ノード間で効率的な機械学習を実施することを目的としている。現在、連合学習は、データ共有をせずにAIモデルを共同で構築し、AIモデルの効果を改善するために拡張されている。
[0066] 図1に示される連合学習のためのネットワーク・アーキテクチャが一例として使用される。ネットワーク・アーキテクチャは2層に分かれており:下位層は複数のクライアントであり、上位層はサービス・エンドである。クライアントは、通常、デバイスを示し、大量のデータがデバイスに流れ込む。図1に示されるように、ネットワーク・アーキテクチャに含まれる複数のクライアントが、クライアント1、クライアント2、及びクライアント3である例が使用されている。通常、クライアントのデータを収集したり或いは共有したりすることは困難である。従って、クライアント1のデータに基づいて訓練されたAIモデルはクライアント1に対してのみ有効であり、クライアント2のデータに基づいて訓練されたAIモデルはクライアント2に対してのみ有効であり、クライアント3のデータに基づいて訓練されたAIモデルはクライアント3に対してのみ有効である。全てのクライアントからのデータを使用するために、AIモデルを取得する連合学習方法が出現した。
[0067] 連合学習を通じてAIモデルを取得するプロセスにおいて、各クライアントは、現在のデバイスのデータ(各クライアントのデータは異なる可能性がある)を使用することにより、初期セントラル・モデル(一般的には同じ)に関するローカルな訓練を開始する。ローカル訓練が複数のバッチに対して各クライアントに関して実行された後、ローカル・モデルはサービス・エンドへアップロードされる。サービス・エンドは、更新されたセントラル・モデルを形成するために、ローカル・モデルに関して集約及び連合更新を実行する。更新されたセントラル・モデルが収束しない場合、サービス・エンドは、更新されたセントラル・モデルを各クライアントへ配信し続ける。各クライアントは、現在のデバイスのデータを使用することにより、更新されたセントラル・モデルに関するローカルな訓練を継続し、更新されたセントラル・モデルをサービス・エンドへアップロードする。このプロセスは、収束したセントラル・モデルが取得されるまえ繰り返される。この場合、連合訓練は完了する。
[0068] 前述の連合学習方式での訓練を通じて得られたセントラル・モデルは、全てのクライアントのデータに対して優れた識別能力を有し、AIモデルを、様々なクライアントのデータを収集することによって共同で構築することができる、という条件を大いに充足する。
[0069] しかしながら、連合学習によりAIモデルを訓練する前述のプロセスにおいて、各クライアントは、サービス・エンドによって提供される完全なモデルに関して完全な訓練を実行することを必要とし、訓練時間は比較的長い。更に、完全なモデルがクライアントとサービス・エンドとの間で伝送され、その結果、比較的高い通信オーバーヘッドを生じる。
[0070] そこで、本願の実施形態はAIモデルを取得する方法を提供する。この方法では、ローカルな訓練がクライアントに関して実行される場合に、ローカル・データによって影響を受ける、活性である可能性のあるニューロンのみが訓練され、不活性なニューロンは凍結される。不活性なニューロンが凍結されているということは、そのニューロンは訓練に関与しないことを示す。クライアントは、重要な情報をサービス・エンドに送信するために、アクティブなターゲット・ニューロンのパラメータ・データのみを毎回アップロードするので、たとえ小規模なクライアントに対してでさえ、サービス・エンドは、収束に向かう重要な情報を失わない。更に、非フローズン・ターゲット・ニューロンのみが訓練中に訓練されるので、クライアントの訓練時間が加速され、デバイスの電力消費が削減される。
[0071] 例えば、本願のこの実施形態で提供される方法は、図2に示されるネットワーク・アーキテクチャに適用されることが可能である。図2に示されるように、ネットワーク・アーキテクチャは、2つのクライアント:クライアント1とクライアント2を含む。クライアント1とクライアント2は、ローカルな訓練をサポートする任意のデバイスである可能性があり、携帯電話、タブレット、コンピュータ、スイッチ、光回線端末(optical line terminal,OLT)、光ネットワーク端末(optical network terminal,ONT)、ルータ等を含むが、これらに限定されない。サービス・エンドは、マルチ・モデル集約及び連合をサポートする任意のデバイス又はクラウド・プラットフォームであってもよく、サーバー、パブリック・クラウドなどを含むが、これらに限定されない。
[0072] 図2に示されるように、各クライアントは、ローカル・データを使用することによりモデル訓練の現在のラウンドを実行し、訓練の現在のラウンドに関与するターゲット・ニューロンのみを訓練し、訓練終了後に、ターゲット・ニューロンの対応するパラメータ・データを、サービス・エンドへアップロードする。例えば、サービス・エンドへ、ローカルなモデルがアップロードされるか、或いは、訓練の現在のラウンドに関与するターゲット・ニューロンに対応するパラメータのみがアップロードされるか、或いは、各ニューロンに対応するパラメータ(ターゲット・ニューロンに対応するパラメータ及び非ターゲット・ニューロンに対応するパラメータを含む)がアップロードされるか、或いは、ターゲット・ニューロンに対応するパラメータ差分のみがアップロードされる。訓練に関与するターゲット・ニューロンに対応するパラメータ・データであって、各クライアントから返されて来るパラメータ・データを集約した後、サービス・エンドは、各クライアントのAIモデルを復元し、AIモデルに基づいて、更新されたセントラル・モデルを取得する。更新されたセントラル・モデルが収束していない場合、更新されたセントラル・モデルは各クライアントへ配信される。収束したセントラル・モデルが取得されるまで、各クライアントは訓練の次のラウンドを開始する。
[0073] 以下では、図2に示されるネットワーク・アーキテクチャを例として使用し、本願のこの実施形態で提供される人工知能モデルを取得するための方法を説明している。図3に示されるように、この方法では、AIモデルは、サービス・エンドとクライアントとの間の相互作用を通じて取得されることが可能である。本願のこの実施形態で提供される方法は、以下の幾つかのプロセスを含む可能性がある。
[0074] 301:サービス・エンドが、訓練対象の第1の人工知能AIモデルを取得し、ここで、第1のAIモデルは複数のニューロンを含む。
[0075] 訓練対象の第1のAIモデルは、訓練されていない初期のAIモデルであってもよいし、或いは、訓練の1回以上のラウンドを経験しているが収束しておらず、未だ再訓練されることを必要とするAIモデルであってもよい。初期のAIモデル、或いは、収束しておらず再訓練されることを必要とするAIモデルにかかわらず、第1のAIモデルは複数のニューロンを含む。ニューロンは、AIモデルの基本単位であり、主に、生体ニューロンの構造や特性を装っており、入力信号のグループを受け取り、出力を生成する。
[0076] 第1のAIモデルに含まれるニューロンの数は、本願のこの実施形態では制限されず、訓練対象の第1のAIモデルのタイプは、本願のこの実施形態では制限されない。第1のAIモデルは任意のタイプのAIモデルであってよい。例えば、訓練対象の第1のAIモデルを取得する場合に、サーバーは、アプリケーション・シナリオに基づいて、取得されるべき第1のAIモデルのタイプを決定してもよい。
[0077] 302:サービス・エンドが、第1のAIモデルを複数のクライアントへ送信する。
[0078] 図2に示されるように、本願のこの実施形態で提供される方法が適用される実装環境では、サービス・エンドは、複数のクライアントに通信可能に接続されており、複数のクライアントは、最終的に収束したターゲットAIモデルを得るために連合学習を実行することが可能である。従って、サービス・エンドは第1のAIモデルを取得し、サービス・エンドは、第1のAIモデルを複数のクライアントへ送信することが可能であり、複数のクライアントは、第1のAIモデルに対して訓練プロセスを別々に実行する。
[0079] 例示的な実施形態では、第1のAIモデルをクライアントへ送信する場合に、サービス・エンドは、訓練バッチの数量をクライアントに更に送ることが可能であり、その結果、各クライアントは、第1のAIモデルに関する訓練の現在のラウンドを実行する回数を決定ですることができる。訓練の複数のラウンドが要求される場合、サービス・エンドは、サービス・エンドが第1のAIモデルをクライアントへ送信する度に、対応する数量のバッチを送ることが可能であり、訓練についての異なるラウンドに対するバッチの数量は、異なっていてもよいし又は同じであってもよい。訓練のラウンドに対するバッチの数量が同じである場合、サービス・エンドは、訓練の最初のラウンドにおいてのみ、バッチの数量をクライアントに供給することができ、以後、バッチの数量を反復的には送信しない。更に、サービス・エンドが訓練バッチの数量をクライアントに送信する方法に加えて、サービス・エンドは、訓練バッチの数量を供給せず、訓練の各ラウンドは、事前に合意されたバッチの数量に基づいて実行される。
[0080] 303:クライアントが、サービス・エンドにより送信された第1の人工知能AIモデルを受信する。
[0081] クライアントは、サービス・エンドに接続された複数のクライアントのうちの何れかであってよい。
[0082] 本願のこの実施形態では、クライアントの動作プロセスを説明するための例として、サービス・エンドに接続された複数のクライアントのうちの1つのみが使用されていることに留意すべきである。本願のこの実施形態におけるクライアントの動作プロセスは、サービス・エンドに接続された複数のクライアントに適用可能であり、全てのクライアントの動作プロセスが、1つひとつ改めて説明されてはいない。
[0083] 304:クライアントが、複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定する。ターゲット・ニューロンの数は複数のニューロンの総数より少なく、訓練の現在のラウンドは訓練の最初のラウンドではない。
[0084] ローカル・データは様々なニューロンに関して異なる度合いの影響を有するので、一部のニューロンのパラメータは、ローカル・データに基づく訓練の後で大きくは変化しない可能性がある。従って、本願のこの実施形態で提供される方法では、訓練対象の第1のAIモデルを受け取った後、クライアントは、第1のAIモデル内の全てのニューロンを訓練する必要はなく、活性度が特定の条件を満たすターゲット・ニューロンのみを訓練することができる。活性度が特定の条件を満たすターゲット・ニューロンは、ローカル・データの影響に起因してアクティブであることが可能なニューロンであってもよい。クライアントが、複数のニューロンから、訓練の現在のラウンドに関与するターゲット・ニューロンを決定する方法は、本願のこの実施形態において限定されない。例えば、ターゲット・ニューロンは活性度が或る条件を満たすニューロンである。例えば、活性度は活性度閾値より大きい。
[0085] 訓練の最初のラウンドでは、第1のAIモデルは訓練されていなので、どのニューロンが活性であり、どのニューロンが不活性であるのかを決定することはできない。従って、複数のニューロンから、訓練の現在のラウンドに関与しているターゲット・ニューロンを決定することは、サービス・エンドによって送信された第1の人工知能AIモデルを受信し、複数のニューロンの全てをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練することとを含む。
[0086] 訓練の現在のラウンドが訓練の最初のラウンドではないケースに関し、以下の2つの方法のみを説明のための例として使用する。
[0087] 方法1:訓練の現在のラウンドに関与しているターゲット・ニューロンは、複数のニューロンの中で、ニューロンの活性度に基づいて決定される。
[0088] 訓練の現在のラウンドが訓練の最初のラウンドではないケースの場合、ニューロンは、ローカル・データを使用することによって、訓練の前ラウンドで訓練されているので、どのニューロンが活性であり、どのニューロンが不活性であるかを決定することが可能である。従って、訓練の現在のラウンドが訓練の最初のラウンドではないケースの場合に、複数のニューロンから、訓練の現在のラウンドに関与するターゲット・ニューロンを決定することは:複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおけるその何れかのニューロンの活性度を取得することであって、活性度は、ニューロンがローカル・データによって影響を受ける程度を示す、こと;及び訓練の前ラウンドにおけるその何れかのニューロンの活性度は活性度閾値より大きいことに応答して、その何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定すること、を含むがこれらに限定されない。
[0089] 訓練の前ラウンドにおける何れかのニューロンの活性度を取得する方法は、本願のこの実施形態で限定されない。例えば、訓練の前ラウンドにおける何れかのニューロンの活性度を取得することは:何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値と、その何れかのニューロンの訓練の現在のラウンドより後に得られたパラメータの第2の平均値とを取得し;第1の平均値と第2の平均値との間の差分を取得し;且つ差分の絶対値と第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおけるその何れかのニューロンの活性度を決定することを含む。
[0090] 例えば、何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値はACであり、何れかのニューロンの訓練の前ラウンドより後に得られたパラメータの第2の平均値はAEである。差分の絶対値と第1の平均値の絶対値との商が、訓練の前ラウンドにおけるその何れかのニューロンの活性度として決定される。例えば、訓練の前ラウンドにおける何れかのニューロンの活性度ARは、以下の式を使用することによって得られる:
[0091] 訓練の前ラウンドにおける何れかニューロンの活性度を求める前述の方法に加えて、活性度を取得する別のオプション方法を得るために、前述の方法において変形が施されてもよい。xは、商がゼロになることを防止する最小値であり、例えば、0.0001であってもよい。xの値は、本願のこの実施態様において限定されない。
[0092] ある例では、何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値はACであり、何れかのニューロンの訓練の前ラウンドより後に得られたパラメータの第2の平均値はAEである。訓練の前ラウンドにおける何れかのニューロンの活性度ARは、以下の式を使用することによって得られる:
[0093] 数式において、μは活性度係数であり、経験に基づいて設定されてもよいし、或いは、訓練の各ラウンドの状況に基づいて調整されてもよい。
[0094] 別の例では、何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値はACであり、何れかのニューロンの訓練の前ラウンドより後に得られたパラメータの第2の平均値はAEである。訓練の前ラウンドにおける何れかのニューロンの活性度ARは、以下の式を使用することによって得られる:
[0095] 数式において、φは活性度定数であり、経験に基づいて設定されてもよいし、或いは、訓練の各ラウンドの状況に基づいて調整されてもよい。
[0096] 何れかのニューロンの活性度を得るためにどの方法が使用されるかにかかわらず、取得された活性度は、活性度閾値と比較されることが可能である。活性度が活性度閾値より大きい場合、その何れかのニューロンは、訓練の現在のラウンドに関与しているターゲット・ニューロンとして使用されている。活性度閾値は、本願のこの実施形態では限定されず、経験に基づいて設定されてもよいし、或いは訓練の各ラウンドの状況に基づいて調整されてもよい。
[0097] 方法2:訓練の現在のラウンドに関与しているターゲット・ニューロンは、複数のニューロンの中で、フローズン・アクティブ・フラグ・ビットを照会することによって決定される。
[0098] ニューロンの活性度が訓練の各ラウンドの間に計算され、活性度が閾値を満たすかどうかに基づいてターゲット・ニューロンが決定される方法1と方法2との間の相違は、本願のこの実施形態で提供される方法においては、活性度が、訓練の現在のラウンドの間に計算されず、フローズン・アクティブ・フラグ・ビットを照会することによって実行される点にある。例示的な実施形態では、複数のニューロンの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有しており、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、そのニューロンが、訓練の現在のラウンドに関与していることを示す。例えば、訓練の各ラウンドが修了した後に、活性度は前述の何れかの方法で計算されてもよく、ニューロンの活性度が閾値を満たしているニューロンのフローズン・アクティブ・フラグ・ビットの値は、第1の値に設定される。この場合、複数のニューロンの中から、訓練の現在のラウンドに関与しているターゲット・ニューロンを決定することは:ニューロンのフローズン・アクティブ・フラグ・ビットが第1の値であるニューロンを、訓練の現在のラウンドに関与しているターゲット・ニューロンとして決定することを含む。
[0099] 前述のように、フローズン・アクティブ・フラグ・ビットを使用することにより、訓練の現在のラウンドに関与しているか否かを示す前述の方法では、フローズン・アクティブ・フラグ・ビットの値も、活性度を用いて決定されることを必要とするが、その値は、訓練の前ラウンドが終了した後の計算により得られるので、即ち訓練の現在のラウンドより前に得られるので、ターゲット・ニューロンは、訓練の現在のラウンドの最中に、フローズン・アクティブ・フラグ・ビットを用いて直接的に決定されることが可能であり、その結果、訓練の現在のラウンドに関与するターゲット・ニューロンを決定する速度は比較的速い。これは、更に、訓練時間を短縮し、訓練速度を向上させる。
[0100] 更に、ニューロンのフローズン・アクティブ・フラグ・ビットの値が、訓練の現在のラウンドの間にどのようにして決定されるのかは、本願のこの実施形態で限定されない。例示的な実施形態では、複数のニューロンの各ニューロンは、対応するフローズン期間を更に有し、フローズン期間は、ニューロンが訓練に関与しない期間を示す。何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。例えば、何れかのニューロンのフローズン期間が終了した場合、その何れかのニューロンのフローズン・アクティブ・フラグ・ビットは第1の値である。このようにして、フローズン期間に基づいて、ニューロンが訓練に関与しない期間を指定し、フローズン期間に基づいて、ニューロンが訓練に関与するか否かを判断し、フローズン・アクティブ・フラグ・ビットの値を決定するために、フローズン期間を設定することによって、検出メカニズムが提供され、これにより、訓練プロセスにおける訓練に関与することを必要とするニューロンに対応するパラメータの欠落を防止し、ロバスト性を確保することができる。
[0101] 本願のこの実施形態では、ニューロンのフローズン・アクティブ・フラグ・ビットが第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定することの前に、方法は:複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得することであって、活性度は、ニューロンがローカル・データによって影響を受ける程度を示す、こと;及び訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンのフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新すること;を更に含む。
[0102] 訓練の前ラウンドにおいて何れかのニューロンの活性度を取得する方法については、方法1における活性度計算方法の説明を参照されたい。詳細はここで再び説明しない。例えば、訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新することは、以下の数式を使用することによってフローズン期間を更新することを含むが、これに限定されない:
[0103] フローズン期間を更新するための前述の数式において、Ti’はi番目のニューロンが更新された後のフローズン期間を示し、Tiはi番目のニューロンが更新される前のフローズン期間を示し、ARiは訓練の前ラウンドにおけるi番目のニューロンの活性度を示し、iは1からNまでの範囲に及ぶ整数であり、Nはニューロンの総数である。X1は 第1の活性度閾値を示し、X2は第2の活性度閾値を示し、X2はX1より大きい。
[0104] 第1の活性度閾値と第2の活性度閾値のサイズは、本願のこの実施形態では限定されず、経験に基づいて設定されてもよいし、或いは、訓練状況に基づいて調整されてもよい。例えば、X1 = 0.2 及び X2 = 0.4 であるならば、フローズン期間を更新するための前述の数式は、次のようになる:
[0105] 例えば、何れかのニューロンの活性度が0.3であるならば、ニューロンの更新後のフローズン期間Ti’の値は、更新前のフローズン期間Tiの値と同じである。ニューロンの活性度は大きくは変化していないと考えることが可能であり、従って、元のフローズン期間を維持することが可能である。例えば、何れかのニューロンの活性度が0.1であるならば、ニューロンの更新後のフローズン期間Ti’はTi + 1に等しい。ニューロンは十分に活性ではないと考えることが可能であり、従って、フローズン期間は増やされる。例えば、何れかのニューロンの活性度が0.6であるならば、ニューロンの更新後のフローズン期間Ti’は、
に等しい。ニューロンは比較的活性であると考えることが可能であり、従って、フローズン期間は短縮され、その結果、ニューロンは可能な限り速やかに訓練に関与し、重要な情報が失われないことを保証する。
[0106] 例示的な実施形態では、何れかのニューロンのフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新することは、以下を含むがこれらに限定されるものではない:
Ti’> Yであるニューロンに対して、Fi’を第2の値に設定し、例えば、第2の値を1に設定し、これは、訓練の現在のラウンドは凍結されることが可能であることを示し、即ち、ニューロンは訓練の現在のラウンドに関与しない;及び
Ti’= Yであるニューロンに対して、Fi’を第1の値に設定し、例えば、第1の値を0に設定し、これは、訓練の現在のラウンドは凍結されないことを示し、即ち、ニューロンは訓練の現在のラウンドに関与する。例えば、Yは1であってもよい。
[0107] 例示的な実施形態では、訓練のラウンドが終了した後、前述の更新プロセスは、各ニューロンのフローズン期間に関して実行されなくてもよく、ニューロンのフローズン期間が終了したニューロンのみが更新される。複数のニューロンの各々は、更に、対応するフローズン期間カウンタを有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示す。訓練の前ラウンドで何れかのニューロンの活性度を取得することは、以下を含む:何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了したことを示していること応答して、訓練の前ラウンドにおけるその何れかのニューロンの活性度を求める。
[0108] この実装では、フローズン期間カウンタが設定され、フローズン期間が終了したかどうかを示し、活性度はフローズン期間終了後に得られる。これは、フローズン期間が終了したかどうかを検出するための時間を更に短縮し、訓練速度を向上させる。例えば、より低い活性度は、より大きな値のフローズン期間、及びより長いフローズン期間を示す。フローズン期間カウンタの初期値は1に設定されてもよい。訓練ラウンドの数量が1つ増える度に、フローズン期間カウンタの値は1つ増える。換言すれば、フローズン期間の値は、フローズン期間カウンタの値と正に相関している。フローズン期間カウンタの値がフローズン期間の値に等しい場合、フローズン期間は終了したと考えられてよい。
更に、フローズン期間カウンタの値は、代替的に、フローズン期間の値と負に相関していてもよい。例えば、より低い活性度は、より大きな値のフローズン期間、及びより長いフローズン期間を示す。フローズン期間カウンタの初期値は、フローズン期間の値に設定されてもよい。訓練ラウンドの数量が1つ増える度に、フローズン期間カウンタの値は1つ減少する。フローズン期間カウンタの値が0である場合、フローズン期間は終了したと考えられてよい。
[0109] 訓練の現在のラウンドが訓練の最初のラウンドである場合、訓練の前ラウンドにおけるニューロンの活性度を、訓練の前ラウンドの結果に基づいて決定することはできないので、訓練の現在のラウンドにおけるニューロンのフローズン・アクティブ・フラグ・ビットの値を、訓練の前ラウンドにおけるニューロンの活性度に基づいて決定することはできない点に留意すべきである。従って、本願のこの実施形態は、訓練の最初のラウンドの間に初期化プロセスを提供する。例えば、訓練の現在のラウンドは訓練の最初のラウンドであるということに応答して、複数のニューロン内の各ニューロンのフローズン・アクティブ・フラグ・ビットの値は、第1の値に設定される。
[0110] 言い換えると、訓練の現在のラウンドが訓練の最初のラウンドである場合、各ニューロンのフローズン・アクティブ・フラグ・ビットの値は、第1の値に設定される。この場合、各ニューロンは、訓練の現在のラウンドに関与するように、ターゲット・ニューロンとして決定されることが可能である。そして、ニューロンのフローズン・アクティブ・フラグ・ビットの値は、訓練の現在のラウンドの結果に基づいて更新されることが可能であり、その結果、訓練の次のラウンドの間に、ターゲット・ニューロンは、訓練の現在のラウンドで更新されたフローズン・アクティブ・フラグ・ビットの値に基づいて直接的に決定されることが可能である。ニューロンのフローズン・アクティブ・フラグ・ビットの値を更新する方法については、前述の関連する説明を参照されたい。詳細はここで再び説明しない。
[0111] 305:クライアントが、ターゲット・ニューロンをローカル・データに基づいて訓練する。
[0112] 本願のこの実施形態で提供される方法において、クライアントは、ローカル・データに基づいてターゲット・ニューロンを訓練することが可能であり、その訓練は訓練の現在のラウンドのバッチに基づいて実行されることが可能である。例えば、訓練の現在のラウンドがE個のバッチを含む場合、ターゲット・ニューロンに対して訓練の現在のラウンドの1バッチを実行した後、クライアントは更新されたAIモデルを取得し、その後、訓練の現在のラウンドのE個のバッチが完了するまで、訓練を実行し続ける。
[0113] 訓練の現在のラウンドのバッチの数量は、サービス・エンドにより送付されてもよいし、或いは事前に合意してもよい。訓練の現在のラウンドのうちのバッチの数量及びバッチの数量を得る方法は、本願のこの実施形態では限定されない
[0114] 306:クライアントが、ターゲット・ニューロンに対応するパラメータ・データを、サービス・エンドへ返す。
[0115] クライアントがターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返す方法は、本願のこの実施形態では限定されない。ターゲット・ニューロンに対応するパラメータのみが返されてもよいし、或いは、ターゲット・ニューロンに対応するパラメータ差分のみが返されてもよいし、それによってクライアントとサービス・エンドとの間の通信帯域幅を減少させる。更に、訓練後に得られるAIモデルは、ターゲット・ニューロンに対応するパラメータを含むので、本願のこの実施形態で提供される方法は、訓練後に得られるAIモデルを返すこともサポートしており、訓練後に得られるAIモデルを返す方法で、ターゲット・ニューロンに対応するパラメータ・データを返す。代替的に、全てのニューロンに対応するパラメータ又はパラメータ差分が、サービス・エンドに返されてもよい。何れかのニューロンに対応するパラメータ差分は、何れかのニューロンに対応するパラメータであって訓練の現在のラウンドで得られたパラメータと、何れかのニューロンに対応するパラメータであって訓練の前ラウンドで得られたパラメータとの間の差分であってもよい。
[0116] フローズン・アクティブ・フラグ・ビットを使用することによって、ニューロンが訓練の現在のラウンドに関与しているかどうかを示す方法に関し、例示的な実施形態では、クライアントが、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すことは:各ニューロンのフローズン・アクティブ・フラグ・ビットをサーバーへ送ること、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサーバーへ送ることを更に含む。フローズン・アクティブ・フラグ・ビットを送信する方法は、本願のこの実施形態では限定されない。訓練の現在のラウンドが訓練の最初のラウンドである場合、クライアントは、各ニューロンのフローズン・アクティブ・フラグ・ビットをサーバーへ送信してもよい。ニューロンのフローズン・アクティブ・フラグ・ビットの値がその後に変化しないニューロンの場合、クライアントは、もはやそのニューロンのフローズン・アクティブ・フラグ・ビットを以後に送信しない可能性があり、これは通信帯域幅を更に削減する。例えば、フローズン・アクティブ・フラグ・ビットを送信する方法は、本願のこの実施形態では限定されない。例えば、5つのニューロンが存在する場合に、5ビットのデータが指示のために使用されてもよく、1ビットは1つのニューロンのフローズン・アクティブ・フラグ・ビットに対応する。ターゲット・ニューロンについては、フローズン・アクティブ・フラグ・ビットの第1の値は1であり、クライアントによって返されて来るフローズン・アクティブ・フラグ・ビットは10011であるかもしれない。第1のビット、第4のビット、及び第5のビットの値が1である場合、第1のニューロン、第4のニューロン、及び第5のニューロンが、ターゲット・ニューロンであることを示す。
[0117] 307:サービス・エンドが、ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントの各々により返されて来るものを受信する。
[0118] ターゲット・ニューロンに対応するパラメータ・データであって、何れかのクライアントによって返されて来るパラメータ・データは、第1のAIモデルにおいてターゲット・ニューロンを訓練することによって、その何れかのクライアントによって取得され、ターゲット・ニューロンの数は複数のニューロンの総数よりも少ない。
[0119] サービス・エンドは、同一の第1のAIモデルを複数のクライアントの各々に送信することが可能であるが、クライアントは異なるローカル・データを有し、異なるローカル・データはニューロンに対して異なる度合いの影響を有するので、訓練の現在のラウンドに関与しているターゲット・ニューロンであって異なるクライアントによって決定されるターゲット・ニューロンは一貫しておらず、ターゲット・ニューロンがローカル・データを用いて訓練された後に得られるパラメータも異なっている場合があり得る。換言すれば、ターゲット・ニューロンに対応するパラメータ・データであって、複数のクライアントからサービス・エンドによって時に受信されるパラメータ・データは、相違する可能性がある。
[0120] 例えば、図2に示されるネットワーク・アーキテクチャを例として使用する。第1のAIモデルが4つのニューロン:ニューロン1、ニューロン2、ニューロン3、及びニューロン4を含む場合に、クライアント1が、サービス・エンドによって送信された第1のAIモデルを受信し、クライアント1のローカル・データに基づいて4つのニューロンの活性度を決定した後に、クライアント1は、ニューロン1の活性度と、ニューロン2の活性度が、活性度閾値よりも大きいと判定する。言い換えれば、クライアント1によって決定されたターゲット・ニューロンは、ニューロン1とニューロン2である。この場合、サービス・エンドへ返されるパラメータ・データもまた、ニューロン1のパラメータ・データと、ニューロン2のパラメータ・データである。クライアント2が、サービス・エンドによって送信された第1のAIモデルを受信し、クライアント2のローカル・データに基づいて4つのニューロンの活性度を決定した後に、クライアント2は、ニューロン1の活性度と、ニューロン2の活性度と、ニューロン3の活性度とが、活性度閾値よりも大きいと判定する。言い換えれば、クライアント2によって決定されたターゲット・ニューロンは、ニューロン1と、ニューロン2と、ニューロン3である。この場合、サービス・エンドへ返されるパラメータ・データもまた、ニューロン1のパラメータ・データと、ニューロン2のパラメータ・データと、ニューロン3のパラメータ・データである。
[0121] クライアント1によって決定されたターゲット・ニューロンの数量は、クライアント2によって決定されたターゲット・ニューロンの数量とは異なることが分かる。また、クライアント1及びクライアント2がニューロン1及びニューロン2をターゲット・ニューロンとして決定したとしても、クライアント1のローカル・データとクライアント2のローカル・データとは相違するので、同じターゲット・ニューロン1及びニューロン2に関し、2つのニューロンを訓練することによりクライアント1が取得したパラメータ・データもまた、2つのニューロンを訓練することによりクライアント2が取得したパラメータ・データと相違する可能性がある。
[0122] 308:サービス・エンドが、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得する。
[0123] 上述したように、クライアントのローカル・データは異なる可能性があるので、ターゲット・ニューロンに対応するパラメータ・データであって、クライアントによってサービス・エンドへ返されるパラメータ・データもまた、相違する可能性がある。従って、サービス・エンドは、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントによって返されて来るパラメータ・データに基づいて、各クライアントに対応する第2のAIモデルを復元する。
[0124] 例示的な実施形態では、サービス・エンドが、ターゲット・ニューロンに対応しするパラメータ・データであって各クライアントによって返されるパラメータ・データに基づいて、各クライアントに対応する第2のAIモデルを復元することは:何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであってその何れかのクライアントによって返されるパラメータ・データに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新して、何れかのクライアントに対応する第2のAIモデルを取得することを含む。例えば、第2のAIモデルにおける非ターゲット・ニューロンは、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータである。
[0125] 例えば、第1のAIモデルはニューロン1とニューロン2を含む。クライアント2は、ニューロン1のパラメータを返し、ニューロン2のパラメータを返さない。この場合、ニューロン1はターゲット・ニューロンであり、ニューロン2は非ターゲット・ニューロンである。第1のAIモデルにおけるニューロン1に対応するパラメータは、ニューロン1に対応するパラメータであってクライアントにより返されるパラメータに基づいて更新され、第1のAIモデルにおけるニューロン2に対応するパラメータは、クライアント2に対応する第2のAIモデルを得るために補足される。
[0126] 別の例では、第1のAIモデルはニューロン1とニューロン2を含む。クライアント1は、ニューロン2に対応するパラメータを返し、ニューロン1に対応するパラメータを返さない。この場合、ニューロン2はターゲット・ニューロンであり、ニューロン1は非ターゲット・ニューロンである。第1のAIモデルにおけるニューロン2に対応するパラメータは、ニューロン2に対応するパラメータであってクライアントにより返されるパラメータに基づいて更新され、第1のAIモデルにおけるニューロン1に対応するパラメータは、クライアント1に対応する第2のAIモデルを得るために補足される。
[0127] 非ターゲット・ニューロンに対応するパラメータを補足する方法は、本願のこの実施形態では限定されない。例えば、訓練の前ラウンドで更新されたAIモデルにおける同一の非ターゲット・ニューロンに対応するパラメータは、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを置き換えるために使用されることが可能である。
[0128] クライアントがターゲット・ニューロンに対応するパラメータ差分を返す場合に、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータの値及びパラメータ差分は、ターゲット・ニューロンに対応するパラメータを得ることができるために統合されてもよいことに留意すべきである。
[0129] 各クライアントに対応する第2のAIモデルが、復元によって得られる場合、どのニューロンがターゲット・ニューロンであるかを区別するために、ターゲット・ニューロンに対応するパラメータであって各クライアントによって返されるパラメータに基づいて、各クライアントに対応する第2のAIモデルを復元する前に、本願のこの実施形態で提供される方法は:各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、複数のクライアントによって返されるものを受信し;且つ、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを使用することによって、複数のニューロンにおけるターゲット・ニューロンを決定することを更に含む。
[0130] 例示的な実施形態では、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得することは:
各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得し;且つ
第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するか;又は
第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けることを含む。
[0131] 例えば、第3のAIモデルを得るために、各クライアントに対応する第2のAIモデルに対して連合平均化を実行する方法は、本願のこの実施形態で限定されない。1つのニューロンは1つ以上のパラメータを有する可能性があるので、各々の第2のAIモデルにおける同じニューロンに対応する同じパラメータが平均化されてもよく、その平均値は、第3のAIモデルにおける同じニューロンに対応する同じパラメータのパラメータ値として使用される。例えば、各クライアントに対応する第2のAIモデルにおける同じニューロンに関し、同じニューロンに対応するパラメータの平均値が、ターゲット・パラメータ値として使用され、第1のAIモデルにおけるニューロンに対応するパラメータ値は、ターゲット・パラメータ値に置き換えられて、第3のAIモデルを得ることができる。例えば、第1のAIモデルはニューロン1とニューロン2を含む。任意のクライアントに対応する第2のAIモデルは、第1のAIモデルに基づく復元により取得される。従って、第2のAIモデルもまたニューロン1とニューロン2を含む。全ての第2のAIモデルにおけるニューロン1に対応する第1のパラメータの値が平均化され、次いで、第1のAIモデルにおけるニューロン1に対応する第1のパラメータの値を置き換える。全ての第2のAIモデルにおけるニューロン2に対応する第2のパラメータの値が平均化され、次いで、第1のAIモデルにおけるニューロン2に対応する第2のパラメータの値を置き換えて、第3のAIモデルを得る。
[0132] 前述の復元方法に加えて、新たな復元方法が更なる変形によって取得されてもよい。例えば、各クライアントに対応する第2のAIモデルにおける同じニューロンに対して、その同じニューロンに対応するパラメータの平均値が使用され、その平均値と基準係数との積がターゲット・パラメータ値として使用され、第1のAIモデルにおけるニューロンに対応するパラメータ値は、ターゲット・パラメータ値に置き換えられ、第3のAIモデルが取得される。第1のAIモデルと第2のAIモデルの両方がニューロン1とニューロン2を含んでいることを引き続き例として使用する。全ての第2のAIモデルにおけるニューロン1に対応する第1のパラメータの値が平均化されて第1の平均値を取得し、第1の平均値と基準係数との積を用いて、第1のAIモデルにおけるニューロン1に対応する第1のパラメータの値を置き換え、全ての第2のAIモデルにおけるニューロン2に対応する第2のパラメータの値が平均化されて第2の平均値を取得し、第2の平均値と基準係数との積を用いて、第1のAIモデルにおけるニューロン2に対応する第2のパラメータの値を置き換えて、第3のAIモデルを得る。基準係数は、経験に基づいて設定されてもよいし、或いは適用シナリオに基づいて調整されてもよい。これは本願のこの実施態様において限定されない。
[0133] 連合平均化を実行して第3のAIモデルを得るために何れの方法が使用されるかにかかわらず、第3のAIモデルが得られた後に、第3のAIモデルは収束しているかどうかが判定され、第3のAIモデルは収束していることに応答して、第3のAIモデルはターゲットAIモデルとして用いられる。あるいは、第3のAIモデルは収束していないことに応答して、第3のAIモデルは複数のクライアントへ送信され、第3のAIモデルを取得した方法で新しいAIモデルが引き続き取得され、このプロセスは、収束したターゲットAIモデルが得られるまで繰り返される。
[0134] 第3のAIモデルが収束したかどうかを判定する方法は、本願のこの実施形態では限定されず、訓練のラウンドの数量が訓練閾値に到達することであってもよいし、或いは、第3のAIモデルのパフォーマンスが特定の要件を満たすことであってもよい。
[0135] 結論として、本願のこの実施形態で提供される方法によれば、モデル内の全てのニューロンが訓練されることを必要とせず、活性状態に基づいて、一部のニューロンが訓練のために選択される。これは、消費電力を削減し、訓練速度を向上させることが可能である。更に、クライアントは訓練されたニューロンに対応するパラメータのみをサービス・エンドへ送信するので、通信帯域幅を削減することが可能である。
[0136] 更に、フローズン・アクティブ・フラグ・ビットは活性状態を示し、その結果、ターゲット・ニューロンは、フローズン・アクティブ・フラグ・ビットを使用することによって直接的に決定されることが可能である。従って、ターゲット・ニューロンを決定する速度は比較的速い。これは、更に、訓練時間を短縮し、訓練速度を向上させる。フローズン期間が設定され、ニューロンが訓練に関与しない期間はフローズン期間に基づいて示され、ニューロンが訓練に関与するか否かは、フローズン期間に基づいて決定され、これにより、訓練プロセスで訓練に関与する必要があるニューロンに対応するパラメータの欠落を防止し、ロバスト性を保証する。フローズン期間カウンタが設定され、フローズン期間は終了したかどうかを示し、フローズン期間が終了した後に、活性度が取得される。これは、フローズン期間が終了するかどうかを検出するための時間を更に短縮し、訓練速度を向上させる。
[0137] 本願のこの実施形態で提供される人工知能モデルを取得する方法の全体的な手順は、図4に示される相互作用プロセスであってもよい。以下、複数のクライアントのうちのターゲット・クライアントとサービス端末と間の対話処理を具体例として使用することにより、本願の実施形態で提供される人工知能モデルを取得する方法を説明する。図4に示すように、本方法は、以下のステップを含むが、これらに限定されない。
[0138] 401:サービス・エンドは、セントラル・モデルを複数のクライアントへ供給し、ターゲット・クライアントはセントラル・モデルを受信し、ここで、セントラル・モデルはN個のニューロンを有する。
[0139] 402:クライアントはローカルな訓練を開始する。現在のラウンドが最初のラウンドである場合、フローズン期間Tiに関して初期化が実行され、Ti=1,i∈{1,2,...,N}、これは、現在のラウンドにおいてi番目のニューロンでフリーズ検出が実行されることを示す。フローズン・アクティブ・フラグ・ビットFiに関して初期化が実行され、Fi=0,i∈{1,2,...,N}、これは、i番目のニューロンはフローズンでないことを示す(値が1であったならば、それは、i番目のニューロンがフローズンであることを示す)。フローズン期間カウンタTciに関して初期化が実行され、Tci=1,i∈{1,2,...,N}である(サービス・エンドとの相互作用各々についてTci+1)。ニューロン凍結法に基づく訓練の現在のカウントは、Ti、Fi、及びTciの値を更新するためにローカルに実行される。
[0140] 403:各クライアントは、サービス・エンドへ、訓練の現在のラウンドに関与しているターゲット・ニューロンのパラメータ・データをアップロードする。
[0141] 404:フローズン・アクティブ・フラグ・ビットFiが変化した場合、ターゲット・クライアントは、フローズン・アクティブ・フラグ・ビットFiをサービス・エンドへアップロードする。
[0142] ニューロンのフローズン・アクティブ・フラグ・ビットFiが変化していないニューロンについては、ニューロンのフローズン・アクティブ・フラグ・ビットFiは送信されなくてもよいことに留意すべきである。全てのニューロンのフローズン・アクティブ・フラグ・ビットFiが変化しない場合、403のプロセスは省略されてもよい。
[0143] 405:サービス・エンドは、各クライアントのローカルな部分モデルとフローズン・アクティブ・フラグ・ビットを集約し、各ローカル・モデルを復元する。
[0144] サービス・エンドは、各クライアントのローカルな部分モデルMIを集約し、ここで、Iはクライアントの数量を示す。例えば、クライアント1のローカルな部分モデルはM10であり、クライアント2のローカルな部分モデルはM20であり、クライアント3のローカルな部分モデルはM30である、等々である。
[0145] 例えば、ニューロンは左から右へ、及び上から下へ配置され、関連するニューロンのパラメータは上から下へ配置される。フローズン・アクティブ・フラグ・ビットFi=1のニューロンは、最も近いセントラル・モデル・パラメータを用いて補足され、フローズン・アクティブ・フラグ・ビットFi=0のニューロンは、ローカルな部分モデルパラメータを用いて更新される。
[0146] 406:サービス・エンドは、ローカル・モデルに対して連合平均化を実行し、セントラル・モデルを更新する。
[0147] 407:サービス・エンドは、セントラル・モデルを各クライアントへ供給し、次いで401が実行される。
[0148] 401ないし407の前述のプロセスは、セントラル・モデルが収束し、収束したターゲットAIモデルが得られるまで反復される。その場合、連合学習訓練は終了する。
[0149] クライアントは、人工知能モデルを取得するための方法を実行する。クライアントによって実行されるモデル訓練プロセスは、図5に示される例を使用して説明される。図5に示すように、方法は、以下のステップを含むが、これらに限定されない。
[0150] 501:クライアントは、サービス・エンドによって送信されたセントラル・モデルを受信する。
[0151] セントラル・モデルは、通常、オフラインで訓練された既知のモデルであり、ニューロンの数量はNである。更に、クライアントは、訓練の現在のラウンドのバッチEを決定する。訓練の各ラウンドのバッチは、サービス・エンドによってクライアントへ供給してもよいし、両当事者によって合意形成されてもよい。通常、各クライアントに関する訓練の各ラウンドのバッチの数量は同じである。
[0152] 502:クライアントは、セントラル・モデルのニューロンについてのフローズン期間、フローズン・アクティブ・フラグ・ビット、及びフローズン期間カウンタを初期化する。
[0153] 例えば、セントラル・モデルのニューロンの初期化されたフローズン期間は全て1であり、即ち、Ti=1, i∈{1,2,...,5}である。Ti=1である場合、訓練の現在のラウンドにおけるローカル・モデルのi番目のニューロンは、フローズン期間を更新するために、凍結検出メカニズムを実行することを必要とする。
[0154] 各ニューロンの初期化されたフローズン・アクティブ・フラグ・ビットは0であり、即ち、Fi=1, i∈{1,2,...,5}である。Fi=1である場合、訓練の現在のラウンドにおけるローカル・モデルのi番目のニューロンはフローズンであり、即ち、ニューロンに対応するパラメータは訓練に関与しない。
[0155] 各ニューロンの初期化されたフローズン期間カウンタはTci = 1である。
[0156] 503:クライアントは、初期セントラル・モデルに基づいて各ニューロンの値Fiを照会し、ニューロンのFiが1である全てのニューロンを凍結し、バッチEに対して、Fiが0である全てのニューロンの訓練を開始する。
[0157] 504:クライアントは、各ニューロンの値Tiを照会し、ニューロンのTciがTiに等しい全てのニューロンについて、フリーズ検出メカニズムを開始し、TiとFiを更新し、再初期化を実行してTci = 1を得る。
[0158] TciがTiに等しくない全てのニューロンについて、TiとFiは維持され、フローズン期間において、カウンタTciはTci+1に更新される。
[0159] 505:訓練が終了した後に、クライアントはローカル・モデルを取得し、ローカル・モデルをサービス・エンドへアップロードする。
[0160] 本願の実施形態は、人工知能モデルを取得する装置を提供する。装置は、図3に示される実施形態においてクライアントによって実行される方法を実行するように構成されている。図6に示すように、装置は以下を含む:
サービス・エンドにより送信された第1の人工知能AIモデルを受信するように構成された通信ユニット601であって、第1のAIモデルは複数のニューロンを含み;例えば、通信ユニット601によって実行される機能は、図3の303に示されているものであってもよく、詳細はここで再び説明されない、通信ユニット;及び
複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するように構成された処理ユニット602であって、訓練の現在のラウンドは訓練の最初のラウンドではなく、ターゲット・ニューロンの数は複数のニューロンの総数より少なく;例えば、処理ユニット602によって実行される機能は、図3の303に示されているものであってもよく、詳細はここで再び説明されない、処理ユニット。
[0161] 処理ユニット602は、ターゲット・ニューロンをローカル・データに基づいて訓練し、ターゲット・ニューロンに対応するパラメータを取得するように更に構成されている。例えば、処理ユニット602によって実行される機能は、図3の305に示されているものであってもよく、詳細はここで再び説明されない。
[0162] 通信ユニット601は、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すように更に構成されている。ターゲット・ニューロンに対応するパラメータ・データは、収束したターゲットAIモデルを取得するためにサービス・エンドにより使用される。例えば、通信ユニット601によって実行される機能は、図3の306に示されているものであってもよく、詳細はここで再び説明されない。
[0163] 例示的な実施形態において、複数のニューロンのうちの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有し、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、ニューロンが訓練の現在のラウンドに関与していることを示し;且つ
処理ユニット602は、ニューロンのフローズン・アクティブ・フラグ・ビットが第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0164] 例示的な実施形態において、複数のニューロンのうちの各ニューロンは、対応するフローズン期間を有し、フローズン期間は、ニューロンが訓練に関与しない期間を示し;且つ
何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。
[0165] 例示的な実施形態において、処理ユニット602は、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように更に構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ
処理ユニット602は、訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンのフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新するように更に構成されている。
[0166] 例示的な実施形態において、複数のニューロンのうちの各ニューロンは、対応するフローズン期間カウンタを更に有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示し;且つ
処理ユニット602は、何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了していることを示していることに応答して、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されている。
[0167] 例示的な実施形態において、処理ユニット602は、訓練の現在のラウンドが訓練の最初のラウンドではないことに応答して、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ
処理ユニットは、訓練の前ラウンドにおける何れかのニューロンの活性度は活性度閾値より大きいことに応答して、何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0168] 例示的な実施形態において、処理ユニット602は:
何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値と、何れかのニューロンの訓練の現在のラウンドより後に得られたパラメータの第2の平均値とを取得し;
第1の平均値と第2の平均値との間の差分を取得し;且つ
差分の絶対値と第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおける何れかのニューロンの活性度を決定するように構成されている。
[0169] 例示的な実施形態において、処理ユニット602は、サービス・エンドにより送信された第1の人工知能AIモデルを受信し、複数のニューロンにおける全てのニューロンをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練するように更に構成されている。
[0170] 例示的な実施形態において、通信ユニット601は、各ニューロンのフローズン・アクティブ・フラグ・ビットをサーバーへ送信するか、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサーバーへ送信するように更に構成されている。
[0171] 例示的な実施形態において、通信ユニット601は、ターゲット・ニューロンに対応するパラメータ・データのみを、サービス・エンドへ返すように構成されている。
[0172] 本願のこの実施形態で提供される装置によれば、モデル内の全てではないニューロンが訓練されることを必要とし、一部のニューロンが、活性状態に基づいて訓練のために選択される。これは、消費電力を削減し、訓練速度を向上させることができる。更に、クライアントは、訓練されたニューロンに対応するパラメータのみをサービス・エンドへ送信するので、通信帯域幅を減らすことができる。
[0173] 更に、フローズン・アクティブ・フラグ・ビットは活性状態を示し、その結果、ターゲット・ニューロンは、フローズン・アクティブ・フラグ・ビットを使用することによって直接的に決定されることが可能である。従って、ターゲット・ニューロンを決定する速度は比較的速い。これは、更に、訓練時間を短縮し、訓練速度を向上させる。フローズン期間が設定され、ニューロンが訓練に関与しない期間はフローズン期間に基づいて示され、ニューロンが訓練に関与するか否かは、フローズン期間に基づいて決定され、これにより、訓練プロセスで訓練に関与する必要があるニューロンに対応するパラメータの欠落を防止し、ロバスト性を保証する。フローズン期間カウンタが設定され、フローズン期間は終了したかどうかを示し、フローズン期間が終了した後に、活性度が取得される。これは、フローズン期間が終了するかどうかを検出するための時間を更に短縮し、訓練速度を向上させる。
[0174] 本願の実施形態は、人工知能モデルを取得する装置を提供する。装置は、図3に示される実施形態においてサービス・エンドによって実行される方法を実行するように構成されている。図7に示すように、装置は以下を含む:
訓練対象の第1の人工知能AIモデルを取得するように構成された処理ユニット701であって、第1のAIモデルは複数のニューロンを含み、例えば、処理ユニット701によって実行される機能は、図3の301に示されているものであってもよく、詳細はここで再び説明されない、処理ユニット;及び
第1のAIモデルを複数のクライアントへ送信するように構成された通信ユニット702であって、例えば、通信ユニット702によって実行される機能は、図3の302に示されているものであってもよく、詳細はここで再び説明されない、通信ユニット702。
[0175] 通信ユニット702は、ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントのうちの各クライアントにより返されて来るものを受信するように更に構成されており、ターゲット・ニューロンに対応するパラメータ・データであって何れかのニューロンにより返されて来るものは、第1のAIモデルにおけるターゲット・ニューロンを訓練することにより、何れかのクライアントにより取得され、ターゲット・ニューロンの数は複数のニューロンの総数より少ない。例えば、通信ユニット702によって実行される機能は、図3の307に示されているものであってもよく、詳細はここで再び説明されない。
[0176] 処理ユニット701は、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するように更に構成されている。例えば、処理ユニット701によって実行される機能は、図3の307に示されているものであってもよく、詳細はここで再び説明されない。
[0177] 例示的な実施形態において、処理ユニット701は、何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新し、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを補足して、何れかのクライアントに対応する第2のAIモデルを取得するように構成されている。
[0178] 例示的な実施形態において、処理ユニット701は、何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新し、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを補足して、何れかのクライアントに対応する第2のAIモデルを取得するように構成されている。
[0179] 例示的な実施形態において、処理ユニット701は、各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得し;且つ
第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するか;又は
第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けるように構成されている。
[0180] 例示的な実施形態において、通信ユニット702は、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、複数のクライアントにより返されて来るものを受信するように更に構成されている。
[0181] 処理ユニット701は、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを利用することにより、複数のニューロンのうちのターゲット・ニューロンを決定するように構成されている。
[0182] 本願のこの実施形態で提供される装置によれば、クライアントは、モデル内の全てニューロンを訓練することは行わず、活性状態に基づいて、訓練する一部のニューロンを選択し、訓練されたターゲット・ニューロンに対応するパラメータのみをアップロードする。従って、通信帯域幅を減らすことができ、訓練速度を向上させることができる。このようにして、ターゲットAIモデルを取得する速度は向上する。
[0183] 更に、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新することに加えて、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータも補足される。これは、モデルのインテグリティを確保し、その結果、取得したターゲットAIモデルのパフォーマンスがより良好になる。
[0184] 図6又は図7に提供される装置が、装置の機能を実施する場合に、複数の機能モジュールへの分割は、単に説明のための一例として使用されているに過ぎないことが理解されるべきである。実際のアプリケーションでは、前述の機能は、要求に基づいて実装に関する様々な機能モジュールに割り当てることが可能である。換言すれば、デバイスの内部構造は、上述した機能の全部又は一部を実現するように、異なる機能モジュールに分割される。更に、上述した実施形態で提供される装置及び方法の実施形態は、同じ概念に関係している。装置の具体的な実施プロセスについては、方法の実施形態を参照されたい。詳細はここで再び説明されない。
[0185] 図8は、本願の実施形態による人工知能モデルを取得するデバイス1100のハードウェア構造の概略図である。図8に示される人工知能モデルを取得するデバイス1100は、前述の実施形態の方法におけるサービス・エンド又はクライアントによって実行される対応するステップを実行することが可能である。
[0186] 図8に示されるように、人工知能モデルを取得するデバイス1100は、プロセッサ1101、メモリ1102、インターフェース1103、及びバス1104を含む。インターフェース1103は、無線又は有線方式で実装されてもよく、具体的には、ネットワーク・アダプタであってもよい。プロセッサ1101、メモリ1102、及びインターフェース1103は、バス1104を介して接続される。
[0187] インターフェース1103は、送信機と受信機を含んでもよい。人工知能モデルを取得するデバイスは、ターゲット・ニューロンに対応するパラメータを、インターフェース1103を介して送受信することが可能である。
[0188] 例えば、図8に示される人工知能モデルを取得するデバイス1100は、図3におけるクライアントであり、プロセッサ1002は、メモリ1001内の命令を読み込み、その結果、図8に示される人工知能モデルを取得するデバイス1100は、クライアントによって実行される全て又は一部の動作を実行することができる。
[0189] 別の例では、図8に示される人工知能モデルを取得するデバイス1100は、図3におけるサービス・エンドであり、プロセッサ1002は、メモリ1001内の命令を読み込み、その結果、図8に示される人工知能モデルを取得するデバイス1100は、サービス・エンドによって実行される全て又は一部の動作を実行することができる。
[0190] 更に、プロセッサ1101は、本明細書で説明される技術の別のプロセスを実行するように構成される。メモリ1102は、オペレーティング・システム11021及びアプリケーション11022を含み、プログラム、コード、又は命令を格納するように構成される。プログラム、コード、又は命令を実行する場合に、プロセッサ又はハードウェア・デバイスは、方法の実施形態において人工知能モデルを取得するデバイス1100に関連する処理プロセスを完備していてもよい。オプションとして、メモリ1102は、リード・オンリー・メモリ(英:Read-only Memory,略称ROM)及びランダム・アクセス・メモリ(英:Random Access Memory,略称RAM)を含んでもよい。ROMは、基本入/出力システム(英:Basic Input/Output System,略称BIOS)又は内蔵システムを含む。RAMは、アプリケーション・プログラムとオペレーティング・システムを含む。人工知能モデルを取得するデバイス1100が実行されることを必要とする場合、システムは、ROMに固定されたBIOS又は内蔵システムのブートローダを用いて起動され、人工知能モデルを得るためのデバイス1100は、正常な動作状態に立ち上げられる。正常な実行状態に入った後、人工知能モデルを取得するデバイス1100は、RAM内のアプリケーション及びオペレーティング・システムを実行し、方法の実施形態における人工知能モデルを取得する装置1100に関連する処理プロセスを完了する。
[0191] 図8は、人工知能モデルを取得するデバイス1100の単純化された設計を示しているだけであることが理解されよう。実際のアプリケーションでは、人工知能モデルを取得するデバイス1100は、任意の数量のインターフェース、プロセッサ、又はメモリを含んでもよい。
[0192] プロセッサは、中央処理ユニット(Central Processing Unit,CPU)であってもよいし、或いは、別の汎用プロセッサ、デジタル信号プロセッサ(digital signal processor,DSP)、特定用途向け集積回路(application-specific integrated circuit,ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array,FPGA)又は別のプログラマブル・ロジック・デバイス、個別ゲート又はトランジスタ・ロジック・デバイス、個別ハードウェア・コンポーネントなどであってもよいことが理解されるべきである。汎用プロセッサは、マイクロプロセッサ、任意の従来のプロセッサ等であってもよい。プロセッサは、高度な縮小命令セット・コンピュータ・マシン(advanced RISC machines,ARM)アーキテクチャをサポートするプロセッサであってもよいことに留意すべきである。
[0193] 更に、オプションの実施形態において、メモリは、リード・オンリー・メモリとランダム・アクセス・メモリを含み、命令及びデータをプロセッサに提供することができる。メモリは、更に、不揮発性ランダム・アクセス・メモリを含んでもよい。例えば、メモリは、デバイス・タイプの情報を更に格納することができる。
[0194] メモリは、揮発性メモリ又は不揮発性メモリであってもよいし、或いは、揮発性メモリと不揮発性メモリの両方を含んでもよい。不揮発性メモリは、リード・オンリー・メモリ(read-only memory,ROM)、プログラマブル・リード・オンリー・メモリ(programmable ROM,PROM)、消去可能なプログラマブル・リード・オンリー・メモリ(erasable PROM,EPROM)、電気的に消去可能なプログラマブル・リード・オンリー・メモリ(electrically EPROM,EEPROM)、又はフラッシュ・メモリであってもよい。揮発性メモリは、外部キャッシュとして使用されるランダム・アクセス・メモリ(random access memory,RAM)であってもよい。限定ではない具体例として、多くの形態のRAMが使用される可能性があり、例えば、スタティック・ランダム・アクセス・メモリ(static RAM, SRAM)、ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory, DRAM)、同期ダイナミック・ランダム・アクセス・メモリ(synchronous DRAM,SDRAM)、二重データ・レート同期ダイナミック・ランダム・アクセス・メモリ(double data rate SDRAM,DDR SDRAM)、拡張同期ダイナミック・ランダム・アクセス・メモリ(enhanced SDRAM,ESDRAM)、同期リンク・ダイナミック・ランダム・アクセス・メモリ(synchlink DRAM,SLDRAM)、及びダイレクト・ランバス・ランダム・アクセス・メモリ(direct rambus RAM,DR RAM)である。
[0195] コンピュータ読み取り可能な記憶媒体が更に提供される。記憶媒体は、少なくとも1つの命令を記憶し、その命令は、プロセッサによってロードされて実行され、人工知能モデルを取得するための前述の何れかの方法を実施する。
[0196] 本願はコンピュータ・プログラムを提供する。コンピュータ・プログラムがコンピュータによって実行される場合に、プロセッサ又はコンピュータは、前述の方法の実施形態における対応するステップ及び/又は手順を実行することを可能にする。
[0197] チップが提供される。チップは、メモリに記憶されている命令を、メモリから起動し、命令を実行するように構成されたプロセッサを含み、その結果、チップが組み込まれた通信デバイスは、前述の態様における方法を実行する。
[0198] 別のチップが提供される。チップは、入力インターフェース、出力インターフェース、プロセッサ、及びメモリを含む。入力インターフェース、出力インターフェース、プロセッサ、及びメモリは、内部接続チャネルを介して互いに接続される。プロセッサは、メモリ内でコードを実行するように構成される。コードが実行されると、プロセッサは、前述の態様で方法を実行するように構成されている。
[0199] 前述の実施形態の全て又は一部は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせを使用することによって実施することができる。ソフトウェアが実施形態を実施するために使用される場合、実施形態の全て又は一部は、コンピュータ・プログラム製品の形態で実施されてもよい。コンピュータ・プログラム製品は、1つ以上のコンピュータ命令を含む。コンピュータ・プログラム命令がロードされ、コンピュータ上で実行される場合、本願による手順又は機能は、全体的又は部分的に生じる。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータ・ネットワーク、又は他のプログラム可能な装置であってもよい。コンピュータ命令は、コンピュータ読み取り可能な記憶媒体に記憶されてもよいし、或いはコンピュータ読み取り可能な記憶媒体から別のコンピュータ読み取り可能な記憶媒体へ送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバー、又はデータ・センターから別のウェブサイト、コンピュータ、サーバー、又はデータ・センターへ、有線(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者回線)又は無線(例えば、赤外線、無線、又はマイクロ波)方式で送信されることが可能である。コンピュータ読み取り可能な記憶媒体は、コンピュータによってアクセス可能な任意の使用可能媒体又はデータ記憶デバイス、例えば、1つ以上の使用可能な媒体を統合するサーバー又はデータ・センター等であってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピー・ディスク、ハード・ディスク、又は磁気テープ)、光媒体(例えば、DVD)、又は半導体媒体(例えば、ソリッド・ステート・ディスク(Solid State Disk))であってもよい。
[0200] 前述の具体的な実装において、本願の目的、技術的解決策、及び有益な効果が更に詳細に説明されている。前述の説明は、単に本願の具体的な実装であるに過ぎず、本願の保護範囲を限定するようには意図されていないことは理解されるべきである。本願の技術的解決策に基づいて行われる如何なる修正、同等な置換、改良などは本願の保護範囲に含まれるものとする。
[0001] 本願は、2020年3月31日に出願された「人工知能モデルを取得するための方法、装置、及びデバイス、並びに記憶媒体」と題する中国特許出願第202010246686.8号に対する優先権を主張しており、その全体が参照により本件に援用される。
[0002] 技術分野
本願は、人工知能技術の分野に関連し、特に、人工知能モデルを取得するための方法、装置、及びデバイス、並びに記憶媒体に関連する。
[0003] 背景
人工知能技術の発達とともに、多くの人工知能(artificial intelligence,AI)モデル、及び人工知能モデルを取得するための多くの方法、例えば人工知能モデルを取得するための連合学習(federated learning, FL)が存在している。
[0004] 連合学習は、新しい基本的な人工知能技術であり、元々は、アンドロイド携帯電話端末のユーザーがモデルをローカルに更新する問題を解決するために使用されていたものであり、端末データ及び個人データのプライバシーを保護し且つ合法性を確保することを前提として、複数の参加者又は演算ノード間で効率的な機械学習を実施することを目的としている。現在、連合学習は、データ共有をせずにAIモデルを共同で構築し、AIモデルの効果を改善するために拡張されている。
[0005] 本願の実施形態は、人工知能モデルを取得する方法、装置、及びデバイス、並びに記憶媒体を提供し、関連技術における問題を解決する。技術的解決策は以下のとおりである。
[0006] 第1の態様によれば、人工知能モデルを取得する方法が提供される。クライアントが方法を実行することが一例として使用される。方法は:クライアントが、サービス・エンドにより送信された第1の人工知能AIモデルを受信するステップであって、第1のAIモデルは複数のニューロンを含む、ステップ;クライアントが、複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するステップであって、訓練の現在のラウンドは訓練の最初のラウンドではなく、ターゲット・ニューロンの数は複数のニューロンの総数より少ない、ステップ;クライアントが、ターゲット・ニューロンをローカル・データに基づいて訓練するステップ;及びクライアントが、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すステップであって、ターゲット・ニューロンに対応するパラメータ・データは、収束したターゲットAIモデルを取得するためにサービス・エンドにより使用される、ステップを含む。
[0007] 本願のこの実施形態で提供される方法によれば、モデル内の全てではないニューロンが訓練されることを必要とし、一部のニューロンが、活性状態に基づいて訓練のために選択される。これは、消費電力を削減し、訓練速度を向上させることができる。更に、クライアントは、訓練されたニューロンに対応するパラメータのみをサービス・エンドへ送信するので、通信帯域幅を減らすことができる。
[0008] 例示的な実施形態では、ターゲット・ニューロンは、ニューロンの活性度が条件を満たしているニューロンである。例えば、ターゲット・ニューロンの活性度は、活性度閾値より大きい。
[0009] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有し、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、ニューロンが訓練の現在のラウンドに関与していることを示す。複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するステップは、フローズン・アクティブ・フラグ・ビットの値が第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するステップを含む。
[0010] フローズン・アクティブ・フラグ・ビットは活性状態を示すので、ターゲット・ニューロンは、フローズン・アクティブ・フラグ・ビットを使用することにより直接的に決定されることが可能である。従って、ターゲット・ニューロンの決定速度は比較的速い。これは、訓練時間を更に短縮し、訓練速度を向上させる。
[0011] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間を有し、フローズン期間は、ニューロンが訓練に関与しない期間を示し;且つ
何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。
[0012] 例示的な実施形態では、フローズン・アクティブ・フラグ・ビットの値が第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するステップの前に、当該方法は、更に:
複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップであって、活性度は、ニューロンが、ローカル・データによって影響を受ける程度を示す、ステップ;及び
訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンの更新されたフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新するステップを含む。
[0013] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間カウンタを更に有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示し;且つ
訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップは:
何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了していることを示していることに応答して、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップを含む。
[0014] 例示的な実施形態では、複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するステップは:
複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップであって、活性度は、ニューロンが、ローカル・データによって影響を受ける程度を示す、ステップ;及び
訓練の前ラウンドにおける何れかのニューロンの活性度は活性度閾値より大きいことに応答して、何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するステップを含む。
[0015] 例示的な実施形態では、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するステップは:
何れかのニューロンの訓練の前ラウンドより前に得られるパラメータの第1の平均値と、何れかのニューロンの訓練の現在のラウンドより後に得られるパラメータの第2の平均値とを取得するステップ;
第1の平均値と第2の平均値との間の差分を取得するステップ;及び
差分の絶対値と前記第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおける何れかのニューロンの活性度を決定するステップを含む。
[0016] 例示的な実施形態では、サービス・エンドにより送信された第1の人工知能AIモデルを受信するステップの前に、当該方法は、更に:
サービス・エンドにより送信された第1の人工知能AIモデルを受信し、複数のニューロンにおける全てのニューロンをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練するステップを含む。
[0017] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すステップは、更に:
各ニューロンのフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送信するステップ、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送信するステップを含む。
[0018] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すステップは:
ターゲット・ニューロンに対応するパラメータ・データのみを、サービス・エンドへ返すステップを含む。
[0019] 人工知能モデルを取得する方法が提供される。方法は:
訓練対象の第1の人工知能AIモデルを、サービス・エンドにより取得するステップであって、第1のAIモデルは複数のニューロンを含む、ステップ;
第1のAIモデルを複数のクライアントへ、サービス・エンドにより送信するステップ;
ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントのうちの各クライアントにより返されて来るものを、サービス・エンドにより受信するステップであって、ターゲット・ニューロンに対応するパラメータ・データであって何れかのニューロンにより返されて来るものは、第1のAIモデルにおけるターゲット・ニューロンを訓練することにより、何れかのクライアントにより取得され、ターゲット・ニューロンの数は複数のニューロンの総数より少ない、ステップ;及び
ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを、サービス・エンドにより復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するステップを含む。
[0020] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元するステップは:
何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新して、何れかのクライアントに対応する第2のAIモデルを取得するステップを含む。
[0021] 例示的な実施形態では、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するステップは:
各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得するステップ;及び
第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するステップ;又は
第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けるステップを含む。
[0022] 例示的な実施形態では、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元するステップの前に、当該方法は、更に:
各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、前記複数のクライアントにより返されて来るものを受信するステップ;及び
各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを利用することにより、複数のニューロンのうちのターゲット・ニューロンを決定するステップを含む。
[0023] 人工知能モデルを取得する装置が提供される。装置は:
サービス・エンドにより送信された第1の人工知能AIモデルを受信するように構成された通信ユニットであって、第1のAIモデルは複数のニューロンを含む、通信ユニット;及び
複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するように構成された処理ユニットであって、訓練の現在のラウンドは訓練の最初のラウンドではなく、ターゲット・ニューロンの数は複数のニューロンの総数より少ない、処理ユニットを含む。
[0024] 処理ユニットは、ターゲット・ニューロンをローカル・データに基づいて訓練するように更に構成されている。
[0025] 通信ユニットは、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すように更に構成されている。ターゲット・ニューロンに対応するパラメータ・データは、収束したターゲットAIモデルを取得するためにサービス・エンドにより使用される。
[0026] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有し、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、ニューロンが訓練の現在のラウンドに関与していることを示す。
[0027] 処理ユニットは、フローズン・アクティブ・フラグ・ビットの値が第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0028] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間を有し、フローズン期間は、ニューロンが訓練に関与しない期間を示す。
[0029] 何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。
[0030] 例示的な実施形態では、処理ユニットは、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように更に構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ処理ユニットは、訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンの更新されたフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新するように更に構成されている。
[0031] 例示的な実施形態では、複数のニューロンのうちの各ニューロンは、対応するフローズン期間カウンタを更に有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示す。
[0032] 処理ユニットは、何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了していることを示していることに応答して、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されている。
[0033] 例示的な実施形態では:処理ユニットは、訓練の現在のラウンドが訓練の最初のラウンドではないことに応答して、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ処理ユニットは、訓練の前ラウンドにおける何れかのニューロンの活性度は活性度閾値より大きいことに応答して、何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0034] 例示的な実施形態では、処理ユニットは:何れかのニューロンの訓練の前ラウンドより前に得られるパラメータの第1の平均値と、何れかのニューロンの訓練の現在のラウンドより後に得られるパラメータの第2の平均値とを取得し;第1の平均値と第2の平均値との間の差分を取得し;且つ差分の絶対値と第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおける何れかのニューロンの活性度を決定するように構成されている。
[0035] 例示的な実施形態では、処理ユニットは、更に:サービス・エンドにより送信された第1の人工知能AIモデルを受信し、複数のニューロンにおける全てのニューロンをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練するように構成されている。
[0036] 例示的な実施形態では、通信ユニットは、各ニューロンのフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送信するか、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送信するように更に構成されている。
[0037] 例示的な実施形態では、通信ユニットは、ターゲット・ニューロンに対応するパラメータ・データのみを、サービス・エンドへ返すように構成されている。
[0038] 人工知能モデルを取得する装置が提供される。装置は:
訓練対象の第1の人工知能AIモデルを取得するように構成された処理ユニットであって、第1のAIモデルは複数のニューロンを含む、処理ユニット;及び
第1のAIモデルを複数のクライアントへ送信するように構成された通信ユニットを含む。
[0039] 通信ユニットは、ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントのうちの各クライアントにより返されて来るものを受信するように更に構成されている。ターゲット・ニューロンに対応するパラメータ・データであって何れかのニューロンにより返されて来るものは、第1のAIモデルにおけるターゲット・ニューロンを訓練することにより、何れかのクライアントにより取得され、ターゲット・ニューロンの数は複数のニューロンの総数より少ない。
[0040] 処理ユニットは、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するように更に構成されている。
[0041] 例示的な実施形態では、処理ユニットは、何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新し、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを補足して、何れかのクライアントに対応する第2のAIモデルを取得するように構成されている。
[0042] 例示的な実施形態では、処理ユニットは:各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得し;且つ第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するか;又は第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けるように構成されている。
[0043] 例示的な実施形態では、通信ユニットは、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、複数のクライアントにより返されて来るものを受信するように更に構成されている。
[0044] 処理ユニットは、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを利用することにより、複数のニューロンのうちのターゲット・ニューロンを決定するように構成されている。
[0045] 人工知能モデルを取得するデバイスが更に提供される。デバイスは、メモリとプロセッサを含む。メモリは少なくとも1つの命令を記憶し、少なくとも1つの命令は、第1の態様又は第1の態様の例示的な実施形態のうちの任意の1つによる人工知能モデルを取得する方法を実行するために、プロセッサによりロードされて実行される。
[0046] 人工知能モデルを取得するデバイスが更に提供される。デバイスは、メモリとプロセッサを含む。メモリは少なくとも1つの命令を記憶し、少なくとも1つの命令は、第2の態様又は第2の態様の例示的な実施形態のうちの任意の1つによる人工知能モデルを取得する方法を実行するために、プロセッサによりロードされて実行される。
[0047] コンピュータ読み取り可能な記憶媒体が更に提供される。記憶媒体は少なくとも1つの命令を記憶し、命令は、人工知能モデルを取得するための前述の方法のうちの任意の1つを実行するために、プロセッサによりロードされて実行される。
[0048] 別の通信装置が提供される。装置は、トランシーバ、メモリ、及びプロセッサを含む。トランシーバ、メモリ、及びプロセッサは、内部接続チャネルを介して互いに通信する。メモリは、命令を記憶するように構成されている。プロセッサは、メモリに記憶された命令を実行し、信号を受信するようにトランシーバを制御し、且つ信号を送信するようにトランシーバを制御するように構成される。更に、プロセッサがメモリに記憶された命令を実行すると、プロセッサは、第1の態様及び第1の態様の可能な実装による方法を実行することが可能になる。
[0049] 別の通信装置が提供される。装置は、トランシーバ、メモリ、及びプロセッサを含む。トランシーバ、メモリ、及びプロセッサは、内部接続チャネルを介して互いに通信する。メモリは、命令を記憶するように構成されている。プロセッサは、メモリに記憶された命令を実行し、信号を受信するようにトランシーバを制御し、且つ信号を送信するようにトランシーバを制御するように構成される。更に、プロセッサがメモリに記憶された命令を実行すると、プロセッサは、第2の態様及び第2の態様の可能な実装による方法を実行することが可能になる。
[0050] 例示的な実施形態では、1つ以上のプロセッサが存在し、1つ以上のメモリが存在する。
[0051] 例示的な実施形態では、メモリはプロセッサと一体化されてもよいし、或いはメモリはプロセッサから独立して配置されてもよい。
[0052] 特定の実装プロセスでは、メモリは、リード・オンリー・メモリ(read-only memory,ROM)のような非一時的な(non-transitory)メモリである可能性がある。メモリ及びプロセッサは、1つのチップに統合されてもよいし、或いは異なるチップに別々に配置されてもよい。メモリの種類、及びメモリやプロセッサが配置される方法は、本願のこの実施形態で限定されない。
[0053] コンピュータ・プログラム(製品)が提供される。コンピュータ・プログラム(製品)は、コンピュータ・プログラム・コードを含む。コンピュータ・プログラム・コードがコンピュータ上で実行されると、コンピュータは、前述の態様に従って方法を実行することが可能である。
[0054] チップが提供される。チップは、メモリに記憶されている命令をメモリから起動し、命令を実行するように構成されたプロセッサを含み、その結果、チップが組み込まれていてる通信デバイスは、前述の態様に従って方法を実行する。
[0055] 別のチップが提供される。チップは、入力インターフェース、出力インターフェース、プロセッサ、及びメモリを含む。入力インターフェース、出力インターフェース、プロセッサ、及びメモリは、内部接続チャネルを介して互いに接続される。プロセッサは、メモリ内のコードを実行するように構成されている。コードが実行されると、プロセッサは、上記の態様に従って方法を実行するように構成されている。
[0056] 図1は、本願の実施形態による連合学習のためのネットワーク・アーキテクチャの概略図である。
[0057] 図2は、本願の実施形態による連合学習のためのネットワーク・アーキテクチャの概略図である。
[0058] 図3は、本願の実施形態による人工知能モデルを取得する方法のフローチャートである。
[0059] 図4は、本願の実施形態による人工知能モデルを取得する際の相互作用プロセスの概略図である。
[0060] 図5は、本願の実施形態によるクライアントに関する人工知能モデル取得プロセスの概略図である。
[0061] 図6は、本願の実施形態による人工知能モデルを取得する装置の構造の概略図である。
[0062] 図7は、本願の実施形態による人工知能モデルを取得する装置の構造の概略図である。
[0063] 図8は、本願の実施形態による人工知能モデルを取得する装置の構造の概略図である。
[0064] 本願の実装部分で使用される用語は、本願の実施態様を説明するために使用されているに過ぎず、本願を限定するようには意図されていない。
[0065] 人工知能技術の発達とともに、益々多くの人工知能モデルが存在し、AIモデルを取得するための連合学習方法のような、人工知能モデルを取得する方法も増えつつある。連合学習は、新しい基本的な人工知能技術であり、元々は、アンドロイド携帯電話端末のユーザーがモデルをローカルに更新する問題を解決するために使用されていたものであり、端末データ及び個人データのプライバシーを保護し且つ合法性を確保することを前提として、複数の参加者又は演算ノード間で効率的な機械学習を実施することを目的としている。現在、連合学習は、データ共有をせずにAIモデルを共同で構築し、AIモデルの効果を改善するために拡張されている。
[0066] 図1に示される連合学習のためのネットワーク・アーキテクチャが一例として使用される。ネットワーク・アーキテクチャは2層に分かれており:下位層は複数のクライアントであり、上位層はサービス・エンドである。クライアントは、通常、デバイスを示し、大量のデータがデバイスに流れ込む。図1に示されるように、ネットワーク・アーキテクチャに含まれる複数のクライアントが、クライアント1、クライアント2、及びクライアント3である例が使用されている。通常、クライアントのデータを収集したり或いは共有したりすることは困難である。従って、クライアント1のデータに基づいて訓練されたAIモデルはクライアント1に対してのみ有効であり、クライアント2のデータに基づいて訓練されたAIモデルはクライアント2に対してのみ有効であり、クライアント3のデータに基づいて訓練されたAIモデルはクライアント3に対してのみ有効である。全てのクライアントからのデータを使用するために、AIモデルを取得する連合学習方法が出現した。
[0067] 連合学習を通じてAIモデルを取得するプロセスにおいて、各クライアントは、現在のデバイスのデータ(各クライアントのデータは異なる可能性がある)を使用することにより、初期セントラル・モデル(一般的には同じ)に関するローカルな訓練を開始する。ローカル訓練が複数のバッチに対して各クライアントに関して実行された後、ローカル・モデルはサービス・エンドへアップロードされる。サービス・エンドは、更新されたセントラル・モデルを形成するために、ローカル・モデルに関して集約及び連合更新を実行する。更新されたセントラル・モデルが収束しない場合、サービス・エンドは、更新されたセントラル・モデルを各クライアントへ配信し続ける。各クライアントは、現在のデバイスのデータを使用することにより、更新されたセントラル・モデルに関するローカルな訓練を継続し、更新されたセントラル・モデルをサービス・エンドへアップロードする。このプロセスは、収束したセントラル・モデルが取得されるまえ繰り返される。この場合、連合訓練は完了する。
[0068] 前述の連合学習方式での訓練を通じて得られたセントラル・モデルは、全てのクライアントのデータに対して優れた識別能力を有し、AIモデルを、様々なクライアントのデータを収集することによって共同で構築することができる、という条件を大いに充足する。
[0069] しかしながら、連合学習によりAIモデルを訓練する前述のプロセスにおいて、各クライアントは、サービス・エンドによって提供される完全なモデルに関して完全な訓練を実行することを必要とし、訓練時間は比較的長い。更に、完全なモデルがクライアントとサービス・エンドとの間で伝送され、その結果、比較的高い通信オーバーヘッドを生じる。
[0070] そこで、本願の実施形態はAIモデルを取得する方法を提供する。この方法では、ローカルな訓練がクライアントに関して実行される場合に、ローカル・データによって影響を受ける、活性である可能性のあるニューロンのみが訓練され、不活性なニューロンは凍結される。不活性なニューロンが凍結されているということは、そのニューロンは訓練に関与しないことを示す。クライアントは、重要な情報をサービス・エンドに送信するために、アクティブなターゲット・ニューロンのパラメータ・データのみを毎回アップロードするので、たとえ小規模なクライアントに対してでさえ、サービス・エンドは、収束に向かう重要な情報を失わない。更に、非フローズン・ターゲット・ニューロンのみが訓練中に訓練されるので、クライアントの訓練時間が加速され、デバイスの電力消費が削減される。
[0071] 例えば、本願のこの実施形態で提供される方法は、図2に示されるネットワーク・アーキテクチャに適用されることが可能である。図2に示されるように、ネットワーク・アーキテクチャは、2つのクライアント:クライアント1とクライアント2を含む。クライアント1とクライアント2は、ローカルな訓練をサポートする任意のデバイスである可能性があり、携帯電話、タブレット、コンピュータ、スイッチ、光回線端末(optical line terminal,OLT)、光ネットワーク端末(optical network terminal,ONT)、ルータ等を含むが、これらに限定されない。サービス・エンドは、マルチ・モデル集約及び連合をサポートする任意のデバイス又はクラウド・プラットフォームであってもよく、サーバー、パブリック・クラウドなどを含むが、これらに限定されない。
[0072] 図2に示されるように、各クライアントは、ローカル・データを使用することによりモデル訓練の現在のラウンドを実行し、訓練の現在のラウンドに関与するターゲット・ニューロンのみを訓練し、訓練終了後に、ターゲット・ニューロンの対応するパラメータ・データを、サービス・エンドへアップロードする。例えば、サービス・エンドへ、ローカルなモデルがアップロードされるか、或いは、訓練の現在のラウンドに関与するターゲット・ニューロンに対応するパラメータのみがアップロードされるか、或いは、各ニューロンに対応するパラメータ(ターゲット・ニューロンに対応するパラメータ及び非ターゲット・ニューロンに対応するパラメータを含む)がアップロードされるか、或いは、ターゲット・ニューロンに対応するパラメータ差分のみがアップロードされる。訓練に関与するターゲット・ニューロンに対応するパラメータ・データであって、各クライアントから返されて来るパラメータ・データを集約した後、サービス・エンドは、各クライアントのAIモデルを復元し、AIモデルに基づいて、更新されたセントラル・モデルを取得する。更新されたセントラル・モデルが収束していない場合、更新されたセントラル・モデルは各クライアントへ配信される。収束したセントラル・モデルが取得されるまで、各クライアントは訓練の次のラウンドを開始する。
[0073] 以下では、図2に示されるネットワーク・アーキテクチャを例として使用し、本願のこの実施形態で提供される人工知能モデルを取得するための方法を説明している。図3に示されるように、この方法では、AIモデルは、サービス・エンドとクライアントとの間の相互作用を通じて取得されることが可能である。本願のこの実施形態で提供される方法は、以下の幾つかのプロセスを含む可能性がある。
[0074] 301:サービス・エンドが、訓練対象の第1の人工知能AIモデルを取得し、ここで、第1のAIモデルは複数のニューロンを含む。
[0075] 訓練対象の第1のAIモデルは、訓練されていない初期のAIモデルであってもよいし、或いは、訓練の1回以上のラウンドを経験しているが収束しておらず、未だ再訓練されることを必要とするAIモデルであってもよい。初期のAIモデル、或いは、収束しておらず再訓練されることを必要とするAIモデルにかかわらず、第1のAIモデルは複数のニューロンを含む。ニューロンは、AIモデルの基本単位であり、主に、生体ニューロンの構造や特性を装っており、入力信号のグループを受け取り、出力を生成する。
[0076] 第1のAIモデルに含まれるニューロンの数は、本願のこの実施形態では制限されず、訓練対象の第1のAIモデルのタイプは、本願のこの実施形態では制限されない。第1のAIモデルは任意のタイプのAIモデルであってよい。例えば、訓練対象の第1のAIモデルを取得する場合に、サーバーは、アプリケーション・シナリオに基づいて、取得されるべき第1のAIモデルのタイプを決定してもよい。
[0077] 302:サービス・エンドが、第1のAIモデルを複数のクライアントへ送信する。
[0078] 図2に示されるように、本願のこの実施形態で提供される方法が適用される実装環境では、サービス・エンドは、複数のクライアントに通信可能に接続されており、複数のクライアントは、最終的に収束したターゲットAIモデルを得るために連合学習を実行することが可能である。従って、サービス・エンドは第1のAIモデルを取得し、サービス・エンドは、第1のAIモデルを複数のクライアントへ送信することが可能であり、複数のクライアントは、第1のAIモデルに対して訓練プロセスを別々に実行する。
[0079] 例示的な実施形態では、第1のAIモデルをクライアントへ送信する場合に、サービス・エンドは、訓練バッチの数量をクライアントに更に送ることが可能であり、その結果、各クライアントは、第1のAIモデルに関する訓練の現在のラウンドを実行する回数を決定ですることができる。訓練の複数のラウンドが要求される場合、サービス・エンドは、サービス・エンドが第1のAIモデルをクライアントへ送信する度に、対応する数量のバッチを送ることが可能であり、訓練についての異なるラウンドに対するバッチの数量は、異なっていてもよいし又は同じであってもよい。訓練のラウンドに対するバッチの数量が同じである場合、サービス・エンドは、訓練の最初のラウンドにおいてのみ、バッチの数量をクライアントに供給することができ、以後、バッチの数量を反復的には送信しない。更に、サービス・エンドが訓練バッチの数量をクライアントに送信する方法に加えて、サービス・エンドは、訓練バッチの数量を供給せず、訓練の各ラウンドは、事前に合意されたバッチの数量に基づいて実行される。
[0080] 303:クライアントが、サービス・エンドにより送信された第1の人工知能AIモデルを受信する。
[0081] クライアントは、サービス・エンドに接続された複数のクライアントのうちの何れかであってよい。
[0082] 本願のこの実施形態では、クライアントの動作プロセスを説明するための例として、サービス・エンドに接続された複数のクライアントのうちの1つのみが使用されていることに留意すべきである。本願のこの実施形態におけるクライアントの動作プロセスは、サービス・エンドに接続された複数のクライアントに適用可能であり、全てのクライアントの動作プロセスが、1つひとつ改めて説明されてはいない。
[0083] 304:クライアントが、複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定する。ターゲット・ニューロンの数は複数のニューロンの総数より少なく、訓練の現在のラウンドは訓練の最初のラウンドではない。
[0084] ローカル・データは様々なニューロンに関して異なる度合いの影響を有するので、一部のニューロンのパラメータは、ローカル・データに基づく訓練の後で大きくは変化しない可能性がある。従って、本願のこの実施形態で提供される方法では、訓練対象の第1のAIモデルを受け取った後、クライアントは、第1のAIモデル内の全てのニューロンを訓練する必要はなく、活性度が特定の条件を満たすターゲット・ニューロンのみを訓練することができる。活性度が特定の条件を満たすターゲット・ニューロンは、ローカル・データの影響に起因してアクティブであることが可能なニューロンであってもよい。クライアントが、複数のニューロンから、訓練の現在のラウンドに関与するターゲット・ニューロンを決定する方法は、本願のこの実施形態において限定されない。例えば、ターゲット・ニューロンは活性度が或る条件を満たすニューロンである。例えば、活性度は活性度閾値より大きい。
[0085] 訓練の最初のラウンドでは、第1のAIモデルは訓練されていなので、どのニューロンが活性であり、どのニューロンが不活性であるのかを決定することはできない。従って、複数のニューロンから、訓練の現在のラウンドに関与しているターゲット・ニューロンを決定することは、サービス・エンドによって送信された第1の人工知能AIモデルを受信し、複数のニューロンの全てをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練することとを含む。
[0086] 訓練の現在のラウンドが訓練の最初のラウンドではないケースに関し、以下の2つの方法のみを説明のための例として使用する。
[0087] 方法1:訓練の現在のラウンドに関与しているターゲット・ニューロンは、複数のニューロンの中で、ニューロンの活性度に基づいて決定される。
[0088] 訓練の現在のラウンドが訓練の最初のラウンドではないケースの場合、ニューロンは、ローカル・データを使用することによって、訓練の前ラウンドで訓練されているので、どのニューロンが活性であり、どのニューロンが不活性であるかを決定することが可能である。従って、訓練の現在のラウンドが訓練の最初のラウンドではないケースの場合に、複数のニューロンから、訓練の現在のラウンドに関与するターゲット・ニューロンを決定することは:複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおけるその何れかのニューロンの活性度を取得することであって、活性度は、ニューロンがローカル・データによって影響を受ける程度を示す、こと;及び訓練の前ラウンドにおけるその何れかのニューロンの活性度は活性度閾値より大きいことに応答して、その何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定すること、を含むがこれらに限定されない。
[0089] 訓練の前ラウンドにおける何れかのニューロンの活性度を取得する方法は、本願のこの実施形態で限定されない。例えば、訓練の前ラウンドにおける何れかのニューロンの活性度を取得することは:何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値と、その何れかのニューロンの訓練の現在のラウンドより後に得られたパラメータの第2の平均値とを取得し;第1の平均値と第2の平均値との間の差分を取得し;且つ差分の絶対値と第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおけるその何れかのニューロンの活性度を決定することを含む。
[0090] 例えば、何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値はACであり、何れかのニューロンの訓練の前ラウンドより後に得られたパラメータの第2の平均値はAEである。差分の絶対値と第1の平均値の絶対値との商が、訓練の前ラウンドにおけるその何れかのニューロンの活性度として決定される。例えば、訓練の前ラウンドにおける何れかのニューロンの活性度ARは、以下の式を使用することによって得られる:
[0091] 訓練の前ラウンドにおける何れかニューロンの活性度を求める前述の方法に加えて、活性度を取得する別のオプション方法を得るために、前述の方法において変形が施されてもよい。xは、商がゼロになることを防止する最小値であり、例えば、0.0001であってもよい。xの値は、本願のこの実施態様において限定されない。
[0092] ある例では、何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値はACであり、何れかのニューロンの訓練の前ラウンドより後に得られたパラメータの第2の平均値はAEである。訓練の前ラウンドにおける何れかのニューロンの活性度ARは、以下の式を使用することによって得られる:
[0093] 数式において、μは活性度係数であり、経験に基づいて設定されてもよいし、或いは、訓練の各ラウンドの状況に基づいて調整されてもよい。
[0094] 別の例では、何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値はACであり、何れかのニューロンの訓練の前ラウンドより後に得られたパラメータの第2の平均値はAEである。訓練の前ラウンドにおける何れかのニューロンの活性度ARは、以下の式を使用することによって得られる:
[0095] 数式において、φは活性度定数であり、経験に基づいて設定されてもよいし、或いは、訓練の各ラウンドの状況に基づいて調整されてもよい。
[0096] 何れかのニューロンの活性度を得るためにどの方法が使用されるかにかかわらず、取得された活性度は、活性度閾値と比較されることが可能である。活性度が活性度閾値より大きい場合、その何れかのニューロンは、訓練の現在のラウンドに関与しているターゲット・ニューロンとして使用されている。活性度閾値は、本願のこの実施形態では限定されず、経験に基づいて設定されてもよいし、或いは訓練の各ラウンドの状況に基づいて調整されてもよい。
[0097] 方法2:訓練の現在のラウンドに関与しているターゲット・ニューロンは、複数のニューロンの中で、フローズン・アクティブ・フラグ・ビットを照会することによって決定される。
[0098] ニューロンの活性度が訓練の各ラウンドの間に計算され、活性度が閾値を満たすかどうかに基づいてターゲット・ニューロンが決定される方法1と方法2との間の相違は、本願のこの実施形態で提供される方法においては、活性度が、訓練の現在のラウンドの間に計算されず、フローズン・アクティブ・フラグ・ビットを照会することによって実行される点にある。例示的な実施形態では、複数のニューロンの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有しており、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、そのニューロンが、訓練の現在のラウンドに関与していることを示す。例えば、訓練の各ラウンドが修了した後に、活性度は前述の何れかの方法で計算されてもよく、ニューロンの活性度が閾値を満たしているニューロンのフローズン・アクティブ・フラグ・ビットの値は、第1の値に設定される。この場合、複数のニューロンの中から、訓練の現在のラウンドに関与しているターゲット・ニューロンを決定することは:フローズン・アクティブ・フラグ・ビットの値が第1の値であるニューロンを、訓練の現在のラウンドに関与しているターゲット・ニューロンとして決定することを含む。
[0099] 前述のように、フローズン・アクティブ・フラグ・ビットを使用することにより、訓練の現在のラウンドに関与しているか否かを示す前述の方法では、フローズン・アクティブ・フラグ・ビットの値も、活性度を用いて決定されることを必要とするが、その値は、訓練の前ラウンドが終了した後の計算により得られるので、即ち訓練の現在のラウンドより前に得られるので、ターゲット・ニューロンは、訓練の現在のラウンドの最中に、フローズン・アクティブ・フラグ・ビットを用いて直接的に決定されることが可能であり、その結果、訓練の現在のラウンドに関与するターゲット・ニューロンを決定する速度は比較的速い。これは、更に、訓練時間を短縮し、訓練速度を向上させる。
[0100] 更に、ニューロンのフローズン・アクティブ・フラグ・ビットの値が、訓練の現在のラウンドの間にどのようにして決定されるのかは、本願のこの実施形態で限定されない。例示的な実施形態では、複数のニューロンの各ニューロンは、対応するフローズン期間を更に有し、フローズン期間は、ニューロンが訓練に関与しない期間を示す。何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。例えば、何れかのニューロンのフローズン期間が終了した場合、その何れかのニューロンのフローズン・アクティブ・フラグ・ビットは第1の値である。このようにして、フローズン期間に基づいて、ニューロンが訓練に関与しない期間を指定し、フローズン期間に基づいて、ニューロンが訓練に関与するか否かを判断し、フローズン・アクティブ・フラグ・ビットの値を決定するために、フローズン期間を設定することによって、検出メカニズムが提供され、これにより、訓練プロセスにおける訓練に関与することを必要とするニューロンに対応するパラメータの欠落を防止し、ロバスト性を確保することができる。
[0101] 本願のこの実施形態では、フローズン・アクティブ・フラグ・ビットの値が第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定することの前に、方法は:複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得することであって、活性度は、ニューロンがローカル・データによって影響を受ける程度を示す、こと;及び訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンの更新されたフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新すること;を更に含む。
[0102] 訓練の前ラウンドにおいて何れかのニューロンの活性度を取得する方法については、方法1における活性度計算方法の説明を参照されたい。詳細はここで再び説明しない。例えば、訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新することは、以下の数式を使用することによってフローズン期間を更新することを含むが、これに限定されない:
[0103] フローズン期間を更新するための前述の数式において、Ti’はi番目のニューロンが更新された後のフローズン期間を示し、Tiはi番目のニューロンが更新される前のフローズン期間を示し、ARiは訓練の前ラウンドにおけるi番目のニューロンの活性度を示し、iは1からNまでの範囲に及ぶ整数であり、Nはニューロンの総数である。X1は 第1の活性度閾値を示し、X2は第2の活性度閾値を示し、X2はX1より大きい。
[0104] 第1の活性度閾値と第2の活性度閾値のサイズは、本願のこの実施形態では限定されず、経験に基づいて設定されてもよいし、或いは、訓練状況に基づいて調整されてもよい。例えば、X1 = 0.2 及び X2 = 0.4 であるならば、フローズン期間を更新するための前述の数式は、次のようになる:
[0105] 例えば、何れかのニューロンの活性度が0.3であるならば、ニューロンの更新後のフローズン期間Ti’の値は、更新前のフローズン期間Tiの値と同じである。ニューロンの活性度は大きくは変化していないと考えることが可能であり、従って、元のフローズン期間を維持することが可能である。例えば、何れかのニューロンの活性度が0.1であるならば、ニューロンの更新後のフローズン期間Ti’はTi + 1に等しい。ニューロンは十分に活性ではないと考えることが可能であり、従って、フローズン期間は増やされる。例えば、何れかのニューロンの活性度が0.6であるならば、ニューロンの更新後のフローズン期間Ti’は、
に等しい。ニューロンは比較的活性であると考えることが可能であり、従って、フローズン期間は短縮され、その結果、ニューロンは可能な限り速やかに訓練に関与し、重要な情報が失われないことを保証する。
[0106] 例示的な実施形態では、何れかのニューロンの更新されたフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新することは、以下を含むがこれらに限定されるものではない:
Ti’> Yであるニューロンに対して、Fi’を第2の値に設定し、例えば、第2の値を1に設定し、これは、訓練の現在のラウンドは凍結されることが可能であることを示し、即ち、ニューロンは訓練の現在のラウンドに関与しない;及び
Ti’= Yであるニューロンに対して、Fi’を第1の値に設定し、例えば、第1の値を0に設定し、これは、訓練の現在のラウンドは凍結されないことを示し、即ち、ニューロンは訓練の現在のラウンドに関与する。例えば、Yは1であってもよい。
[0107] 例示的な実施形態では、訓練のラウンドが終了した後、前述の更新プロセスは、各ニューロンのフローズン期間に関して実行されなくてもよく、ニューロンのフローズン期間が終了したニューロンのみが更新される。複数のニューロンの各々は、更に、対応するフローズン期間カウンタを有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示す。訓練の前ラウンドで何れかのニューロンの活性度を取得することは、以下を含む:何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了したことを示していること応答して、訓練の前ラウンドにおけるその何れかのニューロンの活性度を求める。
[0108] この実装では、フローズン期間カウンタが設定され、フローズン期間が終了したかどうかを示し、活性度はフローズン期間終了後に得られる。これは、フローズン期間が終了したかどうかを検出するための時間を更に短縮し、訓練速度を向上させる。例えば、より低い活性度は、より大きな値のフローズン期間、及びより長いフローズン期間を示す。フローズン期間カウンタの初期値は1に設定されてもよい。訓練ラウンドの数量が1つ増える度に、フローズン期間カウンタの値は1つ増える。換言すれば、フローズン期間の値は、フローズン期間カウンタの値と正に相関している。フローズン期間カウンタの値がフローズン期間の値に等しい場合、フローズン期間は終了したと考えられてよい。
更に、フローズン期間カウンタの値は、代替的に、フローズン期間の値と負に相関していてもよい。例えば、より低い活性度は、より大きな値のフローズン期間、及びより長いフローズン期間を示す。フローズン期間カウンタの初期値は、フローズン期間の値に設定されてもよい。訓練ラウンドの数量が1つ増える度に、フローズン期間カウンタの値は1つ減少する。フローズン期間カウンタの値が0である場合、フローズン期間は終了したと考えられてよい。
[0109] 訓練の現在のラウンドが訓練の最初のラウンドである場合、訓練の前ラウンドにおけるニューロンの活性度を、訓練の前ラウンドの結果に基づいて決定することはできないので、訓練の現在のラウンドにおけるニューロンのフローズン・アクティブ・フラグ・ビットの値を、訓練の前ラウンドにおけるニューロンの活性度に基づいて決定することはできない点に留意すべきである。従って、本願のこの実施形態は、訓練の最初のラウンドの間に初期化プロセスを提供する。例えば、訓練の現在のラウンドは訓練の最初のラウンドであるということに応答して、複数のニューロン内の各ニューロンのフローズン・アクティブ・フラグ・ビットの値は、第1の値に設定される。
[0110] 言い換えると、訓練の現在のラウンドが訓練の最初のラウンドである場合、各ニューロンのフローズン・アクティブ・フラグ・ビットの値は、第1の値に設定される。この場合、各ニューロンは、訓練の現在のラウンドに関与するように、ターゲット・ニューロンとして決定されることが可能である。そして、ニューロンのフローズン・アクティブ・フラグ・ビットの値は、訓練の現在のラウンドの結果に基づいて更新されることが可能であり、その結果、訓練の次のラウンドの間に、ターゲット・ニューロンは、訓練の現在のラウンドで更新されたフローズン・アクティブ・フラグ・ビットの値に基づいて直接的に決定されることが可能である。ニューロンのフローズン・アクティブ・フラグ・ビットの値を更新する方法については、前述の関連する説明を参照されたい。詳細はここで再び説明しない。
[0111] 305:クライアントが、ターゲット・ニューロンをローカル・データに基づいて訓練する。
[0112] 本願のこの実施形態で提供される方法において、クライアントは、ローカル・データに基づいてターゲット・ニューロンを訓練することが可能であり、その訓練は訓練の現在のラウンドのバッチに基づいて実行されることが可能である。例えば、訓練の現在のラウンドがE個のバッチを含む場合、ターゲット・ニューロンに対して訓練の現在のラウンドの1バッチを実行した後、クライアントは更新されたAIモデルを取得し、その後、訓練の現在のラウンドのE個のバッチが完了するまで、訓練を実行し続ける。
[0113] 訓練の現在のラウンドのバッチの数量は、サービス・エンドにより送付されてもよいし、或いは事前に合意してもよい。訓練の現在のラウンドのうちのバッチの数量及びバッチの数量を得る方法は、本願のこの実施形態では限定されない
[0114] 306:クライアントが、ターゲット・ニューロンに対応するパラメータ・データを、サービス・エンドへ返す。
[0115] クライアントがターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返す方法は、本願のこの実施形態では限定されない。ターゲット・ニューロンに対応するパラメータのみが返されてもよいし、或いは、ターゲット・ニューロンに対応するパラメータ差分のみが返されてもよいし、それによってクライアントとサービス・エンドとの間の通信帯域幅を減少させる。更に、訓練後に得られるAIモデルは、ターゲット・ニューロンに対応するパラメータを含むので、本願のこの実施形態で提供される方法は、訓練後に得られるAIモデルを返すこともサポートしており、訓練後に得られるAIモデルを返す方法で、ターゲット・ニューロンに対応するパラメータ・データを返す。代替的に、全てのニューロンに対応するパラメータ又はパラメータ差分が、サービス・エンドに返されてもよい。何れかのニューロンに対応するパラメータ差分は、何れかのニューロンに対応するパラメータであって訓練の現在のラウンドで得られたパラメータと、何れかのニューロンに対応するパラメータであって訓練の前ラウンドで得られたパラメータとの間の差分であってもよい。
[0116] フローズン・アクティブ・フラグ・ビットを使用することによって、ニューロンが訓練の現在のラウンドに関与しているかどうかを示す方法に関し、例示的な実施形態では、クライアントが、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すことは:各ニューロンのフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送ること、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送ることを更に含む。フローズン・アクティブ・フラグ・ビットを送信する方法は、本願のこの実施形態では限定されない。訓練の現在のラウンドが訓練の最初のラウンドである場合、クライアントは、各ニューロンのフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送信してもよい。ニューロンのフローズン・アクティブ・フラグ・ビットの値がその後に変化しないニューロンの場合、クライアントは、もはやそのニューロンのフローズン・アクティブ・フラグ・ビットを以後に送信しない可能性があり、これは通信帯域幅を更に削減する。例えば、フローズン・アクティブ・フラグ・ビットを送信する方法は、本願のこの実施形態では限定されない。例えば、5つのニューロンが存在する場合に、5ビットのデータが指示のために使用されてもよく、1ビットは1つのニューロンのフローズン・アクティブ・フラグ・ビットに対応する。ターゲット・ニューロンについては、フローズン・アクティブ・フラグ・ビットの第1の値は1であり、クライアントによって返されて来るフローズン・アクティブ・フラグ・ビットは10011であるかもしれない。第1のビット、第4のビット、及び第5のビットの値が1である場合、第1のニューロン、第4のニューロン、及び第5のニューロンが、ターゲット・ニューロンであることを示す。
[0117] 307:サービス・エンドが、ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントの各々により返されて来るものを受信する。
[0118] ターゲット・ニューロンに対応するパラメータ・データであって、何れかのクライアントによって返されて来るパラメータ・データは、第1のAIモデルにおいてターゲット・ニューロンを訓練することによって、その何れかのクライアントによって取得され、ターゲット・ニューロンの数は複数のニューロンの総数よりも少ない。
[0119] サービス・エンドは、同一の第1のAIモデルを複数のクライアントの各々に送信することが可能であるが、クライアントは異なるローカル・データを有し、異なるローカル・データはニューロンに対して異なる度合いの影響を有するので、訓練の現在のラウンドに関与しているターゲット・ニューロンであって異なるクライアントによって決定されるターゲット・ニューロンは一貫しておらず、ターゲット・ニューロンがローカル・データを用いて訓練された後に得られるパラメータも異なっている場合があり得る。換言すれば、ターゲット・ニューロンに対応するパラメータ・データであって、複数のクライアントからサービス・エンドによって時に受信されるパラメータ・データは、相違する可能性がある。
[0120] 例えば、図2に示されるネットワーク・アーキテクチャを例として使用する。第1のAIモデルが4つのニューロン:ニューロン1、ニューロン2、ニューロン3、及びニューロン4を含む場合に、クライアント1が、サービス・エンドによって送信された第1のAIモデルを受信し、クライアント1のローカル・データに基づいて4つのニューロンの活性度を決定した後に、クライアント1は、ニューロン1の活性度と、ニューロン2の活性度が、活性度閾値よりも大きいと判定する。言い換えれば、クライアント1によって決定されたターゲット・ニューロンは、ニューロン1とニューロン2である。この場合、サービス・エンドへ返されるパラメータ・データもまた、ニューロン1のパラメータ・データと、ニューロン2のパラメータ・データである。クライアント2が、サービス・エンドによって送信された第1のAIモデルを受信し、クライアント2のローカル・データに基づいて4つのニューロンの活性度を決定した後に、クライアント2は、ニューロン1の活性度と、ニューロン2の活性度と、ニューロン3の活性度とが、活性度閾値よりも大きいと判定する。言い換えれば、クライアント2によって決定されたターゲット・ニューロンは、ニューロン1と、ニューロン2と、ニューロン3である。この場合、サービス・エンドへ返されるパラメータ・データもまた、ニューロン1のパラメータ・データと、ニューロン2のパラメータ・データと、ニューロン3のパラメータ・データである。
[0121] クライアント1によって決定されたターゲット・ニューロンの数量は、クライアント2によって決定されたターゲット・ニューロンの数量とは異なることが分かる。また、クライアント1及びクライアント2がニューロン1及びニューロン2をターゲット・ニューロンとして決定したとしても、クライアント1のローカル・データとクライアント2のローカル・データとは相違するので、同じターゲット・ニューロン1及びニューロン2に関し、2つのニューロンを訓練することによりクライアント1が取得したパラメータ・データもまた、2つのニューロンを訓練することによりクライアント2が取得したパラメータ・データと相違する可能性がある。
[0122] 308:サービス・エンドが、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得する。
[0123] 上述したように、クライアントのローカル・データは異なる可能性があるので、ターゲット・ニューロンに対応するパラメータ・データであって、クライアントによってサービス・エンドへ返されるパラメータ・データもまた、相違する可能性がある。従って、サービス・エンドは、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントによって返されて来るパラメータ・データに基づいて、各クライアントに対応する第2のAIモデルを復元する。
[0124] 例示的な実施形態では、サービス・エンドが、ターゲット・ニューロンに対応しするパラメータ・データであって各クライアントによって返されるパラメータ・データに基づいて、各クライアントに対応する第2のAIモデルを復元することは:何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであってその何れかのクライアントによって返されるパラメータ・データに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新して、何れかのクライアントに対応する第2のAIモデルを取得することを含む。例えば、第2のAIモデルにおける非ターゲット・ニューロンは、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータである。
[0125] 例えば、第1のAIモデルはニューロン1とニューロン2を含む。クライアント2は、ニューロン1のパラメータを返し、ニューロン2のパラメータを返さない。この場合、ニューロン1はターゲット・ニューロンであり、ニューロン2は非ターゲット・ニューロンである。第1のAIモデルにおけるニューロン1に対応するパラメータは、ニューロン1に対応するパラメータであってクライアントにより返されるパラメータに基づいて更新され、第1のAIモデルにおけるニューロン2に対応するパラメータは、クライアント2に対応する第2のAIモデルを得るために補足される。
[0126] 別の例では、第1のAIモデルはニューロン1とニューロン2を含む。クライアント1は、ニューロン2に対応するパラメータを返し、ニューロン1に対応するパラメータを返さない。この場合、ニューロン2はターゲット・ニューロンであり、ニューロン1は非ターゲット・ニューロンである。第1のAIモデルにおけるニューロン2に対応するパラメータは、ニューロン2に対応するパラメータであってクライアントにより返されるパラメータに基づいて更新され、第1のAIモデルにおけるニューロン1に対応するパラメータは、クライアント1に対応する第2のAIモデルを得るために補足される。
[0127] 非ターゲット・ニューロンに対応するパラメータを補足する方法は、本願のこの実施形態では限定されない。例えば、訓練の前ラウンドで更新されたAIモデルにおける同一の非ターゲット・ニューロンに対応するパラメータは、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを置き換えるために使用されることが可能である。
[0128] クライアントがターゲット・ニューロンに対応するパラメータ差分を返す場合に、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータの値及びパラメータ差分は、ターゲット・ニューロンに対応するパラメータを得ることができるために統合されてもよいことに留意すべきである。
[0129] 各クライアントに対応する第2のAIモデルが、復元によって得られる場合、どのニューロンがターゲット・ニューロンであるかを区別するために、ターゲット・ニューロンに対応するパラメータであって各クライアントによって返されるパラメータに基づいて、各クライアントに対応する第2のAIモデルを復元する前に、本願のこの実施形態で提供される方法は:各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、複数のクライアントによって返されるものを受信し;且つ、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを使用することによって、複数のニューロンにおけるターゲット・ニューロンを決定することを更に含む。
[0130] 例示的な実施形態では、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得することは:
各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得し;且つ
第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するか;又は
第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けることを含む。
[0131] 例えば、第3のAIモデルを得るために、各クライアントに対応する第2のAIモデルに対して連合平均化を実行する方法は、本願のこの実施形態で限定されない。1つのニューロンは1つ以上のパラメータを有する可能性があるので、各々の第2のAIモデルにおける同じニューロンに対応する同じパラメータが平均化されてもよく、その平均値は、第3のAIモデルにおける同じニューロンに対応する同じパラメータのパラメータ値として使用される。例えば、各クライアントに対応する第2のAIモデルにおける同じニューロンに関し、同じニューロンに対応するパラメータの平均値が、ターゲット・パラメータ値として使用され、第1のAIモデルにおけるニューロンに対応するパラメータ値は、ターゲット・パラメータ値に置き換えられて、第3のAIモデルを得ることができる。例えば、第1のAIモデルはニューロン1とニューロン2を含む。任意のクライアントに対応する第2のAIモデルは、第1のAIモデルに基づく復元により取得される。従って、第2のAIモデルもまたニューロン1とニューロン2を含む。全ての第2のAIモデルにおけるニューロン1に対応する第1のパラメータの値が平均化され、次いで、第1のAIモデルにおけるニューロン1に対応する第1のパラメータの値を置き換える。全ての第2のAIモデルにおけるニューロン2に対応する第2のパラメータの値が平均化され、次いで、第1のAIモデルにおけるニューロン2に対応する第2のパラメータの値を置き換えて、第3のAIモデルを得る。
[0132] 前述の復元方法に加えて、新たな復元方法が更なる変形によって取得されてもよい。例えば、各クライアントに対応する第2のAIモデルにおける同じニューロンに対して、その同じニューロンに対応するパラメータの平均値が使用され、その平均値と基準係数との積がターゲット・パラメータ値として使用され、第1のAIモデルにおけるニューロンに対応するパラメータ値は、ターゲット・パラメータ値に置き換えられ、第3のAIモデルが取得される。第1のAIモデルと第2のAIモデルの両方がニューロン1とニューロン2を含んでいることを引き続き例として使用する。全ての第2のAIモデルにおけるニューロン1に対応する第1のパラメータの値が平均化されて第1の平均値を取得し、第1の平均値と基準係数との積を用いて、第1のAIモデルにおけるニューロン1に対応する第1のパラメータの値を置き換え、全ての第2のAIモデルにおけるニューロン2に対応する第2のパラメータの値が平均化されて第2の平均値を取得し、第2の平均値と基準係数との積を用いて、第1のAIモデルにおけるニューロン2に対応する第2のパラメータの値を置き換えて、第3のAIモデルを得る。基準係数は、経験に基づいて設定されてもよいし、或いは適用シナリオに基づいて調整されてもよい。これは本願のこの実施態様において限定されない。
[0133] 連合平均化を実行して第3のAIモデルを得るために何れの方法が使用されるかにかかわらず、第3のAIモデルが得られた後に、第3のAIモデルは収束しているかどうかが判定され、第3のAIモデルは収束していることに応答して、第3のAIモデルはターゲットAIモデルとして用いられる。あるいは、第3のAIモデルは収束していないことに応答して、第3のAIモデルは複数のクライアントへ送信され、第3のAIモデルを取得した方法で新しいAIモデルが引き続き取得され、このプロセスは、収束したターゲットAIモデルが得られるまで繰り返される。
[0134] 第3のAIモデルが収束したかどうかを判定する方法は、本願のこの実施形態では限定されず、訓練のラウンドの数量が訓練閾値に到達することであってもよいし、或いは、第3のAIモデルのパフォーマンスが特定の要件を満たすことであってもよい。
[0135] 結論として、本願のこの実施形態で提供される方法によれば、モデル内の全てのニューロンが訓練されることを必要とせず、活性状態に基づいて、一部のニューロンが訓練のために選択される。これは、消費電力を削減し、訓練速度を向上させることが可能である。更に、クライアントは訓練されたニューロンに対応するパラメータのみをサービス・エンドへ送信するので、通信帯域幅を削減することが可能である。
[0136] 更に、フローズン・アクティブ・フラグ・ビットは活性状態を示し、その結果、ターゲット・ニューロンは、フローズン・アクティブ・フラグ・ビットを使用することによって直接的に決定されることが可能である。従って、ターゲット・ニューロンを決定する速度は比較的速い。これは、更に、訓練時間を短縮し、訓練速度を向上させる。フローズン期間が設定され、ニューロンが訓練に関与しない期間はフローズン期間に基づいて示され、ニューロンが訓練に関与するか否かは、フローズン期間に基づいて決定され、これにより、訓練プロセスで訓練に関与する必要があるニューロンに対応するパラメータの欠落を防止し、ロバスト性を保証する。フローズン期間カウンタが設定され、フローズン期間は終了したかどうかを示し、フローズン期間が終了した後に、活性度が取得される。これは、フローズン期間が終了するかどうかを検出するための時間を更に短縮し、訓練速度を向上させる。
[0137] 本願のこの実施形態で提供される人工知能モデルを取得する方法の全体的な手順は、図4に示される相互作用プロセスであってもよい。以下、複数のクライアントのうちのターゲット・クライアントとサービス端末と間の対話処理を具体例として使用することにより、本願の実施形態で提供される人工知能モデルを取得する方法を説明する。図4に示すように、本方法は、以下のステップを含むが、これらに限定されない。
[0138] 401:サービス・エンドは、セントラル・モデルを複数のクライアントへ供給し、ターゲット・クライアントはセントラル・モデルを受信し、ここで、セントラル・モデルはN個のニューロンを有する。
[0139] 402:クライアントはローカルな訓練を開始する。現在のラウンドが最初のラウンドである場合、フローズン期間Tiに関して初期化が実行され、Ti=1,i∈{1,2,...,N}、これは、現在のラウンドにおいてi番目のニューロンでフリーズ検出が実行されることを示す。フローズン・アクティブ・フラグ・ビットFiに関して初期化が実行され、Fi=0,i∈{1,2,...,N}、これは、i番目のニューロンはフローズンでないことを示す(値が1であったならば、それは、i番目のニューロンがフローズンであることを示す)。フローズン期間カウンタTciに関して初期化が実行され、Tci=1,i∈{1,2,...,N}である(サービス・エンドとの相互作用各々についてTci+1)。ニューロン凍結法に基づく訓練の現在のカウントは、Ti、Fi、及びTciの値を更新するためにローカルに実行される。
[0140] 403:各クライアントは、サービス・エンドへ、訓練の現在のラウンドに関与しているターゲット・ニューロンのパラメータ・データをアップロードする。
[0141] 404:フローズン・アクティブ・フラグ・ビットFiが変化した場合、ターゲット・クライアントは、フローズン・アクティブ・フラグ・ビットFiをサービス・エンドへアップロードする。
[0142] ニューロンのフローズン・アクティブ・フラグ・ビットFiが変化していないニューロンについては、ニューロンのフローズン・アクティブ・フラグ・ビットFiは送信されなくてもよいことに留意すべきである。全てのニューロンのフローズン・アクティブ・フラグ・ビットFiが変化しない場合、403のプロセスは省略されてもよい。
[0143] 405:サービス・エンドは、各クライアントのローカルな部分モデルとフローズン・アクティブ・フラグ・ビットを集約し、各ローカル・モデルを復元する。
[0144] サービス・エンドは、各クライアントのローカルな部分モデルMIを集約し、ここで、Iはクライアントの数量を示す。例えば、クライアント1のローカルな部分モデルはM10であり、クライアント2のローカルな部分モデルはM20であり、クライアント3のローカルな部分モデルはM30である、等々である。
[0145] 例えば、ニューロンは左から右へ、及び上から下へ配置され、関連するニューロンのパラメータは上から下へ配置される。フローズン・アクティブ・フラグ・ビットFi=1のニューロンは、最も近いセントラル・モデル・パラメータを用いて補足され、フローズン・アクティブ・フラグ・ビットFi=0のニューロンは、ローカルな部分モデルパラメータを用いて更新される。
[0146] 406:サービス・エンドは、ローカル・モデルに対して連合平均化を実行し、セントラル・モデルを更新する。
[0147] 407:サービス・エンドは、セントラル・モデルを各クライアントへ供給し、次いで401が実行される。
[0148] 401ないし407の前述のプロセスは、セントラル・モデルが収束し、収束したターゲットAIモデルが得られるまで反復される。その場合、連合学習訓練は終了する。
[0149] クライアントは、人工知能モデルを取得するための方法を実行する。クライアントによって実行されるモデル訓練プロセスは、図5に示される例を使用して説明される。図5に示すように、方法は、以下のステップを含むが、これらに限定されない。
[0150] 501:クライアントは、サービス・エンドによって送信されたセントラル・モデルを受信する。
[0151] セントラル・モデルは、通常、オフラインで訓練された既知のモデルであり、ニューロンの数量はNである。更に、クライアントは、訓練の現在のラウンドのバッチEを決定する。訓練の各ラウンドのバッチは、サービス・エンドによってクライアントへ供給してもよいし、両当事者によって合意形成されてもよい。通常、各クライアントに関する訓練の各ラウンドのバッチの数量は同じである。
[0152] 502:クライアントは、セントラル・モデルのニューロンについてのフローズン期間、フローズン・アクティブ・フラグ・ビット、及びフローズン期間カウンタを初期化する。
[0153] 例えば、セントラル・モデルのニューロンの初期化されたフローズン期間は全て1であり、即ち、Ti=1, i∈{1,2,...,5}である。Ti=1である場合、訓練の現在のラウンドにおけるローカル・モデルのi番目のニューロンは、フローズン期間を更新するために、凍結検出メカニズムを実行することを必要とする。
[0154] 各ニューロンの初期化されたフローズン・アクティブ・フラグ・ビットは0であり、即ち、Fi=1, i∈{1,2,...,5}である。Fi=1である場合、訓練の現在のラウンドにおけるローカル・モデルのi番目のニューロンはフローズンであり、即ち、ニューロンに対応するパラメータは訓練に関与しない。
[0155] 各ニューロンの初期化されたフローズン期間カウンタはTci = 1である。
[0156] 503:クライアントは、初期セントラル・モデルに基づいて各ニューロンの値Fiを照会し、ニューロンのFiが1である全てのニューロンを凍結し、バッチEに対して、Fiが0である全てのニューロンの訓練を開始する。
[0157] 504:クライアントは、各ニューロンの値Tiを照会し、ニューロンのTciがTiに等しい全てのニューロンについて、フリーズ検出メカニズムを開始し、TiとFiを更新し、再初期化を実行してTci = 1を得る。
[0158] TciがTiに等しくない全てのニューロンについて、TiとFiは維持され、フローズン期間において、カウンタTciはTci+1に更新される。
[0159] 505:訓練が終了した後に、クライアントはローカル・モデルを取得し、ローカル・モデルをサービス・エンドへアップロードする。
[0160] 本願の実施形態は、人工知能モデルを取得する装置を提供する。装置は、図3に示される実施形態においてクライアントによって実行される方法を実行するように構成されている。図6に示すように、装置は以下を含む:
サービス・エンドにより送信された第1の人工知能AIモデルを受信するように構成された通信ユニット601であって、第1のAIモデルは複数のニューロンを含み;例えば、通信ユニット601によって実行される機能は、図3の303に示されているものであってもよく、詳細はここで再び説明されない、通信ユニット;及び
複数のニューロンの中から、訓練の現在のラウンドに関与するターゲット・ニューロンを決定するように構成された処理ユニット602であって、訓練の現在のラウンドは訓練の最初のラウンドではなく、ターゲット・ニューロンの数は複数のニューロンの総数より少なく;例えば、処理ユニット602によって実行される機能は、図3の303に示されているものであってもよく、詳細はここで再び説明されない、処理ユニット。
[0161] 処理ユニット602は、ターゲット・ニューロンをローカル・データに基づいて訓練し、ターゲット・ニューロンに対応するパラメータを取得するように更に構成されている。例えば、処理ユニット602によって実行される機能は、図3の305に示されているものであってもよく、詳細はここで再び説明されない。
[0162] 通信ユニット601は、ターゲット・ニューロンに対応するパラメータ・データをサービス・エンドへ返すように更に構成されている。ターゲット・ニューロンに対応するパラメータ・データは、収束したターゲットAIモデルを取得するためにサービス・エンドにより使用される。例えば、通信ユニット601によって実行される機能は、図3の306に示されているものであってもよく、詳細はここで再び説明されない。
[0163] 例示的な実施形態において、複数のニューロンのうちの各ニューロンは、対応するフローズン・アクティブ・フラグ・ビットを有し、フローズン・アクティブ・フラグ・ビットの値が第1の値である場合、フローズン・アクティブ・フラグ・ビットは、ニューロンが訓練の現在のラウンドに関与していることを示し;且つ
処理ユニット602は、フローズン・アクティブ・フラグ・ビットの値が第1の値であるニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0164] 例示的な実施形態において、複数のニューロンのうちの各ニューロンは、対応するフローズン期間を有し、フローズン期間は、ニューロンが訓練に関与しない期間を示し;且つ
何れかのニューロンに対応するフローズン・アクティブ・フラグ・ビットの値は、何れかのニューロンに対応するフローズン期間に基づいて決定される。
[0165] 例示的な実施形態において、処理ユニット602は、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように更に構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ
処理ユニット602は、訓練の前ラウンドにおける何れかのニューロンの活性度に基づいて、何れかのニューロンのフローズン期間を更新し、何れかのニューロンの更新されたフローズン期間に基づいて、何れかのニューロンのフローズン・アクティブ・フラグ・ビットの値を更新するように更に構成されている。
[0166] 例示的な実施形態において、複数のニューロンのうちの各ニューロンは、対応するフローズン期間カウンタを更に有し、フローズン期間カウンタは、フローズン期間が終了したか否かを示し;且つ
処理ユニット602は、何れかのニューロンのフローズン期間カウンタの値が、何れかのニューロンのフローズン期間は終了していることを示していることに応答して、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されている。
[0167] 例示的な実施形態において、処理ユニット602は、訓練の現在のラウンドが訓練の最初のラウンドではないことに応答して、複数のニューロンのうちの何れかのニューロンに関し、訓練の前ラウンドにおける何れかのニューロンの活性度を取得するように構成されており、活性度は、ニューロンがローカル・データによって影響を受ける程度を示し;且つ
処理ユニットは、訓練の前ラウンドにおける何れかのニューロンの活性度は活性度閾値より大きいことに応答して、何れかのニューロンを、訓練の現在のラウンドに関与するターゲット・ニューロンとして決定するように構成されている。
[0168] 例示的な実施形態において、処理ユニット602は:
何れかのニューロンの訓練の前ラウンドより前に得られたパラメータの第1の平均値と、何れかのニューロンの訓練の現在のラウンドより後に得られたパラメータの第2の平均値とを取得し;
第1の平均値と第2の平均値との間の差分を取得し;且つ
差分の絶対値と第1の平均値の絶対値とに基づいて、訓練の前ラウンドにおける何れかのニューロンの活性度を決定するように構成されている。
[0169] 例示的な実施形態において、処理ユニット602は、サービス・エンドにより送信された第1の人工知能AIモデルを受信し、複数のニューロンにおける全てのニューロンをターゲット・ニューロンとして決定し、ターゲット・ニューロンをローカル・データに基づいて訓練するように更に構成されている。
[0170] 例示的な実施形態において、通信ユニット601は、各ニューロンのフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送信するか、又は、値が変化するフローズン・アクティブ・フラグ・ビットをサービス・エンドへ送信するように更に構成されている。
[0171] 例示的な実施形態において、通信ユニット601は、ターゲット・ニューロンに対応するパラメータ・データのみを、サービス・エンドへ返すように構成されている。
[0172] 本願のこの実施形態で提供される装置によれば、モデル内の全てではないニューロンが訓練されることを必要とし、一部のニューロンが、活性状態に基づいて訓練のために選択される。これは、消費電力を削減し、訓練速度を向上させることができる。更に、クライアントは、訓練されたニューロンに対応するパラメータのみをサービス・エンドへ送信するので、通信帯域幅を減らすことができる。
[0173] 更に、フローズン・アクティブ・フラグ・ビットは活性状態を示し、その結果、ターゲット・ニューロンは、フローズン・アクティブ・フラグ・ビットを使用することによって直接的に決定されることが可能である。従って、ターゲット・ニューロンを決定する速度は比較的速い。これは、更に、訓練時間を短縮し、訓練速度を向上させる。フローズン期間が設定され、ニューロンが訓練に関与しない期間はフローズン期間に基づいて示され、ニューロンが訓練に関与するか否かは、フローズン期間に基づいて決定され、これにより、訓練プロセスで訓練に関与する必要があるニューロンに対応するパラメータの欠落を防止し、ロバスト性を保証する。フローズン期間カウンタが設定され、フローズン期間は終了したかどうかを示し、フローズン期間が終了した後に、活性度が取得される。これは、フローズン期間が終了するかどうかを検出するための時間を更に短縮し、訓練速度を向上させる。
[0174] 本願の実施形態は、人工知能モデルを取得する装置を提供する。装置は、図3に示される実施形態においてサービス・エンドによって実行される方法を実行するように構成されている。図7に示すように、装置は以下を含む:
訓練対象の第1の人工知能AIモデルを取得するように構成された処理ユニット701であって、第1のAIモデルは複数のニューロンを含み、例えば、処理ユニット701によって実行される機能は、図3の301に示されているものであってもよく、詳細はここで再び説明されない、処理ユニット;及び
第1のAIモデルを複数のクライアントへ送信するように構成された通信ユニット702であって、例えば、通信ユニット702によって実行される機能は、図3の302に示されているものであってもよく、詳細はここで再び説明されない、通信ユニット702。
[0175] 通信ユニット702は、ターゲット・ニューロンに対応するパラメータ・データであって複数のクライアントのうちの各クライアントにより返されて来るものを受信するように更に構成されており、ターゲット・ニューロンに対応するパラメータ・データであって何れかのニューロンにより返されて来るものは、第1のAIモデルにおけるターゲット・ニューロンを訓練することにより、何れかのクライアントにより取得され、ターゲット・ニューロンの数は複数のニューロンの総数より少ない。例えば、通信ユニット702によって実行される機能は、図3の307に示されているものであってもよく、詳細はここで再び説明されない。
[0176] 処理ユニット701は、ターゲット・ニューロンに対応するパラメータ・データであって各クライアントにより返されて来るものに基づいて、各クライアントに対応する第2のAIモデルを復元し、各クライアントに対応する第2のAIモデルに基づいて、収束したターゲットAIモデルを取得するように更に構成されている。例えば、処理ユニット701によって実行される機能は、図3の307に示されているものであってもよく、詳細はここで再び説明されない。
[0177] 例示的な実施形態において、処理ユニット701は、何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新し、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを補足して、何れかのクライアントに対応する第2のAIモデルを取得するように構成されている。
[0178] 例示的な実施形態において、処理ユニット701は、何れかのクライアントに関し、ターゲット・ニューロンに対応するパラメータ・データであって何れかのクライアントにより返されて来るものに基づいて、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新し、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータを補足して、何れかのクライアントに対応する第2のAIモデルを取得するように構成されている。
[0179] 例示的な実施形態において、処理ユニット701は、各クライアントに対応する第2のAIモデルに関して連合平均化を実行して、第3のAIモデルを取得し;且つ
第3のAIモデルは収束していることに応答して、第3のAIモデルをターゲットAIモデルとして使用するか;又は
第3のAIモデルは収束していないことに応答して、第3のAIモデルを複数のクライアントへ送信し、第3のAIモデルを取得した方法で新たなAIモデルを取得し、このプロセスを、収束したターゲットAIモデルが得られるまで反復し続けるように構成されている。
[0180] 例示的な実施形態において、通信ユニット702は、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットであって、複数のクライアントにより返されて来るものを受信するように更に構成されている。
[0181] 処理ユニット701は、各ニューロンのフローズン・アクティブ・フラグ・ビット又は値が変化するフローズン・アクティブ・フラグ・ビットを利用することにより、複数のニューロンのうちのターゲット・ニューロンを決定するように構成されている。
[0182] 本願のこの実施形態で提供される装置によれば、クライアントは、モデル内の全てニューロンを訓練することは行わず、活性状態に基づいて、訓練する一部のニューロンを選択し、訓練されたターゲット・ニューロンに対応するパラメータのみをアップロードする。従って、通信帯域幅を減らすことができ、訓練速度を向上させることができる。このようにして、ターゲットAIモデルを取得する速度は向上する。
[0183] 更に、第1のAIモデルにおけるターゲット・ニューロンに対応するパラメータを更新することに加えて、第1のAIモデルにおける非ターゲット・ニューロンに対応するパラメータも補足される。これは、モデルのインテグリティを確保し、その結果、取得したターゲットAIモデルのパフォーマンスがより良好になる。
[0184] 図6又は図7に提供される装置が、装置の機能を実施する場合に、複数の機能モジュールへの分割は、単に説明のための一例として使用されているに過ぎないことが理解されるべきである。実際のアプリケーションでは、前述の機能は、要求に基づいて実装に関する様々な機能モジュールに割り当てることが可能である。換言すれば、デバイスの内部構造は、上述した機能の全部又は一部を実現するように、異なる機能モジュールに分割される。更に、上述した実施形態で提供される装置及び方法の実施形態は、同じ概念に関係している。装置の具体的な実施プロセスについては、方法の実施形態を参照されたい。詳細はここで再び説明されない。
[0185] 図8は、本願の実施形態による人工知能モデルを取得するデバイス1100のハードウェア構造の概略図である。図8に示される人工知能モデルを取得するデバイス1100は、前述の実施形態の方法におけるサービス・エンド又はクライアントによって実行される対応するステップを実行することが可能である。
[0186] 図8に示されるように、人工知能モデルを取得するデバイス1100は、プロセッサ1101、メモリ1102、インターフェース1103、及びバス1104を含む。インターフェース1103は、無線又は有線方式で実装されてもよく、具体的には、ネットワーク・アダプタであってもよい。プロセッサ1101、メモリ1102、及びインターフェース1103は、バス1104を介して接続される。
[0187] インターフェース1103は、送信機と受信機を含んでもよい。人工知能モデルを取得するデバイスは、ターゲット・ニューロンに対応するパラメータを、インターフェース1103を介して送受信することが可能である。
[0188] 例えば、図8に示される人工知能モデルを取得するデバイス1100は、図3におけるクライアントであり、プロセッサ1101は、メモリ1102内の命令を読み込み、その結果、図8に示される人工知能モデルを取得するデバイス1100は、クライアントによって実行される全て又は一部の動作を実行することができる。
[0189] 別の例では、図8に示される人工知能モデルを取得するデバイス1100は、図3におけるサービス・エンドであり、プロセッサ1101は、メモリ1102内の命令を読み込み、その結果、図8に示される人工知能モデルを取得するデバイス1100は、サービス・エンドによって実行される全て又は一部の動作を実行することができる。
[0190] 更に、プロセッサ1101は、本明細書で説明される技術の別のプロセスを実行するように構成される。メモリ1102は、オペレーティング・システム11021及びアプリケーション11022を含み、プログラム、コード、又は命令を格納するように構成される。プログラム、コード、又は命令を実行する場合に、プロセッサ又はハードウェア・デバイスは、方法の実施形態において人工知能モデルを取得するデバイス1100に関連する処理プロセスを完備していてもよい。オプションとして、メモリ1102は、リード・オンリー・メモリ(英:Read-only Memory,略称ROM)及びランダム・アクセス・メモリ(英:Random Access Memory,略称RAM)を含んでもよい。ROMは、基本入/出力システム(英:Basic Input/Output System,略称BIOS)又は内蔵システムを含む。RAMは、アプリケーション・プログラムとオペレーティング・システムを含む。人工知能モデルを取得するデバイス1100が実行されることを必要とする場合、システムは、ROMに固定されたBIOS又は内蔵システムのブートローダを用いて起動され、人工知能モデルを得るためのデバイス1100は、正常な動作状態に立ち上げられる。正常な実行状態に入った後、人工知能モデルを取得するデバイス1100は、RAM内のアプリケーション及びオペレーティング・システムを実行し、方法の実施形態における人工知能モデルを取得する装置1100に関連する処理プロセスを完了する。
[0191] 図8は、人工知能モデルを取得するデバイス1100の単純化された設計を示しているだけであることが理解されよう。実際のアプリケーションでは、人工知能モデルを取得するデバイス1100は、任意の数量のインターフェース、プロセッサ、又はメモリを含んでもよい。
[0192] プロセッサは、中央処理ユニット(Central Processing Unit,CPU)であってもよいし、或いは、別の汎用プロセッサ、デジタル信号プロセッサ(digital signal processor,DSP)、特定用途向け集積回路(application-specific integrated circuit,ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array,FPGA)又は別のプログラマブル・ロジック・デバイス、個別ゲート又はトランジスタ・ロジック・デバイス、個別ハードウェア・コンポーネントなどであってもよいことが理解されるべきである。汎用プロセッサは、マイクロプロセッサ、任意の従来のプロセッサ等であってもよい。プロセッサは、高度な縮小命令セット・コンピュータ・マシン(advanced RISC machines,ARM)アーキテクチャをサポートするプロセッサであってもよいことに留意すべきである。
[0193] 更に、オプションの実施形態において、メモリは、リード・オンリー・メモリとランダム・アクセス・メモリを含み、命令及びデータをプロセッサに提供することができる。メモリは、更に、不揮発性ランダム・アクセス・メモリを含んでもよい。例えば、メモリは、デバイス・タイプの情報を更に格納することができる。
[0194] メモリは、揮発性メモリ又は不揮発性メモリであってもよいし、或いは、揮発性メモリと不揮発性メモリの両方を含んでもよい。不揮発性メモリは、リード・オンリー・メモリ(read-only memory,ROM)、プログラマブル・リード・オンリー・メモリ(programmable ROM,PROM)、消去可能なプログラマブル・リード・オンリー・メモリ(erasable PROM,EPROM)、電気的に消去可能なプログラマブル・リード・オンリー・メモリ(electrically EPROM,EEPROM)、又はフラッシュ・メモリであってもよい。揮発性メモリは、外部キャッシュとして使用されるランダム・アクセス・メモリ(random access memory,RAM)であってもよい。限定ではない具体例として、多くの形態のRAMが使用される可能性があり、例えば、スタティック・ランダム・アクセス・メモリ(static RAM, SRAM)、ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory, DRAM)、同期ダイナミック・ランダム・アクセス・メモリ(synchronous DRAM,SDRAM)、二重データ・レート同期ダイナミック・ランダム・アクセス・メモリ(double data rate SDRAM,DDR SDRAM)、拡張同期ダイナミック・ランダム・アクセス・メモリ(enhanced SDRAM,ESDRAM)、同期リンク・ダイナミック・ランダム・アクセス・メモリ(synchlink DRAM,SLDRAM)、及びダイレクト・ランバス・ランダム・アクセス・メモリ(direct rambus RAM,DR RAM)である。
[0195] コンピュータ読み取り可能な記憶媒体が更に提供される。記憶媒体は、少なくとも1つの命令を記憶し、その命令は、プロセッサによってロードされて実行され、人工知能モデルを取得するための前述の何れかの方法を実施する。
[0196] 本願はコンピュータ・プログラムを提供する。コンピュータ・プログラムがコンピュータによって実行される場合に、プロセッサ又はコンピュータは、前述の方法の実施形態における対応するステップ及び/又は手順を実行することを可能にする。
[0197] チップが提供される。チップは、メモリに記憶されている命令を、メモリから起動し、命令を実行するように構成されたプロセッサを含み、その結果、チップが組み込まれた通信デバイスは、前述の態様における方法を実行する。
[0198] 別のチップが提供される。チップは、入力インターフェース、出力インターフェース、プロセッサ、及びメモリを含む。入力インターフェース、出力インターフェース、プロセッサ、及びメモリは、内部接続チャネルを介して互いに接続される。プロセッサは、メモリ内でコードを実行するように構成される。コードが実行されると、プロセッサは、前述の態様で方法を実行するように構成されている。
[0199] 前述の実施形態の全て又は一部は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせを使用することによって実施することができる。ソフトウェアが実施形態を実施するために使用される場合、実施形態の全て又は一部は、コンピュータ・プログラム製品の形態で実施されてもよい。コンピュータ・プログラム製品は、1つ以上のコンピュータ命令を含む。コンピュータ・プログラム命令がロードされ、コンピュータ上で実行される場合、本願による手順又は機能は、全体的又は部分的に生じる。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータ・ネットワーク、又は他のプログラム可能な装置であってもよい。コンピュータ命令は、コンピュータ読み取り可能な記憶媒体に記憶されてもよいし、或いはコンピュータ読み取り可能な記憶媒体から別のコンピュータ読み取り可能な記憶媒体へ送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバー、又はデータ・センターから別のウェブサイト、コンピュータ、サーバー、又はデータ・センターへ、有線(例えば、同軸ケーブル、光ファイバ、又はデジタル加入者回線)又は無線(例えば、赤外線、無線、又はマイクロ波)方式で送信されることが可能である。コンピュータ読み取り可能な記憶媒体は、コンピュータによってアクセス可能な任意の使用可能媒体又はデータ記憶デバイス、例えば、1つ以上の使用可能な媒体を統合するサーバー又はデータ・センター等であってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピー・ディスク、ハード・ディスク、又は磁気テープ)、光媒体(例えば、DVD)、又は半導体媒体(例えば、ソリッド・ステート・ディスク(Solid State Disk))であってもよい。
[0200] 前述の具体的な実装において、本願の目的、技術的解決策、及び有益な効果が更に詳細に説明されている。前述の説明は、単に本願の具体的な実装であるに過ぎず、本願の保護範囲を限定するようには意図されていないことは理解されるべきである。本願の技術的解決策に基づいて行われる如何なる修正、同等な置換、改良などは本願の保護範囲に含まれるものとする。