純粋な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本質理解への敷居が決して高くないことを示唆しています。
この記事が気に入ったらサポートをしてみませんか?