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