Files
flash-attention-prebuild-wh…/doc/plans/velvety-bouncing-starlight.md
T
Junya Morioka 1bc47b39f2 refactor: rename docs to doc and pages to docs for GitHub Pages
- Rename docs/ to doc/ (contains packages.md, release_history.md, etc.)
- Rename pages/ to docs/ (contains search page index.html)
- Update all references in README.md, workflows, and Python scripts

GitHub Pages only supports / or /docs as the source directory.
2026-01-18 01:12:22 +09:00

5.9 KiB

Flash-Attention Wheel 検索ページ 実装計画

概要

GitHub Releasesで公開されているFlash-Attentionプリビルドwheelを動的に取得し、フィルタリング・検索できるHTMLページをGitHub Pagesで公開する。

ブランチ戦略

  • 開発ブランチ: feat/add-search-page(現在のブランチ)
  • 公開: mainブランチのpages/ディレクトリをGitHub Pagesとして公開
  • GitHub Actions: 不要(リポジトリ設定でpagesディレクトリを指定)

ファイル構成

pages/
└── index.html    # 検索ページ(HTML/CSS/JS全て含む単一ファイル)

シンプルに単一HTMLファイルで完結させる(CSS/JSはインライン)。

主な機能

1. フィルタリング機能(ドロップダウン)

  • Flash-Attention バージョン
  • Python バージョン
  • PyTorch バージョン
  • CUDA バージョン
  • プラットフォーム (OS)

2. 結果表示

  • フィルタ条件に合うwheelをテーブル表示
  • 各行にダウンロードリンク
  • リリースタグ表示

3. インストールコマンド生成

  • 行クリックで pip install <URL> コマンド表示
  • コピーボタン(2種類)
    • Install Command: pip install <URL> をコピー
    • URL Only: URLのみをコピー

4. URLパラメータ対応

  • フィルタ状態をURLに保存(共有可能)

技術詳細

GitHub API使用

  • エンドポイント: GET /repos/mjun0812/flash-attention-prebuild-wheels/releases
  • ページネーション対応(100件/ページ)
  • レート制限: 60回/時間(認証なし)

レート制限対策

  • LocalStorageでキャッシュ(1時間有効)
  • 初回ロード時のみAPIコール

Wheel名パース(common.pyから移植)

const WHEEL_PATTERN = /flash_attn-(\d+\.\d+\.\d+(?:\.[a-z0-9]+)?)\+cu(\d+)torch(\d+\.\d+)-cp(\d+)-cp\d+-(.+?)\.whl/;

実装ステップ

Step 1: 基本構造

  • pages/index.html 作成(HTML/CSS/JS全て含む単一ファイル)

Step 2: 機能実装

  • GitHub API からリリース取得
  • wheelファイル名のパース
  • フィルタリングロジック
  • テーブル描画

Step 3: UX改善

  • ローディング表示
  • エラーハンドリング
  • インストールコマンド生成(pip install コピー)
  • URLのみコピー機能
  • URLパラメータ対応

Step 4: 最適化

  • LocalStorageキャッシュ
  • 重複排除(同一組み合わせは最新のみ)

対象ファイル

ファイル 操作
pages/index.html 新規作成

GitHub Pages 設定

リポジトリ設定で手動で設定:

  1. Settings > Pages
  2. Source: Deploy from a branch
  3. Branch: main
  4. Folder: /pages

検証方法

  1. ローカルでHTTPサーバー起動

    cd pages && python -m http.server 8000
    
  2. ブラウザで http://localhost:8000 にアクセス

  3. 確認項目:

    • フィルタが正しく動作する
    • ダウンロードリンクが有効
    • Install Commandコピーが動作する
    • URLコピーが動作する
    • レスポンシブデザインが機能
    • APIエラー時にエラーメッセージ表示
  4. mainブランチへマージ後、GitHub Pages設定を確認

UI イメージ

┌─────────────────────────────────────────────────────────────┐
│  Flash-Attention Prebuild Wheels                            │
│  Search and download prebuilt wheels                        │
├─────────────────────────────────────────────────────────────┤
│ Flash-Attention ▼ │ Python ▼ │ PyTorch ▼ │ CUDA ▼ │ OS ▼   │
│ [All Versions   ] │ [All   ] │ [All    ] │ [All ] │ [All ] │
│                                              [Reset Filters]│
├─────────────────────────────────────────────────────────────┤
│ 150 wheel(s) found                                          │
├─────────────────────────────────────────────────────────────┤
│ Flash-Attn │ Python │ PyTorch │ CUDA  │ Platform      │ DL │
├────────────┼────────┼─────────┼───────┼───────────────┼────┤
│ 2.8.3      │ 3.11   │ 2.5     │ 12.4  │ Linux x86_64  │ ⬇  │
│ 2.8.3      │ 3.10   │ 2.5     │ 12.4  │ Linux x86_64  │ ⬇  │
│ ...        │ ...    │ ...     │ ...   │ ...           │ ...│
├─────────────────────────────────────────────────────────────┤
│ Install Command                                             │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ pip install https://github.com/.../flash_attn-2.8.3... │ │
│ └─────────────────────────────────────────────────────────┘ │
│ [Copy Command] [Copy URL]                                   │
└─────────────────────────────────────────────────────────────┘