(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2021-535522(P2021-535522A)
(43)【公表日】2021年12月16日
(54)【発明の名称】人工知能の実行加速のための人工知能実行モデル設定方法と人工知能実行加速システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20211119BHJP
【FI】
G06N20/00
【審査請求】有
【予備審査請求】未請求
【全頁数】26
(21)【出願番号】特願2021-525304(P2021-525304)
(86)(22)【出願日】2018年11月13日
(11)【特許番号】特許第6972436号(P6972436)
(45)【特許公報発行日】2021年11月24日
(85)【翻訳文提出日】2021年5月10日
(86)【国際出願番号】KR2018013795
(87)【国際公開番号】WO2020096102
(87)【国際公開日】20200514
(31)【優先権主張番号】10-2018-0136437
(32)【優先日】2018年11月8日
(33)【優先権主張国】KR
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】521199317
【氏名又は名称】ソイネット カンパニー リミテッド
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】パク ジョンウ
(72)【発明者】
【氏名】オム ドンウォン
(72)【発明者】
【氏名】キム ヨンホ
(57)【要約】
人工知能実行加速システム及び人工知能実行モデル設定方法を提供する。本発明の実施形態に係る人工知能実行加速システムは、人工知能の学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを分析して、人工知能の実行加速のための人工知能学習モデルのデータ加重値を算出する実行加重値抽出モジュールと、学習モデルを算出する人工知能学習サーバから学習モデルをロードし、ロードした学習モデルを人工知能実行加速システムで利用可能なカスタムレイヤに変換後、カスタムレイヤを最適化して実行モデルを算出する人工知能加速実行ファイル設定モジュールと、実行モデルを受け取り、実行モデルに対応する実行環境を構成して、人工知能実行速度を加速する人工知能実行加速モジュールと、を含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
人工知能実行加速システムにおいて、
人工知能の学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを分析して、人工知能の実行加速のための人工知能学習モデルのデータ加重値を算出する実行加重値抽出モジュールと、
前記学習モデルを算出する人工知能学習サーバから前記学習モデルをロードし、前記ロードした学習モデルを人工知能実行加速システムで利用可能なカスタムレイヤに変換後、前記カスタムレイヤを最適化して実行モデルを算出する人工知能加速実行ファイル設定モジュールと、
前記実行モデルを受け取り、前記実行モデルに対応する実行環境を構成して人工知能実行速度を加速する人工知能実行加速モジュールと、を含む人工知能実行加速システム。
【請求項2】
前記人工知能加速実行ファイル設定モジュールは、
前記人工知能学習モデルに畳み込み(convolution)及びReLU(Rectified Linear Unit) を含む演算関数を用いて前記学習モデルのメタデータを可視化してカスタムレイヤを生成し、前記生成されたカスタムレイヤの最適化の要否を判断することを特徴とする請求項1に記載の人工知能実行加速システム。
【請求項3】
前記人工知能加速実行ファイル設定モジュールは、
前記カスタムレイヤの接点、重複最適化、GPU(Graphic Processing Unit)具現の可能性を含む最適化の条件を算出し、算出結果に基づいてカスタムレイヤの最適化を判断することを特徴とする請求項2に記載の人工知能実行加速システム。
【請求項4】
前記実行加重値抽出モジュールは、
前記人工知能学習サーバに既保存された加重値ファイル形式を抽出し、抽出された加重値ファイル形式を前記実行モデルに最適化された形式に変換することを特徴とする請求項1に記載の人工知能実行加速システム。
【請求項5】
前記実行加速モジュールは、
実行モデルの実行段階別所要メモリ割当量の最適値を算出し、並列処理を含む実行段階別完了の可否を把握し、完了した段階で再度使用しないデータを削除したメモリ領域を再利用して、前記人工知能実行加速モジュールのメモリを最適化することを特徴とする請求項1に記載の人工知能実行加速システム。
【請求項6】
前記実行加速モジュールは、
CPUとGPU間のデータ処理を変換して、非同期(Async)でGPU内部で人工知能実行モデルが処理されるようにして、オーバーヘッドの発生を最小限に抑えることを特徴とする請求項1に記載の人工知能実行加速システム。
【請求項7】
人工知能の実行加速のための人工知能実行モデルの設定方法において、
(A)人工知能学習サーバで学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを前記人工知能学習サーバからロードするステップと、
(B)人工知能加速実行ファイル設定モジュールにおいて、前記学習モデルに畳み込み及びReLUを含む演算関数を用いて前記学習モデルのメタデータを可視化するステップと、
(C)人工知能加速実行ファイル設定モジュールにおいて、前記可視化された学習モデルファイルをNMS(Non Maximum Suppression)及びプーリング(Pooling)を含むカスタムレイヤ設定関数を用いて人工知能実行加速器で使用可能なカスタムレイヤに設定するステップと、
(D)人工知能加速実行ファイル設定モジュールにおいて、前記カスタムレイヤの接点、重複最適化、GPU具現の可能性を含む最適化の条件を算出して、算出結果に基づいて、前記カスタムレイヤの最適化の要否を判断するステップと、
(E)人工知能加速実行ファイル設定モジュールにおいて、前記カスタムレイヤが最適化されたものと判断された場合、ロードした加重値ファイルを前記カスタムレイヤに付加して、人工知能実行加速器で使用可能な実行モデルに変換するステップと、を含む人工知能実行モデル設定方法。
【請求項8】
前記人工知能実行モデル設定方法は、
(F)人工知能実行加速モジュールにおいて、前記実行モデルを受け取り、前記実行モデルに対応する実行環境を構成して、人工知能実行速度を加速するステップをさらに含むことを特徴とする請求項7に記載の人工知能実行モデル設定方法。
【請求項9】
(E)前記カスタムレイヤに付加して人工知能実行加速器で使用可能なモデル設定ファイルに変換するステップは、
実行加重値抽出モジュールにおいて、前記人工知能学習サーバに既保存された加重値ファイル形式を抽出するステップと、
抽出された加重値ファイル形式を前記学習モデルに最適化された加重値ファイル形式に変換するステップと、
前記最適化された加重値ファイルを実行モデルに適用するステップと、を含むことを特徴とする請求項7に記載の人工知能実行モデル設定方法。
【請求項10】
前記(F)人工知能実行加速モジュールにおいて、前記実行モデルを受け取り、前記実行モデルに対応する実行環境を構成して、人工知能実行速度を加速するステップは、
実行モデルの人工知能実行段階別所要メモリ割当量の最適値を算出するステップと、
前記人工知能実行段階別所要メモリ領域を再利用して、前記人工知能実行加速モジュールのメモリを最適化するステップと、を含むことを特徴とする請求項8に記載の人工知能実行モデル設定方法。
【請求項11】
前記(F)人工知能実行加速モジュールにおいて、前記実行モデルを受け取り、前記実行モデルに対応する実行環境を構成して、人工知能実行速度を加速するステップは、
CPUとGPU間のデータ処理を変換して、非同期的にGPU内部で人工知能実行モデルが処理されるようにして、オーバーヘッドの発生を最小限に抑えることを特徴とする請求項8に記載の人工知能実行モデル設定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人工知能実行加速システム及び人工知能実行モデルの設定方法に係り、具体的には、学習機能を除去し、人工知能実行機能のみを行うようにサーバを構成して人工知能の実行速度を上げ、且つ、メモリ使用量を軽減させた人工知能実行モデルの設定方法、人工知能実行加速システム及び実行加速サーバに関する。
【背景技術】
【0002】
本明細書において特記しない限り、本識別項目で説明する内容は、本願の請求範囲に対する従来技術ではなく、また、本識別項目に記載されているという理由で従来技術であると認められるものではない。
【0003】
人工知能(artificial intelligence)は、人間の知能でできる思考、学習、自己開発などをコンピュータが行えるようにする方法を研究するコンピュータ工学及び情報技術の一分野として、コンピュータが人間の知能的な行動を模倣することができるようにする技術である。また、人工知能は、それ自体で存在するのではなく、コンピュータ科学の他の分野と直接または間接的に多くの関連を結んでいる。特に現代では情報技術の多くの分野において、人工知能的要素を導入し、その分野の問題解決に活用しようとする試みが非常に活発に行われており、人工知能を実生活の様々な場面で活用して、デジタル機器の機能を拡張している傾向にある。
【0004】
人工知能は、学習機能を行うサーバと実行機能を行うモジュールとに大別することができる。学習機能を行うサーバでは、膨大なデータを収集し、そのデータから特徴を見つけてデータパターンなどを電子機器に学習させるためのデータ処理を行い、実行機能を行うモジュールでは、学習を通して最適化された値を用いて入力されるデータを処理して、これを土台にした推論機能を提供することになる。
【0005】
人工知能の学習過程は、データ処理量が膨大なため、高性能サーバと数十ギガに至るメモリなどが必要である。学習過程では、データ認識、解析、パターン化などの高度な演算処理が継続的に行われるため、学習結果をもって人工知能の実行過程を行う場合、データ処理速度が非常に遅くなる。
【0006】
インターネットが断絶した状況でも、学習済みの人工知能はその役割を果たさなければならないが、従来クラウドベースの人工知能サービスは、インターネット接続ができない環境では人工知能機能を行うことができない。これを解決するために、人工知能機能が行われるエッジ端末に人工知能の学習機能を一緒にインストールすると、人工知能モデルのデータ処理速度があまりにも遅くなり、実際の端末使用に大きな不便さが伴うことになる。
【0007】
また、プログラム開発者が、人工知能を用いるプログラムを開発するには、難解な人工知能APIを熟知していない限り、関連プログラムの開発に限界がある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目的は、人工知能の実行加速化のために、人工知能学習機能と実行機能とを分離することにより、人工知能システムのエッジのスマート機器で学習機能を除いた人工知能実行機能のみを行わせる人工知能実行加速システム及び人工知能実行モデルの設定方法を提供することにある。
【0009】
特に、実施形態に係る人工知能実行加速サーバが使用する加重値は、外部の学習サーバからウェイトファイルを抽出して実行モデルに最適化された加重値を生成し、これを実行モデルに適用して人工知能実行モジュールでのデータ処理速度を加速させる。
【課題を解決するための手段】
【0010】
実施形態に係る人工知能実行加速システムは、人工知能の学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを分析して、人工知能の実行加速のための人工知能学習モデルのデータ加重値を算出する実行加重値抽出モジュールと、学習モデルを算出する人工知能学習サーバから前記学習モデルをロードし、ロードした学習モデルを人工知能実行加速システムで利用可能なカスタムレイヤ(custom layer)に変換後、前記カスタムレイヤを最適化して実行モデルを算出する人工知能加速実行ファイル設定モジュールと、実行モデルを受け取り、前記の実行モデルに対応する実行環境を構成して、人工知能の実行速度が加速する人工知能実行加速モジュールと、を含む。
【発明の効果】
【0011】
以上のように、人工知能実行加速サーバは、人工知能の学習機能と実行機能とを分離することにより、所要するメモリとハードウェア資源(CPU及びGPU)の所要量を削減し、これによって、人工知能モデル実行のためのサーバコストを削減し、処理性能を向上させることができ、低仕様のエッジ装置でも人工知能モデルを実行することでインターネットが不可能な状況でも人工知能を用いたサービスが提供できる。
【0012】
実施形態を通じて、高価なサーバで実行しなければならない人工知能モデルをPC級の機器で実行することができ、人工知能モデルを小型のIoT機器でも高速且つ小さいメモリで実行できるようにする。
【0013】
また、設定方法として、人工知能モデルを搭載し、予め学習したウェイトファイルをエッジ端末のエンジンにロードして実行する方法で使用するため、人工知能を知らない一般の開発者も人工知能を用いたプログラムを作成できるようにする。
【0014】
本発明の効果は、上述した効果に限定されるものではなく、本発明の詳細な説明または特許請求の範囲に記載された発明の構成から推論可能なすべての効果を含むものと理解されなければならない。
【図面の簡単な説明】
【0015】
【
図1】従来の人工知能サービス構造と本発明の実施形態に係る人工知能実行加速システム構造を比較した図である。
【
図2】従来の人工知能システムと本発明の実施形態に係る人工知能実行加速システムの機能の比較のための図である。
【
図3】本発明の実施形態に係る人工知能実行加速サーバのデータ処理ブロックを示した図である。
【
図4】本発明の実施形態に係る人工知能実行加速システムに含まれる各構成の機能を説明するための図である。
【
図5】加速実行ファイル設定モジュール130と最適化モジュール150のデータ処理過程を示した図である。
【
図6】外部の学習サーバで起こる人工知能の学習過程で必要なデータ処理過程と人工知能実行サーバ上で行われる加速実行ファイル設定モジュール130と最適化モジュール150のデータ処理過程を示した図である。
【
図7】本発明の実施形態に係るカスタムレイヤの最適化過程を示す図である。
【
図8】本発明の実施形態に係るカスタムレイヤの最適化過程のうち、演算方式の変更による最適化過程を説明するための図である。
【
図9】本発明の実施形態に係る加重値ファイルの抽出過程を示した図である。
【
図10】本発明の実施形態に係る実行モデルの高速実行過程を示した図である。
【
図11】本発明の実施形態に係る人工知能実行モデル設定モジュールの関数ブロックを示した図である。
【
図12】本発明の実施形態に係るカスタム演算子のプラグインの使用機能を説明するための図である。
【
図13】本発明の実施形態に係るメモリ最適化過程を説明するための人工知能の学習進行過程を示した図である。
【発明を実施するための形態】
【0016】
本発明の実施形態に係る人工知能の実行加速のための人工知能実行モデルの設定方法は、(A)人工知能学習サーバで学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを人工知能学習サーバからロードするステップと、(B)人工知能加速実行ファイル設定モジュールにおいて、前記学習モデルを畳み込み(convolution)及びReLU(、Rectified Linear Unit)を含む演算関数を用いて学習モデルのメタデータを可視化するステップと、(C)人工知能加速実行ファイル設定モジュールで前記の可視化された学習モデルファイルをNMS(Non Maximum Suppression)とプーリング(Pooling)を含むカスタムレイヤ設定関数を用いて人工知能実行加速器で使用可能なカスタムレイヤに設定するステップと、(D)人工知能加速実行ファイル設定モジュールでカスタムレイヤの接点、重複最適化、GPU具現の可能性を含む最適化の条件を算出して算出結果に応じて前記カスタムレイヤの最適化の要否を判断するステップ、(E)人工知能加速実行ファイル設定モジュールでカスタムレイヤが最適化されたものと判断されると、ロードした加重値ファイルをカスタムレイヤに付加して人工知能実行加速器で使用可能な実行モデルに変換するステップと、を含む。
【0017】
本発明の利点及び特徴、並びにそれらを達成する方法は、添付図面と共に詳細に後述されている実施形態を参照すると明確になるだろう。しかし、本発明は以下で開示する実施形態に限定されるものではなく、互いに異なる様々な形態で具現されることができ、単に、本実施形態は、本発明の開示を完全たるものにし、本発明が属する技術分野における通常の知識を有する者に発明の範疇を完全に知らせるために提供するものであり、本発明は請求項の範疇によって定義されるだけである。明細書全体にわたって同一の図面符号は同一の構成要素を指す。
【0018】
本発明の実施形態を説明するにあたり、公知の機能または構成についての具体的な説明が本発明の要旨を不要に曖昧にするおそれがあると判断された場合は、その詳細な説明を省略する。また、後述する用語は、本発明の実施形態での機能を考慮して定義された用語であって、これは使用者、運用者の意図または慣例等によって異なる。よって、その定義は、本明細書全般にわたった内容に基づいて下されるべきである。
【0019】
図1は、理解を容易にするために参考にするもので、従来の人工知能サービス構造と本発明の実施形態に係る人工知能実行加速システム構造とを比較した図であり、
図2は、従来の人工知能システムと本発明の実施形態に係る人工知能実行加速システムとの機能の比較のための図である。
【0020】
図1及び
図2に示すように、従来の人工知能サービスシステムは、学習機能と実行機能とが結合した形態のシステムで構成されている。これに対し、本発明の実施形態に係る人工知能実行加速システムは、学習段階のシステム構成を除去した人工知能実行加速サーバのみで構成され、人工知能実行加速サーバは人工知能実行機能のみを行うように構成されている。実施形態に係る人工知能実行加速システムでは、人工知能の学習機能を除去して、人工知能システムのエッジ端末で人工知能機能の実行速度を向上させることができようにする。また、学習機能を除去した人工知能システムを提供することで、人工知能の実行機能を高速化し、人工知能の実行に必要なメモリを大幅に削減することができるようにする。併せて、実施形態で提供するマルチプラットフォームで小型のモノのインターネット機器から大型サーバまで人工知能機能をサポートするようにする。併せて、人工知能プログラムのコーディングの知識がなくても、API(Application Programming Interface)方式で人工知能機能を具現できるようにする。
【0021】
図3は、本発明の実施形態に係る人工知能実行加速サーバのデータ処理ブロックを示した図であり、
図4は、本発明の実施形態に係る人工知能実行加速システムに含まれる各構成の機能を説明するための図である。
【0022】
図3及び
図4に示すように、実施形態に係る人工知能実行加速サーバ100は、実行加重値抽出モジュール110、加速実行ファイル設定モジュール130、最適化モジュール150及び実行加速モジュール170を含んで構成される。本明細書で使用する「モジュール」という用語は、用語が使用された文脈に応じて、ソフトウェア、ハードウェア、またはその組み合わせを含むものと解釈されなければならない。例えば、ソフトウェアは、機械語、ファームウェア(firmware)、埋め込みコード(embedded code)、及びアプリケーションソフトウェアであることができる。また、ハードウェアは、回路、プロセッサ、コンピュータ、集積回路、集積回路コア、センサ、MEMS(Micro−Electro−Mechanical System)、手動デバイス、またはその組み合わせであることができる。
【0023】
まず、人工知能学習サーバは、クラウドサーバとしてマシンラーニング、ディープラーニングなどの人工知能の実行に必要な学習データを収集する。次に、学習データから特徴を抽出するために、学習データの次元別に加重値を算出し、算出したウェイト値を積算してデータパターンを学習する。外部の人工知能学習サーバは、学習結果として加重値パラメータ及び人工知能モデルを生成する。
【0024】
実行加重値抽出モジュール110は、人工知能の学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを分析して、人工知能の実行加速のための人工知能学習モデルのデータ加重値を算出する。実施形態で加重値(weight value)は、電子機器に入力される実際の条件に応じた制御結果値の条件別加重値になる。
【0025】
加速実行ファイル設定モジュール130は、人工知能の学習結果として生成された加重値ファイル及び人工知能モデルを含む学習モデルを算出する人工知能学習サーバから学習モデルをロードし、ロードした学習モデルを可視化して、人工知能実行加速システムで使用可能なカスタムレイヤを生成し、カスタムレイヤの最適化の要否を判断した後、実行モデルを算出する。
【0026】
最適化モジュール150は、カスタムレイヤの最適化の要否を確認し、付加的な最適化過程が不要なら、自動的に最適化過程を行う。実施形態では最適化過程は、コンカット(concat)、畳み込み、アクティベーション(activation)、RPN(Region Proposal Network)、NMS、プーリングなどを含む最適化演算関数によって行われることができる。カスタムレイヤの最適化が完了すると、実行モデルが生成され、その後、最適化モジュール150は、実行加重値抽出モジュール110から伝達された実行モデルの加重値を実行モデルに適用する。
【0027】
実行加速モジュール170は、実行モデルを受け取り、実行モデルに対応する実行環境を構成して人工知能の実行速度が加速できるようにする。実施形態に係る実行加速モジュール170は、従来の人工知能ソフトウェアの学習機能と実行機能が結合されたものとは異なり、学習機能を除去し、人工知能実行機能のみを行うように構成される。これにより、人工知能命令処理速度を高め、メモリ使用量を減らすことができる。特に、人工知能実行モジュールをアンドロイド(登録商標)、ラズベリーパイなどの小型IoT機器に設置すると、従来のテンソルフロー(tensorflow)、カフェ(Caffe)などの機械学習用エンジンよりも速いデータ処理が行えるようにする。
【0028】
また、実行加速モジュール170は、実行モデルの実行段階別所要メモリ割当量の最適値を算出し、並列処理を含む実行段階別完了の可否を把握し、完了した段階で再度使用しないデータを削除したメモリ領域を再利用して、メモリの最適化を具現することができる。具体的に実行加速モジュール170は、多くの演算処理過程一つ一つの完了の可否を把握し、データ処理が完了した段階で不要なデータを全て削除する。この時、各段階で結果値として算出されたデータのみを残し、結果値の算出に用いたデータは再度使用しない不要なデータと見なして削除される。実行加速モジュール170は、処理が完了した段階で不要なデータを削除した後、生成されたスペアメモリ領域を再利用することで、人工知能実行加速モジュールのメモリを最適化することができる。
【0029】
以下、実施形態に係る人工知能実行加速システムを構成する各モジュールのデータ処理過程をより詳細に説明する。
【0030】
図5は、加速実行ファイル設定モジュール130と最適化モジュール150のデータ処理過程を示した図である。
【0031】
ステップS10で、加速実行ファイル設定モジュール130は、外部の人工知能学習サーバから学習モデルをロードする。学習モデルは、外部の学習サーバから人工知能の学習結果として生成された加重値ファイル及び人工知能モデルを含むデータである。
【0032】
ステップS20では、加速実行ファイル設定モジュール130で学習モデルの構成を可視化する。例えば、学習モデルの構成の可視化過程は、人工知能学習モデルに畳み込み及びReLUを含む演算関数を用いて学習モデルのメタデータを可視化し、可視化した学習モデルをカスタムレイヤに変換後、変換したカスタムレイヤの最適化の要否を判断する過程を通して行うことができる。また、ステップS20では、可視化した学習モデルファイルをRPN、NMS、プーリングなどを含むモデル設定関数を用いて、人工知能実行加速器で使用可能なカスタマイズレイヤ(cutomizing layer)に設定することができる。
【0033】
ステップS40では、加速実行ファイル設定モジュール130でカスタムレイヤを自動的に最適化して実行モデルを算出する。実施形態でレイヤの最適化過程は、
図4に示した実行モデル設定モジュールのモデルパートに構成された関数の組み合わせによって具現できる。
【0034】
ステップS50では、実行加重値抽出モジュール110から最適化された加重値ファイルをロードし、実行モデルに適用した後、最適化された実行モデル及び加重値ファイルを圧縮保存する。
【0035】
ステップS60では、人工知能機能が再び実行されるとき、既保存された実行モデルをロードする。ステップS70では、高速実行モジュール170から最適化された実行モデルをロードし、データ処理可能にして人工知能機能を加速化できるようにする。
【0036】
図6は、外部の学習サーバで起こる人工知能の学習過程で必要なデータ処理過程と人工知能実行サーバで行われる加速実行ファイル設定モジュール130と最適化モジュール150のデータ処理過程を示した図である。
【0037】
図6に示したディープラーニング学習段階でのデータ処理過程は、人工知能学習段階で具現されるデータ処理過程の例として、人工知能実行加速システム内で行われるのではなく、システム外部の学習サーバで発生するデータ処理過程である。
【0038】
システム外部の学習サーバでは、ディープラーニング学習機能が開始すると、人工知能モデルを設計して人工知能学習モデルファイルを生成する。
【0039】
その後、入出力データを分析し、初期の加重値を設定する過程を繰り返して入出力データを学習させ、入出力の詳細データの加重値の最適値を算出する。
【0040】
ステップS600では、最適化された加重値ファイルを抽出して加重値ファイルを生成する。
【0041】
人工知能加速システムでは、外部の学習サーバで生成された学習モデルファイルと加重値ファイルを用いて、人工知能実行モデルを生成する。以下、
図6を参照して、人工知能実行モデルの生成過程を説明する。
【0042】
人工知能実行加速サーバが開始すると、ステップS610では、実行加重値抽出モジュール110で外部の学習サーバから学習モデル及び加重値ファイルを含む学習ファイルをロードする。
【0043】
ステップS620では、学習モデルのメタデータ分析などを通じて学習モデルを可視化し、ロードした加重値ファイルを用いてカスタムレイヤを設定する。
【0044】
次に、ステップS630では、カスタムレイヤの最適化の要否を把握する。例えば、ステップS630で、カスタマイズレイヤの接点、重複の最適化、GPU具現の可能性を含む最適化の条件を算出して、算出結果に基づいてカスタムレイヤの最適化を判断することができる。
【0045】
もし、カスタムレイヤの最適化過程が必要な場合は、カスタマイズレイヤの学習モデルを最適化した後、実行モデルを生成して保存する。実施形態に係る最適化過程は、学習モデルの形態及び利用関数によって異なる場合がある。ステップS640では、最適化過程の後、最適化された実行モデルに対応する実行環境を構成する。
【0046】
ステップS630でカスタムレイヤの最適化が不要と判断されると、ステップS640で進入し、ステップS650では、カスタムレイヤが最適化の完了した実行モデルを利用して人工知能機能を高速実行できるようにする。
【0047】
図7〜
図10は、実施形態に係るカスタムレイヤの最適化過程を示した図である。
【0048】
図7は、カスタムレイヤのモジュール演算の位置及び順序を調整して最適化する例を説明するための図である。
【0049】
図7に示すように、実施形態では、カスタムレイヤの最適化過程で演算関数及びモジュール位置及び順序を調整して、レイヤの最適化を行って実行モデルを生成することができる。
【0050】
ReLU演算は、多次元行列の入力xの要素の値のそれぞれに対して公式ReLU=max(0,x)を通じて計算される。この計算は、他の入力値との混合がされず独自に計算されるUnary演算であるため、並列処理が可能である。(並列処理は、計算過程で計算ユニット間の結果値に対する相互参照の依存性がなければ可能である。)一番左側の最初の図で、最終的に一つに合わさって行われる構造になっているReLUがあるとき、
図7の(b)のように行うと、3回に分けられたReLUの呼び出しを1回に減らすことができる。(a)のように、3回に分けられているときには、演算モジュールがこれらの要素の相互間の並列処理の可能性を確認することができないため、安全に計算するために、3回の関数の呼び出しを連続的に3回行うが、ReLU演算を一つに合わせて並列性が存在することを明示的に示すと、3回の呼び出しが同時に行われて速度が向上する。
【0051】
図7の(b)において、ReLU演算は3箇所に分離して配置されたメモリを対象に行われる。コンカットは3箇所に散在しているメモリの演算対象値を一箇所に集めてくれる役割を果たす。これにより、連続したメモリに存在する数はCacheの接近方式と同期化されて速度を向上させる。
【0052】
図8は、本発明の実施形態に係るカスタムレイヤの最適化過程のうち、演算方式の変更による最適化過程を説明するための図である。
【0053】
図8に示した例は、既存の様々な段階の演算方式を一段階に変更するための、カスタム演算子のプラグインを用いる例として、
図8の(a)は、大きさ8×8行列で偶数項のみを選択する偶数選択(Even Selection)演算を示したものである。
【0054】
人工知能で偶数項選択演算を具現する方式は、平均プーリング(Average Pooling)関数のパラメータとしてKernel Size=1×1にして、Stride Size=2×2にして行う。簡単にAvgPool 1×1/2と示す。
【0055】
図8の(b)は、奇数項を取り出す奇数選択(Odd Selection)演算を示したものである。これを、伝統的な人工知能演算方式を用いて具現する方法は、
図8(b)で(1,1)〜(7,7)部分をクロップ(Crop)して切り取り、
図8の(c)で外郭に濃く表示した部分をパディング(Padding)した後、AvgPool 1×1/2演算を行うものである。順序を要約すると、Odd Selection=Crop+Padding+AvgPool 1×1/2の3段階で具現される。3段階の演算処理を
図8(b)で見えるように、直接Odd Selectionの1段階処理で具現して速度を向上させることができる。
【0056】
図9は、実施形態に係る加重値ファイルの抽出過程を示した図である。
【0057】
図9を参照すると、実行加重値抽出モジュール110は、ステップS601で、まず外部の学習サーバの学習モデル加重値を抽出する。
【0058】
ステップS603では、抽出された学習モデルの加重値を人工知能実行加速モジュールに最適化された加重値に変換し、ステップS605では、人工知能実行加速モジュールに最適化された加重値ファイルを保存する。
【0059】
図10は、実施形態に係る実行モデルの高速実行過程を示した図である。
【0060】
実施形態では、人工知能実行モデルの高速実行のために、ステップS651では、実行加速モジュール170で実行モデルに適切な実行環境を構成する。その後、ステップS653では、実行加速モジュール170のメモリ最適化過程を行い、ステップS655では、CPUとGPU間の処理の最適化を行う。
【0061】
ステップS657では、実行加速モジュールで人工知能実行モデルの高速実行を具現する。
【0062】
図11は、本発明の実施形態に係る人工知能実行モデル設定モジュールの関数ブロックを示した図である。
【0063】
図11に示すように、人工知能モデルは、ある程度標準化された畳み込み、ReLU、バッチ正規化(Batch Normalization)、コンカット、プーリングなどの演算子をレゴブロック方式で組み立てて構成することになる。しかし、実際に具現される人工知能モデルは、レゴブロック方式の演算子だけでは不足で、これまでに提供されていない演算を必然的に使用することになる。このように追加される人工知能カスタム演算子は、速度が速く最適化された演算子ではない場合が多い。人工知能演算は、並列処理速度が速いGPUを利用しなければならないが、基本演算の他に追加された人工知能演算子は、CPUを利用した方法で具現されている場合がほとんどである。産業現場適用のためには、標準とは異なる演算子を使用する必要があるが、非標準の演算子は産業現場で直接具現して使用しなければならない。これらをカスタム演算子プラグインとし、カスタム演算子プラグインを作動させる方式は以下の3つがある。
【0064】
図12は、本発明の実施形態に係るカスタム演算子のプラグインの使用機能を説明するための図である。
【0065】
図12を参照すると、(a)に示した方式はカスタムプラグインをCPUで作動させる方式であり、CPUとGPU間の通信時間が必要で、GPUよりも遅いCPUで具現されていることで速度に多くの損害が生じる。
【0066】
図12の(b)に示した方式は、演算機能自体はGPUに具現されているが、CPUが制御を統括しているため、CPUとGPU間の通信時間が多く必要な場合である。やはり、速度において損害が生じる。
【0067】
図12の(c)に示した方式が実施形態に係る人工知能加速モジュールで具現する速度の最適化された方式である。CPUは作業の開始と終了のみを制御し、残りの演算はGPUで非同期化(Async)方式で一括処理される。カスタム演算子を使用するためにCPUと制御信号通信時間が不要で、カスタム演算子もGPUで具現されている。つまり、実施形態に係る人工知能実行加速モジュールは、既存のGPUで具現されない演算子を、GPU方式を用いて速度の向上を成し、このように具現された演算子を使用するときに、既存のGPUの演算子の間に挿入されてCPUの統制を受けずにGPU内部でCPUと非同期化方式で行うようにして速度の向上を成す。
【0068】
図13は、本発明の実施形態に係るメモリ最適化過程を説明するための人工知能の学習進行過程を示した図である。
【0069】
図13を参照すると、実施形態で行われるメモリ最適化過程を通して人工知能実行加速モジュールのメモリを節約する。
図13に示した人工知能の学習において核心的な工程と言えるバックプロパゲーション(Backpropagation)を行うために、各レイヤの演算結果を保存する必要がある。バックプロパゲーション作業が完了すると、該当メモリは再利用可能な状態になる。しかし、実行段階で必要なメモリは後述するように、はるかに少ないメモリを使用することができ、その所要量は流動的である。
図13の(a)は、学習に必要なメモリ容量を示したものである。総計Memory1+Memory2+Memory3の容量が必要である。
【0070】
(b)は実行段階に必要なメモリを示したものである。レイヤが実行されると、以前に使用されたメモリはこれ以上用途がなくなるため、次のレイヤで再利用することができる。これらの特徴を全体の人工知能モデルに適用して、最大に必要なメモリを予め計算してメモリプール(Memory Pool)形式で運営すると、メモリ所要量を大幅に減らすことができる。
【0071】
(c)はメモリプールに必要な所要量を計算することを示している。人工知能実行段階で使用するメモリはGPUメモリであり、GPUの実行はCPUとは独立して非同期で作動するようになるため、一旦、GPUに制御が移ると、メモリがいつ使用され、いつ使用用途がなくなるかをCPUで判断することができない。そのため、GPUで使用するメモリの所要スケジュールをGPUに制御が移る前に予め定める必要がある。(c)に示したこれらのメモリ使用スケジュールを見ると、各レイヤ別に最大メモリ使用量を抽出する。レイヤ1とレイヤ4は、期待されるメモリ使用量をそのまま抽出し、レイヤ2とレイヤ3は、並列に処理されることができるため、各使用量を合計(Sum)して抽出する。実施形態では、このように抽出した各レイヤのメモリ使用量のうち、最大値を本人工知能モデルで必要とする最大メモリに算出し、実行段階で使用する。これらの算出及び使用手順はシステムで自動的に行われる。
【0072】
以上のように、人工知能実行加速システムは、人工知能の学習機能と実行機能とを分離することにより、所要するメモリとハードウェア資源(CPU及びGPU)の所要量を削減し、これによって、人工知能モデル実行のためのサーバコストを削減し、処理性能を向上させることができ、低仕様のエッジ装置でも人工知能モデルが実行できるようになり、インターネットが不可能な状況でも人工知能を用いたサービスを提供できる。
【0073】
実施形態を通じて、高価なサーバで実行しなければならない人工知能モデルをPC級の機器で実行することができ、人工知能モデルを小型のIoT機器でも速く小さいメモリで実行できる。
【0074】
また、設定方法として、人工知能モデルを搭載し、予め学習されたウェイトファイルをエッジ端末のエンジンにロードして実行する方法で使用するため、人工知能を知らない一般の開発者も人工知能を用いるプログラムを作成することができる。
【0075】
開示された内容は、例示に過ぎず、特許請求の範囲で請求する請求の要旨を逸脱することなく、当該技術分野において通常の知識を有する者によって多様に変更実施することができるため、開示された内容の保護範囲は上述した特定の実施形態に限定されない。
【0076】
以上のように、人工知能実行加速サーバは、人工知能の学習機能と実行機能とを分離することにより、所要するメモリとハードウェア資源(CPU及びGPU)の所要量を削減し、これによって、人工知能モデル実行のためのサーバコストを削減し、処理性能を向上させることができ、低仕様のエッジ装置でも人工知能モデルを実行できるようになり、インターネットが不可能な状況でも人工知能を用いたサービスが提供できる。また、高価なサーバで実行しなければならない人工知能モデルをPC級の機器で実行することができ、人工知能モデルを小型のIoT機器でも速く小さいメモリで実行できる。
【手続補正書】
【提出日】2021年5月10日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
人工知能実行加速システムにおいて、
人工知能の学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルで、人工知能実行加速のための人工知能学習モデルのデータ加重値を算出する実行加重値抽出モジュールと、
前記学習モデルを算出する人工知能学習サーバから前記学習モデルをロードし、前記ロードした学習モデルを人工知能実行加速システムで利用可能なカスタムレイヤ(custom layer)に変換後、前記カスタムレイヤを演算関数とモジュール位置の調整及び演算方式の変更過程を通じて最適化して実行モデルを算出する人工知能加速実行ファイル設定モジュールと、
ReLU(Rectified Linear Unit)演算をコンカット(concat)演算後に行い、ReLU演算が一度の演算で行われるように構成した最適化演算関数でカスタムレイヤの最適化過程を行い、カスタムレイヤの最適化が完了すると、実行モデルが生成され、その後に実行加重値抽出モジュールから受け取った実行モデルの加重値を実行モデルに適用する最適化モジュールと、
前記実行モデルを受け取って、前記実行モデルに対応する実行環境を構成して人工知能実行速度を加速する実行加速モジュールと、を含み、
前記実行加速モジュールは、
実行モデルの実行段階別所要メモリ割当量の最適値を算出し、並列処理を含む実行段階別完了の可否を把握し、完了した段階で再度使用しないデータを削除したメモリ領域を再利用し、
CPUとGPUとの間のデータ処理を変換して、非同期(Async)でGPU内部で人工知能実行モデルが処理されるようにして、オーバーヘッドの発生を最小限に抑え、
前記人工知能加速実行ファイル設定モジュールは、
前記人工知能学習モデルに畳み込み(convolution)及びReLUを含む演算関数を用いて前記学習モデルのメタデータを可視化してカスタムレイヤを生成し、
可視化した学習モデルファイルを、RPN(Region Proposal Network)、NMS(Non Maximum Suppression)、プーリング(Pooling)を含むモデル設定関数を用いて、人工知能実行加速器で使用可能なカスタムレイヤに設定し、
前記人工知能加速実行ファイル設定モジュールは、
ReLU演算を一つに合わせて並列性が存在することを知らせることで、カスタムレイヤのモジュール位置を調整し、
行列で偶数項のみを選択する偶数選択(Even Selection)演算及び奇数項を取り出す奇数選択(Odd Selection)演算で前記カスタムレイヤのプーリング演算方式を変更し、
前記偶数選択演算は、平均プーリング(Average Pooling)方式に基づいてAvgPool 1×1/2(Kernel Size=1×1、Stride Size=2×2)に演算し、
前記奇数選択演算は、クロップ(Crop)、パディング(Padding)及び平均プーリング方式に基づいて、クロップ及びパディング後、AvgPool 1×1/2に演算することを特徴とする人工知能実行加速システム。
【請求項2】
前記実行加重値抽出モジュールは、
前記人工知能学習サーバに既保存された加重値ファイル形式を抽出することを特徴とする請求項1に記載の人工知能実行加速システム。
【請求項3】
人工知能実行加速のための人工知能実行モデルの設定方法において、
(A)人工知能学習サーバで学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを前記人工知能学習サーバからロードするステップと、
(B)人工知能加速実行ファイル設定モジュールにおいて、前記学習モデルに畳み込み及びReLUを含む演算関数を用いて前記学習モデルのメタデータを可視化するステップと、
(C)最適化モジュールにおいて、ReLU演算をコンカット演算後に行い、ReLU演算が一度の演算で行われるように構成された最適化演算関数でカスタムレイヤの最適化過程を行い、カスタムレイヤの最適化が完了すると実行モデルが生成され、実行加重値抽出モジュールから受け取った実行モデルの加重値を実行モデルに適用するステップと、
(D)人工知能加速実行ファイル設定モジュールにおいて、前記可視化された学習モデルファイルをRPN(Region Proposal Network)、NMS(Non Maximum Suppression)、及びプーリング(Pooling)を含むカスタムレイヤ設定関数を用いて人工知能実行加速器で使用可能なカスタムレイヤに設定するステップと、
(E)人工知能加速実行ファイル設定モジュールにおいて、ロードした加重値ファイルを前記カスタムレイヤに付加して、人工知能実行加速器で使用可能な実行モデルに変換するステップと、
(F)人工知能実行加速モジュールにおいて、前記実行モデルを受け取り、前記実行モデルに対応する実行環境を構成して、人工知能実行速度を加速するステップを含み、
前記ステップ(D)は、
ReLU演算を一つに合わせて並列性が存在することを知らせることで、カスタムレイヤのモジュール位置を調整し、行列で偶数項のみを選択する偶数選択(Even Selection)演算及び奇数項を取り出す奇数選択(Odd Selection)演算で前記カスタムレイヤの演算方式を変更して実行モデルを算出し、
前記偶数選択演算は、平均プーリング方式に基づいてAvgPool 1×1/2(Kernel Size=1×1、Stride Size=2×2)に演算し、
前記奇数選択演算は、クロップ(Crop)、パディング(Padding)及び平均プーリング(Average Pooling)方式に基づいて、クロップ及びパディング後、AvgPool 1×1/2に演算し、
前記ステップ(F)は、
実行モデルの人工知能実行段階別所要メモリ割当量を算出するステップと、
前記人工知能実行段階別所要メモリ領域を再利用して、前記人工知能実行加速モジュールのメモリを最適化するステップとを含み、
前記ステップ(F)は、
CPUとGPUとの間のデータ処理を変換して、非同期的にGPU内部で人工知能実行モデルが処理されるようにして、オーバーヘッドの発生を最小限に抑えることを特徴とする人工知能実行モデル設定方法。
【請求項4】
前記ステップ(E)は、
実行加重値抽出モジュールにおいて、前記人工知能学習サーバに既保存された加重値ファイル形式を抽出するステップと、
抽出された加重値ファイル形式を前記学習モデルに変換するステップと、
前記変換された加重値ファイル形式を実行モデルに適用するステップと、を含むことを特徴とする請求項3に記載の人工知能実行モデル設定方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
実施形態に係る人工知能実行加速システムは、人工知能の学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデル
で、人工知
能実行加速のための人工知能学習モデルのデータ加重値を算出する実行加重値抽出モジュールと、学習モデルを算出する人工知能学習サーバから前記学習モデルをロードし、ロードした学習モデルを人工知能実行加速システムで利用可能なカスタムレイヤ(custom layer)に変換後、前記カスタムレイヤを
演算関数とモジュール位置の調整及び演算方式の変更過程を通じて最適化して実行モデルを算出する人工知能加速実行ファイル設定モジュールと、実行モデルを受け取り、前記実行モデルに対応する実行環境を構成して、人工知能の実行速度
を加速す
る実行加速モジュールと、を含む。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正の内容】
【0016】
本発明の実施形態に係る人工知
能実行加速のための人工知能実行モデルの設定方法は、(A)人工知能学習サーバで学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデルを
前記人工知能学習サーバからロードするステップと、(B)人工知能加速実行ファイル設定モジュールにおいて、学習モデル
に畳み込み(convolution)及びReLU(Rectified Linear Unit)を含む演算関数を用いて
前記学習モデルのメタデータを可視化するステップと、(C)人工知能加速実行ファイル設定モジュールにおいて、
可視化された学習モデルファイルをNMS(Non Maximum Suppression)
及びプーリング(Pooling)を含むカスタムレイヤ設定関数を用いて人工知能実行加速器で使用可能なカスタムレイヤに設定するステップと、(D)人工知能加速実行ファイル設定モジュール
において、ロードした加重値ファイルを前記カスタムレイヤに付加して、人工知能実行加速器で使用可能な実行モデルに変換するステップと、(E)人工知能実行加速モジュールにおいて、前記実行モデルを受け取り、前記実行モデルに対応する実行環境を構成して、人工知能の実行速度を加速するステップと、を含む。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正の内容】
【0024】
実行加重値抽出モジュール110は、人工知能の学習結果として生成されたウェイトファイル及び人工知能モデルを含む学習モデル
で、人工知
能実行加速のための人工知能学習モデルのデータ加重値を算出する。実施形態で加重値(weight value)は、電子機器に入力される実際の条件に応じた制御結果値の条件別加重値になる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正の内容】
【0025】
加速実行ファイル設定モジュール130は、人工知能の学習結果として生成された加重値ファイル及び人工知能モデルを含む学習モデルを算出する人工知能学習サーバから学習モデルをロードし、ロードした学習モデルを可視化して、人工知能実行加速システムで使用可能なカスタムレイヤを生成し
、実行モデルを算出する。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0032
【補正方法】変更
【補正の内容】
【0032】
ステップS20では、加速実行ファイル設定モジュール130で学習モデルの構成を可視化する。例えば、学習モデルの構成の可視化過程は、人工知能学習モデルに畳み込み及びReLUを含む演算関数を用いて学習モデルのメタデータを可視化し、可視化した学習モデルをカスタムレイヤに変換
する。また、ステップS20では、可視化した学習モデルファイルをRPN、NMS、プーリングなどを含むモデル設定関数を用いて、人工知能実行加速器で使用可能なカスタムレイ
ヤに設定することができる。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0044
【補正方法】変更
【補正の内容】
【0044】
次に、ステップS630では、カスタムレイヤの最適化の要否を把握する
。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0045
【補正方法】変更
【補正の内容】
【0045】
カスタムレイヤ
の実行モデルを生成して保存する。実施形態に係る最適化過程は、学習モデルの形態及び利用関数によって異なる場合がある。ステップS640では、最適化過程の後、最適化された実行モデルに対応する実行環境を構成する。
【手続補正9】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正10】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】