--- base_model: - ajibawa-2023/Code-Llama-3-8B - defog/llama-3-sqlcoder-8b library_name: transformers tags: - mergekit - merge --- # llama3-8b-code-sql-slerp 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. ### 🤏 Models Merged Merge of pre-trained language models merged using the SLERP merge method with [mergekit](https://github.com/cg123/mergekit). The following models were included in the merge: * [ajibawa-2023/Code-Llama-3-8B](https://huggingface.co/ajibawa-2023/Code-Llama-3-8B) * [defog/llama-3-sqlcoder-8b](https://huggingface.co/defog/llama-3-sqlcoder-8b) ### 🧩 Configuration The following YAML configuration was used to produce this model: ```yaml 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 ``` ### 💻 Usage Loading in 8-bit Quantization ```python 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*