使ってわかるCopilot+ PC

第80回

いま、改めて問う。「NPU」って何だ? なぜCopilot+ PCに必要なのか?

Copilot+ PCのWebサイトより

Copilot+ PCのNPUは何のためにあるのか

 本連載はCopilot+ PCの登場から1年半あまり、さまざまな関連情報をお伝えしてきた。Copilot+ PCには「NPU」が搭載されていて、40TOPS以上の性能が求められていることは、何度も解説済みだ。

 では改めて、『NPUって何?』と問われて、きちんと説明できる方はいらっしゃるだろうか。また『NPUがあると何かいいことがあるのか?』も、あまり知られていないかもしれない。

 今回は初心に戻って、NPUとは何かを説明する。簡単に説明したいのだが、どうしても専門用語だらけになってしまうので、できるだけ丁寧に1つずつ解説していく。

Copilot+ PCのWebサイトにあるNPUの説明。ニュアンスは伝わるが、厳密な意味での理解には足りない感じがする

NPUとは何か?

 NPUは「Neural Processing Unit(ニューラル・プロセッシング・ユニット)」の略。「Neural network Processing Unit(ニューラルネットワーク・プロセッシング・ユニット)」と呼ばれることもある。

 「ニューラルネットワーク」というのは、生物の脳の神経回路(ニューロン)を数学的にモデル化して模倣するもの。簡単に言えば、脳のような動きをするコンピューターの仕組みのことだ。

 つまりNPUは、ニューラルネットワークでの計算に特化したプロセッサー、となる。

NPUは何を計算している?

 では、ニューラルネットワークでの計算とは何か。NPUは何を計算するプロセッサーなのか?

 答えは、積和演算。積は掛け算、和は足し算のこと。つまりNPUは掛け算と足し算を専門に行うプロセッサーである。

 なぜそんなものが必要なのかというと、ニューラルネットワークの推論はほぼ積和演算で行われるからだ。

推論とは?

 推論とは、AIモデルをもとにして、入力されたデータに対する答えを出す処理のこと。ニューラルネットワークには学習と推論という2つの工程があり、大量のデータからモデルを作成するのが学習で、モデルを用いて答えを考えるのが推論だ。

 その推論で行われる計算が、ほぼ積和演算だ。学習によって得られた「重み」をもとに、積和演算で答えを出す工程となる。

 例えば、猫の写真を見て、『これは猫か?』と問われた時、人間は耳の形や毛並みなどの特徴を見て『これは猫っぽいな』と判断する。ニューラルネットワークはこれを真似た動きをする。

 ニューラルネットワークでは、耳の形や毛並みなどの特徴がどれくらいの強さで現れているのかを数値として出し、それぞれの特徴をどのくらい重要視するかが数値で設定される。これが学習における重み付けだ。

 推論では、画像にあるそれぞれの特徴の強さと、学習した重みを掛け算する。それぞれの特徴が、猫らしさの判断にどれだけ寄与するかを点数化するという意図だ。最後にその点数を全て足し算すると、『どのくらい猫っぽいか』の総合点数が得られる。点数が一定の閾値を超えたら『これは猫っぽいな』とAIが答えるわけだ。

 おおざっぱな説明になったが、ニューラルネットワークでは、このような掛け算と足し算を大量に繰り返すことで、推論を実現している。AIはとても複雑なことをやっているように見えて、実は単純な計算を無数に繰り返すものなのだと気付くと、ちょっと面白い。

NPUは掛け算と足し算を大量に繰り返すことで推論を実現している

人知れず推論を動かすために必要なもの

 ここまで来れば、NPUの本質は見えたはずだ。推論にはものすごい量の積和演算が必要になるので、専用のプロセッサーがあった方が具合がいい。

 推論の計算はCPUにできないわけではないが、単純な計算の繰り返しであるがゆえに、汎用性の高いCPUでは効率が悪い。またGPUは高速な積和演算が可能なのだが、推論では使わない機能も多数搭載しており、余計に電力を消費してしまう。積和演算に特化したNPUの方が、同じ計算量を処理した時の消費電力は格段に少なくて済む。

 ちなみに学習においては、積和演算以外にも必要な演算があるため、NPUには適していない(少なくとも現在のNPUの設計では)。今のところ、個人レベルで学習を行うにはGPUが最適なプロセッサーとなる。大規模なAI開発においては、学習に最適化された別のプロセッサーが存在する。

 ニューラルネットワークで処理したいものとしては、Copilot+ PCの「Windowsスタジオエフェクト」のカメラのリアルタイム解析処理や、音声のリアルタイムノイズ除去、「リコール」の画像の理解と検索などがある。これらは休む間もなく常時動き続けたり、ユーザーが意識しない範囲で動いてくれたりして欲しい。

 そこで大量の消費電力を使ってしまうと、デスクトップPCならファンがうるさく回るし、ノートPCならバッテリーの持続時間が短くなってしまう。『NPUの処理なんてGPUでもできるだろう』とよく言われるのだが、NPUの目的は絶対的な高性能ではなく、推論をごく軽い負荷で動かし続けることにあるとわかる。

 この先、NPUにはより高い性能が求められるかもしれないが、今のところCopilot+ PCでは40TOPS、1秒間に40兆回の積と和の演算ができればよい、とされているわけだ。

著者プロフィール:石田賀津男(いしだ かつお)

1977年生まれ、滋賀県出身

ゲーム専門誌『GAME Watch』(インプレス)の記者を経てフリージャーナリスト。ゲーム等のエンターテイメントと、PC・スマホ・ネットワーク等のIT系にまたがる分野を中心に幅広く執筆中。1990年代からのオンラインゲーマー。窓の杜では連載『初月100円! オススメGame Pass作品』、『週末ゲーム』などを執筆。

・著者Webサイト:https://ougi.net/