半精度(FP16)が、より高速な計算、メモリ使用量の削減、効率的なモデル展開によってAIをどのように加速するかをご覧ください。
半精度とは、コンピュータ・メモリ上で16ビットを占有する2進浮動小数点コンピュータ数値フォーマットで、一般にFP16と呼ばれる。 FP16と呼ばれる。急速に発展している ディープラーニング(深層学習)の分野では、このフォーマットは このフォーマットは、数値計算に伝統的に使用されてきた標準的な32ビット単精度(FP32)フォーマットの強力な代替となります。これにより 各数を表現するのに必要なビット数を減らすことで、半精度はメモリ 帯域幅の圧力と モデルの重みとアクティベーションに必要なメモリ帯域幅の圧力とストレージ要件が大幅に削減されます。この効率性により 研究者やエンジニアは、より大規模な を大幅に損なうことなく、限られたリソースのハードウェアで 予測精度を大幅に損なうことなく 予測精度を大幅に損なうことなく
IEEE 754規格は、浮動小数点数の構造を定義している。 FP16では符号に1ビット、指数に5ビット、分数(仮数)に10ビットが割り当てられている。 このコンパクトな表現は、指数に8ビット、分数に23ビットを使用するFP32とは対照的です。FP16の主な利点は FP16の主な利点 を使用する主な利点は 数学演算の高速化である。最新のハードウェア・アクセラレータ NVIDIA Tensor 、最新のハードウェア・アクセラレータは、単精度よりも大幅に高速な半精度の行列乗算を実行するよう特別に設計されています。 のような最新のハードウェア・アクセラレータは、単精度演算よりも大幅に高速な半精度の行列乗算を実行するように設計されています。
しかし、ビット数が減るということは、ダイナミック・レンジが狭くなり、精度が落ちることを意味する。これは、以下のような数値的不安定性を引き起こす可能性がある。 数値の不安定性 勾配の消失など、数値が不安定になる可能性がある。 数値が小さすぎてコンピュータがゼロから明確に表現できなくなる。これを軽減するために、開発者はしばしば 混合精度戦略 これは、学習中にFP16とFP32を動的に切り替えて、半精度のスピードを生かしながら安定性を維持するものです。
半精度は、特に高スループットや低レイテンシを必要とするシナリオにおいて、最新のAIワークフローではどこにでもある。 レイテンシーを必要とするシナリオでは特にそうである。
のようなフレームワークがある。 PyTorch などの図書館がある。
ultralytics を使えば、半精度を活用するのは簡単だ。次の例は
YOLO11 モデルを TensorRT フォーマットを使用する。
NVIDIA GPUで推論速度を最適化するための一般的な方法である。
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TensorRT engine with half-precision enabled
# The 'half=True' argument ensures weights are converted to FP16
model.export(format="engine", half=True)
ハーフ精度を理解するには、用語集にある関連する最適化技術と区別する必要がある:
これらのフォーマットを使いこなすことで、開発者は次のことが可能になります。 モデルのデプロイメント戦略を、プロジェクトの特定のハードウェアとパフォーマンス要件 最適化されたモデル展開戦略をとることができます。


