mirror of
https://github.com/hiyouga/LLaMA-Factory.git
synced 2026-01-12 17:10:36 +08:00
[deps] Update pyproject.toml and requirements (#9714)
Co-authored-by: Yaowei Zheng <hiyouga@buaa.edu.cn>
This commit is contained in:
3
.github/workflows/tests.yml
vendored
3
.github/workflows/tests.yml
vendored
@@ -70,7 +70,8 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
uv venv
|
uv venv
|
||||||
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
|
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
|
||||||
uv pip install -e ".[dev]"
|
uv pip install -e .
|
||||||
|
uv pip install -r requirements/dev.txt
|
||||||
|
|
||||||
- name: Install transformers
|
- name: Install transformers
|
||||||
if: ${{ matrix.transformers }}
|
if: ${{ matrix.transformers }}
|
||||||
|
|||||||
3
.github/workflows/tests_cuda.yml
vendored
3
.github/workflows/tests_cuda.yml
vendored
@@ -52,7 +52,8 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
uv venv
|
uv venv
|
||||||
uv pip install -e ".[dev]"
|
uv pip install -e .
|
||||||
|
uv pip install -r requirements/dev.txt
|
||||||
|
|
||||||
- name: Cache HuggingFace models
|
- name: Cache HuggingFace models
|
||||||
id: hf-hub-cache
|
id: hf-hub-cache
|
||||||
|
|||||||
5
.github/workflows/tests_npu.yml
vendored
5
.github/workflows/tests_npu.yml
vendored
@@ -58,8 +58,9 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
uv venv
|
uv venv
|
||||||
uv pip install torch-npu==${{matrix.pytorch_npu}}
|
uv pip install -r requirements/npu.txt
|
||||||
uv pip install -e ".[dev]"
|
uv pip install -e .
|
||||||
|
uv pip install -r requirements/dev.txt
|
||||||
|
|
||||||
- name: Install node
|
- name: Install node
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
40
README.md
40
README.md
@@ -517,10 +517,11 @@ huggingface-cli login
|
|||||||
```bash
|
```bash
|
||||||
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
|
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
|
||||||
cd LLaMA-Factory
|
cd LLaMA-Factory
|
||||||
pip install -e ".[metrics]"
|
pip install -e .
|
||||||
|
pip install -r requirements/metrics.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
Optional dependencies available: `metrics`, `deepspeed`. Install with: `pip install -e ".[metrics,deepspeed]"`
|
Optional dependencies available: `metrics`, `deepspeed`. Install with: `pip install -e . && pip install -r requirements/metrics.txt -r requirements/deepspeed.txt`
|
||||||
|
|
||||||
Additional dependencies for specific features are available in `examples/requirements/`.
|
Additional dependencies for specific features are available in `examples/requirements/`.
|
||||||
|
|
||||||
@@ -578,36 +579,21 @@ To enable FlashAttention-2 on the Windows platform, please use the script from [
|
|||||||
|
|
||||||
<details><summary>For Ascend NPU users</summary>
|
<details><summary>For Ascend NPU users</summary>
|
||||||
|
|
||||||
To install LLaMA Factory on Ascend NPU devices, please upgrade Python to version 3.10 or higher: `pip install -e . torch-npu==2.7.1`. Additionally, you need to install the **[Ascend CANN Toolkit and Kernels](https://www.hiascend.com/developer/download/community/result?module=cann)**. Please follow the [installation tutorial](https://www.hiascend.com/document/detail/en/CANNCommunityEdition/600alphaX/softwareinstall/instg/atlasdeploy_03_0031.html) or use the following commands:
|
To install LLaMA Factory on Ascend NPU devices, please upgrade Python to version 3.10 or higher: `pip install -r requirements/npu.txt`. Additionally, you need to install the **Ascend CANN Toolkit and Kernels**. Please follow the [installation tutorial](https://llamafactory.readthedocs.io/en/latest/advanced/npu_installation.html).
|
||||||
|
|
||||||
|
|
||||||
|
You can also download the pre-built Docker images:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# replace the url according to your CANN version and devices
|
# Docker Hub
|
||||||
# install CANN Toolkit
|
docker pull hiyouga/llamafactory:latest-npu-a2
|
||||||
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C20SPC702/Ascend-cann-toolkit_8.0.0.alpha002_linux-"$(uname -i)".run
|
docker pull hiyouga/llamafactory:latest-npu-a3
|
||||||
bash Ascend-cann-toolkit_8.0.0.alpha002_linux-"$(uname -i)".run --install
|
|
||||||
|
|
||||||
# install CANN Kernels
|
# quay.io
|
||||||
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C20SPC702/Ascend-cann-kernels-910b_8.0.0.alpha002_linux-"$(uname -i)".run
|
docker pull quay.io/ascend/llamafactory:latest-npu-a2
|
||||||
bash Ascend-cann-kernels-910b_8.0.0.alpha002_linux-"$(uname -i)".run --install
|
docker pull quay.io/ascend/llamafactory:latest-npu-a3
|
||||||
|
|
||||||
# set env variables
|
|
||||||
source /usr/local/Ascend/ascend-toolkit/set_env.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
| Requirement | Minimum | Recommend |
|
|
||||||
| ------------ | ------- | -------------- |
|
|
||||||
| CANN | 8.0.RC1 | 8.0.0.alpha002 |
|
|
||||||
| torch | 2.1.0 | 2.7.1 |
|
|
||||||
| torch-npu | 2.1.0 | 2.7.1 |
|
|
||||||
| deepspeed | 0.13.2 | 0.13.2 |
|
|
||||||
| vllm-ascend | - | 0.7.3 |
|
|
||||||
|
|
||||||
Remember to use `ASCEND_RT_VISIBLE_DEVICES` instead of `CUDA_VISIBLE_DEVICES` to specify the device to use.
|
|
||||||
|
|
||||||
If you cannot infer model on NPU devices, try setting `do_sample: false` in the configurations.
|
|
||||||
|
|
||||||
Download the pre-built Docker images: [32GB](http://mirrors.cn-central-221.ovaijisuan.com/detail/130.html) | [64GB](http://mirrors.cn-central-221.ovaijisuan.com/detail/131.html)
|
|
||||||
|
|
||||||
#### Install BitsAndBytes
|
#### Install BitsAndBytes
|
||||||
|
|
||||||
To use QLoRA based on bitsandbytes on Ascend NPU, please follow these 3 steps:
|
To use QLoRA based on bitsandbytes on Ascend NPU, please follow these 3 steps:
|
||||||
|
|||||||
39
README_zh.md
39
README_zh.md
@@ -519,10 +519,11 @@ huggingface-cli login
|
|||||||
```bash
|
```bash
|
||||||
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
|
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
|
||||||
cd LLaMA-Factory
|
cd LLaMA-Factory
|
||||||
pip install -e ".[metrics]"
|
pip install -e .
|
||||||
|
pip install -r requirements/metrics.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
可选的额外依赖项:`metrics`、`deepspeed`。使用 `pip install -e ".[metrics,deepspeed]"` 安装。
|
可选的额外依赖项:`metrics`、`deepspeed`。使用 `pip install -e . && pip install -r requirements/metrics.txt -r requirements/deepspeed.txt` 安装。
|
||||||
|
|
||||||
其他可选依赖项请参考 `examples/requirements/` 目录下的文件。
|
其他可选依赖项请参考 `examples/requirements/` 目录下的文件。
|
||||||
|
|
||||||
@@ -580,36 +581,20 @@ pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/downl
|
|||||||
|
|
||||||
<details><summary>昇腾 NPU 用户指南</summary>
|
<details><summary>昇腾 NPU 用户指南</summary>
|
||||||
|
|
||||||
在昇腾 NPU 设备上安装 LLaMA Factory 时,请升级 Python 到 3.10 及以上,并需要指定额外依赖项,使用 `pip install -e . torch-npu==2.7.1` 命令安装。此外,还需要安装 **[Ascend CANN Toolkit 与 Kernels](https://www.hiascend.com/developer/download/community/result?module=cann)**,安装方法请参考[安装教程](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC2alpha002/quickstart/quickstart/quickstart_18_0004.html)或使用以下命令:
|
在昇腾 NPU 设备上安装 LLaMA Factory 时,请升级 Python 到 3.10 及以上,并需要指定额外依赖项,使用 `pip install -r requirements/npu.txt` 命令安装。此外,还需要安装 **Ascend CANN Toolkit 与 Kernels**,安装方法请参考[安装教程](https://llamafactory.readthedocs.io/zh-cn/latest/advanced/npu_installation.html)。
|
||||||
|
|
||||||
|
您可以直接下载预安装的最新docker镜像:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 请替换 URL 为 CANN 版本和设备型号对应的 URL
|
# Docker Hub
|
||||||
# 安装 CANN Toolkit
|
docker pull hiyouga/llamafactory:latest-npu-a2
|
||||||
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C17SPC701/Ascend-cann-toolkit_8.0.RC1.alpha001_linux-"$(uname -i)".run
|
docker pull hiyouga/llamafactory:latest-npu-a3
|
||||||
bash Ascend-cann-toolkit_8.0.RC1.alpha001_linux-"$(uname -i)".run --install
|
|
||||||
|
|
||||||
# 安装 CANN Kernels
|
# quay.io
|
||||||
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C17SPC701/Ascend-cann-kernels-910b_8.0.RC1.alpha001_linux.run
|
docker pull quay.io/ascend/llamafactory:latest-npu-a2
|
||||||
bash Ascend-cann-kernels-910b_8.0.RC1.alpha001_linux.run --install
|
docker pull quay.io/ascend/llamafactory:latest-npu-a3
|
||||||
|
|
||||||
# 设置环境变量
|
|
||||||
source /usr/local/Ascend/ascend-toolkit/set_env.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
| 依赖项 | 至少 | 推荐 |
|
|
||||||
| ------------ | ------- | -------------- |
|
|
||||||
| CANN | 8.0.RC1 | 8.0.0.alpha002 |
|
|
||||||
| torch | 2.1.0 | 2.7.1 |
|
|
||||||
| torch-npu | 2.1.0 | 2.7.1 |
|
|
||||||
| deepspeed | 0.13.2 | 0.13.2 |
|
|
||||||
| vllm-ascend | - | 0.7.3 |
|
|
||||||
|
|
||||||
请使用 `ASCEND_RT_VISIBLE_DEVICES` 而非 `CUDA_VISIBLE_DEVICES` 来指定运算设备。
|
|
||||||
|
|
||||||
如果遇到无法正常推理的情况,请尝试设置 `do_sample: false`。
|
|
||||||
|
|
||||||
下载预构建 Docker 镜像:[32GB](http://mirrors.cn-central-221.ovaijisuan.com/detail/130.html) | [64GB](http://mirrors.cn-central-221.ovaijisuan.com/detail/131.html)
|
|
||||||
|
|
||||||
#### 安装 BitsAndBytes
|
#### 安装 BitsAndBytes
|
||||||
|
|
||||||
如果要在 Ascend NPU 上进行基于 bitsandbytes 的 QLoRA 量化微调,请执行如下步骤:
|
如果要在 Ascend NPU 上进行基于 bitsandbytes 的 QLoRA 量化微调,请执行如下步骤:
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ RUN pip config set global.index-url "${PIP_INDEX}" && \
|
|||||||
COPY . /app
|
COPY . /app
|
||||||
|
|
||||||
# Install LLaMA Factory
|
# Install LLaMA Factory
|
||||||
RUN pip install --no-cache-dir --no-build-isolation -e ".[metrics,deepspeed]"
|
RUN pip install --no-cache-dir --no-build-isolation -e . && \
|
||||||
|
pip install --no-cache-dir --no-build-isolation -r requirements/metrics.txt -r requirements/deepspeed.txt
|
||||||
|
|
||||||
# Rebuild flash attention
|
# Rebuild flash attention
|
||||||
RUN if [ "${INSTALL_FLASHATTN}" == "true" ]; then \
|
RUN if [ "${INSTALL_FLASHATTN}" == "true" ]; then \
|
||||||
|
|||||||
@@ -60,7 +60,8 @@ WORKDIR /app
|
|||||||
COPY . /app
|
COPY . /app
|
||||||
|
|
||||||
# Install LLaMA Factory
|
# Install LLaMA Factory
|
||||||
RUN pip install --no-cache-dir -e ".[metrics]" --no-build-isolation
|
RUN pip install --no-cache-dir -e . --no-build-isolation && \
|
||||||
|
pip install --no-cache-dir -r requirements/metrics.txt --no-build-isolation
|
||||||
|
|
||||||
RUN pip install "git+https://github.com/alibaba/roll.git#subdirectory=mcore_adapter"
|
RUN pip install "git+https://github.com/alibaba/roll.git#subdirectory=mcore_adapter"
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ COPY . /app
|
|||||||
# Install torch-npu
|
# Install torch-npu
|
||||||
RUN pip uninstall -y torch torchvision torchaudio && \
|
RUN pip uninstall -y torch torchvision torchaudio && \
|
||||||
pip install --no-cache-dir "torch==2.7.1" "torch-npu==2.7.1" "torchvision==0.22.1" "torchaudio==2.7.1" --index-url "${PYTORCH_INDEX}" && \
|
pip install --no-cache-dir "torch==2.7.1" "torch-npu==2.7.1" "torchvision==0.22.1" "torchaudio==2.7.1" --index-url "${PYTORCH_INDEX}" && \
|
||||||
pip install --no-cache-dir -e ".[metrics]" --no-build-isolation
|
pip install --no-cache-dir -e . --no-build-isolation && \
|
||||||
|
pip install --no-cache-dir -r requirements/metrics.txt --no-build-isolation
|
||||||
|
|
||||||
# Set up volumes
|
# Set up volumes
|
||||||
# VOLUME [ "/root/.cache/huggingface", "/app/shared_data", "/app/output" ]
|
# VOLUME [ "/root/.cache/huggingface", "/app/shared_data", "/app/output" ]
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ COPY . /app
|
|||||||
|
|
||||||
# Reinstall pytorch rocm and install LLaMA Factory
|
# Reinstall pytorch rocm and install LLaMA Factory
|
||||||
RUN pip uninstall -y torch torchvision torchaudio && \
|
RUN pip uninstall -y torch torchvision torchaudio && \
|
||||||
pip install --no-cache-dir --no-build-isolation -e --pre ".[metrics,deepspeed]" --index-url "${PYTORCH_INDEX}"
|
pip install --no-cache-dir --no-build-isolation -e --pre . --index-url "${PYTORCH_INDEX}" && \
|
||||||
|
pip install --no-cache-dir --no-build-isolation -r requirements/metrics.txt -r requirements/deepspeed.txt --index-url "${PYTORCH_INDEX}"
|
||||||
|
|
||||||
# Rebuild flash attention
|
# Rebuild flash attention
|
||||||
RUN if [ "${INSTALL_FLASHATTN}" == "true" ]; then \
|
RUN if [ "${INSTALL_FLASHATTN}" == "true" ]; then \
|
||||||
|
|||||||
@@ -76,11 +76,6 @@ dependencies = [
|
|||||||
"sse-starlette"
|
"sse-starlette"
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
|
||||||
dev = ["pre-commit", "ruff", "pytest", "build"]
|
|
||||||
metrics = ["nltk", "jieba", "rouge-chinese"]
|
|
||||||
deepspeed = ["deepspeed>=0.10.0,<=0.16.9"]
|
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
llamafactory-cli = "llamafactory.cli:main"
|
llamafactory-cli = "llamafactory.cli:main"
|
||||||
lmf = "llamafactory.cli:main"
|
lmf = "llamafactory.cli:main"
|
||||||
|
|||||||
1
requirements/deepspeed.txt
Normal file
1
requirements/deepspeed.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
deepspeed>=0.10.0,<=0.16.9
|
||||||
4
requirements/dev.txt
Normal file
4
requirements/dev.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
pre-commit
|
||||||
|
ruff
|
||||||
|
pytest
|
||||||
|
build
|
||||||
3
requirements/metrics.txt
Normal file
3
requirements/metrics.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
nltk
|
||||||
|
jieba
|
||||||
|
rouge-chinese
|
||||||
4
requirements/npu.txt
Normal file
4
requirements/npu.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
torch==2.7.1
|
||||||
|
torch-npu==2.7.1
|
||||||
|
torchvision==0.22.1
|
||||||
|
torchaudio==2.7.1
|
||||||
@@ -28,7 +28,7 @@ try:
|
|||||||
jieba.setLogLevel(logging.CRITICAL)
|
jieba.setLogLevel(logging.CRITICAL)
|
||||||
jieba.initialize()
|
jieba.initialize()
|
||||||
except ImportError:
|
except ImportError:
|
||||||
print("Please install llamafactory with `pip install -e .[metrics]`.")
|
print("Please install llamafactory with `pip install -r requirements/metrics.txt`.")
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user