whisper v3 finetune 中文亂碼問題的解決方案

Kevinarcsin001發表於2024-12-09

最近學習了一下whisper的微調,主要是參考了github上的夜雨飄零大神專案。但是在操作中遇到了微調中文的時候出現了亂碼的情況。以下是我這邊對於微調過程中中文出現亂碼情況的解決方案。

出現情況如下圖所示:

image

系統環境

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後,發現大佬們也有這個問題,是透過降低庫的版本實現的。
image

注意: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後的結果是正常的。如下:
image

相關文章