Transformers模型版本和lm_eval老版本冲突问题
1 问题背景
在LLM评测的时候,要用lm_eval模型,而对于像是llama3/Mistrual等比较新的模型,较低的Transformers不能适配,所以要升级到0.40.0以上才行,但是如果升级的话,那么直接在沿用老版本的lm_eval评测就会出现:
Traceback (most recent call last):
File "main.py", line 250, in <module>
from lm_eval.tasks import initialize_tasks
ImportError: cannot import name 'initialize_tasks' from 'lm_eval.tasks' (/home/liuhao/anaconda3/envs/llama/lib/python3.8/site-packages/lm_eval/tasks/__init__.py)
而且,又不能降低Transformers版本,这就很棘手
2、解决方案
综合多个github和hf官网上的issue,总结一下解决方案如下
(1)降级lm_eval版本
pip install lm_eval==0.4.1
降级之后依然报错:
Traceback (most recent call last):
File "main.py", line 244, in <module>
import lm_eval
File "/home/liuhao/anaconda3/envs/llama/lib/python3.8/site-packages/lm_eval/__init__.py", line 1, in <module>
from .evaluator import evaluate, simple_evaluate
File "/home/liuhao/anaconda3/envs/llama/lib/python3.8/site-packages/lm_eval/evaluator.py", line 10, in <module>
import lm_eval.tasks
File "/home/liuhao/anaconda3/envs/llama/lib/python3.8/site-packages/lm_eval/tasks/__init__.py", line 20, in <module>
from .scrolls.task import (
File "/home/liuhao/anaconda3/envs/llama/lib/python3.8/site-packages/lm_eval/tasks/scrolls/task.py", line 6, in <module>
from datasets import load_metric
ImportError: cannot import name 'load_metric' from 'datasets' (/home/liuhao/anaconda3/envs/llama/lib/python3.8/site-packages/datasets/__init__.py)
(2) 再降级datasets
pip install datasets==2.21.0
完美解决!