--- license: apache-2.0 datasets: - mlabonne/Evol-Instruct-Python-1k pipeline_tag: text-generation --- # 🦙💻 EvolCodeLlama-7b 📝 [Article](https://medium.com/@mlabonne/a-beginners-guide-to-llm-fine-tuning-4bae7d4da672)
This is a [`codellama/CodeLlama-7b-hf`](https://huggingface.co/codellama/CodeLlama-7b-hf) model fine-tuned using QLoRA (4-bit precision) on the [`mlabonne/Evol-Instruct-Python-1k`](https://huggingface.co/datasets/mlabonne/Evol-Instruct-Python-1k). ## 🔧 Training It was trained on an RTX 3090 in 1h 11m 44s with the following configuration file: ```yaml base_model: codellama/CodeLlama-7b-hf base_model_config: codellama/CodeLlama-7b-hf model_type: LlamaForCausalLM tokenizer_type: LlamaTokenizer is_llama_derived_model: true hub_model_id: EvolCodeLlama-7b load_in_8bit: false load_in_4bit: true strict: false datasets: - path: mlabonne/Evol-Instruct-Python-1k type: alpaca dataset_prepared_path: last_run_prepared val_set_size: 0.02 output_dir: ./qlora-out adapter: qlora lora_model_dir: sequence_len: 2048 sample_packing: true lora_r: 32 lora_alpha: 16 lora_dropout: 0.05 lora_target_modules: lora_target_linear: true lora_fan_in_fan_out: wandb_project: axolotl wandb_entity: wandb_watch: wandb_run_id: wandb_log_model: gradient_accumulation_steps: 1 micro_batch_size: 10 num_epochs: 3 optimizer: paged_adamw_32bit lr_scheduler: cosine learning_rate: 0.0002 train_on_inputs: false group_by_length: false bf16: true fp16: false tf32: false gradient_checkpointing: true early_stopping_patience: resume_from_checkpoint: local_rank: logging_steps: 1 xformers_attention: flash_attention: true warmup_steps: 100 eval_steps: 0.01 save_strategy: epoch save_steps: debug: deepspeed: weight_decay: 0.0 fsdp: fsdp_config: special_tokens: bos_token: "" eos_token: "" unk_token: "" ``` Here are the loss curves: ![](https://i.imgur.com/zrBq01N.png) It is mainly designed for educational purposes, not for inference. [Built with Axolotl](https://github.com/OpenAccess-AI-Collective/axolotl) ## 💻 Usage ``` python # pip install transformers accelerate from transformers import AutoTokenizer import transformers import torch model = "mlabonne/EvolCodeLlama-7b" prompt = "Your prompt" tokenizer = AutoTokenizer.from_pretrained(model) pipeline = transformers.pipeline( "text-generation", model=model, torch_dtype=torch.float16, device_map="auto", ) sequences = pipeline( f'{prompt}', do_sample=True, top_k=10, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id, max_length=200, ) for seq in sequences: print(f"Result: {seq['generated_text']}") ```