最近學習了一下whisper的微調,主要是參考了github上的夜雨飄零大神專案。但是在操作中遇到了微調中文的時候出現了亂碼的情況。以下是我這邊對於微調過程中中文出現亂碼情況的解決方案。
出現情況如下圖所示:
系統環境
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
使用conda建立的虛擬環境,第一次安裝時,直接安裝的最新版本的第三方庫,也正是因此訓練出現了問題。再仔細檢視了該專案的isse後,發現大佬們也有這個問題,是透過降低庫的版本實現的。
注意:transformer要使用原始碼進行安裝
在transformer官網上找到4.36版本。拉取到我自己的伺服器上,進行原始碼安裝。
由於 peft 上沒有v0.6.3.dev 版本,故下載了v0.7.0版本
以上兩個庫我這邊都是使用原始碼進行安裝的。
再安裝完這兩個庫以後,再按需安裝其他庫。
我這邊的虛擬環境的庫以及對應的版本如下:
Package Version Editable project location
------------------------ ------------ ---------------------------------------------------------------
accelerate 1.1.1
aiohappyeyeballs 2.4.4
aiohttp 3.11.9
aiosignal 1.3.1
anyio 4.6.2.post1
async-timeout 5.0.1
attrs 24.2.0
audioread 3.0.1
av 14.0.0
bitsandbytes 0.41.3
certifi 2024.8.30
cffi 1.17.1
charset-normalizer 3.4.0
click 8.1.7
coloredlogs 15.0.1
ctranslate2 4.5.0
dataclasses 0.6
datasets 3.1.0
decorator 5.1.1
dill 0.3.8
evaluate 0.4.3
exceptiongroup 1.2.2
faster-whisper 1.1.0
filelock 3.16.1
flatbuffers 24.3.25
frozenlist 1.5.0
fsspec 2024.9.0
huggingface-hub 0.26.3
humanfriendly 10.0
idna 3.10
Jinja2 3.1.4
jiwer 3.0.5
joblib 1.4.2
lazy_loader 0.4
librosa 0.10.2.post1
llvmlite 0.43.0
MarkupSafe 3.0.2
mpmath 1.3.0
msgpack 1.1.0
multidict 6.1.0
multiprocess 0.70.16
networkx 3.2.1
numba 0.60.0
numpy 2.0.2
nvidia-cublas-cu12 12.4.5.8
nvidia-cuda-cupti-cu12 12.4.127
nvidia-cuda-nvrtc-cu12 12.4.127
nvidia-cuda-runtime-cu12 12.4.127
nvidia-cudnn-cu12 9.1.0.70
nvidia-cufft-cu12 11.2.1.3
nvidia-curand-cu12 10.3.5.147
nvidia-cusolver-cu12 11.6.1.9
nvidia-cusparse-cu12 12.3.1.170
nvidia-nccl-cu12 2.21.5
nvidia-nvjitlink-cu12 12.4.127
nvidia-nvtx-cu12 12.4.127
onnxruntime 1.16.3
packaging 24.2
pandas 2.2.3
peft 0.7.0 #對應的安裝的原始碼檔案所在路徑
pip 24.2
platformdirs 4.3.6
pooch 1.8.2
propcache 0.2.1
protobuf 5.29.1
psutil 6.1.0
pyarrow 18.1.0
pycparser 2.22
pydub 0.25.1
python-dateutil 2.9.0.post0
pytz 2024.2
PyYAML 6.0.2
RapidFuzz 3.10.1
regex 2024.11.6
requests 2.32.3
safetensors 0.4.5
scikit-learn 1.5.2
scipy 1.13.1
setuptools 75.1.0
six 1.17.0
sniffio 1.3.1
SoundCard 0.4.3
soundfile 0.12.1
soxr 0.5.0.post1
starlette 0.41.3
sympy 1.13.1
tensorboardX 2.6.2.2
threadpoolctl 3.5.0
tokenizers 0.15.2
torch 2.5.1
tqdm 4.67.1
transformers 4.36.0 #對應的安裝的原始碼檔案所在路徑
triton 3.1.0
typing_extensions 4.12.2
tzdata 2024.2
urllib3 2.2.3
wheel 0.44.0
xxhash 3.5.0
yarl 1.18.3
zhconv 1.4.3
至此環境準備完畢,可以按照專案內的資料格式和要求進行準備資料了。我這邊finetune後的結果是正常的。如下: