CypressTree-0.5-7B

๋ชจ๋ธ ์„ค๋ช…

์ด ๋ชจ๋ธ์€ ํ…์ŠคํŠธ(์ž์—ฐ์–ด)๋ฅผ SQL ์ฟผ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ํŠนํ™”๋œ Mistral-7B-Instruct-v0.3 ์˜ ๋ฏธ์„ธ ์กฐ์ •(Fine-Tuning) ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ๋ช…: CypressTree-0.5-7B
  • ๊ธฐ๋ฐ˜ ๋ชจ๋ธ: Mistral-7B-Instruct-v0.3
  • ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ์„ค๋ช…: Mistral-7B-v0.3์„ ๋ช…๋ น์–ด์— ๋งž๊ฒŒ ๋ฏธ์„ธ ์กฐ์ •(Instruct Fine-Tuned)ํ•œ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์ž…๋‹ˆ๋‹ค. Mistral-7B-v0.2 ๋Œ€๋น„ ํ™•์žฅ๋œ 32768 ์–ดํœ˜, v3 ํ† ํฌ๋‚˜์ด์ €, ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ง€์› ๋“ฑ์˜ ๊ฐœ์„  ์‚ฌํ•ญ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹: gretelai/synthetic_text_to_sql
  • ๋ฐ์ดํ„ฐ์…‹ ์„ค๋ช…: Gretel Navigator๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ๊ณ ํ’ˆ์งˆ์˜ text-to-sql ์ƒ˜ํ”Œ๋กœ ๊ตฌ์„ฑ๋œ ํ’๋ถ€ํ•œ ๋ฐ์ดํ„ฐ์…‹์ด๋ฉฐ, Apache 2.0 ๋ผ์ด์„ ์Šค๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ

<s>
### Instruction:
{question}

### Context:
{schema}

### Response:

์‚ฌ์šฉ๋ฒ•

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "namuai-x/CypressTree-0.5-7B"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)

text = """<s>
### Instruction:
What is the total volume of timber sold by each salesperson, sorted by salesperson?

### Context:
CREATE TABLE salesperson (salesperson_id INT, name TEXT, region TEXT); INSERT INTO salesperson (salesperson_id, name, region) VALUES (1, 'John Doe', 'North'), (2, 'Jane Smith', 'South'); CREATE TABLE timber_sales (sales_id INT, salesperson_id INT, volume REAL, sale_date DATE); INSERT INTO timber_sales (sales_id, salesperson_id, volume, sale_date) VALUES (1, 1, 120, '2021-01-01'), (2, 1, 150, '2021-02-01'), (3, 2, 180, '2021-01-01');

### Response:
"""

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

inputs = tokenizer(text, return_tensors="pt")
inputs = {key: value.to(device) for key, value in inputs.items()}

outputs = model.generate(**inputs, max_new_tokens=300, pad_token_id=tokenizer.eos_token_id)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

์ถœ๋ ฅ ์˜ˆ์‹œ

### Instruction:
What is the total volume of timber sold by each salesperson, sorted by salesperson?

### Context:
CREATE TABLE salesperson (salesperson_id INT, name TEXT, region TEXT); INSERT INTO salesperson (salesperson_id, name, region) VALUES (1, 'John Doe', 'North'), (2, 'Jane Smith', 'South'); CREATE TABLE timber_sales (sales_id INT, salesperson_id INT, volume REAL, sale_date DATE); INSERT INTO timber_sales (sales_id, salesperson_id, volume, sale_date) VALUES (1, 1, 120, '2021-01-01'), (2, 1, 150, '2021-02-01'), (3, 2, 180, '2021-01-01');

### Response:
SELECT salesperson.name, SUM(timber_sales.volume) as total_volume FROM salesperson JOIN timber_sales ON salesperson.salesperson_id = timber_sales.salesperson_id GROUP BY salesperson.name ORDER BY total_volume DESC;

ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด

  • ํ•™์Šต ํ•˜๋“œ์›จ์–ด: 4๊ฐœ์˜ Tesla V100-PCIE-32GB GPU

๋ผ์ด์„ ์Šค

  • Apache-2.0

์—ฐ๋ฝ์ฒ˜


CypressTree-0.5-7B

Model Description

This model is a fine-tuned version of Mistral-7B-Instruct-v0.3, specialized in converting natural language text into SQL queries.

  • Model Name: CypressTree-0.5-7B
  • Developed by: namuai-x
  • Base Model: Mistral-7B-Instruct-v0.3
  • Base Model Description: The Mistral-7B-Instruct-v0.3 Large Language Model (LLM) is an instruct fine-tuned version of Mistral-7B-v0.3. It includes improvements over Mistral-7B-v0.2, such as an extended vocabulary of 32768, v3 Tokenizer support, and function calling capabilities.
  • Dataset Name: gretelai/synthetic_text_to_sql
  • Dataset Description: gretelai/synthetic_text_to_sql is a rich dataset of high-quality synthetic Text-to-SQL samples, generated using Gretel Navigator and released under the Apache 2.0 license.

Prompt Template

<s>
### Instruction:
{question}

### Context:
{schema}

### Response:

How to Use it

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "namuai-x/CypressTree-0.5-7B"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)

text = """<s>
### Instruction:
What is the total volume of timber sold by each salesperson, sorted by salesperson?

### Context:
CREATE TABLE salesperson (salesperson_id INT, name TEXT, region TEXT); INSERT INTO salesperson (salesperson_id, name, region) VALUES (1, 'John Doe', 'North'), (2, 'Jane Smith', 'South'); CREATE TABLE timber_sales (sales_id INT, salesperson_id INT, volume REAL, sale_date DATE); INSERT INTO timber_sales (sales_id, salesperson_id, volume, sale_date) VALUES (1, 1, 120, '2021-01-01'), (2, 1, 150, '2021-02-01'), (3, 2, 180, '2021-01-01');

### Response:
"""

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

inputs = tokenizer(text, return_tensors="pt")
inputs = {key: value.to(device) for key, value in inputs.items()}

outputs = model.generate(**inputs, max_new_tokens=300, pad_token_id=tokenizer.eos_token_id)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Example Output

### Instruction:
What is the total volume of timber sold by each salesperson, sorted by salesperson?

### Context:
CREATE TABLE salesperson (salesperson_id INT, name TEXT, region TEXT); INSERT INTO salesperson (salesperson_id, name, region) VALUES (1, 'John Doe', 'North'), (2, 'Jane Smith', 'South'); CREATE TABLE timber_sales (sales_id INT, salesperson_id INT, volume REAL, sale_date DATE); INSERT INTO timber_sales (sales_id, salesperson_id, volume, sale_date) VALUES (1, 1, 120, '2021-01-01'), (2, 1, 150, '2021-02-01'), (3, 2, 180, '2021-01-01');

### Response:
SELECT salesperson.name, SUM(timber_sales.volume) as total_volume FROM salesperson JOIN timber_sales ON salesperson.salesperson_id = timber_sales.salesperson_id GROUP BY salesperson.name ORDER BY total_volume DESC;

Hardware and Software

  • Training Hardware: 4 Tesla V100-PCIE-32GB GPUs

License

  • Apache-2.0

Contact

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support