自作 LLM(大規模言語モデル)を学ぶためのドキュメントとサンプルコードをまとめたモノレポです。
本プロジェクトは pnpm ワークスペースによるモノレポ構成です。
/
├── packages/
│ └── @homemade-llm/
│ └── docs/ # Docusaurus ドキュメント (@homemade-llm/docs)
│ ├── docs/ # ドキュメント本文(章立て)
│ ├── src/ # トップページ・コンポーネント・CSS
│ ├── static/ # 画像などの静的ファイル
│ ├── docusaurus.config.ts
│ └── package.json
├── pnpm-workspace.yaml # ワークスペース設定
├── package.json # ルート設定
├── tsconfig.json # 共通 TypeScript 設定
└── biome.json # Biome 設定
将来的に Python コードを追加する場合は、python/<name>/(各パッケージが独自に pyproject.toml を持つ)に配置する想定です。Python パッケージは pnpm ワークスペースには含めず、別途 Python のツール(uv など)で管理します。.gitignore / .secretlintignore / biome.json は Python の生成物(.venv、__pycache__ など)を無視するよう設定済みです。
| カテゴリ | ツール | 説明 |
|---|---|---|
| 共通 | pnpm | パッケージマネージャー(モノレポ対応) |
| Biome | リンター・フォーマッター | |
| secretlint | シークレット検出ツール(API キーの誤コミット防止) | |
| husky | Git hooks 管理(pre-commit で secretlint を自動実行) | |
| docs | Docusaurus | ドキュメントサイト |
| Rspack | Rust 製の高速バンドラ(experimental_faster) | |
| SWC | Rust 製の高速トランスパイラ・ミニファイア | |
| Lightning CSS | Rust 製の高速 CSS パーサー・ミニファイア |
# Homebrew
brew install pnpm
# または npm
npm install -g pnpmpnpm install# 開発サーバー起動(http://localhost:3000/homemade-llm/)
pnpm dev:docs
# ビルド
pnpm build:docs
# ビルド成果物をローカルでプレビュー
pnpm preview:docspnpm --filter @homemade-llm/docs <command>API キーなどのシークレットが誤ってコミットされるのを防ぐため、secretlint を導入しています。
git commit時に husky の pre-commit hook 経由で自動実行される- OpenAI / AWS / GCP / GitHub / Slack / npm など主要サービスの API キーパターンを検出
# 手動でシークレットスキャンを実行
pnpm lint:secretmain ブランチへの push をトリガーに、GitHub Actions(.github/workflows/deploy-docs.yml)で Docusaurus をビルドし GitHub Pages へデプロイします。
- 公開 URL:
https://Imamachi-n.github.io/homemade-llm/ - 初回のみ、リポジトリの Settings > Pages > Build and deployment > Source を GitHub Actions に設定してください。