見出し画像

純粋なC言語を使用した大規模言語モデルトレーニングツール「llm.c」

LLMのトレーニングを、純粋なC/CUDAでシンプルに行います。245MBのPyTorchや107MBのcPythonは不要です。たとえば、GPT-2(CPU、fp32)のトレーニングは、約1,000行のクリーンなコードで1つのファイルに収められています。コンパイルしてすぐに実行可能で、PyTorchのリファレンス実装と完全に一致します。最初に機能する例としてGPT-2を選んだのは、現代のスタックが初めて組み合わさったとき、LLMの始祖であるからです。

現在取り組んでいること:

  • 直接CUDA実装により、大幅に高速化し、PyTorchに匹敵する速度が出る可能性があります。

  • CPUバージョンをSIMD命令で加速し、x86のAVX2やARMのNEON(例えばApple Silicon)を使用します。

  • よりモダンなアーキテクチャ、例えばLlama2、Gemmaなど。

リポジトリでは、クリーンでシンプルなリファレンス実装とともに、PyTorchに匹敵するが、コード量や依存関係はほんの一部の高度に最適化されたバージョンを維持したいと考えています。

アンドレイ・カルパシー氏は、OpenAIの初期メンバーであり、かつてテスラでAIのトップを務めていた人物です。

彼が開発したllm.cを使用すると、大容量のPyTorchやcPythonを必要とせずに大規模言語モデルのトレーニングが可能となります。カルパシー氏によると、彼は「GPT-2」という、現代の大規模言語モデルの基礎を築いたモデルを、わずか1000行のコードでCPU上でトレーニングすることができたそうです。これにより、依存するライブラリやツールの量を大幅に削減することができました。

C言語ベースで若干 1000行程度でGPT2のトレーニングが可能であることは、LLM本質理解への敷居が決して高くないことを示唆しています。


この記事が気に入ったらサポートをしてみませんか?