概要
地震科学をテーマに、データ収集からモデル実装、学習、スケーリング則の検証まで、113MパラメータのGPTモデル構築プロセスを詳細に解説した教育用リポジトリ。
詳細内容
本リポジトリは、地震科学(Seismology)を対象とした113Mパラメータの小型LLM「nanoGPT-Seis」の構築工程をゼロから網羅したガイドです。Karpathy氏のnanoGPTに触発されつつ、現代的なLlama系アーキテクチャ(GQA、RoPE、RMSNorm、SwiGLU)を採用し、4096トークンの長いコンテキストに対応しています。
主な内容は以下の6段階に分かれています:
1. **データ収集**: CrossrefやarXiv、Substack等から学術論文や専門テキストを自動収集するスレッドセーフなクローラーの実装。
2. **前処理**: MinHashとLSHを用いた重複削除、PDFからのテキスト抽出とクリーニング。
3. **トークナイザー**: ドメインに特化した16kボキャブラリのBPEトークナイザーの自作。
4. **モデル実装**: FlashAttentionを含むアテンション機構や各種正規化レイヤーの解説。
5. **学習**: 2基のNVIDIA A30を用いたDDP(分散データ並列)による効率的な学習と、VRAM消費の予測手法。
6. **推論**: KVキャッシュやストリーミング出力、アンチリピート制御を備えた推論エンジン。
さらに、muP(Maximal-Update Parametrization)を用いたスケーリング則の実験も含まれており、計算資源(IsoFLOP)に応じた最適なモデルサイズとデータ量の推定など、実務的なLLM開発の知見が凝縮されています。