53 lines
2.1 KiB
Markdown
53 lines
2.1 KiB
Markdown
---
|
|
license: apache-2.0
|
|
language:
|
|
- en
|
|
pipeline_tag: text-generation
|
|
tags:
|
|
- maths
|
|
- arxiv-math
|
|
- gpt2
|
|
- mathgpt2
|
|
datasets:
|
|
- ArtifactAI/arxiv-math-instruct-50k
|
|
widget:
|
|
- text: Which motion is formed by an incident particle?
|
|
example_title: Example 1
|
|
- text: What type of diffusional modeling is used for diffusion?
|
|
example_title: Example 2
|
|
|
|
---
|
|
|
|
This model is a finetuned version of ```gpt2``` using ```ArtifactAI/arxiv-math-instruct-50k```
|
|
|
|
## Model description
|
|
|
|
GPT-2 is a transformers model pre-trained on a very large corpus of English data in a self-supervised fashion. This
|
|
means it was pre-trained on the raw texts only, with no humans labeling them in any way (which is why it can use lots
|
|
of publicly available data) with an automatic process to generate inputs and labels from those texts. More precisely,
|
|
it was trained to guess the next word in sentences.
|
|
|
|
More precisely, inputs are sequences of continuous text of a certain length and the targets are the same sequence,
|
|
shifting one token (word or piece of word) to the right. The model uses a masking mechanism to make sure the
|
|
predictions for the token `i` only use the inputs from `1` to `i` but not the future tokens.
|
|
|
|
This way, the model learns an inner representation of the English language that can then be used to extract features
|
|
useful for downstream tasks. The model is best at what it was trained for, however, which is generating texts from a
|
|
prompt.
|
|
|
|
### To use this model
|
|
|
|
```python
|
|
>>> from transformers import AutoTokenizer, AutoModelForCausalLM
|
|
>>> model_name = "Sharathhebbar24/math_gpt2"
|
|
>>> model = AutoModelForCausalLM.from_pretrained(model_name)
|
|
>>> tokenizer = AutoTokenizer.from_pretrained(model_name)
|
|
>>> def generate_text(prompt):
|
|
>>> inputs = tokenizer.encode(prompt, return_tensors='pt')
|
|
>>> outputs = model.generate(inputs, max_length=64, pad_token_id=tokenizer.eos_token_id)
|
|
>>> generated = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
|
>>> return generated[:generated.rfind(".")+1]
|
|
>>> prompt = "What structure is classified as a definite lie algebra?"
|
|
>>> res = generate_text(prompt)
|
|
>>> res
|
|
``` |