更新:2025/01/14
ImportError: cannot import name 'load_metric' from 'datasets'の解決方法について


はるか
datasetsのload_metricがエラーを吐いた。どう修正する?

ふゅか
あ、それってdatasetsのバージョン問題よね!確か、3.0.0以降はload_metricがなくなって、evaluateライブラリに移行したんだって。
1. 問題のあるコード
from datasets import load_metric
rouge_metric = load_metric("rouge")
上記のコードを使って、rougeスコアをdatasetsから読み込もうとしたときに、次のようなエラーが発生しました。
ImportError: cannot import name 'load_metric' from 'datasets'
2. 原因
どうやら、datasetsのバージョン3.0.0以降はload_metricが除去されたようです。そして、評価の機能が新しくevaluate
ライブラリに移行されました。
3. 解決方法
3.1. evaluateライブラリを使用
現在のHugging Faceエコシステムでは、評価メトリクスの読み込みと使用にはevaluate
ライブラリを利用することが推奨されています。
- ライブラリのインストール まず、
evaluate
をインストールします。pip install evaluate
- コードの修正 以下のようにコードを修正します。修正前:
from datasets import load_metric rouge_metric = load_metric("rouge")
修正後:
import evaluate rouge_metric = evaluate.load("rouge")
修正後のコードでは、
evaluate.load("rouge")
を使ってRougeメトリクスを読み込むことができます。
3.2. 古いバージョンのdatasetsを使用
どうしてもload_metric
を使いたい場合は、datasets
の古いバージョンを使用する方法もあります。
pip install datasets==2.21.0
4. Rougeスコアの計算
以下は、evaluate
ライブラリを使ったRougeスコアの計算例です。
import evaluate
# Rougeメトリクスをロード
rouge_metric = evaluate.load("rouge")
# サンプルデータ
predictions = ["I love machine learning."]
references = ["I enjoy machine learning."]
# Rougeスコアを計算
results = rouge_metric.compute(predictions=predictions, references=references)
print(results)
PR