18 ポイント 投稿者 GN⁺ 2023-08-16 | 3件のコメント | WhatsAppで共有
  • LLaMA の推論コードを純粋な C++ で書き直した LLaMA.cpp のおかげで、Pixel 5、M2 MacBook Pro、Raspberry Pi など多様なハードウェアで実行可能
  • 大規模モデルは一般に高価な GPU を必要とするが、これはなぜ可能なのだろうか?
  • GPU は大きなメモリ帯域幅と計算能力を持つためディープラーニングに有利だが、メモリ帯域幅がしばしば推論のボトルネックになる
    • 実際の計算のためには、HBM メモリ(RAM)からオンチップメモリへ移さなければならないため
  • LLaMA の重みに必要な RAM 使用量において、Quantization(量子化)が重要
    • 精度を下げることで、モデルをメモリに保存するために必要なメモリ量を大幅に減らせる
    • 量子化によってモデル保存に必要なメモリ量を減らし、標準的なデータセンター GPU や高性能なコンシューマー向け GPU のメモリに収まるようにできる
  • メモリ帯域幅は、トランスフォーマーのサンプリングに関わるほぼすべての処理で制約要因となる
  • 量子化などの方法でメモリ要件を減らせば、はるかに容易にサービングできる
  • これは distillation や「より小さなモデルをより長く訓練する」もう1つの理由でもある

3件のコメント

 
breezymind 2023-08-17

ローカルマシンでLlamaCppからllama2を読み込み、埋め込みのテストをしてみました。

https://breezymind.com/llamacpp-embedding

 
xguru 2023-08-17

HNの最初のコメントが参考になりますね

「気になっている方のために言うと、モデルを量子化するとコストが発生します。
https://oobabooga.github.io/blog/posts/perplexities/

基本的には精度が少し落ち、変な回答が出ることがあり、予想から外れたりハルシネーションを起こしたりする可能性が高くなります。ただし、パラメータが多いほど品質の低下は小さくなります。なので、モデルサイズが非常に大きい場合、その差は無視できる程度になります。また、これは推論にかかるコストの話にすぎません。学習はまったく別の問題で、はるかに多くの計算資源が必要です。

それでも、私たちは1台のサーバーラックでGPT3レベルの性能を見ています。わずか1年前までは、このようなAIは文字通り魔法のようなもので、大規模なデータセンターでしか動かせなかったことを考えると、すごい成果です。帯域幅とメモリ容量は、たぶん素人考えでは、生の計算能力よりも増やしやすいでしょうから、近いうちに本当に『スマート』なデバイスを手にすることになるかもしれません。"

 
GN⁺ 2023-08-16
Hacker Newsの意見
  • モデルを量子化するコスト、それによる精度低下や異常な応答の可能性についての記事。しかし、モデルのパラメータ数が多いほど、この損失の重要性は低くなる。
  • GPT3の優れた性能を強調する記事で、今では単一のサーバーラックで動作可能になっており、昨年は大規模データセンターが必要だったAIと比べて大きな改善だとされる。
  • トークン生成は直列で帯域幅に制約される一方、プロンプト埋め込みはそうではなく、512+のバッチで実行可能だと指摘する内容。
  • Llama.cppは現在、複雑さに大きな影響を与えない約4ビット量子化を備えている。Q6_KはFP16とほぼ同じ複雑さだが、はるかに小さい。
  • Llama.cppの真の魔法はモデル分割にあり、小型のディスクリートGPUがプロンプト埋め込みとモデル推論の一部を完全にオフロードできるようにしている。これは生成AI分野では独特だ。
  • GPUバックエンド(OpenCL、Metal、CUDA、まもなくROCmおよびVulkan)は、Llama.cppを実行するための望ましい方法。これらがなければ、デスクトップで70Bを、あるいは16GB RAMのノートPCで33Bを動かすことは不可能。
  • Go、Python、その他のランタイムとの拡張性が容易な点でこのプロジェクトは称賛されている。これを利用して、Goで複数モデルを取得して実行し、REST APIで提供するツールが作られている。
  • AVX2を備えた最新CPUで推論を実行するのはGPUより遅いが、単一の長く連続したRAM領域を持てるという利点がある。しかし、4ビットに量子化し、x86_64 CPUでfp32以外で推論を実行する選択肢がないのは大きな欠点だ。
  • 記事では、単一のPi4 8GBで13Bデータセット、3台のpi4ノードで65Bデータセットの再現に成功したことに触れており、この手法のアクセスしやすさを示している。
  • 記事は、レイテンシ数値を論じる際に単位の扱いが大ざっぱだとして批判されている。
  • 記事は、作業負荷の大半がメモリ制約を受ける場合に、なぜチップメーカーがチップに多くの機能ユニットを搭載するのかという疑問を提起している。
  • 記事は、Hacker Newsの外ではなかなか見つからない独自の内容について称賛されている。
  • このテキストは、メモリ制約下のトークン生成がトランスフォーマーデコーダで抱える限界を論じ、将来のハードウェアフレンドリーなモデルに期待を寄せている。
  • 記事は、重要なメモリ帯域幅のボトルネックを踏まえて、なぜ専用ハードウェアがそのように設計されたのか、そしてソフトウェアパラダイムの変化がこのバランスを変えうるのかに疑問を投げかけている。