Edit model card

Training procedure

The following bitsandbytes quantization config was used during training:

  • quant_method: bitsandbytes
  • 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: True
  • bnb_4bit_compute_dtype: float16

The following bitsandbytes quantization config was used during training:

  • quant_method: bitsandbytes
  • 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: True
  • bnb_4bit_compute_dtype: float16

Framework versions

  • PEFT 0.5.0

  • PEFT 0.5.0

Inference Code

Install required libraries

!pip install transformers peft

Login

from huggingface_hub import login

token = "Your Key"
login(token)

Import necessary modules

from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
from transformers import BitsAndBytesConfig
from peft import prepare_model_for_kbit_training

Load PEFT model and configuration

config = PeftConfig.from_pretrained("Shreyas45/Llama2_Text-to-SQL_Fintuned")
peft_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf")
peft_model = PeftModel.from_pretrained(peft_model, "Shreyas45/Llama2_Text-to-SQL_Fintuned")

Load trained model and tokenizer

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import prepare_model_for_kbit_training

trained_model_tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path, trust_remote_code=True)
trained_model_tokenizer.pad_token = trained_model_tokenizer.eos_token

Define a SQL query

query = '''In the table named management with columns (department_id VARCHAR, temporary_acting VARCHAR); 
            CREATE TABLE department (name VARCHAR, num_employees VARCHAR, department_id VARCHAR), 
            Show the name and number of employees for the departments managed by heads whose temporary acting value is 'Yes'?'''

Construct prompt

prompt = f'''### Instruction: Below is an instruction that describes a task and the schema of the table in the database. 
            Write a response that generates a request in the form of a SQL query. 
            Here the schema of the table is mentioned first followed by the question for which the query needs to be generated. 
            And the question is: {query}
###Output: '''

Tokenize the prompt

encodings = trained_model_tokenizer(prompt, return_tensors='pt')

Configure generation parameters


generation_config = peft_model.generation_config
generation_config.max_new_token = 1024
generation_config.temperature = 0.7
generation_config.top_p = 0.7
generation_config.num_return_sequence = 1
generation_config.pad_token_id = trained_model_tokenizer.pad_token_id
generation_config.eos_token_id = trained_model_tokenizer.eos_token_id

Generate SQL query using the model

with torch.inference_mode():
    outputs = peft_model.generate(
        input_ids=encodings.input_ids,
        attention_mask=encodings.attention_mask,
        generation_config=generation_config,
        max_new_tokens=100
    )

Decode and print the generated SQL query

generated_query = trained_model_tokenizer.decode(outputs[0])
print("Generated SQL Query:")
print(generated_query)
Downloads last month
0
Unable to determine this model’s pipeline type. Check the docs .