(57)【要約】データを処理するための方法、装置、および関連製品を提供する。ボートカードは、記憶装置と、インターフェース装置と、制御装置と、人工知能チップと、を備える。人工知能チップは、記憶装置、制御装置、および、インターフェース装置にそれぞれ接続される。記憶装置はデータを記憶し、インターフェース装置は人工知能チップと外部装置との間のデータ伝送を実現し、制御装置は人工知能チップの状態を監視制御する。ボートカードは人工知能演算に用いられる。  【選択図】図１０
2022502724.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するための方法であって、
機械学習モデルに用いられる１グループの量子化待ちデータを取得するステップと、
前記１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するステップであって、前記複数のドット・ポジションの各々は、前記複数グループの量子化後のデータ中の小数点の位置を指定するステップと、
前記１グループの量子化待ちデータの量子化に用いるように、前記複数グループの量子化後のデータの中の各グループの量子化後のデータと前記１グループの量子化待ちデータとの間の差に基づいて、前記複数のドット・ポジションから１ドット・ポジションを選択するステップと、を含む
ことを特徴とする前記方法。
【請求項２】
前記複数のドット・ポジションの各々は整数で表され、
前記方法は、
前記１グループの量子化待ちデータに関連した範囲に基づいて、前記複数のドット・ポジションの中の１ドット・ポジションを取得するステップと、
得られた前記ドット・ポジションに隣接する整数に基づいて、前記複数のドット・ポジションの中の他のドット・ポジションを決定するステップと、をさらに含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のドット・ポジションの中の他のドット・ポジションを決定するステップは、
前記ドット・ポジションを表す前記整数をインクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するステップと、
前記ドット・ポジションを表す前記整数をデクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するステップと、の中の少なくとも１つを含む
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記複数のドット・ポジションから１ドット・ポジションを選択するステップは、
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップと、
前記複数の差から最小の差を選択するステップと、
前記複数のドット・ポジションから前記最小の差に対応する１ドット・ポジションを選択するステップと、を含む
ことを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項５】
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップは、
前記複数グループの量子化後のデータの所定の１グループの量子化後のデータに対して、前記所定の１グループの量子化後のデータと前記１グループの量子化待ちデータとの間の１グループの相対差をそれぞれ決定するステップと、
前記１グループの相対差に基づいて、前記複数の差の中の１つの差を決定するステップと、を含む
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップは、
前記複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、前記１グループの量子化後のデータの量子化平均値と前記１グループの量子化待ちデータの元の平均値とをそれぞれ決定するステップと、
前記量子化平均値と前記元の平均値とに基づいて、前記複数の差の中の１つの差を決定するステップと、を含む
ことを特徴とする請求項４に記載の方法。
【請求項７】
前記１グループの量子化待ちデータは、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含み、
前記方法は、
前記１グループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、１グループの量子化後のデータを得るステップであって、前記１グループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記１グループの量子化待ちデータを前記１グループの量子化後のデータにマッピングすることを含み、前記１グループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものであるステップと、
得られた前記１グループの量子化後のデータをニューラル・ネットワーク・モデルに入力することによって、処理に用いるステップと、をさらに含む
ことを特徴とする請求項１乃至６の何れか１項に記載の方法。
【請求項８】
ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含む、別のグループの量子化待ちデータを取得するステップと、
前記別のグループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、別のグループの量子化後のデータを得るステップであって、前記別のグループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記別のグループの量子化待ちデータを前記別のグループの量子化後のデータにマッピングすることを含み、前記別のグループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものであるステップと、
得られた前記別のグループの量子化後のデータを前記ニューラル・ネットワーク・モデルに入力することによって、処理に用いるステップと、をさらに含む
ことを特徴とする請求項１乃至６の何れか１項に記載の方法。
【請求項９】
データを処理するための装置であって、
機械学習モデルに用いられる１グループの量子化待ちデータを取得するための取得ユニットと、
前記１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するための決定ユニットであって、前記複数のドット・ポジションの各々は、前記複数グループの量子化後のデータ中の小数点の位置を指定する決定ユニットと、
前記１グループの量子化待ちデータの量子化に用いるように、前記複数グループの量子化後のデータの中の各グループの量子化後のデータと前記１グループの量子化待ちデータとの間の差に基づいて、前記複数のドット・ポジションから１ドット・ポジションを選択するための選択ユニットと、を備え、
ことを特徴とする装置。
【請求項１０】
前記複数のドット・ポジションの各々は整数で表され、
前記装置は、
前記１グループの量子化待ちデータに関連した範囲に基づいて、前記複数のドット・ポジションの中の１ドット・ポジションを取得するためのドット・ポジション取得ユニットと、
得られた前記ドット・ポジションに隣接する整数に基づいて、前記複数のドット・ポジションの中の他のドット・ポジションを決定するためのドット・ポジション決定ユニットと、をさらに備える
ことを特徴とする請求項９に記載の装置。
【請求項１１】
前記ドット・ポジション決定ユニットは、
前記ドット・ポジションを表す前記整数をインクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するためのインクリメントユニットと、
前記ドット・ポジションを表す前記整数をデクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するためのデクリメントユニットと、を備える
ことを特徴とする請求項１０に記載の装置。
【請求項１２】
選択モジュールは、
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するための差決定ユニットと、
前記複数の差から最小の差を選択するための差選択ユニットと、
前記複数のドット・ポジションから前記最小の差に対応する１ドット・ポジションを選択するためのドット・ポジション選択ユニットと、を備える
ことを特徴とする請求項９乃至１１の何れか１項に記載の装置。
【請求項１３】
前記差決定ユニットは、
前記複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対するための相対差決定ユニットと、
前記所定の１グループの量子化後のデータと前記１グループの量子化待ちデータとの間の１グループの相対差をそれぞれ決定するための総体差決定ユニットと、
前記１グループの相対差に基づいて、前記複数の差の中の１つの差を決定することと、を備える
ことを特徴とする請求項１２に記載の装置。
【請求項１４】
前記差決定ユニットは、
前記複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、前記所定の１グループの量子化後のデータの量子化平均値と前記１グループの量子化待ちデータの元の平均値とをそれぞれ決定するための平均値決定ユニットと、
前記量子化平均値と前記元の平均値とに基づいて、前記複数の差の中の１つの差を決定するための平均値差決定ユニットと、を備える
ことを特徴とする請求項１２に記載の装置。
【請求項１５】
前記１グループの量子化待ちデータは、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含み、
前記装置は、
前記１グループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、１グループの量子化後のデータが得るための量子化ユニットであって、前記１グループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記１グループの量子化待ちデータを前記１グループの量子化後のデータにマッピングすることを含み、前記１グループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものである量子化ユニットと、
得られた前記１グループの量子化後のデータを前記ニューラル・ネットワーク・モデルに入力することによって、処理に用いるための入力ユニットと、をさらに備える
ことを特徴とする９乃至１４の何れか１項に記載の装置。
【請求項１６】
前記装置は、
ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含む、別のグループの量子化待ちデータを取得するためのデータ取得ユニットと、
前記別のグループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、別のグループの量子化後のデータが得るための量子化ユニットであって、前記別のグループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記別のグループの量子化待ちデータを前記別のグループの量子化後のデータにマッピングすることを含み、前記別のグループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものである量子化ユニットと、
得られた前記別のグループの量子化後のデータを前記ニューラル・ネットワーク・モデルに入力することによって、処理に用いるための入力ユニットと、をさらに備える
ことを特徴とする請求項９乃至１４の何れか１項に記載の装置。
【請求項１７】
コンピュータ可読記憶媒体であって、
前記コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されており、前記コンピュータプログラムが実行されると、請求項１乃至８の何れか１項に記載の方法を実現する
ことを特徴するコンピュータ可読記憶媒体。
【請求項１８】
人工知能チップであって、
前記チップに請求項９乃至１６の何れか１項に記載のデータを処理するためのユニットを備える
ことを特徴とする前記人工知能チップ。
【請求項１９】
電子デバイスであって、
前記電子デバイスは請求項１８に記載の人工知能チップを備える
ことを特徴とする前記電子デバイス。
【請求項２０】
ボートカードであって、
記憶装置と、
インターフェース装置と、
制御装置と、
請求項１８に記載の人工知能チップと、を備え、
前記人工知能チップは、前記記憶装置、前記制御装置、および、前記インターフェース装置に接続され、
前記記憶装置は、データを記憶し、
前記インターフェース装置は、人工知能チップと外部装置との間のデータ伝送を実現し、
前記制御装置は、人工知能チップの状態を監視制御する
ことを特徴とする前記ボートカード。
【請求項２１】
記憶装置は、各グループの記憶ユニットがバスによって人工知能チップに接続される複数グループの記憶ユニットを備え、記憶ユニットがＤＤＲ  ＳＤＲＡＭであり、
チップは、各々のメモリユニットのデータ伝送とデータ記憶とを制御するためのＤＤＲコントローラーを備え、
インターフェース装置は、基準ＰＣＩＥインターフェースであることを特徴とする請求項２０に記載のボートカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、概してコンピュータ技術の分野に関し、より具体的には、データを処理するための方法、装置、および関連製品に関する。
【背景技術】
【０００２】
人工知能技術の継続的な発展に伴い、その応用分野は益々広がり、画像認識、音声認識、および自然言語処理などの分野で何れも良く適用されている。然しながら、人工知能アルゴリズムの複雑さと正確さの向上につれて、機械学習モデルが益々大きくなり、処理に必要なデータ量も益々大きくなる。大量のデータ処理を行なう場合、演算量や時間のオーバーヘッドが大きくなり、処理効率が低下する。  
【発明の概要】
【０００３】
この点に鑑みて、本開示の実施形態は、データを処理するための方法、装置、および関連製品を提供する。
本開示の第１の態様においては、データを処理するための方法が提供される。この方法は、機械学習モデルに用いられる１グループの量子化待ちデータを取得するステップと、１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するステップであって、複数のドット・ポジションの各々は、複数グループの量子化後のデータ中の小数点の位置を指定するステップと、１グループの量子化待ちデータの量子化に用いるように、複数グループの量子化後のデータの中の各グループの量子化後のデータと１グループの量子化待ちデータとの間の差に基づいて、複数のドット・ポジションから１ドット・ポジションを選択するステップと、を含む。
【０００４】
本開示の第２の態様においては、データを処理するための装置が提供される。この装置は、機械学習モデルに用いられる１グループの量子化待ちデータを取得するための取得ユニットと、１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するための決定ユニットであって、複数のドット・ポジションの各々は、複数グループの量子化後のデータ中の小数点の位置を指定する決定ユニットと、１グループの量子化待ちデータの量子化に用いるように、複数グループの量子化後のデータの中の各グループの量子化後のデータと１グループの量子化待ちデータとの間の差に基づいて、複数のドット・ポジションから１ドット・ポジションを選択するための選択ユニットと、を備える。
【０００５】
本開示の第３の態様においては、コンピュータ・プログラムを記憶するコンピュータ可読記憶媒体が提供される。コンピュータ・プログラムが実行されると、本開示の各々の実施形態による方法は実現される。
本開示の第４の態様においては、本開示の各々の実施形態によるデータを処理するための装置を備える人工知能チップが提供される。
本開示の第５の態様においては、本開示の各々の実施形態による人工知能チップを備える電子デバイスが提供される。
【０００６】
本開示の第６の態様においては、記憶装置と、インターフェース装置と、制御装置と、本開示の各々の実施形態による人工知能チップを備えるボートカードが提供される。ここで、人工知能チップは、記憶装置、制御装置、および、インターフェース装置に接続され、記憶装置はデータを記憶し、インターフェース装置は人工知能チップと外部装置との間のデータ伝送を実現し、および制御装置は人工知能チップの状態を監視制御する。
【０００７】
請求項の技術特徴に対して導き出すことにより、背景技術中の課題に対応する有益な効果を収めることができる。図面を参照しながら例の実施形態に対する詳細な説明によれば、本開示の他の特徴と態様が明らかになる。
【図面の簡単な説明】
【０００８】
明細書に含まれて明細書の一部を構成する図面は、明細書とともに本開示の例の実施形態、特徴、および態様を示し、しかも本開示の原理を説明するために利用される。
【図１】本開示の実施形態に係るデータを処理する方法のための処理システムを示す模式図である。
【図２】本開示の実施形態に係るニューラル・ネットワークの例のアーキテクチャを示す模式図である。
【図３】本開示の実施形態に係るデータを量子化するためのプロセスを示す模式図である。
【図４】本開示の実施形態に係る量子化プロセスを示す模式図である。
【図５】本開示の実施形態に係るデータを量子化するためのプロセスを示す模式図である。
【図６】本開示の実施形態に係るデータを処理するための方法を示すフローチャートである。
【図７】本開示の実施形態に係る異なるドット・ポジションに基づくための異なる量子化案を示す模式図である。
【図８】本開示の実施形態に係るデータを処理するための方法を示すフローチャートである。
【図９】本開示の実施形態に係るデータを処理するための装置を示すブロック図である。
【図１０】本開示の実施形態に係るボートカードを示す構造ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本開示の実施形態中の図面を参照しながら本開示の実施形態中の技術案に対して明確かつ完全に説明する。明らかに、説明された実施形態は、本開示の実施形態の一部に過ぎず、全部ではない。本開示の実施形態に基づいて、当業者が創造性の労働をせずに得られた他の全ての実施形態は、何れも本開示の保護請求する範囲に属する。
【００１０】
本開示の特許請求の範囲、明細書、および図面中の「第一」、「第二」、「第三」、および「第四」などの用語が、異なる対象物を区別するために利用されており、特定の順を説明するために利用されていないことは理解されるべく。本開示の明細書と特許請求の範囲中の「備える（「包括」は中に含める、入れるの意味である）」と「包含（「包含」は中に含まれるの意味である）」という用語は、説明される特徴、全体、ステップ、動作、要素および/または構成要素の存在を指すが、一つ以上の他の特徴、整体、ステップ、動作、要素、構成要素および/またはそれらの組合せの存在または追加を排除するものではない。
【００１１】
本開示の説明書に用いられる用語が特定の実施形態を説明する目的のためだけのものであり、本開示を限定することを意図しないことは更に理解されるべく。本開示の明細書と特許請求の範囲に用いられるように、単数形「一」、「一つ」、および「この」が、文脈が明らかに他のことを示しない限り、複数形を含むことを意図する。本開示の説明書と特許請求の範囲中の「および/または」という用語は、関連して列挙される項目の一つ以上の任意の組合せ及び全ての可能な組合せを指し、しかもこれらの組合せを含むことも更に理解されるべく。
【００１２】
本開示の明細書と特許請求の範囲に用いられるように、「若し」という用語が、文脈に応じて、「…場合」または「…すると」または「決定に応答」または「検出に応答」に説明される。同様に、「決定される場合」または「検出される場合（説明される条件またはイベント）」という連語が、文脈に応じて、「決定されると」または「決定に応答」または「検出されると(説明される条件またはイベント)」または「検出に応答(説明される条件またはイベント)」に説明される。
【００１３】
一般的に、データを量子化するとき、量子化待ちデータに対してスケーリング処理を行なう必要がある。例えば、量子化後のデータを幾つかのビットのバイナリーを用いて表すことが既に決定された場合、ドット・ポジションを用いて小数点の位置を記述することができる。このとき、小数点は、量子化後のデータを整数部と小数部に分割することができる。よって、データ量子化の損失が最小または比較的小さくなるように、１つの適切なドット・ポジションを見付けることにより、データを量子化する必要がある。
【００１４】
従来、１グループの量子化待ちデータの値の範囲に基づいてドット・ポジションを決定する技術案が既に提出された。然しながら、量子化待ちデータが常に均一に分布しているとは限らないため、値の範囲に基づいて決定されたドット・ポジションによって、常に正確に量子化が実行できるとは限らず、１グループの量子化データの中の一部の量子化待ちデータに対して、比較的大きな精度損失が発生する可能性がある。
【００１５】
このために、本開示の実施形態は、量子化プロセスで使用されるドット・ポジションを決定する新しい解決策を提出する。この新しい解決策は、従来の技術よりも少ない精度損失を実現することができる。本開示の実施形態によれば、機械学習モデルに用いられる１グループの量子化待ちデータを取得した後、１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定し、ここで、複数のドット・ポジションの各々のドット・ポジションは、複数グループの量子化後のデータ中の小数点の位置を指定する。次いで、１グループの量子化待ちデータの量子化に用いるように、複数グループの量子化後のデータの中の各グループの量子化後のデータと１グループの量子化待ちデータとの間の差を評価指定として、複数のドット・ポジションから1ドット・ポジションを選択する。この方法によって、より適切なドット・ポジションを見付けることができる。
【００１６】
以下は、図１乃至図１０を参照しながら本開示の基本原理と若干の例の実施形態を説明する。これらの例の実施形態が、当業者に本開示の実施形態をよりよく理解させてから実現できるようにするためだけに与えられ、決して如何なる方式で本開示の範囲を限定するものではないことは理解されるべく。
【００１７】
図１は、本開示の実施形態に係るデータを処理する方法のための処理システム１００を示す模式図である。図１に示すように、処理システム１００は、複数のプロセッサ１０１−１、１０１−２、１０１−３（総称してプロセッサ１０１という）とメモリ１０２とを備え、そのうちプロセッサ１０１がコマンド・シーケンスを実行するためであり、メモリ１０２がデータを記憶し、更にランダム・メモリ(ＲＡＭ、Raｎdom Access Memory)とレジスター・ステックも備える。処理システム１００中の複数のプロセッサ１０１は、メモリ空間の一部を共有してもよいし、例えば、ＲＡＭメモリ空間とレジスター・スタックの一部を共有し、それぞれのメモリ空間を同時に有してもよい。
【００１８】
本開示の実施形態による各々の方法は、複数のプロセッサ(マルチコア)を備える処理システム１００(例えば人工知能チップ)の任意の１つのプロセッサに適用され得ることが理解されるべく。このプロセッサは、例えばＣＰＵ(Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、セントラル・プロセッサ)のような汎用プロセッサであってもよいし、人工知能演算を実行するための人工知能プロセッサ(ＩＰＵ)であってもよい。人工知能演算は、機械学習演算、脳と類似な演算などを含むこともできる。ここで、機械学習演算には、ニューラル・ネットワーク演算、ｋ−ｍｅａｎｓ演算、ベクトルマシン・サポート演算などが含まれる。この人工知能プロセッサは、例えばＧＰＵ(Ｇｒａｐｈｉｃｓ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、パターン処理ユニット)、ＮＰＵ(Ｎｅｕｒａｌ−Ｎｅｔｗｏｒｋ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、ニューラル・ネットワーク処理ユニット)、ＤＳＰ(Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓ、ジタル信号処理ユニット)、フィールド・プログラマブル・ゲート・アレイ(Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ、ＦＰＧＡ)チップのうちの１つまたは組合せを含んでもよい。本開示は、プロセッサの具体的なタイプを限定しない。また、処理システム１００中の複数のプロセッサのタイプは、同一であってもよいし、異なってもよい。本開示はこれを限定しない。
【００１９】
１つの可能な実施形態においては、本開示が言及するプロセッサは、複数の処理ユニットを備えることができ、各処理ユニットは、割り当てられた様々なタスク、例えばコンボルーション演算タスク、プール化タスク又はフル接続タスクなどを独立して実行することもできる。本開示は、処理ユニットおよび処理ユニットによって実行されるタスクを限定しない。
【００２０】
図２は、本開示の実施形態に係るニューラル・ネットワーク２００の例のアーキテクチャを示す模式図である。ニューラル・ネットワーク（ｎｅｕｒａｌ ｎｅｔｗｏｒｋ、ＮＮ）は、生物系ニューラル・ネットワークの構造と機能を模倣する数学モデルであり、多くのニューロンに接続されて演算する。よって、ニューラル・ネットワークは、演算モデルであり、多くのバイト(または「ニューロン」と呼ばれる)に互いに接続構成される。各バイトは、活性化関数（ａｃｔｉｖａｔｉｏｎ ｆｕｎｃｔｉｏｎ）と呼ばれる特定の出力関数を表す。２つのニューロン間の接続は、何れもこの接続信号による１つの重み値を表し、重み値と呼ばれ、ニューラル・ネットワークの記憶に該当する。ニューラル・ネットワークの出力は、ニューロン間の接続式、および、重み値と活性化関数によって、異なる。ニューラル・ネットワークにおいて、ニューロンは、ニューラル・ネットワークの基本単位である。ニューロンは、所定の数の入力と１つのバイアスを取得し、信号(値)が達したときに１つの重み値を乗算する。接続とは、１つのニューロンを他の層又は同一の層の別のニューロンに接続することであり、接続は、自身に関連した重み値が伴われる。また、バイアスとは、ニューロンの余分の入力であり、常に１であり、しかも自分の接続用重み値を有する。これは、全ての入力が空(全て０)であっても、ニューロンが活性化されることを保証することができる。
【００２１】
適用においては、ニューラル・ネットワーク中のニューロンに非線形関数を適用しない場合、ニューラル・ネットワークは、ただ、線形関数であり、すると、単一なニューロンに比べて強度が強いわけではない。1つのニューラル・ネットワークの出力結果を０から１までの間にあるようにすると、例えば猫／犬を鑑別する例においては、０に近い出力を猫、１に近い出力を犬と見なすことができる。この目的を達成するために、例えば、ｓｉｇｍｏｉｄ活性化関数などの活性化関数がニューラル・ネットワークに導入される。この活性化関数について、その戻り値が０から１までの数字であることが分かればよい。よって、活性化関数は、ニューラル・ネットワークに非線形性を導入するために利用され、ニューラル・ネットワークの演算結果をより狭い範囲に縮小する。実際には、どのように活性化関数を表するかが重要ではなく、幾つかの重み値によって１つの非線形関数をパラメーター化することが重要であり、これらの重み値を変えることでこの非線形関数を変えることができる。
【００２２】
図２は、ニューラル・ネットワーク２００のアーキテクチャを示す模式図である。図２に示すニューラル・ネットワークにおいては、入力層２１０、インプリケーション層２２０、および出力層２３０という３つの層が含まれ、そのうち図２に示すインプリケーション層２２０が３つの層であり、勿論、より多く、より少ないでも良い。ここで、入力層２１０のニューロンは、入力ニューロンと呼ばれる。入力層をニューラル・ネットワーク中の第１層とする場合、信号(値)を入力して次の層に伝送する必要がある。それは、入力信号(値)に対して如何なる操作も行わず、関連した重み値及びバイアスを有しない。図２に示すニューラル・ネットワークにおいては、４つの入力信号(値)を受信することができる。
【００２３】
インプリケーション層２２０は、入力データに対して異なる変換を適用するためのニューロン(バイト)に利用される。１つのインプリケーション層は、垂直に並んでいるニューロンの集合（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）である。図２に示すニューラル・ネットワークにおいては、３つの層が含まれる。第１のインプリケーション層は４つのニューロン(バイト)を有し、第２の層は６個のニューロンを有し、第３の層は３個のニューロンを有する。最後に、インプリケーション層は、出力層に値を伝送する。図２に示すニューラル・ネットワーク２００は、３つのインプリケーション層中の各々のニューロン間を完全に接続し、３つのインプリケーション層中の各々のニューロンが何れも次の層の各々のニューロンに接続される。なお、各々のニューラル・ネットワークのインプリケーション層は完全に接続されているわけではない。
【００２４】
出力層２３０のニューロンは、出力ニューロンと呼ばれる。出力層は、最後の１つのインプリケーション層からの出力を受信する。出力層２３０によって、所望の値と所望の範囲を決定することができる。図２に示すニューラル・ネットワークにおいては、出力層は３つのニューロン、即ち３つの出力信号(値)を有する。
【００２５】
実際の適用においては、ニューラル・ネットワークの作用は、多くのサンプル・データ（入力と出力を含む）を予め与えることでトレーニングするものである。トレーニングが完了した後に、将来の実環境の入力に対して正確な出力を求めるニューラル・ネットワークを利用する。
【００２６】
ニューラル・ネットワークのトレーニングを論じる前に、損失関数を定義する必要がある。損失関数とは、ニューラル・ネットワークが特定のタスクでどれだけうまく機能するかを示す関数である。実行時の最も直接的な方法は、トレーニング・プロセス中で各々のサンプル・データに対してニューラル・ネットワークに沿って伝送してから１つの数値を求めた後に、この数値と所望の実際の数値を比べて差を演算して２乗する。このように演算し得たものが、予測値と実際の数値との間の距離である。ニューラル・ネットワークのトレーニングは、この距離または損失関数の値を小さくすることが望ましいことである。
【００２７】
ニューラル・ネットワークのトレーニングを始めるとき、重み値がランダムに初期化される必要がある。初期化されたニューラル・ネットワークが、良好な結果を提供しないことは明らかである。トレーニング・プロセスにおいては、仮に悪いニューラル・ネットワークから始めることを想定しており、トレーニングにより高精度ある１つのネットワークが得られる。同時に、トレーニングを終了するとき、損失関数の関数値を非常に小さくすることがさらに望ましい。
【００２８】
ニューラル・ネットワークのトレーニング・プロセスは、２段階に分けられ、そのうち第１の段階は、信号のフォワード処理であり、入力層２１０からインプリケーション層２２０を経て、最後に出力層２３０までに到達する。第２の段階は、逆伝送勾配であり、勾配に応じてニューラル・ネットワーク中の各層の重み値とバイアスを出力層２３０からインプリケーション層２２０まで順に調節し、最後に入力層２１０に到達する。
【００２９】
フォワード処理においては、ニューラル・ネットワークの入力層２１０に入力値が入力され、しかもニューラル・ネットワークの出力層２３０から予測値と呼ばれる出力が得られる。入力値がニューラル・ネットワークの入力層２１０に提供される場合、如何なる操作を行なわない。インプリケーション層においては、第２のインプリケーション層が第１のインプリケーション層から予測中間結果値を取得して演算や活性化という操作を行なってから、得られた予測中間結果値を次のインプリケーション層に伝送する。後続の層においては、同じ操作を実行し、最後にニューラル・ネットワークの出力層２３０において出力値を得る。
【００３０】
フォワード処理後、予測値と呼ばれる出力値が得られる。誤差を演算するために、損失関数を用いて予測値と実際の出力値を比べてから対応する誤差値を得る。逆伝送は、微分学のチェーン法を用いており、チェーン法においては、先ずニューラル・ネットワークの最終層の重み値に対応する誤差値の導関数を演算する。これらの導関数が勾配と呼ばれ、次いで、これらの勾配を利用することでニューラル・ネットワークおける最後からの２番目の層の勾配が演算される。この処理は、ニューラル・ネットワーク中の各々の重み値の勾配が求められるまでに繰り返される。最後に、誤差値を低減する目的を果たすように、重み値から対応する勾配を減算することにより、重み値を１回更新する。
【００３１】
また、ニューラル・ネットワークの場合、微調整とは、トレーニングされたニューラル・ネットワークをロードするものであり、微調整プロセスはトレーニング・プロセスと同様に２段階に分けられており、そのうち第１の段階は、信号のフォワード処理であり、第２の段階が逆伝送勾配であり、トレーニングされたニューラル・ネットワークの重み値を更新する。トレーニングとは、初期化されたニューラル・ネットワークをランダムに処理し、ニューラル・ネットワークを最初からトレーニングするものであり、一方、微調整は、最初からトレーニングしない点でトレーニングとは異なる。
【００３２】
ニューラル・ネットワークに対してトレーニング或いは微調整を実行するプロセスにおいては、ニューラル・ネットワークが信号の正方向処理および誤差に対応する逆伝搬プロセスを１回経る毎に、ニューラル・ネットワーク中の重み値が勾配を用いて１回更新され、このとき、１回の反復(ｉｔｅｒａｔｉｏｎ)と呼ばれる。期待通りの精度あるニューラル・ネットワークを取得するために、トレーニング・プロセスにおいては、膨大なサンプル・データ・セットが必要となる。この場合、サンプル・データ・セットをコンピュータに一度に入力することは不可能である。よって、この課題を解決するために、サンプル・データ・セットを複数のブロックに分割し、各ブロックをコンピュータに伝送し、各ブロックのデータ・セットがフォワード処理された後、ニューラル・ネットワークの重み値を対応して更新する必要がある。完全なサンプル・データ・セットがニューラル・ネットワークの１回のフォワード処理に合格し、しかも１回の重み値の更新を対応して返す場合、このプロセスは１周期（ｅｐｏｃｈ）と呼ばれる。実際には、ニューラル・ネットワークにおいては、完全なデータ・セットを１回伝送するだけでは不十分であり、同じニューラル・ネットワークにおいては、完全なデータ・セットを数回伝送する必要がある。つまり、最後に期待通りの精度あるのニューラル・ネットワークを取得するには、複数の周期が必要である。
【００３３】
ニューラル・ネットワークに対してトレーニング或いは微調整を実行するプロセスにおいては、一般的に、望ましくは、速度が速ければ速いほど良く、正確さが高ければ高いほど良い。ニューラル・ネットワークのデータは、例えば浮動小数点数などが高精度データ・フォーマットで表されているため、トレーニング又は微調整のプロセスにおいては、関連したデータが何れも高精度データ・フォーマットであり、次いで、トレーニングされた後のニューラル・ネットワークを量子化する。量子化の対象物がニューラル・ネットワーク全体の重み値であり、しかも量子化後の重み値が何れも８ビットの固定小数点数である場合を例とし、常に、１つのニューラル・ネットワークには数百万個の接続があるため、殆どの空間は何れもニューロン接続の重み値に占められる。それにまして、これらの重み値が何れも異なる浮動小数点数である。各層の重み値が何れも例えば(−３．０,３．０)などのある決定区間の正規分布に向かう。ニューラル・ネットワーク中の各層の重み値に対応する最大値と最小値が保存され、各々の浮動小数点数値が８ビットの固定小数点数で表される。ここで、最大値、最小値の範囲おいては、２５６個の量子化間隔を空間的に線形に分割し、各々の量子化間隔を８ビットの固定小数点数で表する。例えば(−３．０,３．０)区間においては、バイト０は−３．０を表し、バイト２５５は３．０を表す。これによって類推すれば、バイト１２８は０を表す。
【００３４】
高精度データフォーマットで表されるデータについて、浮動小数点数を例とし、コンピューター体系構造から分かるように、浮動小数点数の演算表示法、固定小数点数の演算表示法に応じて、同じ長さの固定小数点演算と浮動小数点演算について、浮動小数点演算の演算モードはより複雑になり、より多くの論理装置から浮動小数点演算器を構成することを必要とする。このように体積から言えば、浮動小数点演算器の体積は固定小数点演算器より大きい、しかも固定小数点演算と浮動小数点演算との間の消費電力の差が通常のオーダーであるように、浮動小数点演算器は、より多くのリソースを消費することにより、処理する必要とする。つまり、固定小数点演算器に比べて、浮動小数点演算器の占めるチップ面積および消費電力は、いずれも数倍大きい。
【００３５】
図３は、本開示の実施形態に係るデータを量子化するためのプロセス３００を示す模式図である。図３に示すように、入力データ３１０は、量子化されていない浮動小数点数、例えば３２ビットの浮動小数点数であり、入力データ３１０をニューラル・ネットワーク・モデル３４０に直接入力して処理すると、演算リソースが多くかかり、処理速度が遅くなる。よって、ブロック１−３２０においては、量子化後のデータ３３０（例えば８ビットの整数）が得られるように、入力データを量子化することができる。量子化後のデータ３３０がニューラル・ネットワーク・モデル３４０に入力して処理される場合、８ビットの整数演算が速いため、ニューラル・ネットワーク・モデル３４０は、入力データに対する処理をより速く完了し、対応する出力結果３５０を生成する。
【００３６】
量子化されていない入力データ３１０から量子化後のデータ３３０までの量子化プロセスにおいては、ある程度で幾つかの精度損失が発生し、精度損失の程度は、出力結果３５０の正確さに直接影響する。よって、入力データ３３０に対して量子化処理するプロセスにおいては、量子化プロセスの精度損失を最小限にするか、あるいは、できるだけ小さくする必要がある。
【００３７】
以下、図４を参照しながら量子化プロセスを慨して説明する。図４は、本開示の実施形態に係る量子化プロセスを示す模式図４００である。図４は、１グループの量子化待ちデータの中の各々の量子化待ちデータを１グループの量子化後のデータにマッピングすることができる１つの簡単な量子化プロセスを示す。このとき、１グループの量子化待ちデータの範囲は−｜ｍａｘ｜乃至｜ｍａｘ｜であり、しかも生成された１グループの量子化後のデータの範囲は−(２ｎ−１−１)乃至＋(２ｎ−１＋１)である。ここで、ｎは、定義済みのデータ幅４１０、即ち量子化後のデータを幾つかのビットで表すかを示す。上記の例を続けると、量子化後のデータが８ビットで表される場合、第１のビットが符号ビットを表すと、量子化後のデータの範囲は、−１２７〜＋１２７であってもよい。
【００３８】
なお、量子化後のデータをより正確に表すために、さらに図４に示されるｎビットのデータ構造を用いて量子化後のデータを表してもよい。図に示すように、量子化後のデータは、ｎビットで表されてもよい、ここで、一番左側のビットがデータが正数か負数かであることを示す符号ビット４３０を表してもよい、小数点４２０が設定されてもよい、ここの小数点４２０が、量子化後のデータ中の整数部４３２と数部４３４との間のマージンを表す。小数点の左側が２の正のべき乗であり、小数点の右側が２の負のべき乗である。本開示の文脈においては、小数点の位置は、ドット・ポジションで表してもよい。データ幅４１０が予め決定された場合、小数点の位置４２０は、ドット・ポジション（整数で表す）を調整することにより、移動され、ｎビットのデータ構造によって表される範囲および精度は変化することが理解されるべく。
【００３９】
例えば、小数点４２０が一番右側のビットの後にあると、このときの符号ビット４３０は１ビットを含み、整数部４３２はｎ−１ビットを含み、小数部４３４は０ビットを含む。よって、ｎビットのデータ構造が表す範囲は、−（２（ｎ−１）−１）乃至＋（２（ｎ−１）−１）であり、しかも精度が整数である。例えば、小数点４２０が一番右側のビットの前にあると、符号ビット４３０は１ビットを含み、整数部４３２はｎ−２ビットを含み、小数部４３４は１ビットを含む。よって、ｎビットのデータ構造が表す範囲は、−（２（ｎ−２）−１）乃至＋（２（ｎ−２）−１）であり、しかも精度が十進法の小数「０．５」である。このとき、ｎビットのデータ構造が表す範囲及び精度と量子化待ちデータの範囲及び精度とがより一致するように、ドット・ポジションを決定する必要がある。
【００４０】
本開示の実施形態によれば、データを処理するための方法が提供される。先ず、図５を参照しながら本開示の実施形態を慨して説明する。図５は、本開示の実施形態に係るデータを処理するためのプロセスを示す模式図５００である。本開示の実施形態によれば、複数の量子化プロセスは、複数のドット・ポジション５２０に基づいて実行されてもよい。例えば、量子化待ちデータ５１０について、複数グループの量子化後のデータ５３０が得られるように、複数のドット・ポジション５２０の各々のドット・ポジションに基づいて、対応する量子化プロセスが実行される。続いて、複数グループの量子化後のデータ５３０中の各グループの量子化後のデータと量子化待ちデータ５１０を比べることにより、この二者の間の差を決定することができる。得られた複数の差５４０から最小の差に対応するドット・ポジション５５０を選択することにより、量子化待ちデータ５１０に最も適合するドット・ポジション５５０を決定することができる。本開示の実施形態によれば、量子化後のデータをより高い精度で表すことができる。
【００４１】
以下、図６を参照しながらデータ処理に関連したより多くの細部を詳しく説明する。図６は、本開示の実施形態に係るデータを処理するための方法６００を示すフローチャートである。図６に示すように、ブロック６１０においては、機械学習モデルに用いられる１グループの量子化待ちデータが取得される。例えば、図３を参照すると、ここで取得された１グループの量子化待ちデータが入力データ３１０であってもよい、入力データ３１０を量子化することにより、ニューラル・ネットワーク・モデル３４０の処理速度を向上させることができる。また、ニューラル・ネットワーク・モデル自体の一部のパラメータ(例えば、重み値など)を量子化することもでき、ニューラル・ネットワークのパラメータを量子化することにより、ニューラル・ネットワーク・モデルのサイズを低減することができる。幾つかの実施形態においては、１グループの量子化待ちデータの中の各々の量子化待ちデータは、３２ビットの浮動小数点数であってもよい。あるいは、量子化待ちデータも、他のビット数の浮動小数点数、または他のデータ形であってもよい。
【００４２】
ブロック６２０においては、１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することによって、複数グループの量子化後のデータを決定することができる。ここで、複数のドット・ポジションの各々のドット・ポジションは、複数グループの量子化後のデータ中の小数点の位置を指定する。本開示の実施形態によれば、複数のドット・ポジションの各々のドット・ポジションが、整数で表される。より多くのドット・ポジションが得られるように、先ず１ドット・ポジションを決定し、次に、このドット・ポジションに対して拡張を行うことができる。
【００４３】
本開示の実施形態によれば、１グループの量子化待ちデータに関連した範囲に応じて複数のドット・ポジションの中の１ドット・ポジションが得られる。以下、説明が便利なように、整数Sでドット・ポジションを表し、しかもこの整数Sの値が整数部４３２に含まれているビットの数を表す。例えば、S=3は、整数部４３２は３ビットを含むことを表す。元の量子化待ちデータをFx、ｎビットのデータ構造で表される量子化待ちデータをIxとすると、以下の式１が成り立つ。
2022502724.tif 000003
【００４４】
式３においては、pは、１グループの量子化待ちデータ中の絶対値の最大値を表す。代替的に及び/又は付加的に、pは、他の式で決定された範囲を表すことができる。式３においては、ｃｅｉｌは、アップワード・ラウンド・ナンバー演算を表す。複数のドット・ポジション中の1ドット・ポジション(例えば、Ｓ０)は、上記の式３に基づいて決定されてもよい。本開示の実施形態によれば、取得されたドット・ポジションS0に隣接する整数に基づいて、複数のドット・ポジションの中の他のドット・ポジションを決定することができる。ここの「隣接する」整数とは、整数Ｓ０と数値が近い整数を指す。また、本開示の実施形態によれば、他のドット・ポジションの中の１ドット・ポジションを決定するように、ドット・ポジションを表す整数に対してインクリメント操作を実行することができる。また、本開示の実施形態によれば、他のドット・ポジションの中の１ドット・ポジションを決定するように、ドット・ポジションを表す整数に対してデクリメント操作を実行することができる。例えば、仮にS0の値が３であるとすると、インクリメントにより隣接する他の整数３＋１＝４、デクリメントにより隣接する他の整数３−１＝２が得られる。
【００４５】
本開示の実施形態によれば、ドット・ポジションの近傍の複数のドット・ポジションを考慮することにより、複数のドット・ポジションに基づいて実現された量子化プロセスの量子化効果を比較し、その上、１グループの量子化待ちデータに最も適したドット・ポジションを複数のドット・ポジションから選択することができる。式３のみに基づいて、１ドット・ポジションを決定する技術案に対しては、本発明の実施形態によれば、量子化プロセスの精度を向上させることができる。
【００４６】
以下、図７を参照しながら本発明の実施形態に係るより多くの細部を詳しく説明する。図７は、本開示の実施形態に係る異なるドット・ポジションに基づく異なる量子化案を示す模式図７００である。図７に示すように、第１の量子化案においては、小数点が図7に示した第１の位置７１０にある。この第１のドット・ポジション７１２は、上記の式３に従って決定され得る。次いで、第１のドット・ポジション７１２に対してデクリメント操作を実行することにより、第２のドット・ポジション７２２を決定することができ、このとき、小数点が左向きに第２のドット・ポジション７２０までに移動する。
【００４７】
１ドット・ポジションを決定するように、図７は、第１のドット・ポジション７１２に対して１デクリメント操作を実行することを概略的に示すだけであることが理解されるべく。本開示の実施形態によれば、より多くのドット・ポジションを決定するように、第１のドット・ポジション７１２に対して、インクリメント操作および/またはデクリメント操作をそれぞれ実行することもできる。本開示の実施形態によれば、より多くのドット・ポジションを決定するように、より多くのインクリメント・デクリメント操作が実行されてもよい。例えば、Ｓ１＝ Ｓ０＋１、Ｓ２＝Ｓ０−１、Ｓ３＝Ｓ０＋２、Ｓ４＝Ｓ０−２などの異なるドット・ポジションをそれぞれ決定することができる。
【００４８】
2022502724.tif 000004
【００４９】
上記のFxは、１グループの量子化待ちデータ中の１量子化待ちデータのみを表し、１グループの量子化後のデータは、さらに複数(例えば、ｍ個)の量子化待ちデータが存在してもよいことを理解されるべく。このとき、対応する量子化後のデータが得られるように、上記のプロセスに基づいて、各々の量子化待ちデータに対して処理を行なうことができる。このとき、各ドット・ポジションに基づいて、対応する１グループの量子化後のデータ(ｍ個)が得られる。
【００５０】
ブロック５３０においては、１グループの量子化待ちデータの量子化に用いるように、複数グループの量子化後のデータの中の各グループの量子化後のデータと１グループの量子化待ちデータとの間の差に基づいて、複数のドット・ポジションから１ドット・ポジションを選択することができる。本願発明者は、研究および多くの実験により、量子化前後のデータの差が量子化前後の精度損失を反映することができ、ここで、差が小さければ小さいほど、量子化操作の精度損失が小さくなることを見付けた。よって、本開示の実施形態においては、量子化前後のデータの差を、最適なドット・ポジションを選択する指標とし、従来の案よりも小さい精度を実現することができる。
【００５１】
2022502724.tif 000005
【００５２】
2022502724.tif 000006
【００５３】
例えば、ドット・ポジションＳ０について、このドット・ポジションＳ０を用いて量子化操作を行なう前後のデータ間のｍ個の差を決定することができる。次いで、例えば、このｍ個の差の和を求め(代替的に及び/又は追加的に、他の演算が使用されてもよい)、ドット・ポジションＳ０に対する差Ｄｉｆｆ０が得られる。同様に、他のドット・ポジションＳ１、Ｓ２、Ｓ３、Ｓ４などに対する差Ｄｉｆｆ１、Ｄｉｆｆ２、Ｄｉｆｆ３、Ｄｉｆｆ４などがそれぞれ得られる。
【００５４】
本開示の実施形態によれば、量子化操作が行なわれるように、複数の差から最小の差を選択し、しかも複数のドット・ポジションから最小の差に対応する１ドット・ポジションを選択することできる。例えば、仮にドット・ポジションＳ１に基づいて決定された差Ｄｉｆｆ１が最小の差であるとすると、後続の量子化処理に用いられるように、ドット・ポジションＳ１を選択することができる。
【００５５】
2022502724.tif 000007
【００５６】
なお、式６および式７においては、Ｆｍｅａｎは、１グループの量子化待ちデータの平均値を表し、Ｆｍｅａｎは、１グループの量子化後のデータの平均値を表す。具体的には、上記の式６または式７に基づいて、ドット・ポジションS0に対する差Diff0が得られる。同様に、他のドット・ポジションＳ１、Ｓ２、Ｓ３、Ｓ４などに対する差Ｄｉｆｆ１、Ｄｉｆｆ２、Ｄｉｆｆ３、Ｄｉｆｆ４などがそれぞれ得られる。次いで、量子化操作が行なわれるように、複数のドット・ポジションＳ０、Ｓ１、Ｓ２、Ｓ３、Ｓ４から最小の差に対応する1つのドット・ポジションを選択することができる。平均値法を採用することで、１グループの量子化待ちデータの中の各々の量子化待ちデータに対して量子化前後の差を決定する必要がないため、データ処理効率を向上させ、さらにドット・ポジションの決定速度を向上させることができる。
【００５７】
以上、処理中に関連した複数の式について説明したが、以下、図８を参照しながらデータ処理の具体的なフローを説明する。図８は、本開示の実施形態に係るデータを処理するための方法８００を示すフローチャートである。ブロック８１０においては、１グループの量子化待ちデータに関連した範囲に基づいて、第１のドット・ポジション(例えば、S0)を取得すことができる。ここで、点位置S0は、式３に基づいて得られる。ブロック８２０においては、第１のドット・ポジションに対してインクリメント/デクリメント操作を実行することにより、第２のドット・ポジション(例えば、S1=S0＋1)を取得することができる。
【００５８】
ブロック８３０においては、第１グループの量子化後のデータと第２グループの量子化後のデータは、第１のドット・ポジションS0と第２のドット・ポジションS1に基づいてそれぞれ決定され得る。具体的には、1グループの量子化待ちデータの中の各々の量子化待ちデータについて、式２に基づいて、対応する量子化データが得られる。ブロック８４０においては、第１グループの量子化後のデータおよび第２グループの量子化後のデータと１グループの量子化待ちデータとの間の第１の差Diff0と第２の差Diff1が、それぞれ決定され得る。例えば、第１の差Diff0と第２の差Diff1が、数式４乃至式７のうちの何れか1つに基づいて決定され得る。ブロック８５０においては、第１の差Diff0と第２の差Diff1を比べ、第１の差が第２の差よりも小さい場合、第１のドット・ポジションを選択するように、方法８００は、ブロック８５２までに進む。第１の差が第２の差よりも大きい(または等しい)場合、第２のドット・ポジションを選択するように、方法８００は、ブロック８５４までに進む。破線ブロック８６０に示すように、選択されたドット・ポジションは、量子化待ちデータに対する量子化処理を実行するに用いられれる。
【００５９】
ブロック８６０においては、量子化処理は、元の１グループの量子化待ちデータに対して実行され得ることが理解されるべく。後続の量子化待ちデータの分布が元の１グループの量子化待ちデータの分布と類似している場合、さらに後続の他のグループの量子化待ちデータに対して量子化処理を行なうこともできる。以下、ニューラル・ネットワーク・モデルの具体的な応用環境について説明する。本開示の実施形態によれば、１グループの量子化待ちデータは、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含むことができる。高い複雑さを有する浮動小数点数を低い複雑さを有する浮動小数点数に変換するように、量子化操作は、選択されたドット・ポジションを用いて実行され得る。本開示の実施形態によれば、１グループの量子化後のデータが得られるように、１グループの量子化待ちデータを、選択されたドット・ポジションを用いて量子化する。具体的には、選択されたドット・ポジションに基づいて、１グループの量子化待ちデータを１グループの量子化後のデータにマッピングし、１グループの量子化後のデータ中の小数点の位置が選択されたドット・ポジションに決定される。仮に選択されたドット・ポジションを４であるとすると、量子化プロセスにおいては、量子化後のデータの整数部を４ビットで表すことができる。次いで、処理するために、得られた１グループの量子化後のデータは、ニューラル・ネットワーク・モデルに入力され得る。
【００６０】
本開示の実施形態によれば、選択されたドット・ポジションを用いて、後続の他の量子化待ちデータに対して量子化することができる。具体的には、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含む、別の１グループの量子化待ちデータが得られる。別の１グループの量子化後のデータが得られるように、別の１グループの量子化待ちデータを、選択されたドット・ポジションを用いて量子化し、しかも処理のために、得られた別の１グループの量子化後のデータは、ニューラル・ネットワーク・モデルに入力され得る。
【００６１】
なお、前述した各々の方法の実施形態について、説明を簡単にするために、それらを一連の動作の組合せとして表現したが、当業者であれば、本開示に従い、あるステップが他の序をとることができ、または同時に行われることができるため、本開示は記載される動作の順によって限定されないことを理解するべく。次に、当業者であれば、明細書に記載される実施形態が何れも選択可能な実施形態に属し、関連した動作及びモジュールが本開示に必要なものではないことを理解するべく。
【００６２】
なお、フローチャート中の各々のステップが矢印の指示に従って順に表示されているが、これらのステップが矢印の指示の順に順次実行されることは必須ではない。これらのステップの実行は、本文に明示的に記載されていない限り、厳密な順序の制限はなく、他の順序で実行されてもよい。しかもフローチャート中の少なくとも一部のステップは、複数のサブ・ステップまたは複数の段階を含んでもよく、これらのサブ・ステップまたは段階は、必ずしも同じ時点で実行完了する必要はなく、異なる時点で実行してもよく、これらのサブ・ステップまたは段階の実行順序も、必ずしも順次行なう必要はなく、他のステップまたは他のステップのサブ・ステップまたは段階の少なくとも一部と順番にまたは交替に実行してもよい。
【００６３】
図９は、本開示の実施形態に係るデータを処理するための装置９００を示すブロック図である。図９に示すように、装置９００は、取得ユニット９１０、決定ユニット９２０、および選択ユニット９３０を備える。取得ユニット９１０は、機械学習モデルに用いられる１グループの量子化待ちデータを取得する。決定ユニット９２０は、１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定し、ここで、複数のドット・ポジションの各々のドット・ポジションには、複数グループの量子化後のデータの小数点の位置を指定する、１グループの量子化待ちデータの量子化に用いるように、選択ユニット９３０は、複数グループの量子化後のデータの各グループの量子化後のデータと１グループの量子化待ちデータとの間の差に基づいて、複数のドット・ポジションから１ドット・ポジションを選択する。
【００６４】
また、装置９００中の取得ユニット９１０、決定ユニット９２０、および選択ユニット９３０は、本開示の各々の実施形態に係るステップ、および/または動作を実行するように配置されてもよい。
【００６５】
上記の装置の実施形態が単なる例であり、本開示の装置は更に他の式で実現されてもよいことが理解されるべく。例えば上記の実施形態で説明したユニット/モジュールの分割は、一つの論理的機能の分割のみであったが、実際に実現する場合には別の分割式があってもよい。例えば複数ユニット、モジュール、またはサブアセンブリーが組み合わせてもよく、別のシステムに統合されてもよく、または幾つかの特徴は、省略されてもよく、または実行されなくてもよい。
【００６６】
また、特に説明しない限り、本開示の各実施形態中の各機能ユニット/モジュールは、1つのユニット/モジュールに統合されてもよく、各ユニット/モジュールが物理的にそれぞれ存在してもよく、２つ以上のユニット/モジュールが統合されてもよい。上記統合されたユニット/モジュールは、ハードウェアの形態で実現されてもよく、ソフトウェア・プログラム・モジュールの形態で実現されてもよい。
【００６７】
統合されたユニット/モジュールがハードウェアの形態で実現される場合、このハードウェアは、デジタル回路、アナログ回路などであり得る。ハードウェア構造の物理的な実現は、トランジスタ、メモリスタなどを備えるが、これらに限定されない。人工知能プロセッサは、特に説明しない限り、例えばＣＰＵ、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、およびＡＳＩＣなどの任意の適切なハードウェア・プロセッサであってもよい。メモリユニットは、特に説明しない限り、例えば抵抗ランダム・アクセス・メモリＲＲＡＭ（登録商標）(Ｒｅｓｉｓｔｉｖｅ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ)、ダイナミック・ランダム・アクセス・メモリＤＲＡＭ(Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ)、スタティック・ランダム・アクセス・メモリＳＲＡＭ (Ｓｔａｔｉｃ Ｒａｎｄｏｍ−Ａｃｃｅｓｓ Ｍｅｍｏｒｙ)、強化ダイナミック・ランダム・アクセス・メモリＥＤＲＡＭ（Ｅｎｈａｎｃｅｄ Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、高帯域幅メモリＨＢＭ (Ｈｉｇｈ−Ｂａｎｄｗｉｄｔｈ Ｍｅｍｏｒｙ)、およびハイブリッド・メモリ立方体ＨＭＣ(Ｈｙｂｒｉｄ Ｍｅｍｏｒｙ Ｃｕｂｅ)などの任意の適切な磁気または光磁気記憶媒体であり得る。
【００６８】
統合されたユニット/モジュールがソフトウェア・プログラム・モジュールの形態で実現され、独立した製品として販売または使用される場合、１つのコンピュータ可読メモリに記憶され得る。このような理解に基づいて、本開示の技術案は、本質的に、または、従来の技術に貢献した部分、または、この技術案の全部または部分をソフトウェア製品の形態で具体化することができ、このコンピューター・ソフトウェア製品は１つのメモリに記憶され、本開示の各々の実施形態で説明される方法の全部または部分のステップを、１台の演算装置(パーソナル・コンピュータ、サーバ、またはネットワーク装置などであってもよい)に実行させるための若干の命令を含む。前記メモリは、Ｕディスク、読取専用メモリ(Ｒｅａｄ−Ｏｎｌｙ Ｍｅｍｏｒｙ ＲＯＭ)、ランダム・アクセス・メモリ(Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ ＲＡＭ)、移動ハードディスク、磁気ディスク、または光ディスクなどの各々のプログラム・コードを記憶可能な媒体を含む。
【００６９】
１つの実施形態においては、コンピュータプログラムが記憶されるコンピュータ可読記憶媒体は開示され、コンピュータプログラムが実行されると、本開示の各々の実施形態による方法は実現される。
１つの実施形態においては、データを処理するための装置を備える人工知能チップは更に開示される。
【００７０】
１つの実施形態においては、記憶装置、インターフェース装置、制御装置、および人工知能チップを備えるボートカードは開示される。ここで、人工知能チップは記憶装置、制御装置、およびインターフェース装置にそれぞれ接続され、記憶装置はデータを記憶し、インターフェース装置は人工知能チップと外部装置との間のデータ伝送を実現し、および制御装置は人工知能チップの状態を監視制御する。
【００７１】
図１０は、本開示の実施形態に係るボートカード１０００を示す構造ブロック図である。図１０に示すように、前記ボートカード１０００は前記チップ１０３０−１と１０３０−２(総称してチップ１０３０という)に加えて、更に他の組合せコンポネントを備え、この組合せコンポネントは、記憶装置１０１０、インターフェース装置１０４０、およびコントロール装置１０２０を備えるが、これらに限られない。インターフェース装置１０４０は、外部装置１０６０に接続され得る。記憶装置１０１０は、データを記憶するための、バス１０５０を介して人工知能チップ１０３０に接続される。記憶装置１０１０は、複数グループの記憶ユニット１０１０−１と１０１０−２を備え得る。各グループの記憶ユニットは、バス１０５０を介して人工知能チップに接続される。各グループの記憶ユニットは、ＤＤＲ  ＳＤＲＡＭ(英語：Ｄｏｕｂｌｅ Ｄａｔａ Ｒａｔｅ ＳＤＲＡＭ ダブルレート同期ダイナミック・ランダム・アクセス・メモリ)とすることができることが理解されるべく。
【００７２】
ＤＤＲは、クロック周波数を上げることなく、ＳＤＲＡＭの速度を２倍に上げることができる。ＤＤＲは、クロックパルスの立ち上がりと立ち下がりでデータを読み出すことができる。ＤＤＲの速度は、基準ＳＤＲＡＭの２倍である。１つの実施形態においては、記憶装置は、４グループの記憶ユニットを含んでもよい。各１グループの記憶ユニットは、複数のＤＤＲ４粒子(チップ)を備え得る。１つの実施形態においては、人工知能チップの内部には、データを伝送するための６４ビットとＥＣＣ検証を行なうための８ビットとを備える４つ計７２ビットのＤＤＲ４コントローラを含んでもよい。各１グループのメモリユニットにおいては、ＤＤＲ４−３２００粒子を採用するとき、データ伝送の理論帯域を２５６００ＭＢ／ｓに達することが理解されるべく。
【００７３】
１つの実施形態においては、各グループの記憶ユニットは、並列に配置されている複数のダブルレート同期ダイナミック・ランダム・アクセス・メモリを備える。ＤＤＲは、１クロック・サイクルおいて、２回のデータ伝送が可能である。チップには、各々の記憶ユニットのデータ伝送とデータ記憶の制御を行なうためのＤＤＲを制御するコントローラが設けられている。
【００７４】
インターフェース装置は、人工知能チップと電気的に接続されている。インターフェース装置は、人工知能チップと外部装置(例えば、サーバ又はコンピュータ)との間のデータ伝送を可能にする。例えば１つの実施形態においては、インターフェース装置は、基準ＰＣＩＥインターフェースであってもよい。例えば基準ＰＣＩＥインターフェースを介して、処理待ちのデータをサーバからチップまでに伝送されることにより、データの伝送が実現される。好ましくは、理論帯域幅は、ＰＣＩＥ３.０Ｘ１６インターフェースを用いて伝送される場合、１６０００ＭＢ／ｓに達することができる。他の実施形態においては、インターフェース装置は、他のインターフェースであってもよく、本開示は、上記の他のインターフェースの具体的な表現式を限定せず、インターフェースユニットが、スイッチャー機能を実現できればよい。また、人工知能チップの演算結果は、依然としてインターフェース装置によって外部装置(例えば、サーバ)までに送り返される。
【００７５】
制御装置は、人工知能チップと電気的に接続されている。制御装置は、人工知能チップの状態を監視制御する。具体的には、人工知能チップおよび制御装置は、ＳＰＩインターフェースを介して電気的に接続され得る。制御装置は、マイクロ・コントローラー・ユニット(Ｍｉｃｒｏ Ｃｏｎｔｒｏｌｌｅｒ Ｕｎｉｔ ＭＣＵ)を含んでもよい。例えば人工知能チップは、複数の処理チップ、複数の処理コア、または複数の処理回路を含んでもよく、複数の負荷を動かしても良い。よって、人工知能チップは、重負荷及び軽負荷などの異なる動作状態にあってもよい。制御装置によって、人工知能チップおけるの複数の処理チップ、複数の処理、および/または複数の処理回路の動作状態の調整制御が可能になる。
【００７６】
1つの可能な実施態様においては、上記の人工知能チップを備える電子デバイスは開示される。電子デバイスは、データ処理装置、ロボット、コンピュータ、プリンタ、スキャナ、タブレット、スマートフォン、携帯電話、ドライブレコーダ、ナビゲーションメータ、センサ、カメラヘッド、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクタ、腕時計、イヤホン、モバイルストレージ、ウェアラブル・デバイス、交通機関、家庭用電気器具、および/または医療装置を備える。
【００７７】
交通機関は、航空機、船舶、および/または車両を備え、家庭用電気器具は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガス焜炉、油煙器を備え、医療装置は、核磁気共振器、超音波スキャナー、および/または心電計を備える。
【００７８】
上記の実施形態においては、各実施形態に対する説明はそれぞれ重点があり、ある実施形態には詳細な説明がない場合、他の実施形態の中の関連説明を参照することができる。上記の実施形態の各技術特徴は、任意に組み合わせることができ、記載を簡潔にするために、上記の実施形態の中の各技術特徴の全ての可能な組合せを記載していないが、これらの技術特徴の組合せに矛盾が生じない限り、本明細書に記載の範囲と見なされるべく。
以下の条項によって前述した内容をより良く理解され得る。
Ａ１．データを処理するための方法であって、
機械学習モデルに用いられる１グループの量子化待ちデータを取得するステップと、
【００７９】
１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するステップであって、複数のドット・ポジションの各々のドット・ポジションは、複数グループの量子化後のデータ中の小数点の位置を指定するステップと、
【００８０】
１グループの量子化待ちデータの量子化に用いるように、複数グループの量子化後のデータの中の各グループの量子化後のデータと１グループの量子化待ちデータとの間の差に基づいて、複数のドット・ポジションから１ドット・ポジションを選択するステップと、を含むことを特徴とする前記方法。
Ａ２．条項Ａ１に記載の方法であって、複数のドット・ポジションの各々は整数で表され、方法は、
１グループの量子化待ちデータに関連した範囲に基づいて、複数のドット・ポジションの中の１ドット・ポジションを取得するステップと、
【００８１】
取得したドット・ポジションに隣接する整数に基づいて、複数のドット・ポジションの中の他のドット・ポジションを決定するステップと、をさらに含むことを特徴とする前記方法。
Ａ３．条項Ａ２に記載の方法であって、複数のドット・ポジションの中の他のドット・ポジションを決定するステップは、
ドット・ポジションを表す整数をインクリメントすることによって、他のドット・ポジションの中の１ドット・ポジションを決定するステップと、
【００８２】
ドット・ポジションを表す整数をデクリメントすることによって、他のドット・ポジションの中の１ドット・ポジションを決定するステップと、を含むことを特徴とする前記方法。
Ａ４．条項Ａ１乃至Ａ３の何れか１項に記載の方法であって、複数のドット・ポジションから１ドット・ポジションを選択するステップは、
複数グループの量子化後のデータと１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップと、
複数の差から最小の差を選択するステップと、
複数のドット・ポジションから最小の差に対応する１ドット・ポジションを選択するステップと、を含むことを特徴とする前記方法。
Ａ５．条項Ａ４に記載の方法であって、複数グループの量子化後のデータと１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップは、
【００８３】
複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、所定の１グループの量子化後のデータと１グループの量子化待ちデータとの間の１グループの相対の差をそれぞれ決定するステップと、
１グループの相対の差に基づいて、複数の差の中の１つの差を決定するステップと、を含むことを特徴とする前記方法。
Ａ６．条項Ａ４に記載の方法であって、複数グループの量子化後のデータと１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップは、
【００８４】
複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、所定の１グループの量子化後のデータの量子化平均値と１グループの量子化待ちデータの元の平均値とをそれぞれ決定するステップと、
量子化平均値と元の平均値とに基づいて、複数の差の中の１つの差を決定するステップと、を含むことを特徴とする前記方法。
【００８５】
Ａ７．条項Ａ１乃至Ａ６の何れか１項に記載の方法であって、１グループの量子化待ちデータは、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含み、前記方法は、
【００８６】
１グループの量子化待ちデータを、選択されたドット・ポジションを用いて量子化することによって、１グループの量子化後のデータが得るステップであって、１グループの量子化待ちデータを量子化することは、選択されたドット・ポジションに基づいて、１グループの量子化待ちデータを１グループの量子化後のデータにマッピングすることを含み、１グループの量子化後のデータ中の小数点の位置は、選択されたドット・ポジションに決定されるものであるステップと、
【００８７】
得られた１グループの量子化後のデータをニューラル・ネットワーク・モデルに入力することによって、処理に用いるステップと、をさらに含むことを特徴とする前記方法。
Ａ８．条項Ａ１乃至Ａ６の何れか１項に記載の方法であって、前記方法は、
ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含む、別のグループの量子化待ちデータを取得するステップと、
【００８８】
別のグループの量子化後のデータが得られるように、別のグループの量子化待ちデータを、選択されたドット・ポジションを用いて量子化するステップであって、別のグループの量子化待ちデータを量子化することは、選択されたドット・ポジションに基づいて、別のグループの量子化待ちデータを別のグループの量子化後のデータにマッピングすることを含み、別のグループの量子化後のデータ中の小数点の位置が選択されたドット・ポジションに決定されるものであるステップと、
【００８９】
得られた別のグループの量子化後のデータをニューラル・ネットワーク・モデルに入力することによって、処理に用いるステップと、をさらに含むことを特徴とする前記方法。
Ａ９．データを処理するための装置であって、
機械学習モデルに用いられる１グループの量子化待ちデータを取得するための取得ユニットと、
【００９０】
１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するための決定ユニットであって、複数のドット・ポジションの各々は、複数グループの量子化後のデータ中の小数点の位置を指定する決定ユニットと、
【００９１】
１グループの量子化待ちデータの量子化に用いるように、複数グループの量子化後のデータの中の各グループの量子化後のデータと１グループの量子化待ちデータとの間の差に基づいて、複数のドット・ポジションから１ドット・ポジションを選択するための選択ユニットと、を備えることを特徴とする前記装置。
Ａ１０．条項Ａ９に記載の装置であって、複数のドット・ポジションの各々は整数で表され、前記装置は、
【００９２】
１グループの量子化待ちデータに関連した範囲に基づいて、複数のドット・ポジションの中の１ドット・ポジションを取得するためのドット・ポジション取得ユニットと、
【００９３】
得られたドット・ポジションに隣接する整数に基づいて、複数のドット・ポジションの中の他のドット・ポジションを決定するためのドット・ポジション決定ユニットと、をさらに備えることを特徴とする前記装置。
Ａ１１．条項Ａ１０に記載の装置であって、ドット・ポジション決定ユニットは、
【００９４】
ドット・ポジションを表す整数をインクリメントすることによって、他のドット・ポジションの中の１ドット・ポジションを決定するためのインクリメントユニットと、
【００９５】
ドット・ポジションを表す整数をデクリメントすることによって、他のドット・ポジションの中の１ドット・ポジションを決定するためのデクリメントユニットと、を備えることを特徴とする前記装置。
Ａ１２．条項Ａ９乃至Ａ１１の何れか１項に記載の装置であって、選択モジュールは、
複数グループの量子化後のデータと１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するための差決定ユニットと、
複数の差から最小の差を選択するための差選択ユニットと、
【００９６】
複数のドット・ポジションから最小の差に対応する１ドット・ポジションを選択するためのドット・ポジション選択ユニットと、を備えることを特徴とする前記装置。
Ａ１３．条項Ａ１２に記載の装置であって、差決定ユニットは、
複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対するための相対差決定ユニットと、
所定の１グループの量子化後のデータと１グループの量子化待ちデータとの間の１グループの相対差をそれぞれ決定するための総体差決定ユニットと、
１グループの相対差に基づいて、複数の差の中の１つの差を決定することと、を備えることを特徴とする前記装置。
Ａ１４．条項Ａ１２に記載の装置であって、差決定ユニットは、
【００９７】
複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、所定の１グループの量子化後のデータの量子化平均値と１グループの量子化待ちデータの元の平均値とをそれぞれ決定する平均値決定ユニットと、
量子化平均値と元の平均値とに基づいて、複数の差の中の１つの差を決定する平均値差決定ユニットと、を備えることを特徴とする前記装置。
【００９８】
Ａ１５．条項Ａ９乃至Ａ１４の何れか１項に記載の装置であって、１グループの量子化待ちデータは、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含み、前記装置は、
【００９９】
１グループの量子化待ちデータを、選択されたドット・ポジションを用いて量子化することによって、１グループの量子化後のデータが得るための量子化ユニットであって、１グループの量子化待ちデータを量子化することは、選択されたドット・ポジションに基づいて、１グループの量子化待ちデータを１グループの量子化後のデータにマッピングすることを含み、１グループの量子化後のデータ中の小数点の位置は、選択されたドット・ポジションに決定されるものである量子化ユニットと、
【０１００】
得られた１グループの量子化後のデータをニューラル・ネットワーク・モデルに入力することによって、処理に用いるための入力ユニットと、をさらに備えることを特徴とする前記装置。
Ａ１６．条項Ａ９乃至Ａ１４の何れか１項に記載の装置であって、前記装置は、
ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含む、別のグループの量子化待ちデータを取得するデータ取得ユニットと、
【０１０１】
別のグループの量子化待ちデータを、選択されたドット・ポジションを用いて量子化することによって、別のグループの量子化後のデータが得るための量子化ユニットであって、別のグループの量子化待ちデータを量子化することは、選択されたドット・ポジションに基づいて、別のグループの量子化待ちデータを別のグループの量子化後のデータにマッピングすることを含み、別のグループの量子化後のデータ中の小数点の位置は、選択されたドット・ポジションに決定されるものである量子化ユニットと、
【０１０２】
得られた別のグループの量子化後のデータをニューラル・ネットワーク・モデルに入力することによって、処理に用いるための入力ユニットと、をさらに備えることを特徴とする前記装置。
【０１０３】
Ａ１７．コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されており、コンピュータプログラムが実行されると、条項Ａ１乃至Ａ８の何れか１項に記載の方法を実現することを特徴するコンピュータ可読記憶媒体。
【０１０４】
Ａ１８．人工知能チップであって、前記人工知能チップは、条項Ａ９乃至Ａ１６の何れか１項に記載のデータを処理するための装置を備えることを特徴とする前記人工知能チップ。
Ａ１９．電子デバイスであって、電子デバイスは条項Ａ１８に記載の人工知能チップを備えることを特徴とする前記電子デバイス。
Ａ２０．ボートカードであって、記憶装置と、インターフェース装置と、制御装置と、条項１８に記載の人工知能チップと、を備え、
ここで、人工知能チップは、記憶装置、制御装置、および、インターフェース装置に接続され、
記憶装置はデータを記憶し、
インターフェース装置は人工知能チップと外部装置との間のデータ伝送を実現し、
制御装置は人工知能チップの状態を監視制御することを特徴とする前記ボートカード。
Ａ２１．条項Ａ２０に記載のボートカードであって、
【０１０５】
記憶装置は、各グループの記憶ユニットがバスによって人工知能チップに接続される複数グループの記憶ユニットを備え、記憶ユニットは、ＤＤＲ  ＳＤＲＡＭであり、
チップは、各々のメモリユニットのデータ伝送とデータ記憶とを制御するためのＤＤＲコントローラーを備え、
インターフェース装置は、基準ＰＣＩＥインターフェースであることを特徴とする前記ボートカード。
【０１０６】
上記のように、本開示の実施形態に対して詳細に説明した。本文においては、本開示の原理及び実施形態について、具体的な例を用いて説明し、上記の実施形態の説明が本開示の方法及びその中心思想に対する理解を助けるだけためである。同時に、当業者が本発明の思想に基づいて行なった本開示の具体的な実施形態および応用範囲での変形または変更は、本発明の保護請求する範囲に属する。上記の内容を纏めて、本明細書の内容は、本開示を限定するものと理解されるべきではない。
【図１】
2022502724.tif 000008
【図２】
2022502724.tif 000009
【図３】
2022502724.tif 000010
【図４】
2022502724.tif 000011
【図５】
2022502724.tif 000012
【図６】
2022502724.tif 000013
【図７】
2022502724.tif 000014
【図８】
2022502724.tif 000015
【図９】
2022502724.tif 000016
【図１０】
2022502724.tif 000017
【手続補正書】
【提出日】令和2年11月16日(2020.11.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを処理するための方法であって、
機械学習モデルに用いられる１グループの量子化待ちデータを取得するステップと、
前記１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するステップであって、前記複数のドット・ポジションの各々は、前記複数グループの量子化後のデータ中の小数点の位置を指定するステップと、
前記１グループの量子化待ちデータの量子化に用いるように、前記複数グループの量子化後のデータの中の各グループの量子化後のデータと前記１グループの量子化待ちデータとの間の差に基づいて、前記複数のドット・ポジションから１ドット・ポジションを選択するステップと、を含む
ことを特徴とする前記方法。
【請求項２】
前記複数のドット・ポジションの各々は整数で表され、
前記方法は、
前記１グループの量子化待ちデータに関連した範囲に基づいて、前記複数のドット・ポジションの中の１ドット・ポジションを取得するステップと、
得られた前記ドット・ポジションに隣接する整数に基づいて、前記複数のドット・ポジションの中の他のドット・ポジションを決定するステップと、をさらに含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のドット・ポジションの中の他のドット・ポジションを決定するステップは、
前記ドット・ポジションを表す前記整数をインクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するステップと、
前記ドット・ポジションを表す前記整数をデクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するステップと、の中の少なくとも１つを含む
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記複数のドット・ポジションから１ドット・ポジションを選択するステップは、
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップと、
前記複数の差から最小の差を選択するステップと、
前記複数のドット・ポジションから前記最小の差に対応する１ドット・ポジションを選択するステップと、を含む
ことを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項５】
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップは、
前記複数グループの量子化後のデータの所定の１グループの量子化後のデータに対して、前記所定の１グループの量子化後のデータと前記１グループの量子化待ちデータとの間の１グループの相対差をそれぞれ決定するステップと、
前記１グループの相対差に基づいて、前記複数の差の中の１つの差を決定するステップと、を含む
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するステップは、
前記複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、前記１グループの量子化後のデータの量子化平均値と前記１グループの量子化待ちデータの元の平均値とをそれぞれ決定するステップと、
前記量子化平均値と前記元の平均値とに基づいて、前記複数の差の中の１つの差を決定するステップと、を含む
ことを特徴とする請求項４に記載の方法。
【請求項７】
前記１グループの量子化待ちデータは、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含み、
前記方法は、
前記１グループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、１グループの量子化後のデータを得るステップであって、前記１グループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記１グループの量子化待ちデータを前記１グループの量子化後のデータにマッピングすることを含み、前記１グループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものであるステップと、
得られた前記１グループの量子化後のデータをニューラル・ネットワーク・モデルに入力することによって、処理に用いるステップと、をさらに含む
ことを特徴とする請求項１乃至６の何れか１項に記載の方法。
【請求項８】
ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含む、別のグループの量子化待ちデータを取得するステップと、
前記別のグループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、別のグループの量子化後のデータを得るステップであって、前記別のグループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記別のグループの量子化待ちデータを前記別のグループの量子化後のデータにマッピングすることを含み、前記別のグループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものであるステップと、
得られた前記別のグループの量子化後のデータを前記ニューラル・ネットワーク・モデルに入力することによって、処理に用いるステップと、をさらに含む
ことを特徴とする請求項１乃至６の何れか１項に記載の方法。
【請求項９】
データを処理するための装置であって、
機械学習モデルに用いられる１グループの量子化待ちデータを取得するための取得ユニットと、
前記１グループの量子化待ちデータを、複数のドット・ポジションを用いてそれぞれ量子化することにより、複数グループの量子化後のデータを決定するための決定ユニットであって、前記複数のドット・ポジションの各々は、前記複数グループの量子化後のデータ中の小数点の位置を指定する決定ユニットと、
前記１グループの量子化待ちデータの量子化に用いるように、前記複数グループの量子化後のデータの中の各グループの量子化後のデータと前記１グループの量子化待ちデータとの間の差に基づいて、前記複数のドット・ポジションから１ドット・ポジションを選択するための選択ユニットと、を備え、
ことを特徴とする前記装置。
【請求項１０】
前記複数のドット・ポジションの各々は整数で表され、
前記装置は、
前記１グループの量子化待ちデータに関連した範囲に基づいて、前記複数のドット・ポジションの中の１ドット・ポジションを取得するためのドット・ポジション取得ユニットと、
得られた前記ドット・ポジションに隣接する整数に基づいて、前記複数のドット・ポジションの中の他のドット・ポジションを決定するためのドット・ポジション決定ユニットと、をさらに備える
ことを特徴とする請求項９に記載の装置。
【請求項１１】
前記ドット・ポジション決定ユニットは、
前記ドット・ポジションを表す前記整数をインクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するためのインクリメントユニットと、
前記ドット・ポジションを表す前記整数をデクリメントすることによって、前記他のドット・ポジションの中の１ドット・ポジションを決定するためのデクリメントユニットと、を備える
ことを特徴とする請求項１０に記載の装置。
【請求項１２】
選択モジュールは、
前記複数グループの量子化後のデータと前記１グループの量子化待ちデータとの間の複数の差をそれぞれ決定するための差決定ユニットと、
前記複数の差から最小の差を選択するための差選択ユニットと、
前記複数のドット・ポジションから前記最小の差に対応する１ドット・ポジションを選択するためのドット・ポジション選択ユニットと、を備える
ことを特徴とする請求項９乃至１１の何れか１項に記載の装置。
【請求項１３】
前記差決定ユニットは、
前記複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、前記所定の１グループの量子化後のデータと前記１グループの量子化待ちデータとの間の１グループの相対差をそれぞれ決定するための相対差決定ユニットと、
前記１グループの相対差に基づいて、前記複数の差の中の１つの差を決定するための総体差決定ユニットと、を備える
ことを特徴とする請求項１２に記載の装置。
【請求項１４】
前記差決定ユニットは、
前記複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、前記所定の１グループの量子化後のデータの量子化平均値と前記１グループの量子化待ちデータの元の平均値とをそれぞれ決定するための平均値決定ユニットと、
前記量子化平均値と前記元の平均値とに基づいて、前記複数の差の中の１つの差を決定するための平均値差決定ユニットと、を備える
ことを特徴とする請求項１２に記載の装置。
【請求項１５】
前記１グループの量子化待ちデータは、ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含み、
前記装置は、
前記１グループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、１グループの量子化後のデータが得るための量子化ユニットであって、前記１グループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記１グループの量子化待ちデータを前記１グループの量子化後のデータにマッピングすることを含み、前記１グループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものである量子化ユニットと、
得られた前記１グループの量子化後のデータを前記ニューラル・ネットワーク・モデルに入力することによって、処理に用いるための入力ユニットと、をさらに備える
ことを特徴とする９乃至１４の何れか１項に記載の装置。
【請求項１６】
前記装置は、
ニューラル・ネットワーク・モデル中の１グループの浮動小数点数を含む、別のグループの量子化待ちデータを取得するためのデータ取得ユニットと、
前記別のグループの量子化待ちデータを、選択された前記ドット・ポジションを用いて量子化することによって、別のグループの量子化後のデータが得るための量子化ユニットであって、前記別のグループの量子化待ちデータを量子化することは、選択された前記ドット・ポジションに基づいて、前記別のグループの量子化待ちデータを前記別のグループの量子化後のデータにマッピングすることを含み、前記別のグループの量子化後のデータ中の小数点の位置は、選択された前記ドット・ポジションによって決定されるものである量子化ユニットと、
得られた前記別のグループの量子化後のデータを前記ニューラル・ネットワーク・モデルに入力することによって、処理に用いるための入力ユニットと、をさらに備える
ことを特徴とする請求項９乃至１４の何れか１項に記載の装置。
【請求項１７】
コンピュータ可読記憶媒体であって、
前記コンピュータ可読記憶媒体には、コンピュータプログラムが記憶されており、前記コンピュータプログラムが実行されると、請求項１乃至８の何れか１項に記載の方法を実現する
ことを特徴するコンピュータ可読記憶媒体。
【請求項１８】
人工知能チップであって、
前記チップに請求項９乃至１６の何れか１項に記載のデータを処理するためのユニットを備える
ことを特徴とする前記人工知能チップ。
【請求項１９】
電子デバイスであって、
前記電子デバイスは請求項１８に記載の人工知能チップを備える
ことを特徴とする前記電子デバイス。
【請求項２０】
ボートカードであって、
記憶装置と、
インターフェース装置と、
制御装置と、
請求項１８に記載の人工知能チップと、を備え、
前記人工知能チップは、前記記憶装置、前記制御装置、および、前記インターフェース装置に接続され、
前記記憶装置は、データを記憶し、
前記インターフェース装置は、人工知能チップと外部装置との間のデータ伝送を実現し、
前記制御装置は、人工知能チップの状態を監視制御する
ことを特徴とする前記ボートカード。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
複数のドット・ポジションから最小の差に対応する１ドット・ポジションを選択するためのドット・ポジション選択ユニットと、を備えることを特徴とする前記装置。
Ａ１３．条項Ａ１２に記載の装置であって、差決定ユニットは、
複数グループの量子化後のデータの中の所定の１グループの量子化後のデータに対して、所定の１グループの量子化後のデータと１グループの量子化待ちデータとの間の１グループの相対差をそれぞれ決定ための相対差決定ユニットと、
１グループの相対差に基づいて、複数の差の中の１つの差を決定するための総体差決定ユニットと、を備えることを特徴とする前記装置。
Ａ１４．条項Ａ１２に記載の装置であって、差決定ユニットは、
【手続補正書】
【提出日】令和2年11月19日(2020.11.19)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2022502724.tif 000018
【図２】
2022502724.tif 000019
【図３】
2022502724.tif 000020
【図４】
2022502724.tif 000021
【図５】
2022502724.tif 000022
【図６】
2022502724.tif 000023
【図７】
2022502724.tif 000024
【図８】
2022502724.tif 000025
【図９】
2022502724.tif 000026
【図１０】
2022502724.tif 000027
【国際調査報告】
2022502724.tif 000028
2022502724.tif 000029
2022502724.tif 000030
2022502724.tif 000031
2022502724.tif 000032
2022502724.tif 000033