2021年10月
トップ  > ASEAN科学技術ニュース> 2021年10月

身近なハードウェアとして間もなく「posit」が登場 シンガポール国立大学

シンガポール国立大学(NUS)は、シンガポールとフランスの人工知能(AI)研究における協力関係を基盤とする「デカルトプログラム」の一員として、スマートシティ構想のデジタル変革に取り組むことを発表した。9月24日付。

国境を越えた協働からアクセス性の向上まで、スーパーコンピューターは世界がコロナから回復する上で重要な役割を果たしている。

AsianScientist - 人間と比べるとコンピューターはより速く、より精度が高く正確である。少なくとも、そう思われている。しかし、表面を少し掘り下げてみると不正確であり不完全であることが分かる。私たちのほとんどは毎日コンピューターを使用していても、知らないことがある。コンピューターの数学計算には好ましくない小さな秘密がある。実は、コンピューターは数えることができないのだ。

信じられないだろうか? 浮動小数点表現の標準方式を使用して、0.1と0.2を足してみるといい。人間の頭はすぐに0.3の答えを出すが、コンピューターは0.2999998や0.3000002といった答えを出す。近いが、正しくはない。

その理由は、人間は1や2のような整数を足すと正確に3になることを理解しているが、コンピューターは10進数で考えず、理解できる方式(2進浮動小数点)に変換する必要があるためである。この表現は完全ではなく、丸め誤差や再現性の低下につながる。

もしがっかりしたとしても、positsと呼ばれる新しい種類のデータがある。計算資源が少ない場合でも精度は高いので、別の物を探す必要はない。シンガポール国立大学(NUS)の教授であるジョン・グスタフソン (John Gustafson) 博士によって開発されたposit演算とその応用は、2017年の導入以来、飛躍的な発展を遂げた。

順調に研究を続けてきたアジアと世界中の研究者たちは新たな展開を迎え、間もなくpositがコンピューターにフルパワーを与えることとなるかもしれない。

posit入門

コンピューターに数値を保存する方法は限られている。ビットは0または1の状態にしかなり得ないため、10進数の0の数値を9に変換すると、同じ数値を表現するためにはより多くの桁(より多くのビット)が必要になる。これは、分数や平方根などの非整数の実数の場合、計算に負担がかかり、エネルギー効率が非常に低くなる。

浮動小数点形式は米国電気電子協会 (IEEE) が受け入れている主な標準であり、所定の方法でビットを仮数部と指数部に割り当てる。

精度と範囲にはトレードオフが存在する。コンピュータのビット幅が不足し、計算に負の無限大や非数値表現など使用できない要素により計算が散らばるため、近似は避けられない。

「数値の大小にかかわらず、同じ精度が必要であることを前提としています。実際には、それは本当に必要とは言えません。一般的に使われている1に近い数字をより正確にすればいいのです」とグスタフソン博士。

この考えが、posit表現におけるregimeビットの導入の元となった。浮動小数点とは異なり、パーツあたりのビット数は固定されておらず、指数部および小数部よりもregime項が優先される。

「regimeビットにより、精度を自動的に徐々に下げることができます。このスライディングスケールは非常にエレガントに機能し、共通の数字がある場所を強調してくれる効果を生み出します」(グスタフソン博士)

実際、これにより、すぐ行うべきタスクに合わせてダイナミックレンジと精度の適切なバランスを選択できる。regimeフィールドはほとんどの計算に2ビットしか必要としないため、positは十分に最適化されており、ビットが最も必要な場所に割り当てられるよう保証する。

少ないビット数で正答可能

positを使用すると、複雑なものがはるかに単純なものに変わることが多い。コンピューターの場合、乗算は特に負担のかかる演算であり、特に整数以外の実数を使用する場合は不正確になりがちである。

そのような例として対数システムが挙げられる。対数に変換すると、乗算ではなく加算が可能になるが、この演算は常に正確な値ではなく近似に依存してきた。その結果、長い小数が生成されるがコンピューターのビット制限内に収まるように切り捨てる必要があり、丸め誤差の発生が多い。

しかし、最近はposit演算が飛躍的に進歩した。実数の掛け算表を照合して、小さな整数を使用して足し算表に変えることができる。

前述のデコード手順またはマッピングして元の表現に戻ることにより、シンプルかつ低電力で計算を行うことが可能であり、それでありながら正確な答えが得られる。グスタフソン博士は、このような完全なマッピングは人工知能 (AI) アプリケーションで使用される低精度演算で最もよく機能すると説明する。

低精度演算とはネガティブな属性のように聞こえるかもしれないが、16ビット以下で実行されるシステムを意味する。対して単精度演算は32ビットで指定されている。つまり、positはより少ない資源でより多くのことを行っている。

画像や音声ファイルなどで画像の鮮明さや音質を大きく落とすことなくファイルサイズを可能な限り小さくするなど、圧縮のバランスを時のことを考えていただきたい。同様に、16ビットのpositはデータ信号を再生するときに基本的にロスレスだが、深く定着しているIEEE 32ビットの浮動小数は多くの情報を失う。

グスタフソン博士は、positは少ないビット数でもより正しい回答を出すことができるので、AIアプリケーションの計算能力と速度を大幅に向上させることができると強調した。

「実際には、精度を高める優れた設計だけでなく、現在スーパーコンピューターで使用しているものよりもはるかに高速なハードウェアを構築できるかもしれません」とグスタフソン博士。

