Open7
uv add で flash-attn をインストールする
適当に uv add flash-attn --no-build-isolation
すると色々足りないと言われてできなかったのでメモ。
最低限必要なものとして、
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 に入ってしまい、以降のパッケージ追加で永遠にエラーを吐くので一旦削除すること。
.python-version
は 3.11 で試した。
上の例の pyproject.toml
の状態であれば、uv sync
やっても失敗しなかったので多分イケてると思う。
なんか失敗した。flash-attn
より先に torch
などが入ってほしいがそうなってくれないみたい?
flash-attn
を pyproject.toml
に含めるのはやめた方がいいのだろうか...
全く同じ問題について言及していた:
↑では Dev Dependencies を使っているが、 Optional Dependecies を使った方がいいかもしれない?
Cargo の feature flag 的な使い方ができるかもしれない
Optionalだと sync した時に一緒にインストールしようとされてしまうっぽい...
めんどいな...
公式で flash-attn のインストールについて言及があった
- no-build-isolation-package が指定できるようになった
- sync オプションでステージを指定することで先に flash-attn を入れようとして setuptools などがないと言われることを回避?