d-matrix commited on
Commit
1a74fec
β€’
1 Parent(s): 76e1a38

modifying name of the metric

Browse files
README.md CHANGED
@@ -1,5 +1,5 @@
1
  ---
2
- title: Perplexity
3
  emoji: πŸŒ–
4
  colorFrom: purple
5
  colorTo: pink
@@ -29,19 +29,19 @@ It is defined as the exponentiated average negative log-likelihood of a sequence
29
  For more information, see https://huggingface.co/docs/transformers/perplexity
30
 
31
  ## How to Use
32
- At minimum, this metric requires the model and data as inputs.
33
  ```python
34
  >>> import evaluate
35
- >>> perplexity = evaluate.load("perplexity", module_type="metric")
36
  >>> input_texts = ["lorem ipsum", "Happy Birthday!", "Bienvenue"]
37
- >>> results = perplexity.compute(model='distilgpt2',data=input_texts)
38
  >>> print(results)
39
- {'accuracy': 1.0}
40
  ```
41
 
42
  ### Inputs
43
  - **model** (`Union`[`str`,`AutoModelForCausalLM`]): model used for calculating Perplexity
44
- - **data** (`list` of `str`): input text, each separate text snippet is one list entry.
45
  - **device** (`str`): device to run on, defaults to 'cuda' when available.
46
  - **max_length** (`int`): maximum sequence length, defaults to 2048.
47
 
@@ -59,9 +59,9 @@ This metric outputs a dictionary, containing the loss and perplexity score.
59
  ```python
60
  >>> import evaluate
61
  >>> from datasets import load_dataset
62
- >>> perplexity = evaluate.load("d-matrix/perplexity", module_type="metric")
63
  >>> input_texts = load_dataset("wikitext", "wikitext-2-raw-v1", split="test")["text"][:10]
64
- >>> results = perplexity.compute(model='distilgpt2',data=input_texts)
65
  >>> print(list(results.keys()))
66
  ['loss', 'perplexity']
67
  >>> print(results['loss'])
 
1
  ---
2
+ title: DmxPerplexity
3
  emoji: πŸŒ–
4
  colorFrom: purple
5
  colorTo: pink
 
29
  For more information, see https://huggingface.co/docs/transformers/perplexity
30
 
31
  ## How to Use
32
+ At minimum, this metric requires the model and references as inputs.
33
  ```python
34
  >>> import evaluate
35
+ >>> perplexity = evaluate.load("dmx_perplexity", module_type="metric")
36
  >>> input_texts = ["lorem ipsum", "Happy Birthday!", "Bienvenue"]
37
+ >>> results = perplexity.compute(model='distilgpt2',references=input_texts)
38
  >>> print(results)
39
+ {'loss': 4.993086338043213, 'perplexity': 147.390625}
40
  ```
41
 
42
  ### Inputs
43
  - **model** (`Union`[`str`,`AutoModelForCausalLM`]): model used for calculating Perplexity
44
+ - **references** (`list` of `str`): input text, each separate text snippet is one list entry.
45
  - **device** (`str`): device to run on, defaults to 'cuda' when available.
46
  - **max_length** (`int`): maximum sequence length, defaults to 2048.
47
 
 
59
  ```python
60
  >>> import evaluate
61
  >>> from datasets import load_dataset
62
+ >>> perplexity = evaluate.load("dmx_perplexity", module_type="metric")
63
  >>> input_texts = load_dataset("wikitext", "wikitext-2-raw-v1", split="test")["text"][:10]
64
+ >>> results = perplexity.compute(model='distilgpt2',references=input_texts)
65
  >>> print(list(results.keys()))
66
  ['loss', 'perplexity']
67
  >>> print(results['loss'])
