(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023070090
(43)【公開日】2023-05-18
(54)【発明の名称】モデル学習装置、方法、およびコンピュータ読み取り可能な記録媒体
(51)【国際特許分類】
G06N 20/00 20190101AFI20230511BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022167422
(22)【出願日】2022-10-19
(31)【優先権主張番号】10-2021-0150829
(32)【優先日】2021-11-04
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0069423
(32)【優先日】2022-06-08
(33)【優先権主張国・地域又は機関】KR
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和3年10月27日 ウェブサイト「https://arxiv.org/abs/2110.14131」、「https://arxiv.org/pdf/2110.14131.pdf」「https://arxiv.org/abs/2110.14131v1」及び「https://arxiv.org/pdf/2110.14131v1.pdf」における公開
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ブルートゥース
2.BLUETOOTH
3.JAVA
4.WCDMA
(71)【出願人】
【識別番号】517425675
【氏名又は名称】ハイパーコネクト リミテッド ライアビリティ カンパニー
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100210239
【弁理士】
【氏名又は名称】富永 真太郎
(72)【発明者】
【氏名】ジェイコブ リチャード モートン
(72)【発明者】
【氏名】マーティン カースナー
(72)【発明者】
【氏名】サンギル アン
(72)【発明者】
【氏名】ブ ル チャン
(72)【発明者】
【氏名】グァンヒ チェ
(57)【要約】
【課題】大規模モデルの知識を多様なアーキテクチャを有するオンデバイスモデルに汎用的に伝達できるようにする装置および方法を提供する。
【解決手段】本開示に係るモデル学習方法は、事前に学習された教師モデルに学習データを入力して複数のアテンションマップを生成する段階、複数のアテンションマップに基づいて教師モデルのアテンションベクトルを生成する段階、学生モデルに学習データを入力して学生モデルのアテンションベクトルを生成する段階、教師モデルのアテンションベクトルと学生モデルのアテンションベクトルに基づいて第1損失関数の値を算出する段階、学習データに対する学生モデルの推論に係る第2損失関数の値を算出する段階、および第1損失関数の値と第2損失関数の値に基づいて学生モデルを学習させる段階を含むことができる。
【選択図】
図4
【特許請求の範囲】
【請求項1】
事前に学習された教師モデルに学習データを入力して複数のアテンションマップを生成する段階と、
前記複数のアテンションマップに基づいて前記教師モデルのアテンションベクトルを生成する段階と、
学生モデルに前記学習データを入力して前記学生モデルのアテンションベクトルを生成する段階と、
前記教師モデルのアテンションベクトルと前記学生モデルのアテンションベクトルに基づいて第1損失関数の値を算出する段階と、
前記学習データに対する前記学生モデルの推論に係る第2損失関数の値を算出する段階と、
前記第1損失関数の値と前記第2損失関数の値に基づいて前記学生モデルを学習させる段階と、を含む、モデル学習方法。
【請求項2】
前記教師モデルは、
複数の連続したトランスフォーマーレイヤーを含み、
前記複数のアテンションマップを生成する段階は、
前記教師モデルに前記学習データが入力されることによって、前記複数の連続したトランスフォーマーレイヤーそれぞれからアテンションマップを生成することを特徴とする、請求項1に記載のモデル学習方法。
【請求項3】
前記教師モデルのアテンションベクトルを生成する段階は、
前記複数のアテンションマップに基づいて1つの混合アテンションマップを生成する段階と、
前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成する段階と、を含む、請求項1に記載のモデル学習方法。
【請求項4】
前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成する段階は、
前記混合アテンションマップを構成する元素のうち一部を抽出する段階と、
前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一であるかを確認する段階と、
前記2つの次元が同一である場合、前記抽出した元素で構成されたアテンションベクトルを前記教師モデルのアテンションベクトルとして生成する段階と、
前記2つの次元が同一でない場合、前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一になるよう、前記抽出した元素で構成されたアテンションベクトルに線形補間(linear interpolation)を適用して前記教師モデルのアテンションベクトルを生成する段階と、を含む、請求項3に記載のモデル学習方法。
【請求項5】
前記学生モデルのアテンションベクトルを生成する段階は、
前記学生モデルに前記学習データを入力して時間段階別の特徴マップを生成する段階と、
前記時間段階別の特徴マップとクエリベクトルに基づいて前記学生モデルのアテンションベクトルを生成する段階と、を含む、請求項1に記載のモデル学習方法。
【請求項6】
前記時間段階別の特徴マップとクエリベクトルに基づいて前記学生モデルのアテンションベクトルを生成する段階は、
前記時間段階別の特徴マップそれぞれと前記クエリベクトル間のベクトル演算を遂行する段階と、
前記ベクトル演算それぞれの結果を成分として有するベクトルに活性化関数(activated function)を適用する段階と、を含む、請求項5に記載のモデル学習方法。
【請求項7】
前記学生モデルを学習させる段階は、
前記第1損失関数の値と前記第2損失関数の値を加重合計(weighted sum)して最終損失関数の値を算出する段階と、
前記最終損失関数の値が減少する方向に前記学生モデルの複数のパラメータのうち少なくとも一部とクエリベクトルを更新する段階と、を含む、請求項1に記載のモデル学習方法。
【請求項8】
前記学習された学生モデルの原本またはコピーをオンデバイスモデルとしてユーザー端末に配布(deploy)する段階をさらに含む、請求項1に記載のモデル学習方法。
【請求項9】
前記ユーザー端末から、前記オンデバイスモデルのバージョン更新要請を受信する段階と、
前記バージョン更新要請に対応して最近更新された学生モデルのパラメータに関する情報を前記ユーザー端末に提供する段階と、をさらに含む、請求項8に記載のモデル学習方法。
【請求項10】
サーバーから前記サーバーの教師モデルに基づいて知識蒸留方式で学習された学生モデルをオンデバイスモデルとして獲得する段階と、
前記サーバーに前記オンデバイスモデルのバージョン更新要請を伝送する段階と、
前記サーバーから最近更新された学生モデルのパラメータに関する情報を受信する段階と、を含む、モデル構築方法。
【請求項11】
請求項1ないし請求項10のうちいずれかに係る方法を遂行するためのプログラムが記録された、コンピュータ読み取り可能な記録媒体。
【請求項12】
モデル学習のためのサーバーであって、
命令語を保存するメモリおよびプロセッサーを含み、
前記プロセッサーは、前記メモリと連結され、
事前に学習された教師モデルに学習データを入力して複数のアテンションマップを生成し、
前記複数のアテンションマップに基づいて前記教師モデルのアテンションベクトルを生成し、
学生モデルに前記学習データを入力して前記学生モデルのアテンションベクトルを生成し、
前記教師モデルのアテンションベクトルと前記学生モデルのアテンションベクトルに基づいて第1損失関数の値を算出し、
前記学習データに対する前記学生モデルの推論に係る第2損失関数の値を算出し、
前記第1損失関数の値と前記第2損失関数の値に基づいて前記学生モデルを学習させる、サーバー。
【請求項13】
前記教師モデルは、
複数の連続したトランスフォーマーレイヤーを含み、
前記プロセッサーは、
前記複数のアテンションマップを生成することにおいて、
前記教師モデルに前記学習データが入力されることによって、前記複数の連続したトランスフォーマーレイヤーそれぞれからアテンションマップを生成する、請求項12に記載のサーバー。
【請求項14】
前記プロセッサーは、
前記教師モデルのアテンションベクトルを生成することにおいて、
前記複数のアテンションマップに基づいて1つの混合アテンションマップを生成し、
前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成する、請求項12に記載のサーバー。
【請求項15】
前記プロセッサーは、
前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成するにことにおいて、
前記混合アテンションマップを構成する元素のうち一部を抽出し、
前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一であるかを確認し、
前記2つの次元が同一である場合、前記抽出した元素で構成されたアテンションベクトルを前記教師モデルのアテンションベクトルとして生成し、
前記2つの次元が同一でない場合、前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一になるよう、前記抽出した元素で構成されたアテンションベクトルに線形補間(linear interpolation)を適用して前記教師モデルのアテンションベクトルを生成する、請求項14に記載のサーバー。
【請求項16】
前記プロセッサーは、
前記学生モデルのアテンションベクトルを生成することにおいて、
前記学生モデルに前記学習データを入力して時間段階別の特徴マップを生成し、
前記時間段階別の特徴マップとクエリベクトルに基づいて前記学生モデルのアテンションベクトルを生成する、請求項12に記載のサーバー。
【請求項17】
前記プロセッサーは、
前記時間段階別の特徴マップとクエリベクトルに基づいて前記学生モデルのアテンションベクトルを生成することにおいて、
前記時間段階別の特徴マップそれぞれと前記クエリベクトル間のベクトル演算を遂行し、
前記ベクトル演算それぞれの結果を成分として有するベクトルに活性化関数(activated function)を適用する、請求項16に記載のサーバー。
【請求項18】
前記プロセッサーは、
前記学生モデルを学習させることにおいて、
前記第1損失関数の値と前記第2損失関数の値を加重合計(weighted sum)して最終損失関数の値を算出し、
前記最終損失関数の値が減少する方向に前記学生モデルの複数のパラメータのうち少なくとも一部とクエリベクトルを更新する、請求項12に記載のサーバー。
【請求項19】
前記プロセッサーは、
前記学習された学生モデルの原本またはコピーをオンデバイスモデルとしてユーザー端末に配布(deploy)する、請求項12に記載のサーバー。
【請求項20】
前記プロセッサーは、
前記ユーザー端末から、前記オンデバイスモデルのバージョン更新要請を受信し、
前記バージョン更新要請に対応して最近更新された学生モデルのパラメータに関する情報を前記ユーザー端末に提供する、請求項19に記載のサーバー。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ユーザー端末に配布されるモデルを学習させる装置、方法、およびコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【0002】
リアルタイム通信が大衆化されると共に、軽量化された電子機器に備えられたオンデバイスモデルを通じたデータ処理が注目されるようになった。特に、オンデバイスモデルを用いた音声認識は、キーワード発見(keyword spotting)などの作業において、大規模モデルに劣らない性能を見せることもあった。
【0003】
しかし、オンデバイスモデルは、備えられた電子機器のメモリおよびコンピューティングリソースなどが制限的な関係によって、一部の作業においては、大規模モデルに比べて著しく性能が劣るという限界も有している。
【0004】
これを克服しようと、知識蒸留(knowledge distillation)基盤のメカニズムを用いて大規模モデルの知識をオンデバイスモデルに伝達しようとする試みがあったが、このような試みは、大規模モデルのアーキテクチャとオンデバイスモデルのアーキテクチャが類似しなければ適用され得ないものであり、たとえ適用されるとしても、音声認識作業などにおいて、重要な時間情報(temporal information)などはうまく伝達されない問題があった。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、前述の問題点を解決するために提案されたものであり、大規模モデルの知識を多様なアーキテクチャを有するオンデバイスモデルに汎用的に伝達できるようにする装置および方法を提供することを目的とする。
【0006】
本開示によって達成しようとする技術的課題は、前記のような技術的課題に限定されず、以下の実施形態からさらに他の技術的課題が類推され得る。
【課題を解決するための手段】
【0007】
開示される一実施形態に係るモデル学習方法は、事前に学習された教師モデルに学習データを入力して複数のアテンションマップを生成する段階、前記複数のアテンションマップに基づいて前記教師モデルのアテンションベクトルを生成する段階、学生モデルに前記学習データを入力して前記学生モデルのアテンションベクトルを生成する段階、前記教師モデルのアテンションベクトルと前記学生モデルのアテンションベクトルに基づいて第1損失関数の値を算出する段階、前記学習データに対する前記学生モデルの推論に係る第2損失関数の値を算出する段階、および前記第1損失関数の値と前記第2損失関数の値に基づいて前記学生モデルを学習させる段階を含む。
【0008】
一実施形態によると、前記教師モデルは、複数の連続したトランスフォーマーレイヤーを含むことができ、前記複数のアテンションマップを生成する段階は、前記教師モデルに前記学習データが入力されることによって前記複数の連続したトランスフォーマーレイヤーそれぞれからアテンションマップを生成することを特徴とすることができる。
【0009】
一実施形態によると、前記教師モデルのアテンションベクトルを生成する段階は、前記複数のアテンションマップに基づいて1つの混合アテンションマップを生成する段階、および前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成する段階を含むことができる。
【0010】
より具体的には、前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成する段階は、前記混合アテンションマップを構成する元素のうち一部を抽出する段階、前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一であるかを確認する段階、前記2つの次元が同一である場合、前記抽出した元素で構成されたアテンションベクトルを前記教師モデルのアテンションベクトルとして生成する段階、および前記2つの次元が同一でない場合、前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一になるよう、前記抽出した元素で構成されたアテンションベクトルに線形補間(linear interpolation)を適用して前記教師モデルのアテンションベクトルを生成する段階を含むことができる。
【0011】
一実施形態によると、前記学生モデルのアテンションベクトルを生成する段階は、前記学生モデルに前記学習データを入力して時間段階別の特徴マップを生成する段階、および前記時間段階別の特徴マップとクエリベクトルに基づいて、前記学生モデルのアテンションベクトルを生成する段階を含むことができる。
【0012】
より具体的には、前記時間段階別の特徴マップとクエリベクトルに基づいて前記学生モデルのアテンションベクトルを生成する段階は、前記時間段階別の特徴マップそれぞれと前記クエリベクトル間のベクトル演算を遂行する段階、および前記ベクトル演算それぞれの結果を成分として有するベクトルに活性化関数(activated function)を適用する段階を含むことができる。
【0013】
一実施形態によると、前記学生モデルを学習させる段階は、前記第1損失関数の値と前記第2損失関数の値を加重合計(weighted sum)して最終損失関数の値を算出する段階、および前記最終損失関数の値が減少する方向に前記学生モデルの複数のパラメータのうち少なくとも一部とクエリベクトルを更新する段階を含むことができる。
【0014】
一方、一実施形態によると、前記モデル学習方法は、前記学習された学生モデルの原本またはコピーをオンデバイスモデルとしてユーザー端末に配布(deploy)する段階をさらに含むことができる。
【0015】
これに加え、前記モデル学習方法は、前記ユーザー端末から、前記オンデバイスモデルのバージョン更新要請を受信する段階、および前記バージョン更新要請に対応して最近更新された学生モデルのパラメータに関する情報を前記ユーザー端末に提供する段階をさらに含むことができる。
【0016】
開示される一実施形態に係るモデル構築方法は、サーバーから前記サーバーの教師モデルに基づいて知識蒸留方式で学習された学生モデルをオンデバイスモデルとして獲得する段階、前記サーバーに前記オンデバイスモデルのバージョン更新要請を伝送する段階、および前記サーバーから最近更新された学生モデルのパラメータに関する情報を受信する段階を含む。
【0017】
一方、開示される一実施形態に係るモデル学習装置は、モデル学習のためのサーバーとして、命令語を保存するメモリおよびプロセッサーを含み、前記プロセッサーは、前記メモリと連結されて、事前に学習された教師モデルに学習データを入力して複数のアテンションマップを生成し、前記複数のアテンションマップに基づいて前記教師モデルのアテンションベクトルを生成し、学生モデルに前記学習データを入力して前記学生モデルのアテンションベクトルを生成し、前記教師モデルのアテンションベクトルと前記学生モデルのアテンションベクトルに基づいて第1損失関数の値を算出し、前記学習データに対する前記学生モデルの推論に係る第2損失関数の値を算出し、前記第1損失関数の値と前記第2損失関数の値に基づいて前記学生モデルを学習させる。
【0018】
一実施形態によると、前記教師モデルは、複数の連続したトランスフォーマーレイヤーを含むことができ、前記プロセッサーは、前記複数のアテンションマップを生成することにおいて、前記教師モデルに前記学習データが入力されることによって、前記複数の連続したトランスフォーマーレイヤーそれぞれからアテンションマップを生成することができる。
【0019】
一実施形態によると、前記プロセッサーは、前記教師モデルのアテンションベクトルを生成することにおいて、前記複数のアテンションマップに基づいて1つの混合アテンションマップを生成し、前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成することができる。
【0020】
より具体的には、前記プロセッサーは、前記混合アテンションマップを構成する元素のうち一部を抽出して前記教師モデルのアテンションベクトルを生成することにおいて、前記混合アテンションマップを構成する元素のうち一部を抽出し、前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一であるかを確認し、前記2つの次元が同一である場合、前記抽出した元素で構成されたアテンションベクトルを前記教師モデルのアテンションベクトルとして生成し、前記2つの次元が同一でない場合、前記抽出した元素で構成されたアテンションベクトルの次元と前記学生モデルのアテンションベクトルの次元が同一になるよう、前記抽出した元素で構成されたアテンションベクトルに線形補間(linear interpolation)を適用して前記教師モデルのアテンションベクトルを生成することができる。
【0021】
一実施形態によると、前記プロセッサーは、前記学生モデルのアテンションベクトルを生成することにおいて、前記学生モデルに前記学習データを入力して時間段階別の特徴マップを生成し、前記時間段階別の特徴マップとクエリベクトルに基づいて前記学生モデルのアテンションベクトルを生成することができる。
【0022】
より具体的には、前記プロセッサーは、前記時間段階別の特徴マップとクエリベクトルに基づいて前記学生モデルのアテンションベクトルを生成することにおいて、前記時間段階別の特徴マップそれぞれと前記クエリベクトル間のベクトル演算を遂行し、前記ベクトル演算それぞれの結果を成分として有するベクトルに活性化関数(activated function)を適用することができる。
【0023】
一実施形態によると、前記プロセッサーは、前記学生モデルを学習させることにおいて、前記第1損失関数の値と前記第2損失関数の値を加重合計(weighted sum)して最終損失関数の値を算出し、前記最終損失関数の値が減少する方向に前記学生モデルの複数のパラメータのうち少なくとも一部とクエリベクトルを更新することができる。
【0024】
一方、一実施形態によると、前記プロセッサーは、前記学生モデルを学習させた後、前記学習された学生モデルの原本またはコピーをオンデバイスモデルとしてユーザー端末に配布(deploy)することができる。
【0025】
これに加え、前記プロセッサーは、前記ユーザー端末から、前記オンデバイスモデルのバージョン更新要請を受信し、前記バージョン更新要請に対応して最近更新された学生モデルのパラメータに関する情報を前記ユーザー端末に提供することができる。
【0026】
一方、開示される他の実施形態に係るモデル構築装置は、モデル構築のためのユーザー端末であって、命令語を保存するメモリおよびプロセッサーを含み、前記プロセッサーは、前記メモリと連結して、サーバーから前記サーバーの教師モデルに基づいて知識蒸留方式で学習された学生モデルをオンデバイスモデルとして獲得し、前記サーバーに前記オンデバイスモデルのバージョン更新要請を伝送し、前記サーバーから最近更新された学生モデルのパラメータに関する情報を受信する。
【0027】
一方、本開示に係るモデル学習方法を遂行するためのプログラムが記録された、コンピュータ読み取り可能な記録媒体が提供され得る。
【0028】
その他の実施形態の具体的な事項は、詳細な説明および図面に含まれている。
【発明の効果】
【0029】
本開示によると、大規模な教師モデルとオンデバイスモデル間において、アテンションベクトル(アテンション加重値)に基づいて知識蒸留メカニズムを遂行することによって、大規模な教師モデルの知識が多様なアーキテクチャを有するオンデバイスモデルに汎用的に伝達されるようにできる。
【0030】
また、本開示によると、新たに学習されたパラメータに関する情報をサーバーからモバイル機器(ユーザー端末)に伝達するだけで、オンデバイスモデルのバージョン更新が可能にすることによって、オンデバイスモデルのバージョン更新に所要するコンピューティングリソースおよび時間を劇的に軽減させることができる。
【0031】
発明の効果は、以上で言及した効果に制限されず、言及されていないさらに他の効果は、請求範囲の記載から当該技術分野の通常の技術者に明確に理解され得るであろう。
【図面の簡単な説明】
【0032】
【
図1】一実施形態に係るモデル学習および配布が行われる環境を示す概略的な構成図である。
【
図2】一実施形態に係るモデル学習装置としてのサーバーを示すブロック図である。
【
図3】一実施形態に係るモデル構築装置としてのユーザー端末を示すブロック図である。
【
図4】一実施形態に係るサーバーにおけるモデル学習方法を説明するためのフローチャートである。
【
図5】一実施形態によって段階S420をより具体的に説明するためのフローチャートである。
【
図6】一実施形態によって段階S520をより具体的に説明するためのフローチャートである。
【
図7】一実施形態によって段階S430をより具体的に説明するためのフローチャートである。
【
図8】一実施形態によって段階S720をより具体的に説明するためのフローチャートである。
【
図9】他の実施形態によって段階S430をより具体的に説明するためのフローチャートである。
【
図10】一実施形態によって段階S460をより具体的に説明するためのフローチャートである。
【
図11】追加的な実施形態に係るサーバーにおけるモデル配布および更新方法を説明するためのフローチャートである。
【
図12】一実施形態に係るユーザー端末におけるモデル構築方法を説明するためのフローチャートである。
【
図13】オンデバイスモデルの学習方法を図示した例示的な概念図である。
【発明を実施するための形態】
【0033】
以下、図面を参照して具体的な実施形態を説明することにする。以下の詳細な説明は、本明細書において記述された方法、装置、および/またはシステムに関する包括的な理解を助けるために提供される。しかし、これは例示に過ぎず、開示される実施形態はこれに制限されない。
【0034】
実施形態を説明することにおいて、関連する公知技術に関する具体的な説明が、開示される実施形態の要旨を不必要に曖昧にし得ると判断される場合には、その詳細な説明を省略するものとする。そして、後述する用語は、開示される実施形態における機能を考慮して定義された用語として、これは、ユーザー、運用者の意図または慣例などによって変わり得る。そのため、その定義は、本明細書全般にわたる内容に基づいて下されなければならない。詳細な説明において使用される用語は、単に実施形態を記述するためのものであり、決して制限的であってはならない。明確に異なって使用されない限り、単数形態の表現は複数形態の意味を含む。本説明において、「含む」または「具備」のような表現は、ある特性、数字、段階、動作、要素、これらの一部または組み合わせを指すためのものであり、記述されたもの以外に1つまたはそれ以上の異なる特性、数字、段階、動作、要素、これらの一部または組み合わせの存在または可能性を排除するように解釈してはならない。
【0035】
実施形態において使用される用語は、本開示における機能を考慮しつつ、可能な限り現在広く使用される一般的な用語を選択したが、これは当分野に従事する技術者の意図または判例、新たな技術の出現などによって変わり得る。また、特定の場合は、出願人が任意に選定した用語もあり、この場合、該当する説明の部分において詳細にその意味を記載するであろう。従って、本開示において使用される用語は、単純な用語の名称ではなく、その用語が有する意味と本開示の全般にわたる内容に基づいて定義されなければならない。
【0036】
明細書全体において、ある部分がある構成要素を「含む」とするとき、これは特に反対の記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含むことができることを意味する。また、明細書に記載された「~部」、「~モジュール」などの用語は、少なくとも1つの機能や動作を処理する単位を意味し、これはハードウェアまたはソフトウェアとして具現されるか、ハードウェアとソフトウェアの結合によって具現され得、図示された例と異なり、具体的動作において明確に区分されないことがある。
【0037】
明細書全体において記載された「a、b、およびcのうち少なくとも1つ」の表現は、「a単独」、「b単独」、「c単独」、「aおよびb」、「aおよびc」、「bおよびc」、または「a、b、cすべて」を包括することができる。
【0038】
以下において言及される「端末」は、ネットワークを通じてサーバーや他端末に接続できるコンピュータや携帯用端末として具現され得る。ここで、コンピュータは、例えば、ウェブブラウザ(WEB Browser)が搭載されたノートパソコン、デスクトップ(desktop)、ラップトップ(laptop)などを含み、携帯用端末は、例えば、携帯性と移動性が保障される無線通信装置として、IMT(International Mobile Telecommunication)、CDMA(Code Division Multiple Access)、W-CDMA(W-Code Division Multiple Access)、LTE(Long Term Evolution)などの通信基盤端末、スマートフォン、タブレットPCなどのようなすべての種類のハンドヘルド(Handheld)基盤の無線通信装置を含むことができる。
【0039】
以下の説明において、信号または情報の「伝送」、「通信」、「送信」、「受信」、その他これと類似した意味の用語は、一構成要素から他の構成要素に信号または情報が直接伝達されるものだけでなく、他の構成要素を経て伝達されるものも含む。
【0040】
特に、信号または情報を一構成要素に「伝送」または「送信」するということは、その信号または情報の最終目的地を指示することであり、直接的な目的地を意味するものではない。これは、信号または情報の「受信」においても同一である。また、本明細書において、2以上のデータまたは情報が「関連」されるということは、1つのデータ(または情報)を獲得すれば、それに基づいて他のデータ(または情報)の少なくとも一部を獲得できることを意味する。
【0041】
また、第1、第2などの用語は、多様な構成要素を説明することに使用され得るが、前記構成要素は、前記用語によって限定してはならない。前記用語は、1つの構成要素を他の構成要素から区別する目的で使用され得る。
【0042】
例えば、本発明の権利範囲を外れず、第1構成要素は第2構成要素として命名され得、同様に第2構成要素も第1構成要素として命名され得る。
【0043】
実施形態を説明することにおいて、本発明が属する技術分野においてよく知られており、本発明と直接的に関連のない技術内容に関しては説明を省略する。これは、不必要な説明を省略することにより、本発明の要旨を曖昧にせず、より明確に伝達するためである。
【0044】
同様の理由により、添付図面において一部の構成要素は、誇張または省略されるか、概略的に図示された。また、各構成要素の大きさは、実際の大きさを全的に反映するものではない。各図面において、同一または対応する構成要素には同一の参照番号を与えた。
【0045】
本発明の利点および特徴、そして、それらを達成する方法は、添付される図面と共に詳細に後述されている実施形態を参照すれば明確になるであろう。しかし、本発明は、以下において開示される実施形態に限定されるものではなく、互いに異なる多様な形態として具現され得、単に本実施形態は、本発明の開示が完全なものとし、本発明が属する技術分野において通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は請求項の範疇によって定義されるのみである。明細書全体にわたった同一の参照符号は、同一の構成要素を指称する。
【0046】
処理フローチャート図面の各ブロックとフローチャート図面の組み合わせは、コンピュータプログラムインストラクションによって遂行され得ることが理解できるであろう。これらのコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータ、またはその他のプログラム可能なデータプロセッシング装備のプロセッサーに搭載され得るため、コンピュータまたはその他のプログラム可能なデータプロセッシング装備のプロセッサーを通じて遂行されるそのインストラクションが、フローチャートブロック(ら)において説明された機能を遂行する手段を生成することになる。これらコンピュータプログラムインストラクションは、特定方式として機能を具現するために、コンピュータまたはその他のプログラム可能なデータプロセッシング装備を指向できるコンピュータ利用可能またはコンピュータ読み取り可能メモリに保存することも可能であるため、そのコンピュータ利用可能またはコンピュータ読み取り可能メモリに保存されたインストラクションは、フローチャートブロック(ら)において説明された機能を遂行するインストラクション手段を内包する製造品目を生産することも可能である。コンピュータプログラムインストラクションは、コンピュータまたはその他プログラム可能なデータプロセッシング装備上に搭載されることも可能であるため、コンピュータまたはその他プログラム可能なデータプロセッシング装備上において一連の動作段階が遂行されてコンピュータで実行されるプロセスを生成し、コンピュータまたはその他のプログラム可能なデータプロセッシング装備を遂行するインストラクションは、フローチャートブロック(ら)において説明された機能を実行するための段階を提供することも可能である。
【0047】
また、各ブロックは、特定された論理的機能(ら)を実行するための1つ以上の実行可能なインストラクションを含むモジュール、セグメント、またはコードの一部を示すことができる。また、いくつかの代替実行形態においては、ブロックにおいて言及された機能が順序を外れて発生することも可能であることに注目しなければならない。例えば、連続して図示されている2つのブロックは、事実上、実質的に同時に遂行されることも可能であり、またはそのブロックが時に該当する機能により逆順で遂行されることも可能である。
【0048】
以下においては、添付した図面を参考にして、本開示の実施形態に関して本開示の属する技術分野において通常の知識を有する者が容易に実施できるように詳細に説明する。しかし、本開示は、いくつかの相違する形態で具現され得、ここで説明する実施形態に限定されない。
【0049】
図1は、一実施形態に係るモデル学習および配布が行われる環境を示す概略的な構成図である。
図1を参照すると、モデル学習および配布が行われる環境は、サーバー110およびユーザー端末120を含む。このとき、モデルが配布される個体はユーザー端末120であり、配布に先立って学習を遂行する個体はサーバー110であるので、サーバー110およびユーザー端末120は、モデルを構築するための装置の1つとして動作することができる。また、
図1には、サーバーとユーザー端末がそれぞれ1つであるように図示されているが、これは、理解の便宜を図るためのものとして、実施形態によってサーバーは複数の細部サーバーで構成されてもよく、ユーザー端末の数は複数で設定されてもよい。一方、
図1に図示された構成要素のほかに、他の汎用的な構成要素がさらに含まれ得ることを、本実施形態に関する技術分野において通常の知識を有する者であれば理解することができる。
【0050】
サーバー110は、演算を遂行して前記演算結果をユーザー端末120に伝送することができる。より具体的には、サーバー110は、教師モデル(Teacher Model)を用いた知識蒸留(Knowledge Distillation)基盤の学習を通じて、オンデバイスモデルとしてユーザー端末120に配布される学生モデル(Student Model)を学習させることができる。続いて、サーバー110は、学習された学生モデル(またはそのコピー)をオンデバイスモデルとしてユーザー端末120に伝送することができる。
【0051】
一方、サーバー110およびユーザー端末120は、連結された通信網を通じて互いに通信するか、外部の他の装置と通信することができる。前記通信網は、近距離通信網(Local Area Network;LAN)、広域通信網(Wide Area Network;WAN)、付加価値通信網(Value Added Network;VAN)、移動通信網(mobile radio communication network)、衛星通信網、およびこれらの相互組み合わせを含み、
図1に図示された各構成主体が互いに円滑に通信できるようにする包括的な意味のデータ通信網であり、有線インターネット、無線インターネット、およびモバイル無線通信網を含むことができる。無線通信は、例えば、無線LAN(Wi-Fi)、ブルートゥース、ブルートゥース低エネルギー(Bluetooth low energy)、ジグビー、WFD(Wi‐Fi Direct)、UWB(ultra wideband)、赤外線通信(IrDA,infrared Data Association)、NFC(Near Field Communication)などがあり得るが、これに限定されるものではない。
【0052】
以上に関して、以下の図面を通じてより詳細に説明することにする。
【0053】
図2は、一実施形態に係るモデル学習装置としてのサーバーを示すブロック図である。
図2を参照すると、一実施形態に係るモデル学習装置としてのサーバー110は、プロセッサー111および命令語を保存するメモリ113を含む。サーバー110は、少なくとも1つのユーザー端末からオンデバイスモデルに対する配布要請やオンデバイスモデルのバージョン更新要請を受信することができ、ユーザー端末にオンデバイスモデルの配布に必要な情報や、オンデバイスモデルのバージョン更新に必要な情報を送信することができる。
【0054】
プロセッサー111は、メモリ113と連結されて、事前に学習された教師モデルに学習データを入力して複数のアテンションマップを生成し、複数のアテンションマップに基づいて教師モデルのアテンションベクトルを生成し、学生モデルに学習データを入力して学生モデルのアテンションベクトルを生成し、教師モデルのアテンションベクトルと学生モデルのアテンションベクトルに基づいて第1損失関数の値を算出し、学習データに対する学生モデルの推論に係る第2損失関数の値を算出し、第1損失関数の値と第2損失関数の値に基づいて学生モデルを学習させる。
【0055】
本開示において、「アテンションマップ」は、教師モデルに入力されるデータの各部分に関して結果を推論するときに、推論のために入力されたデータの各部分にどれだけの比重を考慮したのかを数値的に示したアテンション値からなるベクトルを意味する。
【0056】
教師モデルは、複数の連続したトランスフォーマー(transformer)レイヤーを含むことができる。この場合、プロセッサー111は、複数のアテンションマップを生成することにおいて、教師モデルに学習データが入力されることによって、複数の連続したトランスフォーマーレイヤーそれぞれからアテンションマップを生成することができる。
【0057】
一実施形態によると、教師モデルは、トランスフォーマー基盤の自動音声認識(ASR;Automatic Speech Recognition)モデルであり得る。例えば、教師モデルは、wav2vec 2.0のモデル構造を含むことができる。
【0058】
一実施形態によると、学習データは、教師モデル内の畳み込み特性エンコーダ(convolutional feature encoder)を通じて複数の時間段階別の潜在表現(latent representation)に転換(translate)され得、このような時間段階別の潜在表現は、複数の連続したトランスフォーマーレイヤーを過ぎつつ学習データに関する特徴マップ(脈絡表現、context representation)に出力され得る。その間、プロセッサー111は、各トランスフォーマーレイヤー内のエンコーダまたはデコーダにおける隠匿状態(hidden state)をアテンション関数のクエリ(query)、キー(key)、値(value)としてアテンション値を計算し、このアテンション値で構成されたアテンションマップを生成することができる。一例として、プロセッサー111は、学習データの各部分(例えば、学習データが文章であるときに、文章を構成する各単語のベクトル)をアテンション関数のクエリ、キー、値としてセルフ-アテンション値を計算し、このセルフ-アテンション値で構成されたセルフアテンションマップを生成することができる。
【0059】
プロセッサー111は、教師モデルのアテンションベクトルを生成することにおいて、複数のアテンションマップに基づいて1つの混合アテンションマップを生成し、混合アテンションマップを構成する元素のうち一部を抽出して教師モデルのアテンションベクトルを生成することができる。このとき、混合アテンションマップは、複数のアテンションマップ間のベクトル演算を通じて生成される、複数のアテンションマップそれぞれと同一の次元を有するアテンションマップであり得るが、必ずしもこれに限定されるものではない。
【0060】
一実施形態によると、プロセッサー111は、複数のアテンションマップにアテンションロールアウト(attention rollout)技法を適用して混合アテンションマップを生成することができる。具体的には、プロセッサー111は、最下位のトランスフォーマーレイヤーに対応するアテンションマップから最上位のトランスフォーマーレイヤーに対応するアテンションマップに至るまで、順伝播するアテンション加重値を再帰的に掛けて混合アテンションマップを生成することができる。
【0061】
一実施形態によると、プロセッサー111は、混合アテンションマップを構成する元素のうち、特定時間段階に対応する特定行または特定列の元素を抽出して教師モデルのアテンションベクトルを生成することができる。例えば、プロセッサー111は、n*n個の元素からなる混合アテンションマップから1行の元素を教師モデルのアテンションベクトルとして抽出することができる。
【0062】
一実施形態によると、プロセッサー111は、混合アテンションマップを構成する元素のうち一部を抽出して教師モデルのアテンションベクトルを生成することにおいて、混合アテンションマップを構成する元素のうち一部を抽出し、抽出した元素で構成されたアテンションベクトルの次元と学生モデルのアテンションベクトルの次元が同一であるかを確認し、2つの次元が同一である場合、抽出した元素で構成されたアテンションベクトルを教師モデルのアテンションベクトルとして生成し、2つの次元が同一でない場合、抽出した元素で構成されたアテンションベクトルの次元と学生モデルのアテンションベクトルの次元が同一になるよう、抽出した元素で構成されたアテンションベクトルに線形補間(linear interpolation)を適用して教師モデルのアテンションベクトルを生成することができる。これに関して、線形補間を適用することによって導出される教師モデルのアテンションベクトルの次元は、事前に設定されたハイパーパラメータ(hyper-parameter)によって決定され得る。
【0063】
学生モデルは、畳み込みニューラルネットワーク(CNN;Convolutional Neural Network)基盤のモデルであるか(例えば、TC-ResNet)、回帰型ニューラルネットワーク(RNN;Recurrent Neural Network)基盤のモデルであるか(例えば、LSTM-P)、CNNおよびRNNをすべて用いるモデルであるか(例えば、CRNN)、アテンションメカニズム基盤のモデルであるか(例えば、Att-RNN)、Att-RNNに対するマルチヘッド変形構造を取ったモデルであり得る(例えば、MHAtt-RNN)。音声認識作業を目的とする場合、学生モデルは、MFCC(Mel-Frequency Cepstral Coefficient)基盤の特徴エンコーダを含むことができる。
【0064】
プロセッサー111は、学生モデルのアテンションベクトルを生成することにおいて、学生モデルに学習データを入力して時間段階別の特徴マップを生成し、時間段階別の特徴マップとクエリベクトルに基づいて学生モデルのアテンションベクトルを生成することができる。より具体的には、プロセッサー111は、時間段階別の特徴マップとクエリベクトルに基づいて学生モデルのアテンションベクトルを生成することにおいて、時間段階別の特徴マップそれぞれとクエリベクトル間のベクトル演算を遂行し、ベクトル演算それぞれの結果を成分として有するベクトルに活性化関数(activated function)を適用することによって、学生モデルのアテンションベクトルを生成することができる。これに関する実施形態において、学生モデルによって生成される特徴マップ(脈絡表現)の時間段階は、教師モデルによって生成される特徴マップの時間段階と同一ではないことがある。学生モデルの特徴マップの時間段階および次元は、学生モデルのアーキテクチャによって異なり得るためである。これによって、教師モデルのアテンションベクトルと学生モデルのアテンションベクトルの次元は異なり得るが、それにもかかわらず、プロセッサー111は、教師モデルのアテンションベクトルに関する情報を学生モデルに伝達することによって、オンデバイスモデルになる学生モデルのアーキテクチャの多様性を担保できるようになる。
【0065】
本開示において、「クエリベクトル」は、学生モデルによって生成される特徴マップ(脈絡表現)から知識蒸留のためのアテンションベクトル(学生モデルのアテンションベクトル)を算出するための媒介となるベクトルとして、クエリベクトルの初期値は、多様な方式を用いて決定され得る。また、クエリベクトルの次元は、学生モデルのアーキテクチャによって事前に決定され得る。
【0066】
一実施形態によると、プロセッサー111が適用する活性化関数は、各ベクトルの元素を正規化するためのsoftmax関数であり得るが、必ずしもこれに限定されるものではなく、ベクトルの加工のためならばReLU関数、sigmoid関数などの多様な活性化関数が適用され得る。
【0067】
一実施形態によると、プロセッサー111は、クエリベクトルの初期値を無作為に設定することができる(random initialization)。
【0068】
他の実施形態によると、プロセッサー111は、学生モデルによって生成される特徴マップのうち1つを選択するか、学生モデルによって生成される特徴マップの元素別代表値(例えば、平均、中央値など)を算出した後、これを設定された基準ベクトルや基準軸に対して投影してクエリベクトルの初期値を設定することもできる。
【0069】
一方、一実施形態によると、プロセッサー111は、時間段階別の特徴マップとクエリベクトルを内積(inner product)して算出される各時間段階別のスカラー値を元素とする対象アテンションの初期ベクトルを生成し、対象アテンションの初期ベクトルにsoftmax関数を取って学生モデルのアテンションベクトルを生成することができる。これは、以下の数学式1に示すとおりである。但し、時間段階別の特徴マップとクエリベクトル間のベクトル演算が内積に限定されるものではないことに留意しなければならない。
【0070】
【0071】
このとき、
は学生モデルのアテンションベクトル、
は時間段階別の特徴マップ、qはクエリベクトル、iは時間段階別の変数を示す。
【0072】
プロセッサー111は、学生モデルのアテンションベクトルを生成することにおいて、学生モデルがアテンションメカニズム基盤のニューラルモデルである場合、学習データを入力として学生モデルが出力とするアテンションベクトルを学生モデルのアテンションベクトルとして用いることもできる。
【0073】
プロセッサー111は、学生モデルを学習させることにおいて、第1損失関数の値と第2損失関数の値を加重合計(weighted sum)して最終損失関数の値を算出し、最終損失関数の値が減少する方向に学生モデルの複数のパラメータのうち少なくとも一部とクエリベクトルを更新することができる。
【0074】
一実施形態によると、第1損失関数は、教師モデルのアテンションベクトルと学生モデルのアテンションベクトルを入力とするカルバック-ライブラー情報量(Kullback-Leibler Divergence;KLD)であり得る。
【0075】
一実施形態によると、第1損失関数は、以下の数学式2によって算出され得る。
【0076】
【0077】
このとき、
は第1損失関数、
はカルバック-ライブラー情報量、
は教師モデルのアテンションベクトル、
は学生モデルのアテンションベクトルを示す。
【0078】
一実施形態によると、第2損失関数は、交差エントロピー(Cross Entropy)関数であり得る。
【0079】
一実施形態によると、最終損失関数は、以下の数学式3によって算出され得る。
【0080】
【0081】
このとき、
は最終損失関数、
は第1損失関数、
は第2損失関数、
は最終損失関数の値の算出時に第1損失関数の値と第2損失関数の値の反映比率を決定する加重値(ハイパーパラメータ)を示す。
【0082】
プロセッサー111は、学習された学生モデルの原本またはコピーをオンデバイスモデルとしてユーザー端末120に配布(deploy)することができる。
【0083】
一実施形態によると、プロセッサー111は、ユーザー端末120からオンデバイス配布要請を受信した場合、これに対応して学習された学生モデルの原本またはコピーの配布に必要な情報をユーザー端末120に提供することができる。これに関して、ユーザー端末120のオンデバイス配布要請は、ユーザー端末120に備えられたアプリケーション内において行われてもよく、ユーザー端末120のオペレーティングシステムのソフトウェア設置要請を通じて行われてもよく、ユーザー端末120のファームウェア設置要請を通じて行われてもよい。
【0084】
プロセッサー111は、ユーザー端末120から、オンデバイスモデルのバージョン更新要請を受信し、バージョン更新要請に対応して最近更新された学生モデルのパラメータに関する情報をユーザー端末120に提供することができる。これに関して、ユーザー端末120のオンデバイスモデルのバージョン更新要請は、ユーザー端末120に備えられたアプリケーション内において行われてもよく、ユーザー端末120のアプリケーションシステムのソフトウェアアップグレードを通じて行われてもよく、ユーザー端末120のファームウェアアップグレードを通じて行われてもよい。
【0085】
図3は、一実施形態に係るモデル構築装置としてのユーザー端末を示すブロック図である。
図3を参照すると、一実施形態に係るモデル構築装置としてのユーザー端末120は、プロセッサー121および命令語を保存するメモリ123を含む。ユーザー端末120は、サーバー110からオンデバイスモデルの配布に必要な情報やオンデバイスモデルのバージョン更新に必要な情報を受信することができ、サーバー110にオンデバイスモデルに関する配布要請やオンデバイスモデルのバージョン更新要請を送信することができる。
【0086】
プロセッサー121は、メモリ123と連結して、サーバー110からサーバー110の教師モデルに基づいて知識蒸留方式で学習された学生モデルをオンデバイスモデルとして獲得し、サーバー110にオンデバイスモデルのバージョン更新要請を伝送し、サーバー110から最近更新された学生モデルのパラメータに関する情報を受信する。
【0087】
一実施形態によると、プロセッサー121は、サーバー110からオンデバイスモデルの配布に必要な情報を受信し、これに基づいてオンデバイスモデルをユーザー端末120内に構築することができる。例えば、プロセッサー121が受信するオンデバイスモデルの配布に必要な情報は、オンデバイスモデルのアーキテクチャおよびパラメータを定義したコード情報であり得る。
【0088】
一実施形態によると、プロセッサー121は、サーバー110から最近更新された学生モデルのパラメータに関する情報を受信し、これに基づいてユーザー端末120に構築されたオンデバイスモデルのパラメータを更新することができる。
【0089】
一実施形態によると、プロセッサー121は、サーバー110から最近更新された学生モデルのパラメータに関する情報を受信しつつ、学生モデルの最近のバージョン情報を追加で受信することができ、ユーザー端末120に構築されたオンデバイスモデルの更新が行われた後、前記最近のバージョン情報に基づいてユーザー端末120に構築されたオンデバイスモデルのバージョン情報を修正することができる。
【0090】
図4は、一実施形態に係るサーバーにおけるモデル学習方法を説明するためのフローチャートである。
【0091】
段階S410において、サーバー110は、事前に学習された教師モデルに学習データを入力して複数のアテンションマップを生成する。
【0092】
段階S420において、サーバー110は、生成された複数のアテンションマップに基づいて教師モデルのアテンションベクトルを生成する。
【0093】
段階S430において、サーバー110は、学生モデルに学習データを入力して学生モデルのアテンションベクトルを生成する。
【0094】
段階S440において、サーバー110は、教師モデルのアテンションベクトルと学生モデルのアテンションベクトルに基づいて第1損失関数の値を算出する。
【0095】
段階S450において、サーバー110は、学習データに対する学生モデルの推論に係る第2損失関数の値を算出する。
【0096】
段階S460において、サーバー110は、第1損失関数の値と第2損失関数の値に基づいて学生モデルを学習させる。
【0097】
図5は、一実施形態によって段階S420をより具体的に説明するためのフローチャートである。
【0098】
段階S510において、サーバー110は、段階S410を通じて生成された複数のアテンションマップに基づいて1つの混合アテンションマップを生成する。
【0099】
段階S520において、サーバー110は、生成された混合アテンションマップを構成する元素のうち一部を抽出して教師モデルのアテンションベクトルを生成する。
【0100】
図6は、一実施形態によって段階S520をより具体的に説明するためのフローチャートである。
【0101】
段階S610において、サーバー110は、混合アテンションマップを構成する元素のうち一部を抽出する。
【0102】
段階S620において、サーバー110は、抽出した元素で構成されたアテンションベクトルの次元と学生モデルのアテンションベクトルの次元が同一であるかを確認する。
【0103】
段階S630において、抽出した元素で構成されたアテンションベクトルの次元と学生モデルのアテンションベクトルの次元が同一である場合、サーバー110は、抽出した元素で構成されたアテンションベクトルを教師モデルのアテンションベクトルとして生成する。
【0104】
一方、段階S640において、抽出した元素で構成されたアテンションベクトルの次元と学生モデルのアテンションベクトルの次元が同一でない場合、サーバー110は、抽出した元素で構成されたアテンションベクトルの次元と学生モデルのアテンションベクトルの次元が同一になるよう、抽出した元素で構成されたアテンションベクトルに線形補間(linear interpolation)を適用して教師モデルのアテンションベクトルを生成する。
【0105】
図7は、一実施形態によって段階S430をより具体的に説明するためのフローチャートである。
【0106】
段階S710において、サーバー110は、学生モデルに学習データを入力して時間段階別の特徴マップを生成する。
【0107】
段階S720において、サーバー110は、時間段階別の特徴マップとクエリベクトルに基づいて学生モデルのアテンションベクトルを生成する。
【0108】
図8は、一実施形態によって段階S720をより具体的に説明するためのフローチャートである。
【0109】
段階S810において、サーバー110は、時間段階別の特徴マップそれぞれとクエリベクトル間のベクトル演算を遂行する。
【0110】
段階S820において、サーバー110は、ベクトル演算それぞれの結果を成分として有するベクトルに活性化関数(activated function)を適用する。
【0111】
図9は、他の実施形態によって段階S430をより具体的に説明するためのフローチャートである。
【0112】
段階S910において、サーバー110は、学生モデルがアテンションメカニズム基盤のニューラルモデルであるかを確認する。
【0113】
段階S920において、学生モデルがアテンションメカニズム基盤のニューラルモデルである場合、サーバー110は、学習データを入力として学生モデルが出力とするアテンションベクトルを学生モデルのアテンションベクトルとして用いる。
【0114】
一方、学生モデルがアテンションメカニズム基盤のニューラルモデルでない場合、サーバー110は、段階S710、S720を通じて学生モデルのアテンションベクトルを生成する。
【0115】
図10は、一実施形態によって段階S460をより具体的に説明するためのフローチャートである。
【0116】
段階S1010において、サーバー110は、第1損失関数の値と第2損失関数の値を加重合計(weighted sum)して最終損失関数の値を算出する。
【0117】
段階S1020において、サーバー110は、最終損失関数の値が減少する方向に学生モデルの複数のパラメータのうち少なくとも一部とクエリベクトルを更新する。
【0118】
図11は、追加的な実施形態に係るサーバーにおけるモデル配布および更新方法を説明するためのフローチャートである。
【0119】
段階S1110において、サーバー110は、学習された学生モデルの原本またはコピーをオンデバイスモデルとしてユーザー端末120に配布する。
【0120】
段階S1120において、サーバー110は、ユーザー端末120から、オンデバイスモデルのバージョン更新要請を受信する。
【0121】
段階S1130において、サーバー110は、受信したバージョン更新要請に対応して最近更新された学生モデルのパラメータに関する情報をユーザー端末120に提供する。
【0122】
図12は、一実施形態に係るユーザー端末におけるモデル構築方法を説明するためのフローチャートである。
【0123】
段階S1210において、ユーザー端末120は、サーバー110からサーバー110の教師モデルに基づいて知識蒸留方式で学習された学生モデルをオンデバイスモデルとして獲得する。
【0124】
段階S1220において、ユーザー端末120は、サーバー110にオンデバイスモデルのバージョン更新要請を伝送する。
【0125】
段階S1230において、ユーザー端末120は、サーバー110から最近更新された学生モデルのパラメータに関する情報を受信する。
【0126】
前記図示されたフローチャートにおいては、前記方法を複数個の段階に分けて記載したが、少なくとも一部の段階は順序を変えて遂行されるか、他の段階と結合して共に遂行されるか、省略されるか、細部段階に分かれて遂行されるか、または図示されていない1つ以上の段階が付加されて遂行され得る。
【0127】
図13は、オンデバイスモデルの学習方法を図示した例示的な概念図である。
【0128】
具体的に、
図13は、サーバー110によって遂行される教師モデルと学生モデルの知識蒸留過程を概念的に図示する。
【0129】
図13を参照すると、教師モデルは、複数のエンコーダを通じて学習データが入力され、複数のトランスフォーマーレイヤー(
図13においては、1つのトランスフォーマーブロックとして図示される)を通じて各時間段階別の特徴マップを生成する。図示されたように、最初の時間段階に対応する特徴マップは、FC(Fully-Connected)レイヤーを経て、最初の時間段階に対応する推論結果(
)として出力される。
【0130】
一方、サーバー110は、教師モデルのトランスフォーマーレイヤーから生成される複数のアテンションマップ(A
T)からベクトル演算(例えば、Attention rollout)を通じて混合アテンションマップを生成し、このうち一部の元素を抽出し、線形補間(Linear interpolation)を適用して教師モデルのアテンションベクトル(
)を生成することができる。
【0131】
また、サーバー110は、学生モデルを通じて生成された特徴マップ(脈絡表現、c’)とクエリベクトル間のベクトル演算(例えば、内積)を通じて学生モデルのアテンションベクトル(
)を生成することができる。さらに、サーバー110は、教師モデルのアテンションベクトル値と学生モデルのアテンションベクトル値を入力として第1損失関数値(
)を算出することができる。一方、サーバー110は、学生モデルの推論結果(
)と正答ラベル間の第2損失関数(CE;Cross-Entropy)に基づく第2損失関数値(
)を算出することができる。
【0132】
以後、サーバー110は、第1損失関数の値と第2損失関数の値に基づいて最終損失関数の値を算出し、これに基づいて(1)学生モデル内の複数のパラメータのうち少なくとも一部と、(2)クエリベクトルを更新することができる。
【0133】
前述した実施形態に係る装置は、プロセッサー、プログラムデータを保存して実行するメモリ、ディスクドライブのような永久保存部(permanent storage)、外部装置と通信する通信ポート、タッチパネル、キー(key)、ボタンなどのようなユーザーインターフェイス装置などを含み得る。ソフトウェアモジュールまたはアルゴリズムとして具現される方法は、前記プロセッサー上において実行可能なコンピュータが読み取り可能なコードまたはプログラム命令としてコンピュータが読み取り可能な記録媒体上に保存され得る。ここで、コンピュータが読み取り可能な記録媒体として、マグネティック保存媒体(例えば、ROM(read-only memory)、RAM(random-Access memory)、フロッピーディスク、ハードディスクなど)、および光学的読み取り媒体(例えば、シーディーロム(CD-ROM)、ディーブイディー(DVD:Digital Versatile Disc))などがある。コンピュータが読み取り可能な記録媒体は、ネットワークに接続されたコンピュータシステムに分散されて、分散方式としてコンピュータが読み取り可能なコードが保存され実行され得る。媒体は、コンピュータによって読み取り可能であり、メモリに保存され、プロセッサーにおいて実行され得る。
【0134】
本実施形態は、機能的なブロック構成および多様な処理段階として示され得る。このような機能ブロックは、特定の機能を実行する多様な個数のハードウェアおよび/またはソフトウェアの構成として具現され得る。例えば、実施形態は、1つ以上のマイクロプロセッサーの制御または他の制御装置によって多様な機能を実行することができる、メモリ、プロセッシング、ロジック(logic)、ルックアップテーブル(look-up table)などのような集積回路の構成を採用することができる。構成要素がソフトウェアプログラミングまたはソフトウェア要素として実行され得ることと同様に、本実施形態は、データ構造、プロセス、ルーチン、または他のプログラミング構成の組み合わせとして具現される多様なアルゴリズムを含み、C、C++、ジャバ(Java)、アセンブラー(assembler)などのようなプログラミングまたはスクリプト言語として具現され得る。機能的な側面は、1つ以上のプロセッサーにおいて実行されるアルゴリズムとして具現され得る。また、本実施形態は、電子的な環境設定、信号処理、および/またはデータ処理などのために、従来の技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」のような用語は、広く使用され得、機械的かつ物理的な構成として限定されるものではない。前記用語は、プロセッサーなどと連携してソフトウェアの一連の処理(routines)の意味を含むことができる。
【0135】
前述した実施形態は、一例示に過ぎず、後述する請求項の範囲内において他の実施形態が具現され得る。