初めに
Windows環境でFlash Attentionがuv経由でインストールできなかったのでそのときの対応方法です
開発環境
問題
はじめに以下でインストールを試みましたが、以下のエラーが出ました
uv pip install https://huggingface.co/kim512/flash_attn-2.7.4.post1/resolve/main/flash_attn-2.7.4.post1-cu128-torch2.8.0-cp310-cp310-win_amd64.whl
エラー内容
error: The wheel filename "flash_attn-2.7.4.post1-cu128-torch2.8.0-cp310-cp310-win_amd64.whl" is invalid: Must have 5 or 6 components, but has more
これはuvはwheelファイル名の厳格な検証を行い、標準形式(5-6コンポーネント)を超えるファイル名を拒否します。
その次に uvの UV_SKIP_WHEEL_FILENAME_CHECK 環境変数を使って対応してみました。
$env:UV_SKIP_WHEEL_FILENAME_CHECK="1"; uv pip install https://huggingface.co/kim512/flash_attn-2.7.4.post1/resolve/main/flash_attn-2.7.4.post1-cu128-torch2.8.0-cp310-cp310-win_amd64.whl
しかし以下のエラーが出ました。
UV_SKIP_WHEEL_FILENAME_CHECK=1 uv pip install https://huggingface.co/kim512/flash_attn-2.7.4.post1/resolve/main/flash_attn-2.7.4.post1-cu128-torch2.8.0-cp310-cp310-win_amd64.whl
しかし、この場合初めのuvの制限に引っかかりました
解決策
最終以下の手順で対応しました
# ステップ1: wheelをダウンロード curl -L -o flash_attn-2.7.4.post1-cu128-torch2.8.0-cp310-cp310-win_amd64.whl "https://huggingface.co/kim512/flash_attn-2.7.4.post1/resolve/main/flash_attn-2.7.4.post1-cu128-torch2.8.0-cp310-cp310-win_amd64.whl" # ステップ2: 標準形式にリネーム(cu128とtorch2.8.0を削除) cp flash_attn-2.7.4.post1-cu128-torch2.8.0-cp310-cp310-win_amd64.whl flash_attn-2.7.4.post1-cp310-cp310-win_amd64.whl # ステップ3: UV_SKIP_WHEEL_FILENAME_CHECKを設定してインストール UV_SKIP_WHEEL_FILENAME_CHECK=1 uv pip install flash_attn-2.7.4.post1-cp310-cp310-win_amd64.whl # ステップ4: クリーンアップ rm flash_attn*.whl
備考
Python 3.13の場合は以下のwheelが使えます
https://github.com/petermg/flash_attn_windows/releases/download/4/flash_attn-2.7.4.post1+cu128.torch270-cp313-cp313-win_amd64.whl" -OutFile "flash_attn-2.7.4.post1+cu128.torch270-cp313-cp313-win_amd64.whl