perplexity.py β†’ dmx_perplexity/dmx_perplexity.py RENAMED
@@ -20,7 +20,7 @@ Args:
20
  causal versions of t5, and more (the full list can be found
21
  in the AutoModelForCausalLM documentation here:
22
  https://huggingface.co/docs/transformers/master/en/model_doc/auto#transformers.AutoModelForCausalLM )
23
- data (list of str): input text, each separate text snippet is one list entry.
24
  device (str): device to run on, defaults to 'cuda' when available.
25
  max_length (int): maximum sequence length, defaults to 2048.
26
  Returns:
@@ -31,7 +31,7 @@ Examples:
31
  >>> perplexity = evaluate.load("dmx_perplexity", module_type="metric")
32
  >>> input_texts = load_dataset("wikitext", "wikitext-2-raw-v1", split="test")["text"][:10] # doctest: +SKIP
33
  >>> results = perplexity.compute(model='distilgpt2',
34
- ... data=input_texts)
35
  >>> print(list(results.keys()))
36
  ['loss', 'perplexity']
37
  >>> print(results['loss']) # doctest: +SKIP
@@ -41,7 +41,7 @@ Examples:
41
  """
42
 
43
  @evaluate.utils.file_utils.add_start_docstrings(_DESCRIPTION, _KWARGS_DESCRIPTION)
44
- class Perplexity(evaluate.Metric):
45
  def _info(self):
46
  return evaluate.MetricInfo(
47
  module_type="metric",
@@ -50,7 +50,7 @@ class Perplexity(evaluate.Metric):
50
  inputs_description=_KWARGS_DESCRIPTION,
51
  features=datasets.Features(
52
  {
53
- "text": datasets.Value("string"),
54
  }
55
  ),
56
  reference_urls=["https://huggingface.co/docs/transformers/perplexity"],
@@ -58,7 +58,7 @@ class Perplexity(evaluate.Metric):
58
 
59
  def _compute(
60
  self,
61
- data,
62
  model: Union[str, AutoModelForCausalLM],
63
  device=None,
64
  max_length=None,
@@ -91,7 +91,7 @@ class Perplexity(evaluate.Metric):
91
  max_seq_len = 2048
92
 
93
  model = model.to(device)
94
- encodings = tokenizer("\n\n".join(data), return_tensors="pt")
95
 
96
  stride = max_seq_len
97
  seq_len = encodings.input_ids.size(1)
 
20
  causal versions of t5, and more (the full list can be found
21
  in the AutoModelForCausalLM documentation here:
22
  https://huggingface.co/docs/transformers/master/en/model_doc/auto#transformers.AutoModelForCausalLM )
23
+ references (list of str): input text, each separate text snippet is one list entry.
24
  device (str): device to run on, defaults to 'cuda' when available.
25
  max_length (int): maximum sequence length, defaults to 2048.
26
  Returns:
 
31
  >>> perplexity = evaluate.load("dmx_perplexity", module_type="metric")
32
  >>> input_texts = load_dataset("wikitext", "wikitext-2-raw-v1", split="test")["text"][:10] # doctest: +SKIP
33
  >>> results = perplexity.compute(model='distilgpt2',
34
+ ... references=input_texts)
35
  >>> print(list(results.keys()))
36
  ['loss', 'perplexity']
37
  >>> print(results['loss']) # doctest: +SKIP
 
41
  """
42
 
43
  @evaluate.utils.file_utils.add_start_docstrings(_DESCRIPTION, _KWARGS_DESCRIPTION)
44
+ class DmxPerplexity(evaluate.Metric):
45
  def _info(self):
46
  return evaluate.MetricInfo(
47
  module_type="metric",
 
50
  inputs_description=_KWARGS_DESCRIPTION,
51
  features=datasets.Features(
52
  {
53
+ "references": datasets.Value("string"),
54
  }
55
  ),
56
  reference_urls=["https://huggingface.co/docs/transformers/perplexity"],
 
58
 
59
  def _compute(
60
  self,
61
+ references,
62
  model: Union[str, AutoModelForCausalLM],
63
  device=None,
64
  max_length=None,
 
91
  max_seq_len = 2048
92
 
93
  model = model.to(device)
94
+ encodings = tokenizer("\n\n".join(references), return_tensors="pt")
95
 
96
  stride = max_seq_len
97
  seq_len = encodings.input_ids.size(1)