Is perplexity correctly computed?

Abierto
#560 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
python

Línea de trabajo

Reproduce el problema con el fragmento proporcionado de evaluate y datasets, usando el modelo indicado, la partición de Wikitext y las versiones de los paquetes. Compara el resultado con la discusión vinculada sobre LLaMA y el tutorial de perplejidad de Transformers; se considera terminado cuando se determine si la métrica o su uso son incorrectos y se documente o corrija la discrepancia confirmada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hello. I'm struggling with replicating the reported perplexity (~6) for LLaMa-2-7b.
I am using this simple code snippet:

import evaluate
import datasets

perplexity = evaluate.load("perplexity", module_type="metric")
input_texts = datasets.load_dataset("wikitext",
                                    "wikitext-2-raw-v1",
                                    split="test")["text"]
input_texts = [s for s in input_texts if s!='']
results = perplexity.compute(
    model_id="sharpbai/Llama-2-7b-hf",
    batch_size=4,
    predictions=input_texts
)
print(results)

And I get among the results: 'mean_perplexity': 60.9764459149642.
In this tutorial it is computed "approximately" by flattening the dataset into a string and by computing the avg. sliding window perplexity. I still get a high perplexity.
I tried to change the model in the code snippet to openai-community/gpt2 and the perplexity is above 600!
Does this depend on using the correct model class?
Thank you for any suggestion.

EDIT: I'm using the following versions

transformers              4.38.2
evaluate                  0.4.1
datasets                  2.18.0 

Lenguaje dominante
Python
Estrellas
2.5k
Forks
366
Merge medio
48 min
PR fusionados (30 d)
1

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de huggingface/evaluate

Todos los issues de huggingface/evaluate

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.