最も恩恵を受けると思われるテクノロジーの1つとして具体的に挙げられているのは、人間の脳が情報を処理する方法をエミュレートしようとする多層アルゴリズムであるディープニューラルネットワーク (DNN) である。

比較的単純なAIモデルは特定のルールセットが与えられてデータを分析するが、ニューラルネットワークは、人がさまざまな種類の犬を区別したり医師が医療スキャンで損傷した組織を識別したりするのと同じ方法でラベルを割り当て、大量のトレーニングデータを操作し、理解し、独自に学習する。

そのため、DNNアプリケーションは通常、画像処理や自律型運転など非常に複雑なタスクのために開発されている。しかしながら、グスタフソン博士は、これらのシステムは非常に多くの資源に頼っていると述べる。

「最も単純なタスクのためにトレーニングが数日間続くことがあり、エネルギー消費に多くのキロワット時が使われます。それは障害となります」(グスタフソン博士)

positは、DNNトレーニングと推論の効率を著しく向上させることができる。後者はAIモデルの推測能力を指し、新しいデータのパターンを見つけるために学習したことを機能させる。

米国の研究チームはグスタフソン博士と協力して、8ビットのpositが同等の浮動小数点演算を上回り、DNN推論では32ビットの浮動小数点演算と同等の結果が得られることを証明した。分類の精度については、悪性乳がんと良性の腫瘍の区別やさまざまな手書きの数の特定など、多くのタスクで86〜99%の範囲を示し、期待が持てる。

高精度であるだけでなく、posit演算はニューラルネットワークで頻繁に使用される特定の関数の表現と正確に一致するので、少ない資源で学習と計算は加速される。

「使用するビット数が少ないということは、チップで使用するエネルギーとスペースは相当に少なくなり、すべてのコストが削減されることを意味します」とグスタフソン博士は話す。

変換を滑らかにする

高精度でエネルギー効率の高い計算を次の段階に進ませるには、posit演算だけでなく、それを支援する基盤となるプラットフォームによるところも大きい。グスタフソン博士によると、世界中の研究者たちは、あるデータタイプから別のデータタイプへの変換ルーチン(例えば浮動小数点演算からposit演算へ、またはposit演算から浮動小数点演算へ)を支援する数学ライブラリをすでに構築している。

現段階では、posit表現は多く使用されている浮動小数点表現のように機能するが、指数などの複雑な演算や正弦などの三角関数の場合でも計算が大幅に向上する。グスタフソン博士はposit標準を開発中であり、まもなく正式に発表される予定である。そのposit標準の一部として、このような変換が可能であれば、posit形式の幅広い採用への道が開かれる。

グスタフソン博士は「指標となる標準があり、すべての異なるシステム間で使える移植性を持たせることは重要です。少なくとも1つの大手企業が製品として生産するものから利益が出るようになるまでpositを取り入れることができるからです」と述べる。

最近、この分野で進歩を見せたものの中には、基本的な操作を実行可能にするposit演算のコアを生成するために香港大学の研究者たちが作成したPACoGenがある。これらコアはコンピューターの回路の一部を形成するため、PACoGenは、posit処理装置 (PPU) にマイクロチップなどのハードウェアへの統合の全体像を伝える情報伝達役として機能し、さまざまな技術仕様に対するposit形式の適合性を示す。

パズルのもう1つの重要な部分は、positがさまざまなプロセッサ間での互換性を保証する設計仕様のオープンソースセットであるRISC-V命令セットアーキテクチャに従うことである。

「画期的なことは、除算の操作を完璧なものにする必要はないと気づいたことです。加算、減算、乗算を完全にすることができれば、除算はあまり一般的ではないため、完全にする必要はありません」(グスタフソン博士)

それは、勝つことができる戦いだけを選ぶようなものだった。この最適化により、整ったサイズに収まり、整数と同じ順序を表現するきれいな記数法が出来上がった。

positは浮動小数点と互換性の高い代替品として概念化されたが、グスタフソン博士は、ユーザーにとっては2つの形式を切り替えることができる移行期間があり、異なる処理モードを持つようなものだと考えている。

計算の最前線から主流のテクノロジーとなる移行段階はすでに始まっている。たとえば、ThoughtWorks Technologies Indiaでは、科学者たちはRocket Chipプロジェクトの浮動小数点演算装置をPPUに置き換えた。

RISC-Vテストスイートで評価したところ、positは計算に表現されるが使用できない表現の量を最小限に抑えることが分かった。それと同時に、PPUはRISC-V浮動小数点拡張機能のサポートを続けていた。コードを追加すれば、必要に応じて特定の機能を実行できる。

新しいプロセッサがすでに設計されているため、グスタフソン博士は、positがハードウェアで使用される主要な形式になる一方で、浮動小数点はめったに使用されないレガシーツールになると想定している。浮動小数点が引き続き利用可能であるとしても、ソフトウェア拡張機能とライブラリを介してのみの利用となるだろう。グスタフソン博士は、知的慣性を乗り越えて、今後10年以内にでもpositに切り替わる可能性があると考える。

「私は、positが徐々に採用され、それらが競い合い、それにつれて計算も同じように進化すると思います。そのような種類の改善は段階的なものであり、あまり大変なものではないはずだと考えます。positが最終的に世界を支配することを願っています」とグスタフソン博士は締めくくった。

上へ戻る