Text Generation
Transformers
PyTorch
code
llama
Generated from Trainer
coding
llama-2
text-generation-inference
Instructions to use halima014/llama-2-7b-int4-python-code-20k with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use halima014/llama-2-7b-int4-python-code-20k with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="halima014/llama-2-7b-int4-python-code-20k")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("halima014/llama-2-7b-int4-python-code-20k") model = AutoModelForCausalLM.from_pretrained("halima014/llama-2-7b-int4-python-code-20k", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use halima014/llama-2-7b-int4-python-code-20k with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "halima014/llama-2-7b-int4-python-code-20k" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "halima014/llama-2-7b-int4-python-code-20k", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/halima014/llama-2-7b-int4-python-code-20k
- SGLang
How to use halima014/llama-2-7b-int4-python-code-20k with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "halima014/llama-2-7b-int4-python-code-20k" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "halima014/llama-2-7b-int4-python-code-20k", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "halima014/llama-2-7b-int4-python-code-20k" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "halima014/llama-2-7b-int4-python-code-20k", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use halima014/llama-2-7b-int4-python-code-20k with Docker Model Runner:
docker model run hf.co/halima014/llama-2-7b-int4-python-code-20k
| tags: | |
| - generated_from_trainer | |
| - code | |
| - coding | |
| - llama-2 | |
| model-index: | |
| - name: Llama-2-7b-4bit-python-coder | |
| results: [] | |
| license: apache-2.0 | |
| language: | |
| - code | |
| datasets: | |
| - iamtarun/python_code_instructions_18k_alpaca | |
| pipeline_tag: text-generation | |
| # LlaMa 2 7b 4-bit Python Coder 👩💻 | |
| **LlaMa-2 7b** fine-tuned on the **python_code_instructions_18k_alpaca Code instructions dataset** by using the method **QLoRA** in 4-bit with [PEFT](https://github.com/huggingface/peft) library. | |
| ## Pretrained description | |
| [Llama-2](https://huggingface.co/meta-llama/Llama-2-7b) | |
| Meta developed and publicly released the Llama 2 family of large language models (LLMs), a collection of pretrained and fine-tuned generative text models ranging in scale from 7 billion to 70 billion parameters. | |
| Model Architecture Llama 2 is an auto-regressive language model that uses an optimized transformer architecture. The tuned versions use supervised fine-tuning (SFT) and reinforcement learning with human feedback (RLHF) to align to human preferences for helpfulness and safety | |
| ## Training data | |
| [python_code_instructions_18k_alpaca](https://huggingface.co/datasets/iamtarun/python_code_instructions_18k_alpaca) | |
| The dataset contains problem descriptions and code in python language. This dataset is taken from sahil2801/code_instructions_120k, which adds a prompt column in alpaca style. | |
| ### Training hyperparameters | |
| The following `bitsandbytes` quantization config was used during training: | |
| - load_in_8bit: False | |
| - load_in_4bit: True | |
| - llm_int8_threshold: 6.0 | |
| - llm_int8_skip_modules: None | |
| - llm_int8_enable_fp32_cpu_offload: False | |
| - llm_int8_has_fp16_weight: False | |
| - bnb_4bit_quant_type: nf4 | |
| - bnb_4bit_use_double_quant: False | |
| - bnb_4bit_compute_dtype: float16 | |
| **SFTTrainer arguments** | |
| ```py | |
| # Number of training epochs | |
| num_train_epochs = 1 | |
| # Enable fp16/bf16 training (set bf16 to True with an A100) | |
| fp16 = False | |
| bf16 = True | |
| # Batch size per GPU for training | |
| per_device_train_batch_size = 4 | |
| # Number of update steps to accumulate the gradients for | |
| gradient_accumulation_steps = 1 | |
| # Enable gradient checkpointing | |
| gradient_checkpointing = True | |
| # Maximum gradient normal (gradient clipping) | |
| max_grad_norm = 0.3 | |
| # Initial learning rate (AdamW optimizer) | |
| learning_rate = 2e-4 | |
| # Weight decay to apply to all layers except bias/LayerNorm weights | |
| weight_decay = 0.001 | |
| # Optimizer to use | |
| optim = "paged_adamw_32bit" | |
| # Learning rate schedule | |
| lr_scheduler_type = "cosine" #"constant" | |
| # Ratio of steps for a linear warmup (from 0 to learning rate) | |
| warmup_ratio = 0.03 | |
| ``` | |
| ### Framework versions | |
| - PEFT 0.4.0 | |
| ### Training metrics | |
| ``` | |
| {'loss': 1.044, 'learning_rate': 3.571428571428572e-05, 'epoch': 0.01} | |
| {'loss': 0.8413, 'learning_rate': 7.142857142857143e-05, 'epoch': 0.01} | |
| {'loss': 0.7299, 'learning_rate': 0.00010714285714285715, 'epoch': 0.02} | |
| {'loss': 0.6593, 'learning_rate': 0.00014285714285714287, 'epoch': 0.02} | |
| {'loss': 0.6309, 'learning_rate': 0.0001785714285714286, 'epoch': 0.03} | |
| {'loss': 0.5916, 'learning_rate': 0.00019999757708974043, 'epoch': 0.03} | |
| {'loss': 0.5861, 'learning_rate': 0.00019997032069768138, 'epoch': 0.04} | |
| {'loss': 0.6118, 'learning_rate': 0.0001999127875580558, 'epoch': 0.04} | |
| {'loss': 0.5928, 'learning_rate': 0.00019982499509519857, 'epoch': 0.05} | |
| {'loss': 0.5978, 'learning_rate': 0.00019970696989770335, 'epoch': 0.05} | |
| {'loss': 0.5791, 'learning_rate': 0.0001995587477103701, 'epoch': 0.06} | |
| {'loss': 0.6054, 'learning_rate': 0.00019938037342337933, 'epoch': 0.06} | |
| {'loss': 0.5864, 'learning_rate': 0.00019917190105869708, 'epoch': 0.07} | |
| {'loss': 0.6159, 'learning_rate': 0.0001989333937537136, 'epoch': 0.08} | |
| {'loss': 0.583, 'learning_rate': 0.00019866492374212205, 'epoch': 0.08} | |
| {'loss': 0.6066, 'learning_rate': 0.00019836657233204182, 'epoch': 0.09} | |
| {'loss': 0.5934, 'learning_rate': 0.00019803842988139374, 'epoch': 0.09} | |
| {'loss': 0.5836, 'learning_rate': 0.00019768059577053473, 'epoch': 0.1} | |
| {'loss': 0.6021, 'learning_rate': 0.00019729317837215943, 'epoch': 0.1} | |
| {'loss': 0.5659, 'learning_rate': 0.00019687629501847898, 'epoch': 0.11} | |
| {'loss': 0.5754, 'learning_rate': 0.00019643007196568606, 'epoch': 0.11} | |
| {'loss': 0.5936, 'learning_rate': 0.000195954644355717, 'epoch': 0.12} | |
| ``` | |
| ### Example of usage | |
| ```py | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| model_id = "edumunozsala/llama-2-7b-int4-python-code-20k" | |
| tokenizer = AutoTokenizer.from_pretrained(hf_model_repo) | |
| model = AutoModelForCausalLM.from_pretrained(hf_model_repo, load_in_4bit=True, torch_dtype=torch.float16, | |
| device_map=device_map) | |
| instruction="Write a Python function to display the first and last elements of a list." | |
| input="" | |
| prompt = f"""### Instruction: | |
| Use the Task below and the Input given to write the Response, which is a programming code that can solve the Task. | |
| ### Task: | |
| {instruction} | |
| ### Input: | |
| {input} | |
| ### Response: | |
| """ | |
| input_ids = tokenizer(prompt, return_tensors="pt", truncation=True).input_ids.cuda() | |
| # with torch.inference_mode(): | |
| outputs = model.generate(input_ids=input_ids, max_new_tokens=100, do_sample=True, top_p=0.9,temperature=0.5) | |
| print(f"Prompt:\n{prompt}\n") | |
| print(f"Generated instruction:\n{tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True)[0][len(prompt):]}") | |
| ``` | |
| ### Citation | |
| ``` | |
| @misc {edumunozsala_2023, | |
| author = { {Eduardo Muñoz} }, | |
| title = { llama-2-7b-int4-python-coder }, | |
| year = 2023, | |
| url = { https://huggingface.co/edumunozsala/llama-2-7b-int4-python-18k-alpaca }, | |
| publisher = { Hugging Face } | |
| } | |
| ``` |