以下、本開示の実施のための具体的な内容を添付された図面を参照して詳細に説明する。ただし、以下の説明では本開示の要旨を不要に曖昧にさせ得る恐れがある場合、広く知られている機能や構成に関する具体的な説明は省略することにする。
添付された図面で、同一または対応する構成要素には同一の参照符号が付与されている。また、以下の実施例の説明において、同一または対応する構成要素を重複して記述することが省略され得る。しかし、構成要素に関する記述が省略されても、そのような構成要素がある実施例に含まれないものとは意図されない。
開示された実施例の利点および特徴、そしてそれらを達成する方法は、添付される図面と共に後述されている実施例を参照すると明確になるであろう。しかし、本開示は以下で開示される実施例に限定されるものではなく互いに異なる多様な形態で具現され得、ただし本実施例は本開示を完全なものとし、本開示が通常の技術者に発明の範疇を完全に知らせるために提供されるものに過ぎない。
本明細書で使われる用語について簡略に説明し、開示された実施例について具体的に説明することにする。本明細書で使われる用語は本開示での機能を考慮しつつ、できる限り現在広く使われる一般的な用語を選択したが、これは関連分野に従事する技術者の意図または判例、新しい技術の出現などにより変わり得る。また、特定の場合は出願人が任意に選定した用語もあり、この場合、該当する発明の説明の部分で詳細にその意味を記載するであろう。したがって、本開示で使われる用語は単純な用語の名称ではなく、その用語が有する意味と本開示の全般にわたった内容に基づいて定義されなければならない。
本明細書での単数の表現は文脈上明白に単数であると特定しない限り、複数の表現を含む。また、複数の表現は文脈上明白に複数であると特定しない限り、単数の表現を含む。明細書全体で或る部分が何らかの構成要素を含むとする時、これは特に反対の記載がない限り他の構成要素を除くものではなく他の構成要素をさらに含み得ることを意味する。
また、明細書で使われる「モジュール」または「部」という用語はソフトウェアまたはハードウェア構成要素を意味し、「モジュール」または「部」は何らかの役割を遂行する。しかし、「モジュール」または「部」はソフトウェアまたはハードウェアに限定される意味ではない。「モジュール」または「部」はアドレッシングできる保存媒体にあるように構成されてもよく、一つまたはそれ以上のプロセッサを再生させるように構成されてもよい。したがって、一例として、「モジュール」または「部」はソフトウェア構成要素、客体指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシーザー、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイまたは変数のうち少なくとも一つを含むことができる。構成要素と「モジュール」または「部」は、中で提供される機能はさらに小さい数の構成要素および「モジュール」または「部」で結合されるか追加的な構成要素と「モジュール」または「部」にさらに分離され得る。
本開示の一実施例によると、「モジュール」または「部」はプロセッサおよびメモリで具現され得る。「プロセッサ」は汎用プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、制御器、マイクロ制御器、状態マシンなどを含むように広く解釈されるべきである。いくつかの環境において、「プロセッサ」は特定用途向け半導体(ASIC)、プログラム可能ロジックデバイス(PLD)、フィールドプログラム可能ゲートアレイ(FPGA)等を指称してもよい。「プロセッサ」は例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサの組み合わせ、DSPコアと結合した一つ以上のマイクロプロセッサの組み合わせ、または任意の他のそのような構成の組み合わせのような処理デバイスの組み合わせを指称してもよい。また、「メモリ」は電子情報を保存可能な任意の電子コンポーネントを含むように広く解釈されるべきである。「メモリ」は任意アクセスメモリ(RAM)、読み取り専用メモリ(ROM)、不揮発性任意アクセスメモリ(NVRAM)、プログラム可能読み取り専用メモリ(PROM)、消去-プログラム可能読み取り専用メモリ(EPROM)、電気的に消去可能PROM(EEPROM)、フラッシュメモリ、磁気または光学データ保存装置、レジスタなどのようなプロセッサ-読み取り可能媒体の多様な類型を指称してもよい。プロセッサがメモリから情報を読み取り/したりメモリに情報を記録できるのであれば、メモリはプロセッサと電子通信状態にあると呼ばれる。プロセッサに集積されたメモリはプロセッサと電子通信状態にある。
本開示で、「システム」はサーバー装置とクラウド装置のうち少なくとも一つの装置を含むことができるが、これに限定されるものではない。例えば、システムは一つ以上のサーバー装置で構成され得る。他の例として、システムは一つ以上のクラウド装置で構成され得る。さらに他の例として、システムはサーバー装置とクラウド装置が共に構成されて動作され得る。
本開示で、「ディープラーニングモデル(deep-learning model)」は多重または複数の非線形変換技法またはモデルの組み合わせを通じて、高い水準の抽象化(abstraction)を実行できる機械学習アルゴリズムまたはモデルを指称し得る。ディープラーニングモデルは複雑な非線形関係をモデリングできる深層ニューラルネットワーク(deep neural network)で具現され得、深層ニューラルネットワークは入力層と出力層間に複数の隠れ層を含む人工ニューラルネットワーク(artificial neural network)を示すことができる。
本開示で、「バックボーンモデル(backbone model)」は多様な種類のタスク(または作業)を遂行するために共通して必要な機能を実行するように構成されるか、学習されたディープラーニングモデルを指称し得る。バックボーンモデルは、多様な種類のタスクを実行するために、該当モデルの一部分または一部の層の構造またはパラメータを変更したり、該当タスクの目的に合うように構成された追加のモデルまたはモジュールと連結され得る。例えば、バックボーンモデルは一般的な視覚的パターンの分類(classification)のために構成または学習されたモデルであって、客体の感知(object detection)、セグメンテーション(segmentation)、姿勢推定(pose estimation)などのために入力データから特徴(feature)のみを抽出するように構成され、抽出された特徴は各タスクの目的に合うように構成された他のモデルに伝達され得る。例えば、バックボーンモデルはResNet、Inception、Mobile Netなどのようなモデルを指称し得る。特に、本開示でのバックボーンモデルは、大量のパラメータと学習データを利用して総合的かつ高次元の推論が可能な超巨大人工知能モデルを含むことができる。
本開示で、「チューニング」は事前に学習されたディープラーニングモデルに基づいてさらに改善された性能を目的としたり、新しい目的のために該当モデルの構成またはパラメータなどを調整する過程を指称し得る。例えば、チューニングは、追加の学習データを利用して、ディープラーニングモデルに含まれた一部の層の加重値またはパラメータなどをアップデートすることを含むことができる。
本開示で、「複数のAのそれぞれ」または「複数のAそれぞれ」は複数のAに含まれたすべての構成要素のそれぞれを指称するか、複数のAに含まれた一部の構成要素のそれぞれを指称し得る。
図1は、本開示の一実施例に係るディープラーニングモデルのチューニングシステム100の構成を示す。図示された通り、ディープラーニングモデルのチューニングシステム100は、ネットワーク130を通じて連結された複数の使用者端末110、120およびサーバー150を含むことができる。一実施例によると、使用者は使用者端末110、120を通じて、使用者モデル112、122が特定作業(またはタスク)を実行するのに適合であるように構成したり特定作業に対して改善された性能を有するようにするために、使用者モデル112、122をチューニングすることができる。具体的には、使用者は一般的な作業を遂行できるように、事前学習された(事前にトレーニングされた、又はpre-trained)モデルを利用して使用者モデル112、122を設計した後、特定作業(例:感性分析、質問応答、情報検索、機械翻訳など)で最適な性能を出すモデルを具現するために、使用者端末110、120を通じて使用者モデル112、122それぞれの一部又は全部をチューニングすることができる。使用者端末110、120に設置されてチューニングされる使用者モデル112、122は、各モデルのすべての構成要素(例えば、モデルを構成する複数の層、各層に関連した加重値またはパラメータ、状態情報など)の一部114、124を含み、残りの一部116、126はネットワークを通じて接近可能なサーバー150に設置されたバックボーンモデル152の構成要素157、158で代替され得る。ここで、バックボーンモデル152は、使用者モデル112、122のチューニング前に、学習データに基づいて事前学習され得る。また、図1に図示された使用者モデル112、122およびバックボーンモデル152はディープラーニングモデルであり得る。
一実施例によると、使用者端末110、120はサーバー510およびバックボーンモデル152のような外部リソースまたは独立した外部装置を利用して使用者モデル112、122をチューニングすることができる。一般的に、ディープラーニングモデルのチューニングに使われるリソースは該当モデルのスケールが大きいほど増加するので、使用者端末110、120のような制限的なコンピューティング環境で大規模なモデルをチューニングするのには困難が伴う。このようなコンピューティング資源の制限による問題点を解決するために、使用者端末110、120はネットワーク130を通じて連結されるサーバー150およびバックボーンモデル152の機能を利用して使用者モデル112、122をチューニングすることができる。この時、使用者端末110が第1使用者モデル112をチューニングする過程でサーバー150のバックボーンモデル152の構成は変化しないので、バックボーンモデル152は使用者端末120が第2使用者モデル122をチューニングするのに再使用され得る。また、使用者端末110、120が使用者モデル112、122をチューニングする過程でアップデートされる状態情報(例えば、学習率(learning rate)、オプティマイザ状態(optimizer states)、加重値減衰係数(weight decay factor)、勾配クリッピング係数(gradient clipping factor)、損失スケール値(loss scale)等)は、使用者端末110、120に保存および管理され得る。図1では2個の使用者端末110、120が使用者モデル112、122をチューニングする例を図示しているが、これに限定されるものではなく、3個以上の使用者端末が一つのバックボーンモデルを利用してそれぞれ独立的に異なる使用者モデルをチューニングしてもよい。
一実施例によると、使用者端末110、120はバックボーンモデル152を利用して使用者モデル112、122のチューニングのために必要な機能やデータを得ることができる。ここで、使用者モデルのチューニングに必要なデータは該当モデルのパラメータ値、特定層に入力されるか特定層から出力されるデータ、およびパラメータの変動分(例えば、勾配(gradient)またはグラジエントを利用して計算されたモメンタムなど)のうち少なくとも一つとなり得る。一般的にディープラーニングモデルは、該当モデルの出力と正解(またはラベル(label))の間の差(loss)を最小化する方向にパラメータをアップデートまたは学習することができる。このような使用者モデルの学習過程の各段階(step)でモデルパラメータをアップデートするための変動分は、多様な方式(例えば、勾配降下法(gradient descent)、モメンタム(momentum)、ADAMなどの方式など)を利用して算出することができる。以下、本開示の実施例では説明の便宜のために、一般的に広く知られている勾配降下法を例示として使用者モデルのチューニングとパラメータアップデート方法を説明するが、これに限定されず、使用者モデルをチューニングしたりパラメータをアップデートできる他の多様な方式を使用できることは言うまでもない。
一実施例によると、使用者端末110、120はサーバー150が提供するモデルチューニングのためのサービス呼び出しを利用してバックボーンモデル152の機能を利用することができる。例えば、使用者端末110、120はサーバー150が提供するAPI(Application Programming Interface)を呼び出すことによって、バックボーンモデル150に接近することができる。この場合、サーバー150はAPI呼び出しおよびこれに対する応答手続きを実行できるAPIサーバーを追加的に含むことができる。具体的には、API呼び出しにより使用者端末110、120とAPIサーバーが連結され、APIサーバーは該当API呼び出しに対する応答を提供するためにバックボーンモデル152の少なくとも一部の機能を実行することができる。例えば、使用者は使用者端末120を利用してAPIを呼び出すことによって、APIサーバーに使用者モデル122により算出されたデータを伝送して、バックボーンモデル152によって該当データを入力で算出した結果の提供を受けることができる。また、使用者は使用者端末110を利用してAPIを呼び出すことによって、APIサーバーからバックボーンモデル152で算出されたデータの伝達を受け、使用者モデル112に入力することができる。このように、使用者端末110、120がAPI呼び出しを通じてバックボーンモデル152の一部の機能を利用することによって、バックボーンモデル152の構成が隠された状態で使用者端末110、120は使用者モデル112、122のチューニングのために必要な機能やデータの提供を受けることができる。以上、実施例でサーバー150が提供するモデルチューニングのためのサービス呼び出しの例としてAPIを説明したが、これに限定されるものではなく、RPC(remote procedure call)、RMI(remote method invocation)などのような多様なサービス要請または呼び出し方式が使われ得る。
一実施例によると、使用者端末110、120はバックボーンモデル150を利用して使用者モデル112、122の特定層をチューニングすることができる。例えば、使用者端末110は、サーバー150からバックボーンモデル152の実行結果の提供を受け、その実行結果に基づいて算出されたグラジエント(gradient)を使用者モデル(例えば、第1使用者モデル112の出力層114)に適用することができる。
他の例として、使用者端末120は、サーバー150からバックボーンモデル152で算出されたグラジエントを使用者モデル(例えば、第2使用者モデル122の入力層124)に適用することができる。一方、図1は、使用者モデル112、122それぞれの出力層114または入力層124をチューニングする例示が図示されたが、これに限定されない。例えば、使用者端末110、120はバックボーンモデル152を利用して使用者モデル112、122の中間層をチューニングしてもよい。
一実施例によると、使用者端末110は出力層156を除いた第1バックボーンモデル158を利用して第1使用者モデル112の出力層114をチューニングすることができる。具体的には、使用者端末110は入力を第1バックボーンモデル158の入力層154に伝送し、該当入力が第1バックボーンモデル158を順伝播(forward-propagate)して生成されたデータ(例えば、バックボーンモデル152の出力層156に対する入力データ)を受信することができる。使用者端末110は受信したデータを第1使用者モデル112の出力層114に入力して出力を算出した後、これを利用して出力層114に対するグラジエントを計算する。例えば、損失関数(loss function)を利用して使用者モデル112の入力に対するラベルとの差を求め、この差を最小化できる方向へのグラジエントを計算することができる。使用者端末110は、このように計算された出力層114に対するグラジエントを利用して出力層114をチューニングすることができる。
追加的にまたは代案として、使用者端末120は入力層154を除いた第2バックボーンモデル157を利用して第2使用者モデル122の入力層124をチューニングすることができる。具体的には、使用者端末110は入力に対して第2使用者モデル122の入力層124が算出した結果を第2バックボーンモデル157に伝送することによって、該当算出結果と第2バックボーンモデル157を利用して生成された入力層に対するグラジエントデータを受信することができる。例えば、入力層に対するグラジエントデータは第2使用者モデル122の入力層124の結果を第2バックボーンモデル157の入力にして順伝播および逆伝播過程を経て生成され得る。使用者端末120は受信されたグラジエントを利用して第2使用者モデル122の入力層124をチューニングすることができる。これに関する詳細な説明は図6および7を参照して後述される。
一実施例によると、使用者端末110、120は以上で説明した方法によってチューニングされた使用者モデル112、122およびバックボーンモデル152を利用して推論(inference)を遂行できる。使用者モデル112、122が大規模な場合、使用者端末110、120のような制限的な環境で使用者モデル112、122のすべての構成要素を利用して推論(inference)を遂行することは非効率的であり得る。したがって、使用者端末110、120は自身が保有した使用者モデル112、122のチューニングされた層114、124の実行結果とサーバー150から提供されるバックボーンモデル152の一部の実行結果を共に利用して推論を遂行できる。
以上で説明した実施例で、使用者モデル112、122およびバックボーンモデル152は使用者端末110、120およびこれにネットワーク130を通じて連結されたサーバー150にそれぞれ設置されるか連結されたものとして説明されたが、これに限定されるものではない。一実施例において、バックボーンモデル152はクラウドコンピューティングシステムまたは分散コンピューティングシステムで割り当てられたセキュリティ保存領域に設置され得る。使用者モデル112、122は、クラウドコンピューティングシステムまたは分散コンピューティングシステム上でクライアント(または使用者端末)に割り当てられた使用者空間に保存されて接近され得る。クライアントはクラウドコンピューティングシステムまたは分散コンピューティングシステムに接続してバックボーンモデル152を利用することによって、使用者モデル112、122をチューニングするように構成され得る。
図2は、本開示の一実施例に係るディープラーニングモデルのチューニングを実行するために、情報処理システム230が複数の使用者端末210_1、210_2、210_3と通信できるように連結された構成を示す概要図である。情報処理システム230はディープラーニングモデルのチューニングのためのシステムおよび/または1つ以上の装置を含むことができる。例えば、情報処理システム230は、前記図1を参照して説明したサーバー150に対応し得る。一実施例において、情報処理システム230はディープラーニングモデルのチューニングに関連したコンピュータ実行可能なプログラム(例えば、ダウンロード可能なアプリケーション)およびデータを保存、提供および実行できる一つ以上のサーバー装置および/またはデータベース、またはクラウドコンピューティングサービス基盤の一つ以上の分散コンピューティング装置および/または分散データベースを含むことができる。情報処理システム230はアプリケーションを通じて入力される信号に対応する情報を提供したり、対応する処理を遂行できる。例えば、情報処理システム230はディープラーニングモデルのチューニングに関連したサービスを提供するように構成された任意のアプリケーションを通じて複数の使用者端末210_1、210_2、210_3を制御することができる。
情報処理システム230はネットワーク220を通じて複数の使用者端末210_1、210_2、210_3と通信することができる。ネットワーク220は複数の使用者端末210_1、210_2、210_3と情報処理システム230間の通信が可能なように構成され得る。ネットワーク220は設置環境により、例えば、イーサネット(Ethernet)(登録商標)、有線ホームネットワーク(Power Line Communication)、電話線通信装置およびRS-serial通信などの有線ネットワーク、移動通信網、WLAN(Wireless LAN)、Wi-Fi、BluetoothおよびZigBeeなどのような無線ネットワークまたはその組み合わせで構成され得る。通信方式は制限されず、ネットワーク220が含むことができる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を活用する通信方式だけでなく、複数の使用者端末210_1、210_2、210_3の間の近距離無線通信も含まれ得る。
図2で携帯電話端末機210_1、タブレット端末機210_2およびPC端末機210_3が使用者端末の例として図示されたが、これに限定されず、使用者端末210_1、210_2、210_3は有線および/または無線通信が可能でディープラーニングモデルのチューニングに関連したサービスを提供するように構成されたアプリケーションなどが設置されて実行され得る任意のコンピューティング装置であり得る。例えば、使用者端末は、スマートフォン(smart phone)、携帯電話、ナビゲーション、コンピュータ、ノートパソコン、デジタル放送用端末、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)、タブレットPC、ゲームコンソール(game console)、ウェアラブルデバイス(wearable device)、IoT(internet of things)デバイス、VR(virtual reality)デバイス、AR(augmented reality)デバイスなどを含むことができる。また、図2には3個の使用者端末210_1、210_2、210_3がネットワーク220を通じて情報処理システム230と通信するものとして図示されているが、これに限定されず、異なる数の使用者端末がネットワーク220を通じて情報処理システム230と通信するように構成されてもよい。
一実施例において、使用者端末210_1、210_2、210_3はネットワーク220を通じてディープラーニングモデルのチューニングに関連したデータ要請またはサービス要請を情報処理システム230に伝送し、情報処理システム230からこれに関連したデータ(例えば、バックボーンモデルの全部または一部による実行結果として、該当モデルのパラメータ値、特定層に入力されるか特定層から出力されるデータ、およびパラメータの変動分など)を受信することができる。
一実施例において、使用者端末210_1、210_2、210_3はAPI呼び出しのようなサービス要請を通じてディープラーニングモデルのチューニングに関連したデータ要請を情報処理システム230に伝送し、情報処理システム230からこれに関連したデータを該当サービス要請に対する応答として受信することができる。
図3は、本開示の一実施例に係る使用者端末210および情報処理システム230の内部構成を示すブロック図である。使用者端末210はディープラーニングモデルのチューニングに関連したサービスを提供する任意のアプリケーションなどが実行可能で、有/無線通信が可能な任意のコンピューティング装置を指称し得、例えば、図2の携帯電話端末機210_1、タブレット端末機210_2およびPC端末機210_3等を含むことができる。図示された通り、使用者端末210はメモリ312、プロセッサ314、通信モジュール316および入出力インターフェース318を含むことができる。これと同様に、情報処理システム230はメモリ332、プロセッサ334、通信モジュール336および入出力インターフェース338を含むことができる。図3に図示された通り、使用者端末210および情報処理システム230は、それぞれの通信モジュール316、336を利用してネットワーク220を通じて情報および/またはデータを通信できるように構成され得る。また、入出力装置320は入出力インターフェース318を通じて使用者端末210に情報および/またはデータを入力したり使用者端末210から生成された情報および/またはデータを出力したりするように構成され得る。
メモリ312、332は非一過性の任意のコンピュータ読み取り可能な記録媒体を含むことができる。一実施例によると、メモリ312、332はRAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような非消滅性大容量保存装置(permanent mass storage device)を含むことができる。他の実施例において、ROM、SSD、フラッシュメモリ、ディスクドライブなどのような非消滅性大容量保存装置はメモリとは区分される別途の永久保存装置であって、使用者端末210および/または情報処理システム230に含まれ得る。また、メモリ312、332には運営体制と少なくとも一つのプログラムコード(例えば、使用者端末210に設置されて駆動されるディープラーニングモデルのチューニングに関連したサービスを提供するアプリケーションなどのためのコード)が保存され得る。
このようなソフトウェア構成要素はメモリ312、332とは別途のコンピュータで読み取り可能な記録媒体からローディングされ得る。このような別途のコンピュータで読み取り可能な記録媒体はこのような使用者端末210および情報処理システム230に直接連結可能な記録媒体を含むことができるが、例えば、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含むことができる。他の例として、ソフトウェア構成要素はコンピュータで読み取り可能な記録媒体でない通信モジュールを通じてメモリ312、332にローディングされてもよい。例えば、少なくとも一つのプログラムは開発者またはアプリケーションの設置ファイルを配布するファイル配布システムがネットワーク220を通じて提供するファイルによって設置されるコンピュータプログラムに基づいてメモリ312、332にローディングされ得る。
プロセッサ314、334は基本的な算術、ロジックおよび入出力演算を遂行することによって、コンピュータプログラムの命令を処理するように構成され得る。命令はメモリ312、332または通信モジュール316、336によりプロセッサ314、334に提供され得る。例えば、プロセッサ314、334はメモリ312、332のような記録装置に保存されたプログラムコードにより受信される命令を実行するように構成され得る。
通信モジュール316、336はネットワーク220を通じて使用者端末210と情報処理システム230が互いに通信するための構成または機能を提供することができ、使用者端末210および/または情報処理システム230が他の使用者端末および/または他のシステム(一例として、別途のクラウドシステムなど)と通信するための構成または機能を提供することができる。一例として、使用者端末210のプロセッサ314がメモリ312などのような記録装置に保存されたプログラムコードにより生成した要請またはデータ(例えば、ディープラーニングモデルまたはディープラーニングモデルのチューニングに関連したデータなど)は、通信モジュール316の制御によりネットワーク220を通じて情報処理システム230に伝達され得る。逆に、情報処理システム230のプロセッサ334の制御により提供される制御信号や命令が通信モジュール336とネットワーク220を経て使用者端末210の通信モジュール316を通じて使用者端末210に受信され得る。
入出力インターフェース318は入出力装置320とのインターフェースのための手段であり得る。一例として、入力装置は加速度センサ、ジャイロスコープ(すなわち、角速度センサ)等の慣性センサ、光学カメラ、IRカメラなどの光学センサ、ToF、LiDARセンサ、Depthカメラなどの距離感知センサを含むことができる。追加的に入力装置はオーディオセンサおよび/またはイメージセンサを含んだカメラ、キーボード、マイクロホン、マウスなどの装置を含み、出力装置はディスプレイ、スピーカー、ハプティックフィードバックデバイスなどのような装置を含むことができる。他の例として、入出力インターフェース318はタッチスクリーンなどのように入力と出力を遂行するための構成または機能が一つで統合された装置とのインターフェースのための手段であり得る。例えば、使用者端末210のプロセッサ314がメモリ312にローディングされたコンピュータプログラムの命令を処理するにおいて、情報処理システム230が提供する情報および/またはデータを利用して構成されるサービス画面などが入出力インターフェース318を通じてディスプレイに表示され得る。図3では入出力装置320が使用者端末210に含まれないように図示されているが、これに限定されず、使用者端末210と一つの装置で構成され得る。また、情報処理システム230の入出力インターフェース338は情報処理システム230と連結されるか情報処理システム230が含むことができる入力または出力のための装置(図示されず)とのインターフェースのための手段であり得る。図3では入出力インターフェース318、338がプロセッサ314、334と別途に構成された要素として図示されたが、これに限定されず、入出力インターフェース318、338がプロセッサ314、334に含まれるように構成され得る。
使用者端末210および情報処理システム230は図3の構成要素よりさらに多くの構成要素を含むことができる。しかし、多くの従来技術的構成要素を明確に図示する必要性はない。一実施例によると、使用者端末210は上述された入出力装置320のうち少なくとも一部を含むように具現され得る。また、使用者端末210はトランシーバー、GPS(Global Positioning system)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含むことができる。例えば、使用者端末210はカメラモジュール、タッチパネル、入出力ポートなどの多様な構成要素が使用者端末210にさらに含まれるように具現され得る。
一実施例によると、使用者端末210のプロセッサ314は使用者端末210を動作したり制御できる任意のアプリケーションを動作するように構成され得る。例えば、使用者端末210のプロセッサ314はディープラーニングモデルのチューニングに関連したサービスを提供するアプリケーションなどが動作するように構成され得る。この時、該当アプリケーションおよび/またはプログラムに関連したコードが使用者端末210のメモリ312にローディングされ得る。アプリケーションおよび/またはプログラムが動作する間に、使用者端末210のプロセッサ314は入出力装置320から提供された情報および/またはデータを入出力インターフェース318を通じて受信したり通信モジュール316を通じて情報処理システム230から情報および/またはデータを受信することができ、受信された情報および/またはデータを処理してメモリ312に保存することができる。また、このような情報および/またはデータは通信モジュール316を通じて情報処理システム230に提供することができる。
ディープラーニングモデルのチューニングに関連したサービスを提供するアプリケーションなどのためのプログラムが動作する間に、プロセッサ314は入出力インターフェース318と連結されたタッチスクリーン、キーボード、オーディオセンサおよび/またはイメージセンサを含んだカメラ、マイクロホンなどの入力装置を通じて入力されたり選択されたテキスト、イメージ、映像、音声などを受信することができ、受信されたテキスト、イメージ、映像および/または音声などをメモリ312に保存したり通信モジュール316およびネットワーク220を通じて情報処理システム230に提供することができる。
情報処理システム230のプロセッサ334は、使用者端末210を含んだ複数の使用者端末および/または複数の外部システムから受信された情報および/またはデータを管理、処理および/または保存するように構成され得る。プロセッサ334により処理された情報および/またはデータは通信モジュール336およびネットワーク220を通じて使用者端末210に提供することができる。一実施例において、情報処理システム230のプロセッサ334は通信モジュール336およびネットワーク220を通じて使用者端末210からディープラーニングモデルのチューニングのためのサービス要請を受信することができる。
図4は、本開示の一実施例に係る使用者端末のプロセッサ314の内部構成を示す図面である。図示された通り、使用者端末のプロセッサ314はモデルチューニング部410、状態管理部420および推論部430を含むことができる。また、プロセッサ314は使用者モデルデータベース440と連結され得る。ここで、使用者モデルデータベース440はチューニング対象(例えば、使用者モデル112、122)に対応するバックボーンモデルのパラメータ(例えば、一つ以上の層の加重値)を情報処理システム(またはサーバー)から受信した結果あるいは同一の大きさのパラメータをランダムに初期化した値、チューニングが完了したモデルなどの使用者モデルに関連したデータベースを指称し得る。また、使用者モデルデータベース440はディープラーニングモデルのチューニング(または学習)および/または推論に利用されるデータセットが保存されたデータベースを指称し得る。
一実施例によると、モデルチューニング部410は使用者モデルデータベース440から複数の層を含むディープラーニングモデルの一部又は全部を受信することができる。例えば、チューニング対象層が入力層である場合、モデルチューニング部410は使用者モデルデータベース440からディープラーニングモデルの入力層を受信することができる。他の例として、チューニング対象層が出力層である場合、モデルチューニング部410は使用者モデルデータベース440からディープラーニングモデルの出力層を受信することができる。さらに他の例として、チューニング対象層が中間層である場合、モデルチューニング部410は使用者モデルデータベース440からディープラーニングモデルの中間層(または中間層の一部の構成要素)を受信することができる。
一実施例によると、モデルチューニング部410はディープラーニングモデルのチューニング対象層に関連した情報およびディープラーニングモデルの学習状態情報のうち少なくとも一つをパラメータとして有するサービス要請(例えば、API)を呼び出すことができる。例えば、モデルチューニング部410はディープラーニングモデルのバックボーンモデルが設置されたサーバーにサービス要請を伝送することができる。それから、モデルチューニング部410は、サービス要請の応答としてサーバーから提供されるバックボーンモデルの実行結果を受信することができる。例えば、モデルチューニング部410は、サービス要請の応答として、サーバーからチューニング対象層に関連した情報およびディープラーニングモデルの学習状態情報のうち少なくとも一つに基づいたバックボーンモデルの実行結果を受信することができる。この時、バックボーンモデルの実行結果はチューニング対象層の種類(例えば、入力層、中間層、出力層など)により異なり得る。これに関する詳細な説明は図6~8を参照して後述される。
一実施例によると、モデルチューニング部410はバックボーンモデルの実行結果に基づいてグラジエントを算出することができる。他の実施例によると、モデルチューニング部410は、サービス要請の応答として、サーバーからバックボーンモデルによって算出されたグラジエントを受信することができる。それから、モデルチューニング部410はグラジエントをディープラーニングモデルのチューニング対象層に適用することができる。これに伴い、ディープラーニングモデルの損失または損失関数値が最小化される方向にディープラーニングモデルがアップデートされ得る。すなわち、モデルチューニング部410がバックボーンモデルの実行結果に基づいて算出されたグラジエントをディープラーニングモデルのチューニング対象層に適用することによって、ディープラーニングモデルの特定タスクに対する性能が改善され得る。
一実施例によると、モデルチューニング部410は使用者モデルデータベース440からチューニング対象であるディープラーニングモデルの学習状態情報を受信することができる。ここで、学習状態情報はチューニング対象層のパラメータ(例えば、加重値)のアップデートの強度または程度を決定する係数であり得る。具体的には、学習状態情報は、チューニング対象層の加重値がアップデートされる程度を示すグラジエントを算出するのに利用される情報を指称し得る。例えば、ディープラーニングモデルの学習状態情報はディープラーニングモデルの学習率、オプティマイザ状態、加重値減衰係数、グラジエントクリッピング係数、および損失スケール値のうち少なくとも一つを含むことができる。
一実施例によると、状態管理部420はグラジエントをチューニング対象層に適用することと関連して、ディープラーニングモデルの学習状態情報をアップデートすることができる。ここで、グラジエントをチューニング対象層に適用することは、グラジエントをチューニング対象層に逆伝播(backward propagation)することを含むことができる。
一実施例によると、推論部430はチューニングが完了したディープラーニングモデルを利用して推論を遂行できる。例えば、使用者端末にあるディープラーニングモデルの一部が入力層である場合、推論部430は入力データを入力層に入力して中間データを獲得し、サービス要請を通じて中間データをサーバーのバックボーンモデルに伝送することができる。このようなサービス要請により、サーバーは中間データをバックボーンモデルに入力して出力データを獲得することができる。サーバーが獲得したバックボーンモデルの出力データは、サービス要請の応答として、推論部430に提供され得る。この場合、バックボーンモデルは使用者端末に設置されていないディープラーニングモデルの残りの一部を代替するための中間層および出力層を含むことができる。
他の例として、使用者端末に設置されたディープラーニングモデルの一部が出力層である場合、推論部430は入力データをサービス要請を通じてサーバーのバックボーンモデルに伝送することができる。この時、サーバーは、サービス要請を通じて受信した入力データをバックボーンモデルに入力して中間データを獲得して推論部430に伝送することができる。それから、推論部430は、サーバーから受信した中間データを使用者端末に設置された出力層に入力して出力データを獲得することができる。この場合、バックボーンモデルは使用者端末に設置されていないディープラーニングモデルの残りの一部を代替するための入力層および中間層を含むことができる。
さらに他の例として、使用者端末に設置されたディープラーニングモデルの一部が中間層である場合、推論部430は入力データをサービス要請を通じてサーバーのバックボーンモデルに伝送することができる。この時、サーバーはサービス要請を通じて受信された入力データをバックボーンモデルに入力して出力データを獲得し、獲得された出力データを推論部430に伝送することができる。推論部430は、受信された出力データを中間層に入力して中間データを獲得した後、中間データを他のサービス要請を通じてサーバーのバックボーンモデルに再伝送することができる。サーバーはサービス要請を通じて受信された中間データをバックボーンモデルに入力して最終出力データを獲得した後、推論部430に伝送することができる。この場合、バックボーンモデルは使用者端末に設置されていないディープラーニングモデルの残りの一部を代替するための入力層および出力層を含むことができる。
使用者端末に設置されたディープラーニングモデルの一部が中間層である場合であっても、推論部430とサーバー間の通信は1回で完了され得る。この時、推論部430は入力データとともに使用者端末に設置されたチューニングが完了したディープラーニングモデルの加重値を伝送する。サーバーはサービス要請を通じて受信された入力データと使用者モデルの加重値を共にバックボーンモデルに入力して最終出力データを一度に獲得した後、推論部430に伝送することができる。この場合、バックボーンモデルは使用者端末に設置されていないディープラーニングモデルの残りの一部を代替するための入力層および出力層を含むことができる。
図5は、本開示の一実施例に係る情報処理システムのプロセッサ334の内部構成を示す図面である。図示された通り、情報処理システムのプロセッサ334はモデル事前学習部510、サービス要請処理部520およびモデル実行部530を含むことができる。また、プロセッサ334はバックボーンモデルデータベース540と連結され得る。ここで、バックボーンモデルデータベース540はディープラーニングモデル(例えば、使用者モデル112、122)のチューニングに利用されるバックボーンモデルを保存することができる。追加的に、バックボーンモデルデータベース540はバックボーンモデルの事前学習に利用される学習データセットを保存することができる。
一実施例によると、モデル事前学習部510は学習データセットを利用して多様な種類のタスク(または作業)を遂行するために、共通して必要な機能を実行するように構成されたバックボーンモデルを学習させることができる。追加的にまたは代案として、モデル事前学習部510はすでに事前学習されてバックボーンモデルデータベース540に保存されたバックボーンモデルを受信してもよい。
一実施例によると、サービス要請処理部520は使用者端末から受信されたサービス要請を処理することができる。例えば、サービス要請処理部520は、使用者端末から受信されたサービス要請の応答として、バックボーンモデルを利用した結果データ(例えば、バックボーンモデルによって実行された結果である入力データ、中間データ、出力データ、パラメータ変動分など)を使用者端末に伝送することができる。これに伴い、使用者端末は受信されたデータに基づいて使用者モデルの少なくとも一部の構成要素(例えば、入力層、中間層または出力層)をチューニングすることができる。
一実施例によると、モデル実行部530は使用者端末から受信されたデータに基づいてバックボーンモデルを利用して推論を実行することができる。例えば、使用者端末から受信されたサービス要請により、モデル実行部530は、バックボーンモデルを利用して推論手続きを実行することができる。また、モデル実行部530は、使用者端末から受信されたサービス要請の応答として、バックボーンモデルから受信された実行結果を使用者端末に伝送することができる。
一実施例によると、サービス要請処理部520は、API呼び出しを処理するためのAPIサーバーを含むことができる。例えば、APIサーバーはREST(representational state transfer)またはSOAP(simple object access protocol)基盤のAPI呼び出しを処理できるサーバーであり得るが、これに限定されるものではない。サービス要請処理部520がAPIサーバーを含む場合、サービス要請処理部520は、使用者端末から受信されたAPI呼び出しの応答として、バックボーンモデルを利用した結果データを使用者端末に伝送することができる。また、モデル実行部530は、使用者端末から受信されたAPI呼び出しにより、バックボーンモデルを利用して推論手続きを実行したりバックボーンモデルから受信された実行結果を使用者端末に伝送することができる。
図6は、本開示の一実施例に係るディープラーニングモデルのチューニング方法により使用者端末210が入力層610をチューニングする例示を示す。図6~8はディープラーニングモデルの例としてトランスフォーマー(Transformer)をチューニングする方法を図示しているが、これに限定されない。例えば、ディープラーニングモデルはVGGNet、AlexNet、ResNet、Inceptionなどのような多様な類型のディープラーニングモデルの中の一つであり得る。一方、図6~8では説明の便宜のために、「入力データ」および「出力データ」がそれぞれ「入力」および「出力」で記載される。
一実施例によると、使用者端末210は入力を入力層610に入力して入力層出力を獲得することができる。それから、使用者端末210は入力層610に関連した情報(例えば、獲得された入力層の出力)およびディープラーニングモデルの(学習)状態情報のうち少なくとも一つを含むサービス要請を実行することができる。サービス要請の実行により入力層610に関連した情報は使用者端末210から情報処理システム230に伝送され得る。この時、使用者端末210は入力層610に関連した情報とともに、入力に対するラベルおよびディープラーニングモデルの状態情報を情報処理システム230に伝送することができる。ここで、入力に対するラベルはディープラーニングモデルに対する予想推論結果を意味し得る。すなわち、入力に対するラベルは使用者がディープラーニングモデルを通じて獲得しようとする正解を意味し得る。
一実施例によると、情報処理システム230は使用者端末210から受信された入力層610に関連した情報をバックボーンモデル620に入力(すなわち、順伝播(forward propagation))して出力確率を獲得することができる。ここで、バックボーンモデル620はディープラーニングモデルの全体の構成要素から入力層610を除いたディープラーニングモデルの残りの部分を代替できる中間層および出力層を含むことができる。また、出力確率はアップデートされる前にディープラーニングモデルから獲得される出力であり得る。
一実施例によると、情報処理システム230は出力確率を使用者端末から受信したラベルと比較して損失(または損失関数)を計算(または算出)することができる。ここで、損失はディープラーニングモデルが推論した出力確率と正解(またはラベル)の間の誤差を示す値を指称し得る。例えば、損失はクロスエントロピー(Cross Entropy)、平均二乗誤差(Mean Square Error)等を利用して計算することができる。
一実施例によると、情報処理システム230は損失を最小化する方向にディープラーニングモデルをアップデートするためのグラジエントを算出することができる。すなわち、情報処理システム230はバックボーンモデル620の逆伝播(backward propagation)過程を通じて入力層グラジエントを獲得することができる。これに伴い、情報処理システム230はサービス要請の応答として、獲得された入力層グラジエントを使用者端末210に伝送することができる。
一実施例によると、使用者端末210は受信された入力層グラジエントを入力層610に適用することができる。例えば、使用者端末210は入力層グラジエントを利用して入力層610パラメータをアップデートすることによって、入力層610をチューニングすることができる。この時、使用者端末210に保存されたディープラーニングモデルの状態情報もアップデートされ得る。
以上で説明した入力層610のチューニング過程は、入力層610を含んだディープラーニングモデルの全体チューニング過程の一部分または一つの段階(step)、またはエポック(epoch)に該当し得る。したがって、以上で説明した入力層610のチューニング過程は繰り返し実行され得、各チューニング過程の段階ごとにディープラーニングモデルの状態情報がアップデートされ得る。
図7は、本開示の一実施例に係るディープラーニングモデルのチューニング方法により使用者端末が出力層をチューニングする例示を示す。一実施例によると、使用者端末210は入力に関連した情報(例えば入力データ、ラベルなど)、出力層710に関連した情報およびディープラーニングモデルの(学習)状態情報のうち少なくとも一つを含むサービス要請を実行することができる。サービス要請の実行により、入力が使用者端末210から情報処理システム230に伝送され得る。
一実施例によると、情報処理システム230は使用者端末210から受信された入力をバックボーンモデル720に入力して順伝播計算出力を算出することができる。ここで、バックボーンモデル720はディープラーニングモデルの全体の構成要素から出力層710を除いたディープラーニングモデルの残りの部分を代替できる入力層および中間層を含むことができる。
一実施例によると、情報処理システム230はサービス要請の応答として順伝播計算出力を使用者端末210に伝送することができる。それから、使用者端末210は順伝播計算出力を出力層710に入力して出力確率を獲得することができる。ここで、出力確率はアップデートされる前にディープラーニングモデルから獲得される出力に関連したデータを指称し得る。
一実施例によると、使用者端末210は獲得された出力確率とラベルを比較して損失を計算することができる。ここで、損失はディープラーニングモデルが推論した解と正解(すなわち、ラベル)の間の誤差を示す値を指称し得る。例えば、損失はクロスエントロピーまたは平均二乗誤差などを利用して計算することができる。
一実施例によると、使用者端末210は損失を最小化する方向にディープラーニングモデルをアップデートするための出力層グラジエントを算出することができる。それから、使用者端末210は出力層グラジエントを利用して出力層710をチューニングすることができる。この時、使用者端末210に保存されたディープラーニングモデルの状態情報もアップデートされ得る。
以上で説明した出力層710のチューニング過程は、出力層710を含んだディープラーニングモデルの全体チューニング過程の一部分または一つの段階に該当し得る。したがって、以上で説明した出力層710のチューニング過程は繰り返し実行され得、各チューニング過程の段階ごとにディープラーニングモデルの状態情報がアップデートされ得る。
図8は、本開示の一実施例に係るディープラーニングモデルのチューニング方法により使用者端末210が中間層810_1~810_Nをチューニングする例示を示す。以下では図8を参照してディープラーニングモデルであるトランスフォーマーの一部の層(例えば、LoRA(Low-Rank Adaptation)加重値)822をアップデートすることによってディープラーニングモデルをチューニングする例示について説明するが、これに限定されない。例えば、図8に図示されたLoRA822、Prefix(Pk)824またはAdapter826のうち少なくとも一つをアップデートすることによってディープラーニングモデルをチューニングしてもよい。
一実施例によると、使用者端末210は使用者端末210に保存された中間層810_1~810_Nに関連した情報(例えば、中間層810_1~810_NそれぞれのLoRA)およびディープラーニングモデルの(学習)状態情報のうち少なくとも一つを含むサービス要請を実行することができる。サービス要請の実行により、中間層810_1~810_Nに関連した情報が使用者端末210から情報処理システム230に伝送され得る。この時、中間層810_1~810_Nに関連した情報とともに、入力、入力に対するラベルおよびディープラーニングモデルの状態情報が情報処理システム230に伝送され得る。ここで、入力に対するラベルはディープラーニングモデルに対する予想推論結果を意味し得る。すなわち、入力に対するラベルは使用者がディープラーニングモデルを通じて獲得しようとする正解を意味し得る。
一実施例によると、情報処理システム230は使用者端末から受信した中間層810_1~810_Nに関連した情報に基づいてバックボーンモデル820の中間層に関連した情報を決定することができる。すなわち、使用者端末210から受信した中間層810_1~810_NそれぞれのLoRAをバックボーンモデル820の中間層のLoRA822として決定することができる。それから、情報処理システム230は使用者端末から受信された入力をバックボーンモデル820に入力(すなわち、順伝播)して出力確率を獲得することができる。ここで、バックボーンモデル820は既存バックボーンモデルの中間層の一部を使用者から受信された中間層情報で代替することができる。上記の例において、バックボーンモデルはバックボーンモデルのLoRA weightの代わりに使用者から受信したLoRA Weightを利用してフォワード演算を遂行して出力確率を獲得することができる。
一実施例によると、情報処理システム230は獲得された出力確率とラベルを比較して損失を計算することができる。ここで、損失はディープラーニングモデルが推論した出力確率と正解(すなわち、ラベル)間の誤差を示す値を指称し得る。例えば、損失はクロスエントロピーまたは平均二乗誤差などを利用して計算され得る。
一実施例によると、情報処理システム230は損失を最小化する方向にディープラーニングモデルをアップデートするためのグラジエントを算出することができる。それから、情報処理システム230は算出されたグラジエントをバックボーンモデル820に逆方向に入力(すなわち、逆伝播)する過程で、中間層それぞれのグラジエントを獲得することができる。
一実施例によると、情報処理システム230はサービス要請の応答として、獲得された中間層それぞれのグラジエントを使用者端末210に伝送することができる。それから使用者端末210は受信された中間層それぞれのグラジエントを利用して、中間層810_1~810_Nをチューニングすることができる。この時、使用者端末210に保存されたディープラーニングモデルの状態情報もアップデートされ得る。
以上で説明した中間層810_1~810_Nのチューニング過程は、中間層810_1~810_Nを含んだディープラーニングモデルの全体チューニング過程の一部分または一つの段階に該当し得る。したがって、以上で説明した中間層810_1~810_Nのチューニング過程は繰り返し実行され得、各チューニング過程の段階ごとにディープラーニングモデルの状態情報がアップデートされ得る。
図9は、本開示の一実施例に係るクラウドコンピューティング基盤のディープラーニングモデルのチューニングシステムの構成を示す図面である。図示された通り、ディープラーニングモデルのチューニングシステム900は、クラウドコンピューティングシステム960上に具現された複数の使用者仮想マシン910、920および仮想サーバー950を含むことができる。一実施例によると、使用者またはクライアント902、904は、クラウドコンピューティングシステム960が提供するサービスUI(user interface)906、908を通じて、各使用者に割り当てられた使用者仮想マシン910、920を使うことができる。使用者仮想マシン910、920は、使用者モデル912、922を特定作業を実行することに適合するように構成するか特定作業に対して改善された性能を有するようにするために、使用者モデル912、922をチューニングすることができる。使用者仮想マシン910、920に設置されてチューニングされる使用者モデル912、922は、各モデルのすべての構成要素(例えば、モデルを構成する複数の層、各層に関連した加重値またはパラメータ、状態情報など)の一部914、924を含み、残りの一部916、926は使用者仮想マシン910、920と独立的に運営される仮想サーバー950に設置されたバックボーンモデル952の構成要素957、958で代替され得る。ここで、バックボーンモデル952は、使用者モデル912、922のチューニング前に、学習データに基づいて事前学習され得る。
本開示で、「クラウド」または「クラウドコンピューティングシステム」は、ネットワーク上でサービスとして拡張可能なコンピューティング資源を提供するクラウドコンピューティングシステムまたはクラウドコンピューティングインフラストラクチャーを指称し得る。具体的には、クラウドコンピューティングは、コンピューティング資源とその内部の技術的な構造(例えば、サーバー、保存所、ネットワークなど)の間の抽象化を提供するコンピューティング能力を意味し得、これを利用して、サービス提供者との相互作用や管理努力を最小化して速かに提供され得る構成可能なコンピューティング資源の共有プールに対するオンデマンドネットワークアクセスを提供することができる。これに伴い、使用者またはクライアントは、クラウドで、コンピューティング資源の提供に使われる物理的システム(またはシステムの位置)等を知る必要なく、仮想のコンピューティング資源(例えば、保存所、データ、アプリケーション、仮想マシン、仮想サーバーなど)に接近することができる。
一実施例によると、使用者仮想マシン910、920は仮想サーバー950およびバックボーンモデル952のような外部リソースまたは独立した仮想マシンを利用して使用者モデル912、922をチューニングすることができる。この時、使用者仮想マシン910が第1使用者モデル912をチューニングする過程で仮想サーバー950のバックボーンモデル952の構成は変化しないので、バックボーンモデル952は使用者仮想マシン920が第2使用者モデル922をチューニングするのに再使用され得る。また、使用者仮想マシン910、920が使用者モデル912、922をチューニングする過程でアップデートされる状態情報は、使用者仮想マシン910、920に保存および管理され得る。図9では2個の使用者仮想マシン910、920が使用者モデル912、922をチューニングする例を図示しているが、これに限定されるものではなく、3個以上の使用者仮想マシンが一つのバックボーンモデルを利用してそれぞれ独立的に異なる使用者モデルをチューニングしてもよい。
一実施例によると、使用者仮想マシン910、920は仮想サーバー950が提供するモデルチューニングのためのサービス要請を利用してバックボーンモデル952の機能を利用することができる。例えば、使用者仮想マシン910、920は仮想サーバー950が提供するAPI、RPC、RMIなどを呼び出すことによって、バックボーンモデル950に接近することができる。このように使用者仮想マシン910、920がサービス要請を通じてバックボーンモデル952の一部の機能を利用することによって、バックボーンモデル952の構成が隠された状態で使用者仮想マシン910、920は使用者モデル912、922のチューニングのために必要な機能やデータの提供を受けることができる。
一実施例によると、使用者仮想マシン910、920はバックボーンモデル950を利用して使用者モデル912、922の特定層をチューニングすることができる。例えば、使用者仮想マシン910は、仮想サーバー950からバックボーンモデル952の実行結果の提供を受け、その実行結果に基づいて算出されたグラジエントを使用者モデル(例えば、第1使用者モデル912の出力層914)に適用することができる。
他の例として、使用者仮想マシン920は、仮想サーバー950からバックボーンモデル952で算出されたグラジエントを使用者モデル(例えば、第2使用者モデル922の入力層924)に適用することができる。一方、図9は使用者モデル912、922それぞれの出力層914または入力層924をチューニングする例示が図示されたが、これに限定されない。例えば、使用者仮想マシン910、920はバックボーンモデル952を利用して使用者モデル912、922の中間層をチューニングしてもよい。
一実施例によると、使用者仮想マシン910は出力層956を除いた第1バックボーンモデル958を利用して第1使用者モデル912の出力層914をチューニングすることができる。具体的には、使用者仮想マシン910は入力を第1バックボーンモデル958の入力層954に伝送し、該当入力が第1バックボーンモデル958を順伝播して生成されたデータ(例えば、バックボーンモデル952の出力層956に対する入力データ)を受信することができる。使用者仮想マシン910は受信したデータを第1使用者モデル912の出力層914に入力して出力を算出した後、これを利用して出力層914に対するグラジエントを計算する。使用者仮想マシン910は、このように計算された出力層914に対するグラジエントを利用して出力層914をチューニングすることができる。
追加的にまたは代案として、使用者仮想マシン920は入力層954を除いた第2バックボーンモデル957を利用して第2使用者モデル922の入力層924をチューニングすることができる。具体的には、使用者仮想マシン910は入力に対して第2使用者モデル922の入力層924が算出した結果を第2バックボーンモデル957に伝送することによって、該当算出結果が第2バックボーンモデル957を通じて生成された入力層に対するグラジエントデータを受信することができる。使用者仮想マシン920は受信されたグラジエントを利用して第2使用者モデル922の入力層924をチューニングすることができる。
一実施例によると、使用者仮想マシン910、920は以上で説明した方法によってチューニングされた使用者モデル912、922およびバックボーンモデル952を利用して推論を遂行できる。すなわち、使用者仮想マシン910、920は自身が保有した使用者モデル912、922のチューニングされた層914、924の実行結果と仮想サーバー950から提供されるバックボーンモデル952の一部の実行結果を共に利用して推論を遂行できる。
図10は、本開示の一実施例に係るディープラーニングモデルのチューニング方法の例示を示すフローチャートである。方法900は使用者端末の少なくとも一つのプロセッサ(例えば、プロセッサ314)によって遂行され得る。図示された通り、方法900はディープラーニングモデルの入力データに関連した情報、チューニング対象層に関連した情報および学習状態情報のうち少なくとも一つを含むサービス要請を情報処理システムに伝送する段階(S1010)で開始され得る。ここで、学習状態情報は、ディープラーニングモデルの学習率、オプティマイザ状態、加重値減衰係数、グラジエントクリッピング係数、および損失スケール値のうち少なくとも一つを含むことができる。
また、プロセッサは、サービス要請の応答として、情報処理システムからバックボーンモデルを利用して算出されたチューニングデータを受信することができる(S1020)。それから、プロセッサはチューニングデータを利用してディープラーニングモデルをアップデートすることができる(S1030)。ここで、チューニングデータはバックボーンモデルのパラメータ、特定層に対する入力値、特定層の出力値およびパラメータの変動分のうち少なくとも一つを含むことができる。また、プロセッサはチューニングデータを利用してディープラーニングモデルをアップデートすることと関連して学習状態情報をアップデートすることができる。
一実施例によると、プロセッサはバックボーンモデルと連動されているAPIサーバーに、ディープラーニングモデルの入力データに関連した情報、チューニング対象層に関連した情報および学習状態情報のうち少なくとも一つをパラメータとして含むAPIの呼び出しを伝送することができる。その後、プロセッサはAPIの呼び出しの応答として、APIサーバーからディープラーニングモデルの入力データに関連した情報、チューニング対象層に関連した情報および学習状態情報のうち少なくとも一つに基づいたバックボーンモデルの実行結果を受信することができる。追加的に、プロセッサはAPIの呼び出しの応答として、バックボーンモデルの順伝播計算結果および逆伝播計算結果のうち少なくとも一つを受信することができる。
一実施例によると、バックボーンモデルはディープラーニングモデルの複数の層のうちチューニング対象層を除いた一つ以上の層を含むことができる。また、バックボーンモデルはディープラーニングモデルのチューニング前に、学習データに基づいて事前学習され得る。
一実施例によると、チューニング対象層はディープラーニングモデルの入力層であり、プロセッサは入力層の出力、ラベルおよびディープラーニングモデルの学習状態情報を含むサービス要請を情報処理システムに伝送することができる。他の実施例によると、チューニング対象層はディープラーニングモデルの出力層であり、プロセッサはディープラーニングモデルの入力データを含むサービス要請を情報処理システムに伝送することができる。この場合、プロセッサはバックボーンモデルの順伝播計算出力を出力層に入力して出力確率を算出し、出力確率をラベルと比較して損失を計算し、損失に基づいて出力層のグラジエントを算出することができる。さらに他の実施例によると、チューニング対象層はディープラーニングモデルの中間層であり、プロセッサはディープラーニングモデルの入力、ラベル、中間層の加重値およびディープラーニングモデルの学習状態情報を含むサービス要請を情報処理システムに伝送することができる。
図11は、本開示の他の実施例に係るディープラーニングモデルのチューニング方法の例示を示すフローチャートである。方法1100は情報処理システムの少なくとも一つのプロセッサ(例えば、プロセッサ334)により実行され得る。図示された通り、方法1100は、ディープラーニングモデルの入力データに関連した情報、チューニング対象層に関連した情報および学習状態情報のうち少なくとも一つを含むサービス要請を受信する段階(S1110)で開始され得る。
また、プロセッサは、サービス要請によりバックボーンモデルの実行結果を算出することができる(S1120)。プロセッサは、サービス要請の応答として、バックボーンモデルの実行結果を含むチューニングデータをディープラーニングモデルが含まれた使用者端末に伝送することができる(S1130)。ここで、チューニングデータはバックボーンモデルのパラメータ、特定層に対する入力値、特定層の出力値およびパラメータの変動分のうち少なくとも一つを含むことができる。また、バックボーンモデルは、ディープラーニングモデルの複数の層のうちチューニング対象層を除いた一つ以上の層を含むことができる。バックボーンモデルは、ディープラーニングモデルのチューニング前に、学習データに基づいて事前学習され得る。
一実施例によると、プロセッサはバックボーンモデルと連動されているAPIサーバーを含むことができる。この場合、APIサーバーは、ディープラーニングモデルの入力データに関連した情報、チューニング対象層に関連した情報および学習状態情報のうち少なくとも一つをパラメータとして含むAPIの呼び出しを受信することができる。また、APIの呼び出しの応答として、APIサーバーは、ディープラーニングモデルの入力データに関連した情報、チューニング対象層に関連した情報および学習状態情報のうち少なくとも一つに基づいたバックボーンモデルの実行結果を使用者端末に伝送することができる。
一実施例において、チューニング対象層はディープラーニングモデルの入力層であり得る。この場合、サービス要請は、入力層の出力、ラベルおよび前記ディープラーニングモデルの状態情報を含むことができる。また、プロセッサは、サービス要請によりバックボーンモデルの実行結果を算出するために、入力層の出力をバックボーンモデルに順伝播して出力確率を獲得し、出力確率をラベルと比較して損失を計算し、損失を最小化する方向にバックボーンモデルをアップデートするためのグラジエントを算出し、グラジエントをバックボーンモデルに逆伝播して入力層のグラジエントを獲得することができる。
一実施例において、チューニング対象層はディープラーニングモデルの出力層であり得る。この場合、サービス要請は入力データを含むことができる。また、プロセッサは、サービス要請によりバックボーンモデルの実行結果を算出するために、入力データをバックボーンモデルに順伝播して順伝播計算出力を算出することができる。
一実施例において、チューニング対象層はディープラーニングモデルの中間層であり得る。この場合、サービス要請は中間層に関連した情報、入力データ、ラベルおよびディープラーニングモデルの状態情報を含むことができる。また、プロセッサは、サービス要請によりバックボーンモデルの実行結果を算出するために、中間層に関連した情報に基づいてバックボーンモデルの中間層に関連した情報を決定し、入力データをバックボーンモデルに順伝播して出力確率を獲得し、出力確率とラベルを比較して損失を計算し、損失を最小化する方向にバックボーンモデルをアップデートするためのグラジエントを算出し、グラジエントをバックボーンモデルに逆伝播して前記中間層のグラジエントを獲得することができる。
一実施例において、プロセッサは、サービス要請の応答として、バックボーンモデルの実行結果を含むチューニングデータとして、バックボーンモデルの順伝播計算結果および逆伝播計算結果のうち少なくとも一つをディープラーニングモデルが含まれた使用者端末に伝送することができる。
図10および11で図示したフローチャートおよび前述した説明は一例示に過ぎず、一部の実施例では異なって具現され得る。例えば、一部の実施例では各段階の順序が変わったり、一部の段階が繰り返し遂行されたり、一部の段階が省略されたり、一部の段階が追加され得る。
前述した方法はコンピュータで実行するために、コンピュータ読み取り可能な記録媒体に保存されたコンピュータプログラムで提供され得る。媒体はコンピュータで実行可能なプログラムを保存し続けたり、実行またはダウンロードのために臨時保存するものであってもよい。また、媒体は単一または複数個ハードウェアが結合された形態の多様な記録手段または保存手段であり得るが、或るコンピュータシステムに直接接続される媒体に限定されず、ネットワーク上に分散存在するものであってもよい。媒体の例示としては、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体、CD-ROMおよびDVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、およびROM、RAM、フラッシュメモリなどを含んでプログラム命令語が保存されるように構成されたものがあり得る。また、他の媒体の例示として、アプリケーションを流通するアップストアやその他の多様なソフトウェアを供給乃至流通するサイト、サーバーなどで管理する記録媒体乃至保存媒体も挙げられる。
本開示の方法、動作または技法は、多様な手段によって具現されてもよい。例えば、このような技法はハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせで具現されてもよい。本願の開示と連係して説明された多様な例示的な論理的ブロック、モジュール、回路、およびアルゴリズム段階は、電子ハードウェア、コンピュータソフトウェア、または両者の組み合わせで具現されてもよいことを通常の技術者は理解するであろう。ハードウェアおよびソフトウェアの、このような相互代替を明確に説明するために、多様な例示的な構成要素、ブロック、モジュール、回路、および段階がそれらの機能的観点から一般的に前述された。そのような機能がハードウェアで具現されるかまたはソフトウェアで具現されるかは、特定アプリケーションおよび全体システムに課される設計要求事項により変わる。通常の技術者はそれぞれの特定アプリケーションのために多様な方式で説明された機能を具現してもよいが、そのような具現は本開示の範囲から逸脱するものとして解釈されてはならない。
ハードウェアの具現において、技法の遂行に利用されるプロセッシングユニットは、一つ以上のASIC、DSP、デジタル信号プロセッシングデバイス(digital signal processing devices;DSPD)、プログラム可能論理デバイス(programmable logic devices;PLD)、フィールドプログラム可能ゲートアレイ(field programmable gate arrays;FPGA)、プロセッサ、制御器、マイクロ制御器、マイクロプロセッサ、電子デバイス、本開示に説明された機能を遂行するように設計された他の電子ユニット、コンピュータ、またはこれらの組み合わせ内で具現されてもよい。
したがって、本開示と連係して説明された多様な例示的な論理ブロック、モジュール、および回路は汎用プロセッサ、DSP、ASIC、FPGAや他のプログラム可能論理デバイス、離散ゲートやトランジスタロジック、離散ハードウェアコンポーネント、または本願に説明された機能を遂行するように設計されたものなどの任意の組み合わせで具現されたり遂行されてもよい。汎用プロセッサはマイクロプロセッサであり得るが、代案として、プロセッサは任意の従来のプロセッサ、制御器、マイクロ制御器、または状態マシンであってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連係した一つ以上のマイクロプロセッサ、または任意の他の構成の組み合わせで具現されてもよい。
ファームウェアおよび/またはソフトウェアの具現において、技法はランダムアクセスメモリ(random access memory;RAM)、読み取り専用メモリ(read-only memory;ROM)、不揮発性RAM(non-volatile random access memory;NVRAM)、PROM(programmable read-only memory)、EPROM(erasable programmable read-only memory)、EEPROM(electrically erasable PROM)、フラッシュメモリ、コンパクトディスク(compact disc;CD)、磁気または光学データストレージデバイスなどのようなコンピュータ読み取り可能媒体上に保存された命令で具現されてもよい。命令は一つ以上のプロセッサによって実行可能であってもよく、1つ以上のプロセッサが本開示に説明された機能の特定様態を遂行するようにしてもよい。
ソフトウェアで具現される場合、前記技法は一つ以上の命令またはコードでコンピュータ読み取り可能な媒体上に保存されたりまたはコンピュータ読み取り可能な媒体を通じて伝送されてもよい。コンピュータ読み取り可能媒体は、一つの場所から他の場所にコンピュータプログラムの伝送を容易にする任意の媒体を含んでコンピュータ保存媒体および通信媒体の両者を含む。保存媒体はコンピュータによってアクセスされ得る任意の利用可能な媒体であってもよい。非制限的な例として、このようなコンピュータ読み取り可能媒体はRAM、ROM、EEPROM、CD-ROMまたは他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または希望のプログラムコードを命令またはデータ構造の形態で移送または保存するために使われ得、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。また、任意の接続がコンピュータ読み取り可能媒体で適切に称される。
例えば、ソフトウェアが同軸ケーブル、光ファイバーケーブル、撚線、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波のような無線技術を使ってウェブサイト、サーバー、または他の遠隔ソースから伝送されると、同軸ケーブル、光ファイバーケーブル、撚線、デジタル加入者回線、または赤外線、無線、およびマイクロ波のような無線技術は媒体の定義内に含まれる。本願で使われたディスク(disk)とディスク(disc)は、CD、レーザーディスク、光ディスク、DVD(digital versatile disc)、フロッピーディスク、およびブルーレイディスクを含み、ここでディスク(disks)は通常磁気的にデータを再生し、反面ディスク(discs)はレーザーを利用して光学的にデータを再生する。前記の組み合わせもコンピュータ読み取り可能媒体の範囲内に含まれるべきである。
ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、移動式ディスク、CD-ROM、または公知の任意の他の形態の保存媒体内に常駐してもよい。例示的な保存媒体は、プロセッサが保存媒体から情報を読み出しまたは保存媒体に情報を書き込みできるように、プロセッサに連結され得る。代案として、保存媒体はプロセッサに統合されてもよい。プロセッサと保存媒体はASIC内に存在してもよい。ASICはユーザー端末内に存在してもよい。代案として、プロセッサと保存媒体はユーザー端末で個別の構成要素として存在してもよい。
以上で説明された実施例が一つ以上の独立型コンピュータシステムで現在開示された主題の様態を活用するものとして記述されたが、本開示はこれに限定されず、ネットワークや分散コンピューティング環境のような任意のコンピューティング環境と連係して具現されてもよい。ひいては、本開示で主題の様相は複数のプロセッシングチップや装置で具現されてもよく、ストレージは複数の装置に亘って同様に影響を受けることになることもある。このような装置はPC、ネットワークサーバー、および携帯用装置を含んでもよい。
本明細書では本開示が一部の実施例と関連して説明されたが、本開示の発明が属する技術分野の通常の技術者が理解できる本開示の範囲を逸脱しない範囲で多様な変形および変更がなされ得る。また、そのような変形および変更は本明細書に添付された特許請求の範囲内に属するものと考えられるべきである。