JP2022501673A - データを処理するための方法、装置、及び関連製品 - Google Patents

データを処理するための方法、装置、及び関連製品 Download PDF

Info

Publication number
JP2022501673A
JP2022501673A JP2020566899A JP2020566899A JP2022501673A JP 2022501673 A JP2022501673 A JP 2022501673A JP 2020566899 A JP2020566899 A JP 2020566899A JP 2020566899 A JP2020566899 A JP 2020566899A JP 2022501673 A JP2022501673 A JP 2022501673A
Authority
JP
Japan
Prior art keywords
data
value
section
determining
average value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020566899A
Other languages
English (en)
Other versions
JP7072680B2 (ja
Inventor
尭 張
広 江
曦珊 張
詩怡 周
迪 黄
暢 劉
家明 郭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Publication of JP2022501673A publication Critical patent/JP2022501673A/ja
Application granted granted Critical
Publication of JP7072680B2 publication Critical patent/JP7072680B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6041Compression optimized for errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound

Abstract

本発明は、データを処理するための方法、装置、及び関連製品に関する。本発明の実施例において、ニューラルネットワークと関連があるデータを処理する場合、複数のデータの最適な切捨て閾値を決定する。切捨てデータ閾値を利用してデータを切り捨て、当該複数のデータを高精度形式から低精度形式に量子化する。本発明の方法によると、データ処理量を減らすとともに、データ処理の正確性をなるべく高く保証する。また、当該方法は、更に、データ伝送量を明らかに減らすのに役立ち、従って、複数の計算デバイス同士の間のデータ交換速度を大幅に速めた。【選択図】図1

Description

本発明は、コンピュータ技術の分野に関し、特に、データを処理するための方法、装置、及び関連製品に関する。
コンピュータ技術の発展に伴い、デプス学習アルゴリズムは、様々な複雑なタスクの処理にますます多く利用されている。デプス学習アルゴリズムを利用してデータを処理することにより、技術検索、データ掘出し、機械学習、機械翻訳、自然言語処理、マルチメディア学習、音声、推薦、および個性化技術、ならびに他の関連領域で何れも優れた効果を得た。
ネットーワーク層の数が益々多くなり、計算の複雑度が益々高くなっているため、デバイスの計算能力を向上させることは、デプス学習の発展に対して非常に重要である。従って、人々は様々な方式によってデバイスの計算能力を向上させている。しかしながら、機械学習の過程で計算能力を向上させる面で、解決すべき問題がまだ多く存在する。
これに鑑みて、本発明は、データを処理するための方法、装置、及び関連製品を提供する。
本発明の第1態様によれば、データを処理するための方法が提供される。当該方法は、機械学習モデルに用いられる複数のデータを得るステップを含み、前記データは、第1データ形式で示される。当該方法は、複数のデータの値に基づいて、第1組区間に複数のデータを分布するステップをさらに含み、第1組区間の数は、予め決定される。当該方法は、複数のデータの第1平均値を決定するステップをさらに含む。当該方法は、第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるステップをさらに含み、マッピングユニットは、第1組区間の第1区間から始まる所定数の連続区間を含み、マッピングユニットの終了区間には、複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、第2データ形式と関係があり、第2データ形式の精度は、第1データ形式よりも低い。当該方法は、第1平均値と複数の第2平均値に基づいて、複数のデータに対する処理を実行することによって、処理を経た複数のデータが第2データ形式で示されるようにするステップと、をさらに含む。
本発明の第2態様によれば、データを処理するための装置が提供される。当該装置は、機械学習モデルに用いられる複数のデータを得るための取得モジュールであって、前記データは第1データ形式で示される取得モジュールと、前記複数のデータの値に基づいて、前記複数のデータを第1組区間に分布するための分布モジュールであって、前記第1組区間の数は、予め決定される分布モジュールと、前記複数のデータの第1平均値を決定するための第1平均値決定モジュールと、前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるための第1マッピングモジュールであって、前記マッピングユニットは、前記第1組区間の第1区間から始まる所定数の連続区間を含み、前記マッピングユニットの終了区間には、前記複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、第2データ形式と関係があり、第2データ形式の精度は、前記第1データ形式よりも低い第1マッピングモジュールと、前記第1平均値と前記複数の第2平均値に基づいて、前記複数のデータに対する処理を実行することによって、処理を経た前記複数のデータが第2データ形式に示されるようにするための実行モジュールと、を備える。
本発明の第3態様によれば、人工知能チップが提供される。当該人工知能チップは、プロセッサと、コンピュータプログラム命令が記憶されているメモリと、を備え、前記プロセッサは、前記メモリ中の前記コンピュータプログラム命令を実行することによって、前記人工知能チップを制御して、第1態様による前記方法を実行する。
本発明の第4態様によれば、電子デバイスが提供される。当該電子デバイスは、本発明の第3態様による前記人工知能チップを備える
本発明の第5の態様によれば、ボードカードが提供される。当該ボードカードは、記憶部品と、インタフェース装置と、制御部品と、本発明の第3態様による前記人工知能チップと、を備える。ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置に、それぞれ、接続され、前記記憶部品は、データを記憶し、前記インタフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、前記制御モジュールは、前記人工知能チップの状態を監視制御する。
請求の範囲の技術的特徴を導き出すことにより、背景技術中の技術的問題に対応する有益な効果を達成することができる。以下の図面を参照した例示的な実施例の詳細な説明によれば、本発明の他の特徴および態様が明らかになる。
明細書に含まれて明細書の一部を構成する図面は、明細書と一緒に本発明の例示的な実施例、特徴、および、態様を示し、本発明の原理を解釈するために使用される。ここで、本発明の例示的な実施例において、同一の符号は、一般的に、同一のコンポーネントを示す。
本発明の実施例に係るデバイスおよび/または方法が実施される例示的な環境100を示す模式図である。 本発明の実施例に係るデータを処理するための過程200を示すフローチャートである。 本発明の実施例に係るデータを処理するための過程300を示すフローチャートである。 本発明の実施例に係るデータを処理するための装置400の構造を示すブロック図である。 本発明の実施例に係るボードカード500の構造を示すブロック図である。 各図面において、同一または対応の符号は、同一または対応の部分を示す。
以下、本発明の実施例中の図面を参照して、本発明の実施例中の技術案を明確かつ完全に説明し、説明する実施例は、本発明の一部の実施例に過ぎず、全ての実施例ではないことが明らかである。当業者によって本発明中の実施例に基づいて創造的な作業なしに得られたすべての他の実施例は、いずれも本発明の保護しようとする範囲に属する。
本発明の請求の範囲、明細書、および、図面での「第1」、「第2」、「第3」および「第4」などの用語は、異なる対象を区別するために使用されるものであり、特定順序を説明するために使用されないことを理解すべきである。本発明の明細書および請求の範囲で使用される「含む」および「備える」という用語は、説明する特徴、全体、ステップ、操作、要素、および/または、アセンブリの存在を表し、一つまたは複数の他の特徴、全体、ステップ、操作、要素、アセンブリ、および/または、そのセットの存在または追加を除外しない。
ここで本発明の明細書で使用される用語は、ただ、特定実施例を説明する目的に使用され、本発明を限定しようとするものではないことをさらに理解すべきである。本発明の明細書および請求の範囲で使用されるように、文脈で他の場合を明確に示されていない限り、「一」、「一つの」、および、「当該」の単数形態は、複数形態を含むことを意図する。さらに、本発明明細書および請求の範囲で使用される「および/または」という用語は、関連してリストされた項目的中の一つまたは複数のいかなる組み合わせおよびすべての可能な組み合わせを表し、これら組み合わせを含むことをさらに理解すべきである。
本明細書および請求の範囲で使用されるように、「…場合」という用語は、文脈によって、「…とき」、「…と」、「確定されたことに応答して」、または、「検出されたことに応答して」と解釈されてもよい。同様に、「確定された場合」または「『記述された条件または事件』が検出された場合」という句は、文脈によって、「確定されると」、「確定されたことに応答して」、「『記述された条件または事件』が検出されると」、または、「『記述された条件または事件』が検出されたことに応答して」と解釈されてもよい。
ニューラルネットワークアルゴリズムの発展に伴い、ニューラルネットワーク中のネットーワーク層の数が益々多くなっている。このような発展の傾向に従い、計算の複雑度が益々高くなっている。なお、ニューラルネットワークのこのような発展の傾向は、計算デバイスの計算能力のより大きな発展を必要とする。幾つかの状況において、計算リソースの制限により、限られた計算リソースを利用してニューラルネットワークアルゴリズムをよく処理できなくなる。
一般的に、計算デバイスに処理されたデータは、32ビットの浮動小数点データである。処理すべきのこのような浮動小数点データの量が非常に大きい場合、計算デバイスによって、非常に強い計算能力および非常に大きい記憶空間を提供して、これらのデータを記憶する必要がある。また、伝送過程で伝送するデータの量も大き過ぎるため、機械学習モデルの処理効率にマイナス影響を及ぼす。
本発明は、存在している少なくとも1つの問題を解決するために、データを処理するための方法を提供する。ニューラルネットワークに関連する処理データを所定数の区間に分布することにより、データの平均値に基づいて最適な切捨て閾値を選択する。切捨てデータ閾値を利用してデータを切り捨て、しかもこのデータを高精度形式から低精度形式に量子化し、例えば32ビットの浮動小数点データを8ビットの整数データに変換させる。本発明の方法によると、データ処理量を減らすとともに、データ処理の正確性をなるべく高く保証する。また、当該方法は、更にデータ伝送量を明らかに減らすのに役立ち、したがって、複数の計算デバイス同士の間のデータ交換の速度を大幅に速めた。
図1は、本発明の実施例に係るデバイスおよび/または方法が実施される例示的な環境100を示す模式図である。
例示的な環境100は、機械学習モデルに関連する複数のデータ102を備える。複数のデータ102の中の各データは、何れも同じ高精度形式を有する。データ102の精度形式の高さは、ただ、変換された後の複数のデータ104の精度に対する高さである。図1においては、例えば32ビットの浮動小数点データなどの、複数のデータ102が示されている。図1中の複数のデータ102のデータビット数が32ビットであることは、ただ、例示的なものであり、本発明に対する制限ではない。データ102は、例えば64ビットの倍精細度データ、または、必要に応じて設定される任意の適切な精度のデータなどの、任意の適切な相対的に高い精度形式のデータであり得る。
幾つかの実施例において、機械学習モデルは、ニューラルネットワークモデルである。ニューラルネットワークモデルは、畳み込みニューラルネットワークモデル、反復ニューラルネットワークモデルなどを含むが、これらに限定されない。
幾つかの実施例において、機械学習モデルに関連する複数のデータ102は、機械学習モデルの重み値、入力ニューロンデータ、出力ニューロンデータ、および/または、バイアス値などであることができる。上記の例は、ただ、本発明を説明するためのものであり、本発明を具体的に限定するものではない。機械学習モデルに関連する複数のデータ102は、機械学習モデルに用いられるかまたは処理を待っている、任意の関連データとすることができる。
機械学習モデルに関連する複数のデータ102は、計算デバイスの処理によって、低精度形式の複数のデータ104に変換される。図1に示すように、複数のデータ102を、32ビットの高精度形式の浮動小数点データから、複数の低精度形式の8ビットの整数型データ104に変換させる。複数のデータ104の各々は、8ビットで表される。よって、複数のデータ104は、-128〜127の間の範囲を表し得る。なお、複数のデータ104の低精度形式は、変換前のデータ102の精度形式に対するのみのものであることを理解すべきである。図1に示される複数のデータ104の各々が8ビットを用いて表されるのは、単なる例であり、本発明を具体的に限定するものではない。よって、複数のデータ104の精度形式は、複数のデータ102の精度形式よりも低い任意の適切なデータ型であり得る。
高精度形式のデータを低精度形式に変換させるための計算デバイスは、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド、または、ラップトップデバイス、モバイルデバイス(例えば、携帯電話、携帯情報端末(PDA)、メディアプレーヤーなど)、マルチプロセッサシステム、家庭用電気製品、小型コンピュータ、大型コンピュータ、および、上記のシステムまたはデバイスのいずれか1つを備える分布式コンピューティング環境などを備えるが、これらに限定されない。
計算デバイスは、複数のデータ102を複数のデータ104に変換させる過程において、先ず、複数のデータ102の中のデータの絶対値最大値を決定してから、0から最大値までの範囲全体を所定数Nの1組区間に分割する。複数のデータ102は、その絶対値の大きさに従って、当該1組区間に分布されている。当該所定数Nは、任意の適切な数値であってもよい。好ましくは、当該所定数Nは、低精度形式のデータの最大値よりも大きい。例えば、8ビットで1つの整数を表すとき、8ビットで表される最大値が127である。よって、所定数Nは、127よりも大きい値、例えば、256、528、1024、2048であってもよい。
計算デバイスは、区間変換を行なう前の複数のデータの第1平均値を決定する。計算デバイスは、さらに、1組区間の中の前のj個の区間を1マッピングユニットとして形成し、そのうち、jは0より大きい正の整数であり、jがNより小さい値MからNまでに変化されると、N−M+1個のマッピングユニットを形成することができる。好ましくは、M=低精度形式のデータで表す最大値+1である。前記データ102の例において、例えば、M=127+1=128である。
計算デバイスは、N−M+1個のマッピングユニットを、低精度形式のデータのビット数に基づいて分割された第2数の第2組区間に、それぞれマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いることができる。計算デバイスは、各マッピングユニットに対して、第2区間にマッピングされた後のデータの第2平均値を得ることができる。計算デバイスは、各マッピングユニットに対して、第1平均値と第2平均値との間の差値を決定することができる。1例において、差値が最小であるマッピングユニット、即ちjの値を決定する。jの値に応じて切捨て閾値を決定することができる。次いで、データに対して切捨て処理を行ない、即ち複数のデータの中の、切捨て閾値よりも大きなデータを切捨て閾値に書き直す。次いで、切捨て閾値を用いてスケーリング値を決定する。切り捨てられた複数のデータに対して、このスケーリング値を用いてスケーリング処理を実行し、データを第2数形式を有する複数のデータ104に変換する。
複数のデータ102を複数のデータ104に変換した後、複数のデータ104を機械学習モデルに提供して、機械学習モデル処理106に用いられるようにしてもよい。
上記の図1は、本発明の実施例に係るデバイスおよび/または方法が実施される例示的な環境100を示す模式図である。以下、図2を参照しながら本発明の実施例に係るデータを処理するための過程200を説明し、当該図2は、本発明の実施例に係るデータを処理するための過程200を示すフローチャートである。
図2に示すように、ブロック202において、計算デバイスにより、機械学習モデルに用いられる複数のデータを得、複数のデータは第1データ形式で表される。図1に示すように、計算デバイスが得た複数のデータ102の場合、複数のデータ102の中の各データは、何れも32ビットの浮動小数点形式である。図1中の複数のデータ102の各データが32ビットの浮動小数点形式は、単なる例であり、本発明を具体的に限定するものではない。
幾つかの実施例において、機械学習モデルに用いられる複数のデータは、機械学習モデルの重み値、入力ニューロンデータ、出力ニューロンデータ、および/または、バイアス値などである。上記の例示は、ただ、本発明を説明するためのものであり、本発明を具体的に限定するものではない。機械学習モデルに用いられる複数のデータは、機械学習モデルに用いられる任意の関連データであってよい。
ブロック204において、計算デバイスにより、複数のデータの値に基づいて、複数のデータを第1組区間中に分布し、第1組区間の数は予め定められているものである。データを量子化するために、一般的に、データは、予め定められた所定数の区間に分布され得る。幾つかの実施例において、データ区間の数Nが任意の適切な数に設定されてもよい。例えば、256、1024、または、2048に設定される。代替的または追加的に、データ区間の数Nが変換後のデータタイプによって表される最大の整数よりも大きいように選択されてもよい。例えば、変換対象データが8ビットの整数である場合、当該8ビットの整数が表す最大の整数が127であるため、127よりも大きい数を区間数として選択することができる。例えば、データ区間の数Nは、256、512、1024、または2048であってもよい。
分割待ちの区間数Nを決定した後、複数のデータのうち絶対値が最大のデータを決定してから、0とこの絶対値最大値との間のデータ区間全体をN個の区間を備える第1組区間に分割する。
ブロック206において、計算デバイスにより、複数のデータの第1平均値を決定する。定数変換の精度を一定にするために、本発明は、変換前のデータの平均値と変換後のデータの平均値との間の差値に基づいて定数変換の精度を一定にする。よって、変換前の複数のデータの平均値を算出する必要がある。
幾つかの実施例において、受信した複数のデータの平均値を計算するとき、計算デバイスは、先ず複数のデータの絶対値と複数のデータの数を決定する。次いで、計算デバイスは、複数のデータの中のデータの絶対値と数とに基づいて平均値を決定する。例えば、全てのデータの絶対値の和を求めてから絶対値の数で除算することによって、処理待ちのデータの第1平均値を決定する。
幾つかの実施例において、受信した複数のデータの第1平均値を計算するとき、計算デバイスは、第1組区間の各区間の中間値と各区間が有するデータの数とを決定する。計算を便利にするために、各区間の中間値を当該区間中のデータの平均値とする。次いで、計算デバイスは、各区間の中間値と当該区間中のデータの数に基づいて平均値を決定する。より具体的には、計算デバイスは、各区間の中間値に各区間中のデータの数を乗算してから和を求め、次いで、総データ数で除算してデータの第1平均値を決定する。
幾つかの実施例において、複数のデータの第1平均値を決定するとき、第1平均値は、対応するマッピングユニットに関連付けられる。計算デバイスは、先ず、マッピングユニットの各区間中のデータの数と各区間の中間値とを決定し、ここで、1マッピングユニットは、第1組区間の中の第1区間から始まる前のj個の区間に対応し、j個の区間中の最後の1区間を終了区間とする。次いで、第1組区間中の、終了区間の後に位置する区間中のデータをすべて終了区間内に置く(入れる)。即ち、マッピングユニットの終了区間中のデータの数は、第1組区間中の、終了区間に対応する区間およびこの区間の後のすべての区間中のデータの数の和である。次いで、計算デバイスは、各区間中のデータの数と各区間の中間値とに基づいて第1平均値を決定する。
ブロック208において、計算デバイスにより、第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用い、ここで、マッピングユニットは、第1組区間の第1区間から始まる所定数の連続区間を含み、マッピングユニットの終了区間には、複数のデータの中の、複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、精度が第1データ形式よりも低い第2データ形式に関連する。
複数のデータが第1組区間に分割された後、第1組区間から前のj個の区間を選んでマッピングユニットとし、jの値がN未満の値Mから第1組区間の中の区間の総数Nまでの値をとる。よって、N−M+1個のマッピングユニットが存在する。好ましくは、Mの値は、低精度形式のデータが示す最大値よりも大きい。1例において、低精度形式のデータが8ビットであるとき、その表す最大値は127であり、Mの値は128をとる。
計算デバイスは、N−M+1個のマッピングユニットを、低精度形式のデータが表現可能な第2数の第2組区間にそれぞれマッピングする。1例において、図1の複数のデータ104の形式が8ビットの整数である場合、各マッピングユニットの区間を、第2組区間の128個の区間にマッピングできる。よって、マッピングユニットのj/128個の区間は、第2組区間の1区間にマッピングされる。
次いで、各マッピングユニットに対しては、計算デバイスは何れも第2区間にマッピングされた後の第2平均値が得られる。各マッピングユニットに対しては、第2区間にマッピングされた後、マッピングされた後の平均値が、第2組区間の中の区間の中間値と区間にある数によって決定される。例えば第2平均値は、第2区間中の各区間の中間値に各区間中のデータの数を乗算してから総データの数で除算することで得られる。
ブロック210において、計算デバイスにより、第1平均値と複数の第2平均値とに基づいて複数のデータの処理を実行することによって、処理された複数のデータが第2データ形式で表されるようにする。複数のデータを処理する過程は、図3を参照して詳細に説明する。
上記の方法で高精度形式のデータを低精度形式のデータに変換して処理することができる。データを表すためのビット数が少なくなるため、データを処理するための計算リソースを削減することができるとともに、複数のマッピングユニットから変換前のデータの平均値との差値が最小のマッピングユニットを選択するため、処理結果の正確性をなるべく保証することができる。
上記の図2は、本発明の実施例に係るデータを処理するための過程200を示すフローチャートである。下記は、図3を参照しながら図2の中のブロック210でのデータを処理するための過程を説明し、そのうち図3は、本発明の実施例に係るデータを処理するための過程300を示すフローチャートである。
ブロック302において、計算デバイスにより、第1平均値と複数の第2平均値とに基づいて、複数のマッピングユニットに関連する複数の差値を決定する。計算デバイスは、受信した複数のデータの第1平均値と各マッピングユニットに対応する第2平均値とを取得した後、第1平均値と各第2平均値との間の差値を決定する。よって、計算デバイスは、複数のマッピングに対応する複数の差値を取得し得る。
1例において、0から複数のデータの絶対値最大値までの区間全体が2048個の区間に分割される。複数のデータを、第1精度形式から8ビット整定数に変化させるとき、jが128から2047に変化してから2048区間から前j+1個の区間を選んでマッピングユニットとする。上述されるように、1マッピングユニットに対応する各j値に対しては、マッピングユニットの後にある区間中のすべてのデータをマッピングユニットのj+1個の区間中の最後の1区間に置く(入れる)ことにより、複数のデータの第1平均値mean1が得られる。次いで、j+1個の区間を128個の第2区間にマッピングしてから、128個の第2区間の中の各区間の中間値と、第2区間にある各区間中のデータの数とを決定する。次いで、j+1個の区間の中の各区間の中間値と、その区間のデータの数との積を加算してから、すべてのデータの数で除算することにより、第2平均値mean2を決定する。各マッピングユニットに対しては、区間切捨て処理後の平均値の差値がmean1-mean2である。
ブロック304において、複数の差値に基づいて、複数のデータに用いられる切捨て閾値を決定する。計算デバイスは、複数の差値に基づいて、複数の差値の中の最小の差値に対応するマッピングユニットを決定する。1例において、計算デバイスは、複数の差値を取得した後、複数の差値の各差値を、それらに対応する第1平均値で除算することにより、複数の差値率を取得する。差値率が最小となるマッピングユニットを選定されたマッピングユニットとする。1例において、計算デバイスは、複数の差値を取得した後、複数の差値の中の最小の差値に対応するマッピングユニットを選択されたマッピングユニットとする。
複数の差値に基づいて、マッピングユニットを決定した後に、jの値を決定する。次いで、jの値によって切捨て閾値を決定する。1例において、切捨て閾値thresholdは、下記の式(1)に決定され得る。
threshold=(best_j+ 0.5)* 1/N absmax (1)
ここで、best_jは、決定された最小差値または差値率に対応するマッピングユニットの区間数であり、Nは、分割された第1組区間数であり、ここで、absmaxは、複数のデータの中で絶対値最大値を表す。
ブロック306において、計算デバイスにより、切捨て閾値に基づいて、取得された複数のデータを切り捨てる。計算デバイスは、切捨て閾値を取得した後、複数のデータの中の切捨て閾値よりも大きい値を切捨て閾値に調整する。
ブロック308において、計算デバイスにより、切捨て閾値に基づいて、マッピングユニットに関連するスケーリング値を決定する。1例において、計算デバイスは、閾値の差値に対応するマッピングユニットを選択した後、このマッピングユニットに対応する区間数に基づいて、受信した複数のデータに対する切捨て閾値を決定する。次いで、切捨て閾値thresholdを用いて、下記の式(2)により、スケーリング値scaleを決定する。
scale=threshold/(2なの−1−1) (2)
ここで、nは、第2データ形式のデータのビット数を表す。
1例において、変換データが8ビットの整数であるとき、scale=threshold/127である。上記の例示は、本発明を説明するだけためのものであり、本発明を具体的に限定するものではない。
ブロック310において、計算デバイスにより、スケーリング値に基づいて、切捨てを経た複数のデータに対してスケーリングを実行するしてから、第2データ形式の複数のデータを得る。幾つかの実施例において、複数のデータに対するスケーリング処理は、他の計算デバイスで実行されてもよい。
上記の方法でデータを第1データ形式から第2データ形式に変換するとき、データ形式変換前後のデータ間の誤差を最小にするための最適な切捨て閾値を求めることができる。
1実施例においては、例えば32ビットの浮動小数点形式などの、機械学習モデルに用いられる第1データ形式で表す複数のデータを取得する。データのデータ量を減らすため、複数のデータを、例えば8ビットの整数データなどの、第2データ形式に変換する。この複数のデータから絶対値最大値absmaxを見付ける。次いで、0から絶対値最大値までの間の区間が2048個の区間に分割される。変換前に、先にこの複数のデータを2048個のデータ区間に絶対値に応じて分布させる。
次いで、2048個の区間の中の各区間中に分布されている複数のデータの数を統計する。例えば、bin[i]は、複数のデータにおける絶対値がi/2048 absmax〜(i+1)/2048 absmaxの間にある個数、即ち第i+1個の区間にある数を表し、ここで、bin[0]は、複数のデータにおける絶対値が第1個の区間0〜1/2048absmaxの間にある数を表す。
このとき、複数のデータの第1平均値が決定されてもよい。1例において、複数のデータの第1平均値mean1は、複数のデータの絶対値の和を複数のデータの数で除算することによって決定される。1例において、複数のデータの第1平均値mean1は、各区間の中間値を各区間中のデータの数で乗算してから、全ての区間の乗算値を加算し、データの数で除算することにより決定される。幾つかの例において、第1平均値mean1は、各マッピングユニットが決定されるときに決定され得る。
jをマッピングユニットに対応する区間数とし、第2データ形式が8ビット整定数である場合、jは128から2047までに変化し、128〜2047の中の、1マッピングユニットに対応する各値を取る。
Figure 2022501673
この場合、データ区間を切捨て処理した後、区間切捨て後のデータの平均値を第1平均値としてもよい。区間が切り捨てられた後、各区間の中間値に区間中のデータの数を乗算してから各区間の積を加算し、すべてのデータの数で除算することにより、各マッピングユニットに対する第1平均値mean1を決定する。
各j値について、即ち各マッピングユニットに対応するとき、bin_before[0]、bin_before[1]、・・・、bin_before[j−1]は、bin_next[0]、bin_next[1]、・・・、bin_next[127]に圧縮される。即ち第j/128のbin_beforeが1bin_nextに対応する。次いで、調整された後の複数の区間の平均値、即ち各区間の中間値に各区間中のデータの数を乗算し、すべての区間の積の和をすべてのデータの数で除算することにより、このマッピングユニットに対応する第2組区間の平均値mean2を取得する。次いで、第1平均値と第2平均値との差値mean1-mean2を決定することができる。
第1平均値mean1と第2平均値mean2との差値率は、下記式(3)により計算される:
diff_mean=abs(mean1−mean2)/mean1 (3)
ここで、abs(mean1−mean2)は、(mean1-mean2)の絶対値を表す。
jを128から2047までに変化させ、各j値は対応するdiff_meanを有し、全てのj値から最小のdiff_meanに対応するj値を選択する。jの値が決定された後、切捨て閾値は、上記式(1)により決定され得る。次いで、複数のデータに対して切捨て処理を行なう。切捨て処理が終了すると、上記の式(2)により、複数のデータの量子化が終了される。
前述した各方法の実施例において、簡単に説明するために、それらをいずれも一連の動作の組み合わせとして表現したが、当業者は、本発明は説明された動作の順序に限定されないし、なぜなら、本発明によるといくつかのステップを他の順序で実行するかまたは同時に実行できることを了解すべきであることを説明する必要がある。次に、当業者は、明細書に説明された実施例は、いずれもオプションとする実施例に属し、関わる動作およびモジュールは必ずとして本発明にとって必須なものではないことも理解すべきである。
フローチャートでの各ステップは矢印に従って順に示したが、これらステップは必ずとして矢印が示す順序に従って順に実行する必要がないことをさらに説明する必要がある。本明細書に明確な説明がない限り、これらステップの実行に対して厳密の順序を限定しなく、これらステップを他の順序に従って実行してもよい。さらに、フローチャートでの少なくとも一部ステップは、複数のサブステップまたは複数の段階を含んでもよく、これらサブステップまたは段階は、必ずとして一つのタイミングで実行を完成させる必要がなく、異なるタイミングで実行させてもよいし、これらサブステップまたは段階の実行順序も必ずとして順に実行させる必要がなく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交互または交替に実行させることができる。
図4は、データを処理するための装置400を示し、当該装置400は、機械学習モデルに用いられる複数のデータを得るための取得モジュール402であって、前記データは、第1データ形式で表される取得モジュール402と、前記複数のデータの値に基づいて、前記複数のデータを第1組区間中に分布するための分布モジュール404であって、前記第1組区間の数は、予め決定される分布モジュール404と、前記複数のデータの第1平均値を決定するための第1平均値決定モジュール406と、前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットのに従ってマッピングされたデータの第2平均値の決定に用いるための第1マッピングモジュール408であって、前記マッピングユニットは、前記第1組区間の第1区間から始まる所定数の連続区間を含み、前記マッピングユニットの終了区間には、前記複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、第2データ形式と関連が有り、第2データ形式の精度は、前記第1データ形式よりも低い第1マッピングモジュール408と、前記第1平均値と前記複数の第2平均値に基づいて、前記複数のデータに対する処理を実行することによって、処理を経た前記複数のデータが前記第2データ形式で表されるようにするための実行モジュール410と、を備える。
幾つかの実施例において、第1マッピングモジュール408は、前記複数のデータの中の前記マッピングユニットの終了区間よりも大きいデータを、前記マッピングユニットの終了区間に再分布するための再分布モジュールと、前記複数のマッピングユニットを第2組区間にそれぞれマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるための第2マッピングモジュールと、を備える。
幾つかの実施例において、前記実行モジュール410は、前記第1平均値と前記複数の第2平均値に基づいて、前記複数のマッピングユニットに関連する複数の差値を決定するための差値決定モジュールと、前記複数の差値に基づいて、前記複数のデータに用いられる切捨て閾値を決定するための切捨て閾値決定モジュールと、前記切捨て閾値に基づいて、取得された前記複数のデータに対して切捨てを実行するための切捨てモジュールと、前記切捨て閾値に基づいて、前記マッピングユニットに関連するスケーリング値を決定するためのスケーリング値決定モジュールと、を備える。
幾つかの実施例において、前記実行モジュール410は、前記スケーリング値に基づいて、切捨てを経た前記複数のデータに対してスケーリングを実行するためのスケーリングモジュールをさらに備える。
幾つかの実施例において、当該装置は、前記データの絶対値最大値に基づいて、前記複数のデータに関連する第1組区間を決定するための区間決定モジュートをさらに備える。
幾つかの実施例において、前記第1平均値決定モジュール406は、前記複数のデータの中のデータの絶対値と前記複数のデータの数とを決定するための絶対値および数決定モジュールと、前記複数のデータの中のデータの絶対値と前記数とに基づいて前記平均値を決定するための第2平均値決定モジュールと、を備える。
幾つかの実施例において、前記第1平均値決定モジュール406は、前記第1組区間の中の各区間の中間値と各区間にあるデータの数とを決定するための第1中間値およびデータ数決定モジュールと、前記中間値と前記データの数とに基づいて前記平均値を決定するための第3平均値決定モジュールと、を備える。
幾つかの実施例において、前記第1平均値決定モジュール406は、前記マッピングユニットの各区間にあるデータの数と各区間の中間値とを決定する第2中間値およびデータ数決定モジュールと、前記数と前記中間値とに基づいて前記第1平均値を決定するための第4平均値決定モジュールと、を備える。
幾つかの実施例において、第2組区間の中の区間の数は、前記第2データ形式に関連するビット数に基づいて決定される。
上述した装置の実施例は、ただ模式的なものであり、本発明の装置は、さらに他の方式によって実現されてもよいことを理解すべきである。例えば、上述した実施例中の前記ユニット/モジュールの分割は、ただ論理的機能分割であり、実際に実現において他の分割方式があり得る。例えば、複数のユニット、モジュール、または、アセンブリは、組み合わせてもよいし、もう一つのシステムに統合されてもよく、あるいは、幾つかの特徴は、省略されてもよいし、実行されなくてもよい。
また、特に説明しない限り、本発明の各実施例中の各機能ユニット/モジュールは、一つのユニット/モジュール中に統合されてもよいし、各ユニット/モジュールが単独的に物理的に存在してもよいし、二つまたは二つ以上ユニット/モジュールが一つに統合されてもよい。上述した統合されたユニット/モジュールは、ハードウェアの形式を利用して実現されてもよいし、ソフトウェアプログラムモジュールの形式を利用して実現されてもよい。
前記統合されたユニット/モジュールがハードウェアの形式で実現される場合、当該ハードウェアは、数値回路、アナログ回路などであり得る。ハードウェア構成の物理的な実現は、トランジスタ、メモリスタなどを含むが、これらに限定されない。特に説明しない限り、前記人工知能プロセッサは、例えばCPU、GPU、FPGA、DSP、ASICなどの、いかなる適当なハードウェアプロセッサであり得る。特に説明しない限り、前記記憶ユニットは、例えば、抵抗メモリRRAM(Resistive Random Access Memory)、動的ランダムアクセスメモリDRAM(Dynamic Random Access Memory)、静的ランダムアクセスメモリSRAM(Static Random−Access Memory)、拡張動的ランダムアクセスメモリEDRAM(Enhanced Dynamic Random Access Memory)、 高帯域幅メモリHBM(High−Bandwidth Memory)、ハイブリッドメモリキューブHMC(Hybrid Memory Cube)などの、いかなる適当な磁気記憶媒体あるいは光磁気記憶媒体であり得る。
前記統合されたユニット/モジュールは、ソフトウェアプログラムモジュールの形式で実現され、独立的にした製品として販売または使用される場合、一つのコンピュータ可読取メモリに記憶されてもよい。このような理解に基づいて、本発明の技術案は、本質上、あるいは、先行技術に寄与する部分、あるいは、当該技術案のすべてのまたは一部は、ソフトウェア製品の形式で具現されてもよく、当該コンピュータソフトウェア製品は一つのメモリに記憶され、一つのコンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)に本発明の各実施例に記載の方法のすべてのまたは一部のステップを実行させるためのいくつかの命令を含む。前述したメモリは、Uディスク、読み取り専用メモリ(ROM、Read−Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、モバイルハードディスク、磁気ディスク、光ディスクなどの、いろんなプログラムコードを記憶できる媒体を含む。
可能な1実現形態においては、前記データ処理手段を備える人工知能チップをさらに開示する。
可能な1実現形態においては、ボードカードをさらに開示し、当該ボードカードは、記憶部品と、インタフェース装置と、制御部品と、請求項19に記載の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置と、それぞれ、接続され、前記記憶部品は、データを記憶し、前記インタフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、前記制御部品は、前記人工知能チップの状態を監視制御する。
図5は、本発明の実施例に係るボードカード500の構造を示すブロック図である。図5を参考すると、前記ボードカードは、前記チップ506−1〜506−N(ここで、Nは正の整数であり、説明の便利のために、総称してチップ506と呼ぶ)に加えて、他のサポート部件をさらに備えてもよく、当該サポート部件は、記憶部品502と、インターフェース装置507と、制御部品504と、を含むが、これらに限られない。
前記記憶部品502は、バス505を介して前記人工知能チップに接続され、データを記憶するために使用される。前記記憶部品は、複数組の記憶ユニット503−1、…503−Nを含み得る。ここで、Nは正の整数であり、説明の便利のために、総称して記憶ユニット503と呼ぶ。各組の前記記憶ユニット503は、バス505を介して前記人工知能チップ506に接続される。各組の前記記憶ユニット503は、DDR SDRAM(英語:Double Data Rate SDRAM、ダブルレート同期ダイナミックランダムアクセスメモリ)であってもよいことを理解できる。
DDRは、クロック周波数を上げずにSDRAMの速度を2倍にすることができる。DDRは、クロックパルスの上がりエンジと下がりエンジでデータを読み取ることができる。DDRの速度は、標準SDRAMの2倍である。1実施例において、前記記憶装置は、4組の前記記憶ユニットを備えてもよい。各組の前記記憶ユニットは、複数のDDR4粒子(チップ)を備えてもよい。1実施例において、前記ニューラルネットワークチップの内部は、4個の72ビットDDR4コントローラを備えてもよく、上記の72ビットDDR4コントローラ中の64bitは、データ伝送に使用され、8bitは、ECC検証に使用される。各組の前記記憶ユニットでDDR4-3200粒子を使用する場合、データ伝送する理論上の帯域幅が25600MB/sに達することを理解できる。
1実施例において、各組の前記記憶ユニットは、複数の並列に配置されたダブルレート同期ダイナミックランダムアクセスメモリを備える。DDRは、一つのクロックサイクルでデータを2回伝送することができる。前記チップ中にDDRを制御ためのコントローラを配置して、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に使用する。
前記インタフェース装置507は、前記人工知能チップ506と電気的に接続されている。前記インタフェース装置507は、前記人工知能チップと外部デバイス501(例えば、サーバ又はコンピュータ)との間のデータ伝送を実現するために使用される。例えば、1実施例においては、前記インタフェース装置507は、基準PCIEインタフェースであってもよい。例えば、基準PCIEインタフェースを介して、処理待ちのデータをサーバから前記チップまでに伝送されるスことで、データ伝送が実現される。好ましくは、理論帯域幅は、PCIE3.0X16インターフェースを用いて伝送される場合、16000MB/sに達することができる。もう1実施例においては、前記インターフェース装置507は、他のインターフェースであってもよく、本発明は、前記他のインターフェースの具体的な表現式を限定せず、前記インターフェースユニットがスイッチャー機能を実現できればよい。また、前記人工知能チップ506の計算結果は、依然として前記インタフェース装置507によって外部デバイス501(例示えば、サーバ)までに送り返される。
前記制御部品504は、前記人工知能チップ506と電気的に接続されている。前記制御部品504は、前記人工知能チップ506の状態を監視制御するために使用される。具体的に、前記人工知能チップ506および前記制御部品504は、SPIインタフェースを介して電気的に接続され得る。前記制御部品は、マイクロコントローラーユニット(Micro Controller Unit、MCU)を含んでもよい。例えば、前記人工知能チップ506は、複数の処理チップ、複数の処理コア、または、複数の処理回路を含んでもよく、複数の負荷を動かしても良い。よって、前記人工知能チップ506は、重負荷及び軽負荷などの異なる動作状態にあってもよい。前記制御部品によって、前記人工知能チップにおける複数の処理チップ、複数の処理、および/または、複数の処理回路の動作状態の調整制御が可能になる。
可能な1実現形態において、電子デバイスを開示し、当該電子デバイスは上記のニューラルネットワークチップを備える。電子デバイスは、データ処理装置、ロボット、コンピュータ、プリンター、スキャナー、タブレットコンピュータ、スマート端末、携帯電話、ドライビングレコーダー、ナビゲーター、センサ、Webカメラ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクター、腕時計、ヘッドセット、モバイルストレージ、ウェアラブルデバイス、交通ツール、家電製品、及び/又は、医療機器を含む。
前記交通ツールは、飛行機、船、及び/又は、車両を含み、前記家電製品は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、および、レンジフードを含み、前記医療機器は、核磁気共鳴装置、B超音波装置、及び/又は、心電計を含む。
上述した実施例において、各実施例に対する説明はそれぞれ重点を置き、ある実施例には詳細な説明がない場合、他の実施例の中の関連説明を参照することができる。上記の実施例の各技術特徴は、任意に組み合わせることができ、記載を簡潔にするために、上記の実施例の中の各技術特徴の全ての可能な組合せを記載していないが、これらの技術特徴の組合せに矛盾が発生されない限り、いずれも本明細書に記載の範囲であると見なされるべきである。
以下の条項によって前述した内容をよりよく理解できる。
条項A1.データを処理するための方法であって、機械学習モデルに用いられる複数のデータを得るステップであって、前記データは、第1データ形式で表されるステップと、前記複数のデータの値に基づいて、前記複数のデータを第1組区間中に分布するステップであって、前記第1組区間の数は、予め決定されるステップと、前記複数のデータの第1平均値を決定するステップと、前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットのに従ってマッピングされたデータの第2平均値の決定に用いるステップであって、前記マッピングユニットは、前記第1組区間の第1区間から始まる所定数の連続区間を含み、前記マッピングユニットの終了区間には、前記複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、第2データ形式と関連が有り、第2データ形式の精度は、前記第1データ形式よりも低いステップと、前記第1平均値と前記複数の第2平均値に基づいて、前記複数のデータに対する処理を実行することによって、処理を経た前記複数のデータが前記第2データ形式で表されるようにするステップと、を含む。
条項A2.条項A1に記載の方法であって、前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングするステップは、前記複数のデータの中の前記マッピングユニットの終了区間よりも大きいデータを、前記マッピングユニットの終了区間に再分布するステップと、前記複数のマッピングユニットを第2組区間にそれぞれマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるステップと、を含む。
条項A3.条項A1に記載の方法であって、前記複数のデータに対する処理を実行するステップは、前記第1平均値と前記複数の第2平均値に基づいて、前記複数のマッピングユニットに関連する複数の差値を決定するステップと、前記複数の差値に基づいて、前記複数のデータに用いられる切捨て閾値を決定するステップと、前記切捨て閾値に基づいて、取得された前記複数のデータに対して切捨てを実行するステップと、前記切捨て閾値に基づいて、前記マッピングユニットに関連するスケーリング値を決定するステップと、を含む。
条項A4.条項A1に記載の方法であって、前記複数のデータに対する処理を実行するステップは、前記スケーリング値に基づいて、切捨てを経た前記複数のデータに対してスケーリングを実行するステップをさらに含む。
条項A5.条項A1に記載の方法であって、前記データの絶対値最大値に基づいて、前記複数のデータに関連する第1組区間を決定するステップをさらに含む。
条項A6.条項A1に記載の方法であって、前記複数のデータの第1平均値を決定するステップは、前記複数のデータの中のデータの絶対値と前記複数のデータの数とを決定するステップと、前記複数のデータの中のデータの絶対値と前記数とに基づいて前記平均値を決定するステップと、を含む。
条項A7.条項A1に記載の方法であって、前記複数のデータの第1平均値を決定するステップは、前記第1組区間の中の各区間の中間値と各区間が有するデータの数とを決定するステップと、前記中間値と前記数とに基づいて前記平均値を決定するステップと、を含む。
条項A8.条項A1に記載の方法であって、前記複数のデータの第1平均値を決定するステップは、前記マッピングユニットの各区間中のデータの数と各区間の中間値とを決定するステップと、前記数と前記中間値とに基づいて前記第1平均値を決定するステップと、を含む。
条項A9.条項A1に記載の方法であって、第2組区間の中の区間の数は、前記第2データ形式に関連するビット数に基づいて決定されたものである。
条項A10.データを処理するための装置であって、機械学習モデルに用いられる複数のデータを得るための取得モジュールであって、前記データは、第1データ形式で表される取得モジュールと、前記複数のデータの値に基づいて、前記複数のデータを第1組区間中に分布するための分布モジュールであって、前記第1組区間の数は、予め決定される分布モジュールと、前記複数のデータの第1平均値を決定するための第1平均値決定モジュールと、前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるための第1マッピングモジュールであって、前記マッピングユニットは、前記第1組区間の第1区間から始まる所定数の連続区間を含み、前記マッピングユニットの終了区間には、前記複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、第2データ形式と関連が有り、第2データ形式の精度は、前記第1データ形式よりも低い第1マッピングモジュールと、前記第1平均値と前記複数の第2平均値に基づいて、前記複数のデータに対する処理を実行することによって、処理を経た前記複数のデータが前記第2データ形式で表されるようにするための実行モジュールと、を備える。
条項A11.条項A10に記載の装置であって、前記第1マッピングモジュールは、前記複数のデータの中の前記マッピングユニットの終了区間よりも大きいデータを、前記マッピングユニットの終了区間に再分布するための再分布モジュールと、前記複数のマッピングユニットを第2組区間にそれぞれマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるための第2マッピングモジュールと、を備える。
条項A12.条項A10に記載の装置であって、前記実行モジュールは、前記第1平均値と複数の第2平均値に基づいて、前記複数のマッピングユニットに関連する複数の差値を決定するための差値決定モジュールと、前記複数の差値に基づいて、前記複数のデータに用いられる切捨て閾値を決定するための切捨て閾値決定モジュールと、前記切捨て閾値に基づいて、取得された前記複数のデータに対して切捨てを実行するための切捨てモジュールと、前記切捨て閾値に基づいて、前記マッピングユニットに関連するスケーリング値を決定するためのスケーリング値決定モジュールと、を備える。
条項A13.条項A12に記載の装置であって、前記実行モジュールは、前記スケーリング値に基づいて、切捨てを経た前記複数のデータに対してスケーリングを実行するためのスケーリングモジュールをさらに備える。
条項A14.条項A10に記載の装置であって、前記データの絶対値最大値に基づいて、前記複数のデータに関連する第1組区間を決定するための区間決定モジュートをさらに備える。
条項A15.条項A10に記載の装置であって、前記第1平均値決定モジュールは、前記複数のデータの中のデータの絶対値と前記複数のデータの数とを決定するための絶対値および数決定モジュールと、前記複数のデータの中のデータの絶対値と前記数とに基づいて前記平均値を決定するための第2平均値決定モジュールと、を備える。
条項A16.条項A10に記載の装置であって、前記第1平均値決定モジュールは、前記第1組区間の中の各区間の中間値と各区間が有するデータの数とを決定するための第1中間値および数決定モジュールと、前記中間値と前記数とに基づいて、前記平均値を決定するための第3平均値決定モジュールと、を備える。
条項A17.条項A10に記載の装置であって、前記第1平均値決定モジュールは、前記マッピングユニットの各区間中のデータの数と各区間の中間値とを決定するための第2中間値および数決定モジュールと、前記数と前記中間値とに基づいて前記第1平均値を決定するための第4平均値決定モジュールと、を備える。
条項A18.条項A10に記載の装置であって、第2組区間の中の区間の数は、前記第2データ形式に関連するビット数に基づいて決定されたものである。
条項A19.人工知能チップであって、プロセッサと、コンピュータプログラム命令が記憶されているメモリと、を備え、前記プロセッサは、前記メモリ中の前記コンピュータプログラム命令を実行することにより、前記人工知能チップを制御して、条項A1〜A9の何れか1項に記載の方法を実行する。
条項A20.電子デバイスであって、条項A19に記載の前記人工知能チップを備える。
条項A21.ボードカードであって、記憶部品と、インタフェース装置と、制御部品と、請求項19に記載の人工知能チップと、を備え、ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置と、それぞれ、接続され、前記記憶部品は、データを記憶し、前記インタフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、前記制御部品は、前記人工知能チップの状態を監視制御する。
条項A22.条項A21に記載の前記ボードカードであって、前記記憶部品は、複数組の記憶ユニットを備え、各組の記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、DDR SDRAMであり、前記チップは、DDRコントローラを備え、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に用いられ、前記インタフェース装置は、標準PCIEインタフェースである。
以上、本発明の実施例を詳細に説明し、本明細書では具体的な例を適用して本発明の原理および実施形態を説明した。以上の実施例の説明は、本発明の方法およびその本旨の理解を助けるためにのみ使用される。同時に、当業者によって本発明の旨に依存して本発明の具体的な実施形態および適用範囲に基づいて行われた変更または修正は、いずれも本発明の保護しようとする範囲に属する。上記のように、本明細書の内容を本発明に対する制限として理解してはいけない。

Claims (22)

  1. データを処理するための方法であって、
    機械学習モデルに用いられる複数のデータを得るステップであって、前記データは、第1データ形式で表されるステップと、
    前記複数のデータの値に基づいて、前記複数のデータを第1組区間中に分布するステップであって、前記第1組区間の数は、予め決定されるステップと、
    前記複数のデータの第1平均値を決定するステップと、
    前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるステップであって、前記マッピングユニットは、前記第1組区間の第1区間から始まる所定数の連続区間を含み、前記マッピングユニットの終了区間には、前記複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、第2データ形式と関連が有り、第2データ形式の精度は、前記第1データ形式よりも低いステップと、
    前記第1平均値と前記複数の第2平均値に基づいて、前記複数のデータに対する処理を実行することによって、処理を経た前記複数のデータが前記第2データ形式で表されるようにするステップと、を含む
    ことを特徴とするデータを処理するための方法。
  2. 前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングするステップは、
    前記複数のデータの中の前記マッピングユニットの終了区間よりも大きいデータを、前記マッピングユニットの終了区間に再分布するステップと、
    前記複数のマッピングユニットを第2組区間にそれぞれマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるステップと、を含む
    ことを特徴とする請求項1に記載のデータを処理するための方法。
  3. 前記複数のデータに対する処理を実行するステップは、
    前記第1平均値と前記複数の第2平均値に基づいて、前記複数のマッピングユニットに関連する複数の差値を決定するステップと、
    前記複数の差値に基づいて、前記複数のデータに用いられる切捨て閾値を決定するステップと、
    前記切捨て閾値に基づいて、取得された前記複数のデータに対して切捨てを実行するステップと、
    前記切捨て閾値に基づいて、前記マッピングユニットに関連するスケーリング値を決定するステップと、を含む
    ことを特徴とする請求項1に記載のデータを処理するための方法。
  4. 前記複数のデータに対する処理を実行するステップは、
    前記スケーリング値に基づいて、切捨てを経た前記複数のデータに対してスケーリングを実行するステップをさらに含む
    ことを特徴とする請求項3に記載のデータを処理するための方法。
  5. 前記データの絶対値最大値に基づいて、前記複数のデータに関連する第1組区間を決定するステップをさらに含む
    ことを特徴とする請求項1に記載のデータを処理するための方法。
  6. 前記複数のデータの第1平均値を決定するステップは、
    前記複数のデータの中のデータの絶対値と前記複数のデータの数とを決定するステップと、
    前記複数のデータの中のデータの絶対値と前記数とに基づいて前記平均値を決定するステップと、を含む
    ことを特徴とする請求項1に記載のデータを処理するための方法。
  7. 前記複数のデータの第1平均値を決定するステップは、
    前記第1組区間の中の各区間の中間値と各区間が有するデータの数とを決定するステップと、
    前記中間値と前記数とに基づいて前記平均値を決定するステップと、を含む
    ことを特徴とする請求項1に記載のデータを処理するための方法。
  8. 前記複数のデータの第1平均値を決定するステップは、
    前記マッピングユニットの各区間中のデータの数と各区間の中間値とを決定するステップと、
    前記数と前記中間値とに基づいて前記第1平均値を決定するステップと、を含む
    ことを特徴とする請求項1に記載のデータを処理するための方法。
  9. 第2組区間の中の区間の数は、前記第2データ形式に関連するビット数に基づいて決定されたものである
    ことを特徴とする請求項1に記載のデータを処理するための方法。
  10. データを処理するための装置であって、
    機械学習モデルに用いられる複数のデータを得るための取得モジュールであって、前記データは、第1データ形式で表される取得モジュールと、
    前記複数のデータの値に基づいて、前記複数のデータを第1組区間中に分布するための分布モジュールであって、前記第1組区間の数は、予め決定される分布モジュールと、
    前記複数のデータの第1平均値を決定するための第1平均値決定モジュールと、
    前記第1組区間中に分布されているデータを、複数の互いに異なるマッピングユニットに従って、第2組区間にマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるための第1マッピングモジュールであって、前記マッピングユニットは、前記第1組区間の第1区間から始まる所定数の連続区間を含み、前記マッピングユニットの終了区間には、前記複数のデータの中の終了区間よりも大きいデーだ又は終了区間に位置するデータが分布されており、第2組区間の中の区間の数は、第2データ形式と関連が有り、第2データ形式の精度は、前記第1データ形式よりも低い第1マッピングモジュールと、
    前記第1平均値と前記複数の第2平均値に基づいて、前記複数のデータに対する処理を実行することによって、処理を経た前記複数のデータが前記第2データ形式で表されるようにするための実行モジュールと、を備える
    ことを特徴とするデータを処理するための装置。
  11. 前記第1マッピングモジュールは、
    前記複数のデータの中の前記マッピングユニットの終了区間よりも大きいデータを、前記マッピングユニットの終了区間に再分布するための再分布モジュールと、
    前記複数のマッピングユニットを第2組区間にそれぞれマッピングすることによって、対応するマッピングユニットに従ってマッピングされたデータの第2平均値の決定に用いるための第2マッピングモジュールと、を備える
    ことを特徴とする請求項10に記載のデータを処理するための装置。
  12. 前記実行モジュールは、
    前記第1平均値と複数の第2平均値に基づいて、前記複数のマッピングユニットに関連する複数の差値を決定するための差値決定モジュールと、
    前記複数の差値に基づいて、前記複数のデータに用いられる切捨て閾値を決定するための切捨て閾値決定モジュールと、
    前記切捨て閾値に基づいて、取得された前記複数のデータに対して切捨てを実行するための切捨てモジュールと、
    前記切捨て閾値に基づいて、前記マッピングユニットに関連するスケーリング値を決定するためのスケーリング値決定モジュールと、を備える
    ことを特徴とする請求項10に記載のデータを処理するための装置。
  13. 前記実行モジュールは、
    前記スケーリング値に基づいて、切捨てを経た前記複数のデータに対してスケーリングを実行するためのスケーリングモジュールをさらに備える
    ことを特徴とする請求項12に記載のデータを処理するための装置。
  14. 前記データの絶対値最大値に基づいて、前記複数のデータに関連する第1組区間を決定するための区間決定モジュートをさらに備える
    ことを特徴とする請求項10に記載のデータを処理するための装置。
  15. 前記第1平均値決定モジュールは、
    前記複数のデータの中のデータの絶対値と前記複数のデータの数とを決定するための絶対値および数決定モジュールと、
    前記複数のデータの中のデータの絶対値と前記数とに基づいて前記平均値を決定するための第2平均値決定モジュールと、を備える
    ことを特徴とする請求項10に記載のデータを処理するための装置。
  16. 前記第1平均値決定モジュールは、
    前記第1組区間の中の各区間の中間値と各区間が有するデータの数とを決定するための第1中間値および数決定モジュールと、
    前記中間値と前記数とに基づいて、前記平均値を決定するための第3平均値決定モジュールと、を備える
    ことを特徴とする請求項10に記載のデータを処理するための装置。
  17. 前記第1平均値決定モジュールは、
    前記マッピングユニットの各区間中のデータの数と各区間の中間値とを決定するための第2中間値および数決定モジュールと、
    前記数と前記中間値とに基づいて前記第1平均値を決定するための第4平均値決定モジュールと、を備える
    ことを特徴とする請求項10に記載のデータを処理するための装置。
  18. 第2組区間の中の区間の数は、前記第2データ形式に関連するビット数に基づいて決定されたものである
    ことを特徴とする請求項10に記載のデータを処理するための装置。
  19. 人工知能チップであって、
    プロセッサと、
    コンピュータプログラム命令が記憶されているメモリと、を備え、
    前記プロセッサは、前記メモリ中の前記コンピュータプログラム命令を実行することにより、前記人工知能チップを制御して、請求項1乃至9の何れか1項に記載の方法を実行する
    ことを特徴とする人工知能チップ。
  20. 電子デバイスであって、
    請求項19に記載の前記人工知能チップを備える
    ことを特徴とするデータを処理するための電子デバイス。
  21. ボードカードであって、
    記憶部品と、インタフェース装置と、制御部品と、請求項19に記載の人工知能チップと、を備え、
    ここで、前記人工知能チップは、前記記憶部品、前記制御部品、および、前記インターフェース装置と、それぞれ、接続され、
    前記記憶部品は、データを記憶し、
    前記インタフェース装置は、前記人工知能チップと外部デバイスとの間のデータ伝送を実現し、
    前記制御部品は、前記人工知能チップの状態を監視制御する
    ことを特徴とするデータを処理するためのボードカード。
  22. 前記記憶部品は、複数組の記憶ユニットを備え、各組の記憶ユニットは、前記人工知能チップとバスを介して接続され、前記記憶ユニットは、DDR SDRAMであり、
    前記チップは、DDRコントローラを備え、各々の前記記憶ユニットのデータ伝送およびデータ記憶に対する制御に用いられ、
    前記インタフェース装置は、標準PCIEインタフェースである
    ことを特徴とする請求項21に記載のボードカード。

JP2020566899A 2019-08-26 2020-08-26 データを処理するための方法、装置、及び関連製品 Active JP7072680B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910792847.0 2019-08-26
CN201910792847.0A CN112434781A (zh) 2019-08-26 2019-08-26 用于处理数据的方法、装置以及相关产品
PCT/CN2020/111495 WO2021037083A1 (zh) 2019-08-26 2020-08-26 用于处理数据的方法、装置以及相关产品

Publications (2)

Publication Number Publication Date
JP2022501673A true JP2022501673A (ja) 2022-01-06
JP7072680B2 JP7072680B2 (ja) 2022-05-20

Family

ID=74684889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020566899A Active JP7072680B2 (ja) 2019-08-26 2020-08-26 データを処理するための方法、装置、及び関連製品

Country Status (5)

Country Link
US (1) US20220083909A1 (ja)
EP (1) EP4024282A4 (ja)
JP (1) JP7072680B2 (ja)
CN (1) CN112434781A (ja)
WO (1) WO2021037083A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002319021A (ja) * 2001-04-19 2002-10-31 Murata Mfg Co Ltd 二値化処理方法、外観検査方法および外観検査装置
WO2014136193A1 (ja) * 2013-03-04 2014-09-12 富士通株式会社 基地局装置、基地局システムおよびiqデータの圧縮方法
JP2018205292A (ja) * 2017-06-05 2018-12-27 瀏陽 宋 時間領域・周波数領域のヒストグラムの特徴解析による状態識別法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030086595A1 (en) * 2001-11-07 2003-05-08 Hui Hu Display parameter-dependent pre-transmission processing of image data
US20100241423A1 (en) * 2009-03-18 2010-09-23 Stanley Wayne Jackson System and method for frequency to phase balancing for timbre-accurate low bit rate audio encoding
CN102903089B (zh) * 2012-09-07 2014-12-17 山东大学 一种Linux环境下生成遥感图像快视图的方法
TWI595777B (zh) * 2013-10-02 2017-08-11 杜比實驗室特許公司 透過hdmi發送顯示管理元數據
WO2016169032A1 (zh) * 2015-04-23 2016-10-27 华为技术有限公司 数据格式转换装置、缓冲芯片及方法
US10397585B2 (en) * 2015-06-08 2019-08-27 Qualcomm Incorporated Processing high dynamic range and wide color gamut video data for video coding
US11062223B2 (en) * 2015-12-02 2021-07-13 The Climate Corporation Forecasting field level crop yield during a growing season
US11321609B2 (en) * 2016-10-19 2022-05-03 Samsung Electronics Co., Ltd Method and apparatus for neural network quantization
US11138220B2 (en) * 2016-11-27 2021-10-05 Amazon Technologies, Inc. Generating data transformation workflows
US10997492B2 (en) * 2017-01-20 2021-05-04 Nvidia Corporation Automated methods for conversions to a lower precision data format
DE102018101166A1 (de) * 2017-01-20 2018-07-26 Nvidia Corporation Automatisierte verfahren zur umwandlung in ein datenformat geringerer genauigkeit
CN109034382A (zh) * 2017-10-30 2018-12-18 上海寒武纪信息科技有限公司 场景或物体的识别方法及相关产品
KR102095335B1 (ko) * 2017-11-15 2020-03-31 에스케이텔레콤 주식회사 연산 가속화가 적용된 신경망 모델의 생성 및 활용을 위한 장치 및 방법
US11080611B2 (en) * 2017-12-22 2021-08-03 Intel Corporation Compression for deep learning in case of sparse values mapped to non-zero value
CN109062540B (zh) * 2018-06-06 2022-11-25 北京理工大学 一种基于cordic算法的可重构浮点运算装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002319021A (ja) * 2001-04-19 2002-10-31 Murata Mfg Co Ltd 二値化処理方法、外観検査方法および外観検査装置
WO2014136193A1 (ja) * 2013-03-04 2014-09-12 富士通株式会社 基地局装置、基地局システムおよびiqデータの圧縮方法
JP2018205292A (ja) * 2017-06-05 2018-12-27 瀏陽 宋 時間領域・周波数領域のヒストグラムの特徴解析による状態識別法

Also Published As

Publication number Publication date
EP4024282A1 (en) 2022-07-06
US20220083909A1 (en) 2022-03-17
EP4024282A4 (en) 2023-08-16
WO2021037083A1 (zh) 2021-03-04
CN112434781A (zh) 2021-03-02
JP7072680B2 (ja) 2022-05-20

Similar Documents

Publication Publication Date Title
CN109993296B (zh) 量化实现方法及相关产品
JP2022501676A (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP2022501675A (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
CN110750351B (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
WO2021185262A1 (zh) 计算装置、方法、板卡和计算机可读存储介质
CN112446460A (zh) 用于处理数据的方法、装置以及相关产品
WO2021082725A1 (zh) Winograd卷积运算方法及相关产品
WO2021027972A1 (zh) 数据同步方法及装置以及相关产品
JP7072680B2 (ja) データを処理するための方法、装置、及び関連製品
CN110458285B (zh) 数据处理方法、装置、计算机设备和存储介质
CN110647981B (zh) 数据处理方法、装置、计算机设备和存储介质
CN110555522B (zh) 数据处理方法、装置、计算机设备和存储介质
WO2021018313A1 (zh) 数据同步方法及装置以及相关产品
WO2021027973A1 (zh) 数据同步方法及装置以及相关产品
WO2021223642A1 (zh) 数据处理方法及装置以及相关产品
CN111260070B (zh) 运算方法、装置及相关产品
JP2022501674A (ja) データを処理するための方法、装置、及び関連製品
CN112784206A (zh) winograd卷积运算方法、装置、设备及存储介质
JP7233636B2 (ja) データ量子化処理方法、装置、電子機器および記憶媒体
CN113298843B (zh) 数据量化处理方法、装置、电子设备和存储介质
CN113435591B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112347026B (zh) 数据同步方法及装置以及相关产品
US20220222041A1 (en) Method and apparatus for processing data, and related product
CN111047023B (zh) 一种计算装置及相关产品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220510

R150 Certificate of patent or registration of utility model

Ref document number: 7072680

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150