File size: 3,532 Bytes
e10f914
 
 
 
 
 
 
 
 
 
 
a3fe5ef
 
e10f914
 
 
 
 
 
 
5b3182e
e10f914
 
 
e45cb5b
5b3182e
e10f914
 
 
 
 
 
 
 
 
 
 
5b3182e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e10f914
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
---
license: bigcode-openrail-m
library_name: peft
tags:
- trl
- sft
- generated_from_trainer
base_model: bigcode/starcoder2-3b
model-index:
- name: finetune_starcoder2
  results: []
datasets:
- bigcode/the-stack-smol
---

<!-- 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. -->

# finetune_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

This fine-tuned model builds upon the `bigcode/starcoder2-3b` base model, further specializing it for code completion tasks using the `bigcode/the-stack-smol` dataset on SQL data. This dataset focuses on code snippets and solutions, allowing the model to suggest relevant completions and potentially even generate code based on your prompts.


## Intended uses & limitations

More information needed

## Training and evaluation data

More information needed

## Training procedure

**1. Load Dataset and Model:**

- Load the `bigcode/the-stack-smol` dataset using the Hugging Face Datasets library.
- Filter for the specified subset (`data/sql`) and split (`train`).
- Load the `bigcode/starcoder2-3b` model from the Hugging Face Hub with '4-bit' quantization.

**2. Preprocess Data:**

- Tokenize the code text using the appropriate tokenizer for the chosen model.
- Apply necessary cleaning or normalization (e.g., removing comments, handling indentation).
- Create input examples suitable for the model's architecture (e.g., with masked language modeling objectives).

**3. Configure Training:**

- Initialize a Trainer object (likely from a library like Transformers).
- Set training arguments based on the provided `args`:
    - Learning rate, optimizer, scheduler
    - Gradient accumulation steps
    - Weight decay
    - Loss function (likely cross-entropy)
    - Evaluation metrics (e.g., accuracy, perplexity)
    - Device placement (GPU/TPU)
    - Number of processes for potential distributed training

**4. Train the Model:**

- Start the training loop for the specified `max_steps`.
- Iterate through batches of preprocessed code examples.
- Forward pass through the model to generate predictions.
- Calculate loss based on ground truth and predictions.
- Backpropagate gradients to update model parameters.

**5. Evaluation (Optional):**

- Periodically evaluate model performance on a validation or test set.
- Calculate relevant metrics (accuracy, perplexity, code completion accuracy).
- Monitor training progress and adjust hyperparameters as needed.

**6. Save the Fine-tuned Model:**

- Save the model's weights and configuration to the `output_dir`.

**7. Push to Hugging Face Hub (Optional):**

- If `push_to_hub` is True, create a model card and push the model to Hugging Face Hub for sharing and use.

### 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



### Framework versions

- PEFT 0.8.2
- Transformers 4.40.0.dev0
- Pytorch 2.2.1+cu121
- Datasets 2.18.0
- Tokenizers 0.15.2