metadata
language:
- en
- it
license: apache-2.0
tags:
- text-generation-inference
- transformers
- unsloth
- llama
- trl
- sft
Meta LLaMA 3.1 8B 4-bit Finetuned Model
This model is a fine-tuned version of Meta-Llama-3.1-8B
, developed by ruslanmv for text generation tasks. It leverages 4-bit quantization, making it more efficient for inference while maintaining strong performance in natural language generation.
Model Details
- Base Model:
unsloth/meta-llama-3.1-8b-bnb-4bit
- Finetuned by: ruslanmv
- Language: English
- License: Apache 2.0
- Tags:
- text-generation-inference
- transformers
- unsloth
- llama
- trl
- sft
Model Usage
Installation
To use this model, you will need to install the necessary libraries:
pip install transformers accelerate bitsandbytes
Loading the Model in Python
Here’s an example of how to load this fine-tuned model using Hugging Face's transformers
library:
#!pip install bitsandbytes
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch
# Define the quantization config
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
)
# Ensure you have the right device setup
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# Load the model and tokenizer from the Hugging Face Hub with BitsAndBytesConfig
model_name = "ruslanmv/Meta-Llama-3.1-8B-Text-to-SQL-4bit"
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
quantization_config=bnb_config)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Define EOS token for terminating the sequences
EOS_TOKEN = tokenizer.eos_token
# Define Alpaca-style prompt template
alpaca_prompt = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
{}
### Input:
{}
### Response:
"""
# Format the prompt without the response part
prompt = alpaca_prompt.format(
"Provide the SQL query",
"Seleziona tutte le colonne della tabella table1 dove la colonna anni è uguale a 2020"
)
# Tokenize the prompt and generate text
inputs = tokenizer([prompt], return_tensors="pt").to(device)
outputs = model.generate(**inputs, max_new_tokens=64, use_cache=True)
# Decode the generated text
generated_text = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
# Extract the generated response only (remove the prompt part)
response_start = generated_text.find("### Response:") + len("### Response:\n")
response = generated_text[response_start:].strip()
# Print the response (excluding the prompt)
print(response)
and the ansewer is
SELECT * FROM table1 WHERE anni = 2020
Model Features
- Text Generation: This model is fine-tuned to generate coherent and contextually accurate text based on the provided input.
- Efficiency: Using 4-bit quantization with the
bitsandbytes
library, it optimizes memory and inference performance.
License
This model is licensed under the Apache 2.0 License. You are free to use, modify, and distribute this model, provided that you comply with the license terms.
Acknowledgments
This model was fine-tuned by ruslanmv based on the original work of unsloth
and the meta-llama-3.1-8b-bnb-4bit
model.