基础模型: unsloth/qwen2.5-coder-1.5b-instruct-bnb-4bit
标签:
- 文本生成推理
- transformers框架
- unsloth优化
- qwen2架构
- trl训练
- 监督微调
许可证: apache-2.0
语言:
- 英语
数据集:
- gretelai/synthetic_text_to_sql
Text2SQL-1.5B模型
概述
Text2SQL-1.5B是一个强大的自然语言转SQL模型,专为将用户查询转换为结构化SQL语句而设计。该模型支持复杂的多表查询,并确保文本到SQL转换的高准确性。
系统指令
为确保模型输出的一致性,请使用以下系统指令:
**始终将代码和解释分开。在单独的代码块中返回SQL代码,随后在单独的段落中提供解释。使用markdown三重反引号(```sql
表示SQL)正确格式化代码。首先在单独的代码块中编写SQL查询,然后用纯文本解释查询。不要将两者合并为一个响应。
对于JSON格式的结果,请使用以下指令:
**始终分离SQL代码和解释。以JSON格式返回SQL查询,包含两个键:'query'和'explanation'。响应必须严格遵循以下结构:{"query": "SQL_QUERY_HERE", "explanation": "EXPLANATION_HERE"}。'query'键应仅包含SQL语句,'explanation'键应提供查询的纯文本解释。不要将两者合并为一个响应。
提示格式
提示格式应包含用户查询和使用CREATE TABLE
语句的表结构。预期的消息格式应为:
消息 = [
{"角色": "系统", "内容": "始终将代码和解释分开。在单独的代码块中返回SQL代码,随后在单独的段落中提供解释。使用markdown三重反引号(```sql表示SQL)正确格式化代码。首先在单独的代码块中编写SQL查询,然后用纯文本解释查询。不要将两者合并为一个响应。在执行主SQL查询之前,查询应始终包含使用CREATE TABLE语句的表结构。"},
{"角色": "用户", "内容": "显示每位消费超过50,000美元的客户的总销售额。"},
{"角色": "用户", "内容": "
创建表 销售 (
id 整数 主键,
客户id 整数,
总金额 十进制(10,2),
外键 (客户id) 引用 客户(id)
);
创建表 客户 (
id 整数 主键,
姓名 字符串(255)
);
"}
]
模型使用
使用模型进行文本到SQL转换
以下代码演示了如何使用模型将自然语言查询转换为SQL语句:
从 transformers 导入 AutoTokenizer, AutoModelForCausalLM, pipeline
分词器 = AutoTokenizer.from_pretrained("yasserrmd/Text2SQL-1.5B")
模型 = AutoModelForCausalLM.from_pretrained("yasserrmd/Text2SQL-1.5B")
管道 = pipeline("文本生成", 模型=模型, 分词器=分词器)
系统指令 = "始终将代码和解释分开。在单独的代码块中返回SQL代码,随后在单独的段落中提供解释。使用markdown三重反引号(```sql表示SQL)正确格式化代码。首先在单独的代码块中编写SQL查询,然后用纯文本解释查询。不要将两者合并为一个响应。在执行主SQL查询之前,查询应始终包含使用CREATE TABLE语句的表结构。"
用户查询 = "显示每位消费超过50,000美元的客户的总销售额。
创建表 销售 (
id 整数 主键,
客户id 整数,
总金额 十进制(10,2),
外键 (客户id) 引用 客户(id)
);
创建表 客户 (
id 整数 主键,
姓名 字符串(255)
);
"
消息 = [
{"角色": "系统", "内容": 系统指令},
{"角色": "用户", "内容": 用户查询},
]
响应 = 管道(消息)
打印(响应[0]['生成文本'])
上传的模型
- 开发者: yasserrmd
- 许可证: apache-2.0
- 微调基础模型: unsloth/qwen2.5-coder-1.5b-instruct-bnb-4bit
该qwen2模型使用Unsloth和Huggingface的TRL库进行了2倍速的训练优化。
