關於環境配置:
CUDA 11.2.0:
https://developer.nvidia.com/cuda-11.2.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
CUDNN v8.2.1:
https://developer.nvidia.com/rdp/cudnn-archive 找到:Download cuDNN v8.2.1 (June 7th, 2021), for CUDA 11.x
本電腦本來安裝適合GPU 1650的最新的cuda12.6版本,不兼容,後卸載cuda12.6對應的“FrameViewSDK”和“Navidia 圖形驅動工具 560+”、“PhyX”,再運行CUDA11.2.0的安裝程序簡易安裝可完成CUDA11.2.0的適配環境的安裝。
運行代碼時候警告:W1205 11:49:04.438740 18860 gpu_resources.cc:299] WARNING: device: . The installed Paddle is compiled with CUDNN 8.2, but CUDNN version in your machine is 8.1, which may cause serious incompatible bug. Please recompile or reinstall Paddle with compatible CUDNN version.
於是建議換成CUDNN v8.2.1,將下載的zip解壓直接複製三個file到對應的tookit裏就行。
conda環境:python3.8
(paddle3.8) C:\Users\Admin>conda list -e
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
# created-by: conda 25.7.0
aiohappyeyeballs=2.4.4=pypi_0
aiohttp=3.10.11=pypi_0
aiosignal=1.3.1=pypi_0
annotated-doc=0.0.4=pypi_0
annotated-types=0.7.0=pypi_0
anyio=4.5.2=pypi_0
astor=0.8.1=pypi_0
async-timeout=5.0.1=pypi_0
attrs=25.3.0=pypi_0
babel=2.17.0=pypi_0
bce-python-sdk=0.9.55=pypi_0
blinker=1.8.2=pypi_0
ca-certificates=2025.12.2=haa95532_0
certifi=2025.11.12=pypi_0
charset-normalizer=3.4.4=pypi_0
click=8.1.8=pypi_0
colorama=0.4.6=pypi_0
colorlog=6.10.1=pypi_0
contourpy=1.1.1=pypi_0
cycler=0.12.1=pypi_0
datasets=3.1.0=pypi_0
decorator=5.2.1=pypi_0
dill=0.3.4=pypi_0
exceptiongroup=1.3.1=pypi_0
fastapi=0.123.8=pypi_0
filelock=3.16.1=pypi_0
flask=3.0.3=pypi_0
flask-babel=4.0.0=pypi_0
fonttools=4.57.0=pypi_0
frozenlist=1.5.0=pypi_0
fsspec=2024.9.0=pypi_0
future=1.0.0=pypi_0
h11=0.16.0=pypi_0
httpcore=1.0.9=pypi_0
httpx=0.28.1=pypi_0
huggingface-hub=0.36.0=pypi_0
idna=3.11=pypi_0
importlib-metadata=8.5.0=pypi_0
importlib-resources=6.4.5=pypi_0
itsdangerous=2.2.0=pypi_0
jieba=0.42.1=pypi_0
jinja2=3.1.6=pypi_0
joblib=1.4.2=pypi_0
kiwisolver=1.4.7=pypi_0
markdown-it-py=3.0.0=pypi_0
markupsafe=2.1.5=pypi_0
matplotlib=3.7.5=pypi_0
mdurl=0.1.2=pypi_0
multidict=6.1.0=pypi_0
multiprocess=0.70.12.2=pypi_0
numpy=1.24.4=pypi_0
onnx=1.17.0=pypi_0
openssl=1.1.1w=h2bbff1b_0
opt-einsum=3.3.0=pypi_0
packaging=25.0=pypi_0
paddle2onnx=1.3.1=pypi_0
paddlefsl=1.1.0=pypi_0
paddlenlp=2.6.1=pypi_0
paddlepaddle-gpu=2.6.0.post112=pypi_0
pandas=2.0.3=pypi_0
pillow=10.4.0=pypi_0
pip=24.2=py38haa95532_0
propcache=0.2.0=pypi_0
protobuf=3.20.2=pypi_0
psutil=7.1.3=pypi_0
pyarrow=17.0.0=pypi_0
pycryptodome=3.23.0=pypi_0
pydantic=2.10.6=pypi_0
pydantic-core=2.27.2=pypi_0
pygments=2.19.2=pypi_0
pyparsing=3.1.4=pypi_0
python=3.8.0=hff0d562_2
python-dateutil=2.9.0.post0=pypi_0
pytz=2025.2=pypi_0
pyyaml=6.0.3=pypi_0
rarfile=4.2=pypi_0
requests=2.32.4=pypi_0
rich=14.2.0=pypi_0
safetensors=0.5.3=pypi_0
scikit-learn=1.3.2=pypi_0
scipy=1.10.1=pypi_0
sentencepiece=0.2.0=pypi_0
seqeval=1.2.2=pypi_0
setuptools=75.1.0=py38haa95532_0
shellingham=1.5.4=pypi_0
six=1.17.0=pypi_0
sniffio=1.3.1=pypi_0
sqlite=3.51.0=hda9a48d_0
starlette=0.44.0=pypi_0
threadpoolctl=3.5.0=pypi_0
tqdm=4.67.1=pypi_0
typer=0.20.0=pypi_0
typing-extensions=4.13.2=pypi_0
tzdata=2025.2=pypi_0
ucrt=10.0.22621.0=haa95532_0
urllib3=2.2.3=pypi_0
uvicorn=0.33.0=pypi_0
vc=14.3=h2df5915_10
vc14_runtime=14.44.35208=h4927774_10
visualdl=2.5.3=pypi_0
vs2015_runtime=14.44.35208=ha6b5a95_10
werkzeug=3.0.6=pypi_0
wheel=0.44.0=py38haa95532_0
xxhash=3.6.0=pypi_0
yarl=1.15.2=pypi_0
zipp=3.20.2=pypi_0
conda環境搭建:
conda create -n paddle3.8 python==3.8 -y
conda activate paddle3.8
先安裝重點的包:
# 1. 安裝PaddlePaddle 2.6.0(GPU版,若無GPU則裝CPU版)
# GPU版(CUDA 11.2,最常用)
pip install paddlepaddle-gpu==2.6.0.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
# CPU版(無GPU時使用)
# pip install paddlepaddle==2.6.0 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
# 2. 安裝PaddleNLP 2.6.1(與PaddlePaddle 2.6.0完美適配)
pip install paddlenlp==2.6.1
去運行load_dataset.py的時候提示安裝什麼再pip安裝上即可。
關於代碼:
直接去拿官網的PaddleNLP/examples/text_generation/unimo-text at v2.0.8 · PaddlePaddle/PaddleNLP · GitHub教程裏的代碼來跑就行
把gen_utils.py
run_gen.py
scripts文件夾裏的所有文件都下到本地。
執行scripts文件夾裏的文件腳本就行。windows的要改為bat修一修。
lcsts_train.bat
call setlocal enabledelayedexpansion
call set GPU_IDS=0
call set LOG_DIR=./lcsts-log
call set PADDLE_LOG_DIR=%LOG_DIR%\launch_logs
if exist "%LOG_DIR%" (
rd /s /q "%LOG_DIR%"
)
call mkdir "%LOG_DIR%"
call mkdir "%PADDLE_LOG_DIR%"
call conda activate paddle3.8
call python -m paddle.distributed.launch --gpus 0 --log_dir "%PADDLE_LOG_DIR%" run_gen.py --dataset_name=lcsts_new --model_name_or_path=unimo-text-1.0 --save_dir=%LOG_DIR%\checkpoints --logging_steps=100 --save_steps=100 --epochs=1 --batch_size=8 --learning_rate=5e-5 --warmup_propotion=0.02 --weight_decay=0.01 --max_seq_len=320 --max_target_len=30 --max_dec_len=20 --min_dec_len=3 --do_train --do_predict --device=gpu
pause
qg_train.bat
call setlocal enabledelayedexpansion
call set GPU_IDS=0
call set LOG_DIR=./qg-log
call set PADDLE_LOG_DIR=%LOG_DIR%\launch_logs
if exist "%LOG_DIR%" (
rd /s /q "%LOG_DIR%"
)
call mkdir "%LOG_DIR%"
call mkdir "%PADDLE_LOG_DIR%"
call conda activate paddle3.8
call python -m paddle.distributed.launch --gpus 0 --log_dir "%PADDLE_LOG_DIR%" run_gen.py --dataset_name=dureader_qg --model_name_or_path=unimo-text-1.0 --save_dir=%LOG_DIR%\checkpoints --logging_steps=10 --save_steps=100 --epochs=1 --batch_size=8 --learning_rate=5e-5 --warmup_propotion=0.02 --weight_decay=0.01 --max_seq_len=320 --max_target_len=30 --max_dec_len=20 --min_dec_len=3 --do_train --do_predict --device=gpu
pause
table_train.bat
call setlocal enabledelayedexpansion
call set GPU_IDS=0
call set LOG_DIR=./table-log
call set PADDLE_LOG_DIR=%LOG_DIR%\launch_logs
if exist "%LOG_DIR%" (
rd /s /q "%LOG_DIR%"
)
call mkdir "%LOG_DIR%"
call mkdir "%PADDLE_LOG_DIR%"
call conda activate paddle3.8
call python -m paddle.distributed.launch --gpus "%GPU_IDS%" --log_dir "%PADDLE_LOG_DIR%" run_gen.py --dataset_name=advertisegen --model_name_or_path=unimo-text-1.0 --save_dir=%LOG_DIR%\checkpoints --logging_steps=100 --save_steps=100 --epochs=1 --batch_size=8 --learning_rate=5e-5 --warmup_propotion=0.02 --weight_decay=0.01 --max_seq_len=500 --max_target_len=200 --max_dec_len=200 --min_dec_len=10 --do_train --do_predict --device=gpu
pause