| --- |
| 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) |
| |
| ``` |
|
|