ローカルでモデルを実行することには、主に3つの正当な理由があります。データがマシンから外部に流出しないこと、呼び出しごとの費用がかからないこと、そしてネットワークが切断されても利用できることです。まず最初に考えるべきは、自分のマシンがどの程度の処理能力を持っているかということです。
メモリの推定値
大まかな目安:必要なメモリ容量 ≈ パラメータ数 × パラメータ1つあたりのバイト数。これに、コンテキストバッファや付随的なオーバーヘッドとして15~25%を加算する。
- 16ビット — パラメータ1つにつき2バイト:70億パラメータのモデルには約15GBが必要
- 8ビット — 1バイト:約8GB、品質はほぼ変わらない
- 4ビット — 0.5バイト:約4.5GB、品質はわずかに低下するが、ほとんどの用途では許容範囲内
4ビットを下回ると、特に多段階の推論やコード生成において、品質が明らかに低下し始める。
ボトルネックはメモリ帯域幅であり、演算能力ではない
トークンを生成するたびに、各トークンの重みをすべて読み直す必要があります。そのため、処理速度は1秒あたりの演算回数ではなく、メモリの帯域幅によって制限されます。
実際の結果:高帯域幅のメモリを搭載したグラフィックカードは、CPUを圧倒的に上回る性能を発揮する。また、メモリが統合されたノートパソコンでは、容量よりも帯域幅こそが重要な要素となる。
妥当な期待
一般的なグラフィックカード上で動作する小型モデルは、読み進めるのに十分な滑らかさを実現しています。同じモデルをCPU上で実行すると、処理速度が数倍遅くなります。バッチ処理には適していますが、対話型処理には不向きです。
いつその場で走るべきか
分類、抽出、要約、書き換えといった、反復が多く明確なパターンを持つ作業については、オンプレミスの小規模モデルが効果的かつ低コストです。一方、多段階の推論や幅広い知識を必要とする作業については、API経由で利用可能な大規模モデルが依然として圧倒的に優れています。
Thảo luận