Получение нулей по всем метрикам во время оценки LLM RAG

Вопрос или проблема

Я провожу оценку на наборах данных Hugging Face, таких как hotpot-qa. Но результаты выглядят так:

'precision_at_2/mean': 0.0, 'recall_at_2/mean': 0.0, 'ndcg_at_2/mean':0.0 .........

Я не знаю, почему получаю нули. Вот мой датафрейм. Результаты – это предсказания от langchain llm RAG:
введите описание изображения здесь

results = mlflow.evaluate(    data=eval_data,    model_type="retriever",    evaluators="default",    predictions="results",    targets="answer",    extra_metrics=[mlflow.metrics.ndcg_at_k(2), mlflow.metrics.recall_at_k(2), mlflow.metrics.precision_at_k(2), mlflow.metrics.latency()],    evaluator_config={        "col_mapping": {            "inputs": "question",            "context": "context",            "targets": "answer",        }    },)

Есть ли проблема со структурой колонок “answer” и “results”?

Вот блокнот
https://colab.research.google.com/drive/1CZ27v9Uf_QvfgtP9UDYWas3yMMpIfZ5y?usp=sharing

Как я могу правильно получить значения для метрик? Пожалуйста, помогите.

Ответ или решение

Проблема, с которой вы столкнулись, когда все метрики показывают нули (например, precision_at_2, recall_at_2, ndcg_at_2), может быть вызвана несколькими причинами, связанными с данными, способом вычисления метрик или ошибками в логике вашего кода. Давайте рассмотрим возможные причины и пути их решения.

  1. Проверка структуры данных:

    • Убедитесь, что ваши колонки answer и results правильно заполнены. Код, который вы привели, подразумевает, что results содержит предсказания, которые должны быть сопоставлены с истинными значениями из колонки answer.
    • Проверьте, что значения в обеих колонках имеют правильный формат. Например, для задачи HotpotQA answer должен содержать правильные ответы, а results — это предсказания модели.
  2. Проверьте код на наличие ошибок:

    • Убедитесь, что вы правильно сопоставили названия столбцов в col_mapping. Например, если ваша колонка с вопросами называется иначе, чем указано в коде, это может привести к неправильной работе модели.
    • Проверьте, как именно вы формируете предсказания в колонке results, и как вы обрабатываете выходные данные вашей модели.
  3. Проверка метрик:

    • Если вы используете метрики, такие как precision_at_k, recall_at_k и ndcg_at_k, убедитесь, что ваши предсказания содержат хотя бы некоторую степень корреляции с истинными значениями, чтобы метрики могли быть рассчитаны. Если results не совпадают ни с одним из элементов в answer, это приведет к нулевым значениям метрик.
  4. Отладка:

    • Вы можете вручную просмотреть несколько примеров из ваших данных eval_data, чтобы убедиться, что ваши предсказания действительно сопоставляются с истинными ответами. Это можно сделать, например, выбрав случайные строки из вашего датафрейма и распечатав их.
  5. Использование дополнительных метрик:

    • В случае, если стандартные метрики не дают полезной информации, рассмотрите возможность использования более базовых метрик для диагностики, таких как абсолютное соответствие или просто проверка количества совпадений между results и answer.
  6. Обновление и повторная проверка версий:

    • Убедитесь, что вы используете актуальные версии библиотек, таких как mlflow, transformers, и другие, так как возможны изменения в реализациях функций, которые могут повлиять на вашу оценку.

После того как вы пересмотрите данные, код и вашу внутреннюю логику, вы сможете диагностировать проблему и, надеюсь, получить полезные значения для метрик. Если проблемы сохраняются, рекомендуется задать уточняющий вопрос на форумах по машинному обучению, приложив пример ваших данных и коды.

Оцените материал
Добавить комментарий

Капча загружается...