| --- |
| license: cc-by-sa-4.0 |
| datasets: |
| - bigcode/the-stack-dedup |
| - sahil2801/CodeAlpaca-20k |
| - teknium/GPTeacher-CodeInstruct |
| model-base: |
| - replit/replit-code-v1-3b |
| tags: |
| - code |
| - instruct |
| - self instruct |
| language: |
| - code |
| programming_language: |
| - Markdown |
| - Java |
| - JavaScript |
| - Python |
| - TypeScript |
| - PHP |
| - SQL |
| - JSX |
| - reStructuredText |
| - Rust |
| - C |
| - CSS |
| - Go |
| - C++ |
| - HTML |
| - Vue |
| - Ruby |
| - Jupyter Notebook |
| - R |
| - Shell |
| --- |
| |
| Base Model: replit/replit-code-v1-3b |
|
|
| This model is fine tuned on both Sahil2801's CodeAlpaca & Teknium's GPTeacher Code-Instruct to give Replit's Code model instruct capabilities. |
|
|
| Try this model on it's HuggingFace demo Spaces: https://huggingface.co/spaces/teknium/Replit-v1-CodeInstruct-3B |
|
|
| Dataset links: |
| CodeAlpaca: https://huggingface.co/datasets/sahil2801/CodeAlpaca-20k |
| GPTeacher subset - Code Instruct: https://github.com/teknium1/GPTeacher |
|
|
| This model was trained on 2x a100 80gb for 1 hour on ~25,000 code instruction/response pairs in Alpaca format. |
|
|
| Refer to the base models HuggingFace model card for some basic requirements to run: https://huggingface.co/replit/replit-code-v1-3b |
|
|
| This fine tune can be prompted like any alpaca fine tune: |
| ``` |
| ### Instruction: |
| <prompt> |
| |
| ### Input: |
| <additional context> |
| |
| ### Response: |
| ``` |
|
|
| or |
|
|
| ``` |
| ### Instruction: |
| <prompt> |
| |
| ### Response: |
| |
| ``` |
|
|
| This model seems to have issues with device="auto" in the model arguments (and requires the trust_remote_code=True, so you should maybe load it like I am here: |
| ``` |
| self.tokenizer = AutoTokenizer.from_pretrained("./Replit-CodeInstruct/", trust_remote_code=True) |
| self.model = AutoModelForCausalLM.from_pretrained( |
| "./Replit-CodeInstruct", |
| torch_dtype=torch.bfloat16, |
| trust_remote_code=True |
| ) |
| self.model.to('cuda') |
| ``` |
|
|
|
|
| This model for me produced coherent outputs with the following sampler settings, but feel free to experiment: |
| ``` |
| max_new_tokens=128, do_sample=True, use_cache=True, temperature=0.2, top_p=0.9, eos_token_id= self.tokenizer.eos_token_id |
| ``` |
|
|
| In the tokenizer decode arguments, it also needs these settings: |
| ``` |
| skip_special_tokens=True, clean_up_tokenization_space=False |
| ``` |
|
|
| The following parameters were used with HuggingFace trainer to train the model with: |
| ``` |
| --model_name_or_path replit/replit-code-v1-3b --data_path /root/stanford_alpaca/train.json --bf16 True --output_dir /root/stanford_alpaca/model_ckpts --num_train_epochs 3 --per_device_train_batch_size 4 --per_device_eval_batch_size 1 --gradient_accumulation_steps 8 --save_strategy steps --save_steps 200 --save_total_limit 3 --learning_rate 1e-5 --weight_decay 0. --warmup_ratio 0.03 --tf32 True --run_name Replit1 |
| ``` |