| | --- |
| | 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 is version 2 of the Replit Code Instruct fine tune model. |
| |
|
| | 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-v2-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. |
| |
|
| | The first model was only trained on 512 sequence length, this model on 2000, giving it much greater access to training data knowledge. |
| |
|
| | 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 |
| | ``` |