sbintuitions / JMTEB

The evaluation scripts of JMTEB (Japanese Massive Text Embedding Benchmark)
Creative Commons Attribution Share Alike 4.0 International
31 stars 9 forks source link

Multi-GPU使用時に`--overwrite_cache false` を指定すると、rarank taskでエラーが発生する #44

Closed akiFQC closed 2 months ago

akiFQC commented 3 months ago

一度、JMETBのcacheが残った状況でmulti GPU(TransformersEmbedder )でJMTEBを使うと下記のエラーが発生します。

実行コマンド

torchrun --nproc-per-node 8\
  src/jmteb/__main__.py \
  --embedder TransformersEmbedder \
  --embedder.model_name_or_path "$model" \
  --embedder.normalize_embeddings False \
  --embedder.max_seq_length 512 \
  --embedder.batch_size 16 \
  --save_dir $model/jmteb_evaluation \
  --embedder.model_kwargs '{"torch_dtype":"torch.bfloat16"}' \
  --embedder.tokenizer_kwargs '{"use_fast": false}' \
  --overwrite_cache true \
  --evaluators src/jmteb/configs/jmteb.jsonnet  

該当部分のエラー

2024-07-26 10:43:37.619 | INFO     | jmteb.evaluators.pair_classification.data:__init__:40 - Loading dataset sbintuitions/JMTEB (name=paws_x_ja) with split validation
Reranking docs:   0%|          | 0/1790 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/app/JMTEB/src/jmteb/__main__.py", line 102, in <module>
    main(
  File "/app/JMTEB/src/jmteb/__main__.py", line 34, in main
    metrics = evaluator(text_embedder, cache_dir=cache_dir, overwrite_cache=overwrite_cache)
  File "/app/JMTEB/src/jmteb/evaluators/reranking/evaluator.py", line 94, in __call__
    val_results[dist_name] = self._compute_metrics(
  File "/app/JMTEB/src/jmteb/evaluators/reranking/evaluator.py", line 139, in _compute_metrics
    torch.stack([doc_embeddings[doc_indices[retrieved_doc]] for retrieved_doc in item.retrieved_docs]),
TypeError: expected Tensor as element 0 in argument 0, but got memmap

該当部分について確認いただくことは可能でしょうか

lsz05 commented 2 months ago

45