| | --- |
| | license: mit |
| | datasets: |
| | - flytech/python-codes-25k |
| | language: |
| | - en |
| | base_model: |
| | - distilbert/distilgpt2 |
| | --- |
| | |
| | An example of small language learning model fine tuned for a domain-specific task (generating Python code). |
| |
|
| | ### Direct Use |
| |
|
| | ```python |
| | |
| | from transformers import AutoTokenizer, AutoModelForCausalLM |
| | import torch |
| | |
| | # Check if GPU is available |
| | device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
| | print(f"Using device: {device}") |
| | |
| | model_name = "jeff-vincent/distilgpt2-python-codegen" |
| | |
| | # Load the tokenizer and model for causal language modeling |
| | tokenizer = AutoTokenizer.from_pretrained(model_name) |
| | |
| | # If the tokenizer doesn't already have a padding token, set it explicitly |
| | if tokenizer.pad_token is None: |
| | tokenizer.add_special_tokens({'pad_token': '[PAD]'}) # Add a new pad token if none exists |
| | tokenizer.pad_token = tokenizer.eos_token # Or use eos_token as pad_token |
| | |
| | model = AutoModelForCausalLM.from_pretrained(model_name).to(device) |
| | model.resize_token_embeddings(len(tokenizer)) |
| | |
| | # Input text |
| | input_text = """ |
| | |
| | class Calculator: |
| | def __init__(self): |
| | self.result = None |
| | |
| | def add(self, a, b): |
| | self.result = a + b |
| | |
| | def subtract |
| | """ |
| | input_ids = tokenizer.encode(input_text, return_tensors="pt").to(device) |
| | |
| | # Generate output (token IDs) |
| | output_ids = model.generate(input_ids, max_length=200) |
| | |
| | # Decode the generated token IDs into text |
| | decoded_output = tokenizer.decode(output_ids[0], skip_special_tokens=True) |
| | print(decoded_output) |
| | |
| | ``` |
| |
|