概要
- tinygrad は2020年10月17日に最初のコミット
- 現在6人のチーム、約18,935行のコードベース
- NVIDIAと競うための独自ソフトウェアスタック構築
- 他社の巨大なコードベースと比較し、 圧倒的に小規模
- 目標はペタフロップのコモディティ化
tinygrad開発の歩みと哲学
- tinygrad は2020年10月17日に最初のコミット
- 資金調達から約3年が経過
- 現在のチームは 6人構成
- テストを除く コードベースは18,935行
- 5年間で18,935行に注力し、他のメンバーも数年を費やす
- 今後さらに 5年の開発期間 を見込む
- NVIDIAと競合するための 正しいプロセス 重視
- 最初からチップ(ASIC)設計に着手するのは非効率と主張
- ソフトウェアスタック の完成が最優先
- SOTAモデルを訓練可能な完全な主権ソフトウェアスタック
- 完成後はチップ設計が容易になるという見解
- AMD, Amazon, Tesla, Groqもチップを設計したが
- GoogleとNVIDIAのみが本格的な訓練に利用されている理由はソフトウェア
- LLVM依存排除を進行中
- pure Python 以外の依存をゼロにしてAMD GPUを駆動
- フロントエンド、グラフコンパイラ、ランタイム、ドライバを完備
- 既にPyTorchを上回るワークロードも存在
- 最終的に約 20,000行 で完成予定
ソフトウェア設計に対する批判とtinygradのアプローチ
- ソフトウェア設計の多くが 誤った考え方 に基づくと指摘
- ほとんどのコードベースには他の部分の問題への ワークアラウンド が存在
- その多くは深層的かつ構造的で、コードを読んでも気付きにくい
- ソフトウェアの 98% がこのようなワークアラウンドで構成されていると主張
- Elon Musk流の「 要件を愚かにしない」アプローチを採用
- 「 最良の部品は部品がないこと」を重視
- ほとんどの要件は他の抽象化との互換性維持のために存在
- LLMサーバーの例
- 本質的要件は「OpenAI互換APIでLLMを高速実行」
- 実際のコードベースは 何百万行 にも膨れ上がっている
- tinygradは 1/1000の規模
- 他のコードは目標よりも他コードとの整合性に注力しているため非効率
- 同様の 非効率性が組織にも存在 と指摘
tiny corpの組織形態と運営
- tiny corpは 分解型(deconstructed)企業
- 高級シェフが料理を分解するように、会社の構造も分解
- プライベートな要素はほとんどなく、 DiscordとGitHub が主な運営基盤
- 資金調達手段
- コンピュータ販売部門 で年間約$2Mの売上
- AMDとの契約 でMI350XをMLPerf上でLlama 405B訓練に利用
- 交渉は主にTwitter上で公開
- 採用は リポジトリへの貢献 によって決定
- 自律性の高い職場、週1回のミーティング、目標はtinygradの改善
- ミッションはペタフロップのコモディティ化