| --- |
| license: bigcode-openrail-m |
| library_name: peft |
| tags: |
| - trl |
| - sft |
| - generated_from_trainer |
| base_model: bigcode/starcoder2-3b |
| model-index: |
| - name: finetunedPHP_starcoder2 |
| results: [] |
| datasets: |
| - bigcode/the-stack-smol |
| language: |
| - en |
| --- |
| |
| <!-- This model card has been generated automatically according to the information the Trainer had access to. You |
| should probably proofread and complete it, then remove this comment. --> |
|
|
| # finetunedPHP_starcoder2 |
| |
| This model is a fine-tuned version of [bigcode/starcoder2-3b](https://huggingface.co/bigcode/starcoder2-3b) on [bigcode/the-stack-smol](https://huggingface.co/datasets/bigcode/the-stack-smol). |
| |
| ## Model description |
| |
| The `finetunedPHP_starcoder2` model is based on the `starcoder2-3b` architecture, fine-tuned specifically on PHP code from `the-stack-smol` dataset. It is intended for code generation tasks related to PHP programming. |
|
|
| ## Intended uses & limitations |
|
|
| The `finetunedPHP_starcoder2` model is suitable for generating PHP code snippets for various purposes, including code completion, syntax suggestions, and code generation tasks. However, it may have limitations in generating complex or domain-specific code, and users should verify the generated code for correctness and security. |
|
|
| ## Training and evaluation data |
|
|
| The model was trained on a dataset consisting of PHP code samples collected from `the-stack-smol` dataset. The training data included code snippets from PHP repositories, forums, and online tutorials. |
|
|
| ## Training procedure |
|
|
| **1. Data and Model Preparation:** |
|
|
| - Load the PHP dataset from my repository `bigcode/the-stack-smol`. |
| - Extract the relevant PHP data `data/php` samples for training. |
| - Utilize the `starcoder2-3b` model pre-trained on a diverse range of programming languages, including PHP, from the Hugging Face Hub. |
| - Ensure the model is configured with '4-bit' quantization for efficient computation. |
|
|
| **2. Data Processing:** |
|
|
| - Tokenize the PHP code snippets using the model's tokenizer. |
| - Clean the code by removing comments and normalizing indentation. |
| - Prepare input examples suitable for the model, considering its architecture and objectives. |
|
|
| **3. Training Configuration:** |
|
|
| - Initialize a Trainer object for fine-tuning, leveraging the Transformers library. |
| - Define training parameters, including: |
| - Learning rate, optimizer, and scheduler settings. |
| - Gradient accumulation steps to balance memory usage. |
| - Loss function, typically cross-entropy for language modeling. |
| - Metrics for evaluating model performance. |
| - Specify GPU utilization for accelerated training. |
| - Handle potential distributed training with multiple processes. |
|
|
| **4. Model Training:** |
|
|
| - Commence training for a specified number of steps. |
| - Iterate through batches of preprocessed PHP code examples. |
| - Feed examples into the model and compute predictions. |
| - Calculate loss based on predicted and actual outcomes. |
| - Update model weights by backpropagating gradients through the network. |
|
|
| **5. Evaluation (Optional):** |
|
|
| - Periodically assess the model's performance on a validation set. |
| - Measure key metrics such as code completion accuracy or perplexity. |
| - Monitor training progress to fine-tune hyperparameters if necessary. |
| - Use wandb metric monitoring for live monitoring. |
|
|
| **6. Save the Fine-tuned Model:** |
|
|
| - Store the optimized model weights and configuration in the designated `output_dir`. |
|
|
| **7. Model Sharing (Optional):** |
|
|
| - Optionally, create a model card documenting the fine-tuning process and model specifications. |
| - Share the finetunedPHP_starcoder2 model on the Hugging Face Hub for broader accessibility and collaboration. |
| |
| ### Training hyperparameters |
| |
| The following hyperparameters were used during training: |
| - learning_rate: 0.0002 |
| - train_batch_size: 1 |
| - eval_batch_size: 8 |
| - seed: 0 |
| - gradient_accumulation_steps: 4 |
| - total_train_batch_size: 4 |
| - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
| - lr_scheduler_type: cosine |
| - lr_scheduler_warmup_steps: 100 |
| - training_steps: 1000 |
| - mixed_precision_training: Native AMP |
| |
| ### Training results |
| |
| Training results and performance metrics are present in the repo. |
| |
| ### Framework versions |
| |
| - PEFT 0.8.2 |
| - Transformers 4.40.0.dev0 |
| - Pytorch 2.2.1+cu121 |
| - Datasets 2.18.0 |
| - Tokenizers 0.15.2 |