Merging Models
Collection
Experimentation with various merging techniques
β’
4 items
β’
Updated
llama3-8b-code-sql-slerp is a merge of two fine tuned Llama 3 8B models for coding, intended to have a solid programming foundation with an expertise in SQL.
Merge of pre-trained language models merged using the SLERP merge method with mergekit.
The following models were included in the merge:
The following YAML configuration was used to produce this model:
slices:
- sources:
- model: ajibawa-2023/Code-Llama-3-8B
layer_range: [0, 32]
- model: defog/llama-3-sqlcoder-8b
layer_range: [0, 32]
merge_method: slerp
base_model: ajibawa-2023/Code-Llama-3-8B
parameters:
t:
- filter: self_attn
value: [0, 0.3, 0.5, 0.7, 0.5]
- filter: mlp
value: [0, 0.3, 0.5, 0.7, 0.5]
- value: 0.4 # fallback for rest of tensors
dtype: bfloat16
Loading in 8-bit Quantization
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
tokenizer = AutoTokenizer.from_pretrained("AdamLucek/llama3-8b-code-sql-slerp")
model = AutoModelForCausalLM.from_pretrained(
"AdamLucek/llama3-8b-code-sql-slerp",
device_map="cuda",
quantization_config=BitsAndBytesConfig(load_in_8bit=True)
)
# Prepare the input text
input_text = "Can you write a query to retrieve the names and email addresses of all customers who have made purchases totaling over $1000 in the last month from our 'sales' database?"
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
# Generate the output
outputs = model.generate(
**input_ids,
max_new_tokens=256,
pad_token_id=tokenizer.eos_token_id
)
# Decode and print the generated text
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Output
\```sql
SELECT c.name, c.email
FROM customers c
JOIN sales s ON c.customer_id = s.customer_id
WHERE s.purchase_date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
GROUP BY c.name, c.email
HAVING SUM(s.amount) > 1000;
\```
This query joins the 'customers' and'sales' tables on the 'customer_id' field, filters for sales made in the last month, groups the results by customer name and email, and then applies a condition to only include customers whose total purchase amount exceeds $1000. The result will be a list of names and email addresses for customers who have made purchases totaling over $1000 in the last month.
backslash added for formatting