最近学习了一下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后的结果是正常的。如下: