Open7

uv add で flash-attn をインストールする

PlatPlat

適当に uv add flash-attn --no-build-isolation すると色々足りないと言われてできなかったのでメモ。

PlatPlat

最低限必要なものとして、

dependencies

  • torch

dev-dependencies

  • setuptools
  • psutil
  • hatchling
  • editables
pyproject.toml例
[project]
name = "workspace"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
    "torch==2.4.0",
    "flash-attn>=2.6.3",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.uv]
dev-dependencies = [
    "setuptools",
    "psutil",
    "hatchling>=1.25.0",
    "editables>=0.5",
]

それぞれ、

uv add torch==2.4.0
uv add --dev setuptools psutil hatchling editables

で入る。先に flash-attn を追加しようとすると、flash-attn が dependencies に入ってしまい、以降のパッケージ追加で永遠にエラーを吐くので一旦削除すること。

PlatPlat

.python-version は 3.11 で試した。

上の例の pyproject.toml の状態であれば、uv sync やっても失敗しなかったので多分イケてると思う。

なんか失敗した。flash-attn より先に torch などが入ってほしいがそうなってくれないみたい?
flash-attnpyproject.tomlに含めるのはやめた方がいいのだろうか...

PlatPlat

Optionalだと sync した時に一緒にインストールしようとされてしまうっぽい...
めんどいな...