
在大数据与人工智能紧密交织的当下,文本转SQL技术是实现自然语言与数据库顺畅交互的关键。近期,中国人民大学团队带来惊喜,推出OmniSQL及创新数据合成框架SynSQL-2.5M,为该领域注入新活力,极具应用潜力。
一、OmniSQL概述
OmniSQL是人大团队开源的文本转SQL模型家族,有7B、14B、32B三种参数规模。不同规模适配不同算力需求,从个人开发到企业级应用,都能找到合适版本。其厉害之处,主要源于背后的SynSQL-2.5M。
SynSQL-2.5M是全球首个百万级文本转SQL数据集,含250万高质量样本,覆盖16,583个跨领域数据库,金融、医疗、科研等领域数据都有。丰富的数据让OmniSQL在复杂场景下,也能把自然语言精准转为SQL查询。性能上,OmniSQL超越GPT-4o等闭源模型,更快速准确处理任务,技术优势明显 ,为广泛应用筑牢根基。

二、功能特点
1、SynSQL-2.5M数据集的显著优势
-
大规模与多样样本:250万样本,覆盖超16,000个领域数据库,支持9种自然语言风格,不管是口语化提问,还是正式书面表达,都能理解,转化为SQL查询。
-
精细复杂度分级:SQL查询分简单、中等、复杂、高度复杂四级。从单表查询,到多表连接、函数嵌套,再到窗口函数高级应用等复杂操作,都涵盖其中,为OmniSQL训练提供丰富样本,应对各种难度查询。
-
透明链式推理支持:每个样本都有CoT解决方案,清晰展示从自然语言问题到SQL查询的推理步骤,让用户明白模型如何得出结果,提高模型可解释性与用户信任度,也方便研究人员优化模型。
2、OmniSQL模型的突出亮点
-
灵活多尺寸适配:7B、14B、32B参数版本,满足不同资源条件。7B适用于资源有限环境,14B平衡性能与资源,32B处理大规模复杂任务。且支持本地化部署,保障金融、政务等对数据安全要求高的行业的数据安全。
-
领先性能表现:在Spider、BIRD等9个权威文本转SQL基准测试中,OmniSQL成绩优异,超越DeepSeek-V3、GPT-4o等模型。不管查询准确性、速度,还是对复杂查询的处理能力,都很出色,提供高效可靠服务。
-
简洁高效零额外设计:OmniSQL用单一模型实现高精度文本转SQL,不依赖外部SQL修正模块,减少系统复杂性与维护成本,提升运行效率与稳定性 。
三、技术原理(四步数据合成框架)
1、数据库自动生成
OmniSQL分析网络表格,推断业务场景,借助大语言模型自动构建含多表关系、主外键约束的数据库结构。还采用增强策略,增加列数、优化结构,让生成的数据库更贴合实际应用。
2、复杂度可控的SQL生成:
定义四个复杂度等级,结合SQLite函数库,如聚合函数(SUM、AVG等)、窗口函数(ROW_NUMBER、RANK等),生成各类SQL查询。能依用户问题智能选择复杂度等级,给出合适查询语句。
3、风格化问题反向翻译
采用SQL-to-Question策略,将SQL查询反向译为9种语言风格的自然语言问题,经语义分析确保翻译前后语义一致,提升自然语言与SQL转换效率和准确性,适应不同用户语言习惯。
4、CoT解决方案合成
通过逐步推理生成器,为样本添加中间推导步骤,即CoT解决方案。训练时,模型学习问题到SQL的转换,也学习每步推理逻辑,提高推理准确性与可靠性,向用户展示透明推理过程,增强信任。
四、应用场景
1、企业数据分析
企业中,数据是决策关键,但传统分析工具需专业技术。OmniSQL让非技术人员能用自然语言查询数据库,如市场人员问“上月各地区产品销售增长率?”,财务人员问“去年各季度成本与利润?”,OmniSQL快速转成SQL查询,降低BI工具使用门槛,提升数据分析效率。
2、教育领域
SQL教学中,OmniSQL的CoT解决方案帮初学者理解从问题到SQL的转换过程。教师用它生成查询示例,让学生实操掌握SQL概念与技巧。在线教育平台也能用它提供个性化学习支持。
3、跨领域适配
基于合成框架,OmniSQL能快速生成领域专用数据集。医疗领域生成EHRSQL数据集,助力医疗研究;科研领域生成ScienceBenchmark数据集,辅助科研数据分析,推动各领域数据应用创新。
4、本地化部署
金融、政务等对数据安全要求极高的行业,OmniSQL支持本地化部署,企业和机构可将模型部署在自己服务器,避免数据泄露风险,提高处理效率与响应速度 。
五、快速使用指南
1、提示模板
OmniSQL提示模板如下:
input_prompt_template = ”’Task Overview: You are a data science expert. Below, you are provided with a database schema and a natural language question. Your task is to understand the schema and generate a valid SQL query to answer the question. Database Engine: SQLite Database Schema: {db_details} This schema describes the database’s structure, including tables, columns, primary keys, foreign keys, and any relevant relationships or constraints. Question: {question} Instructions: – Make sure you only output the information that is asked in the question. If the question asks for a specific column, make sure to only include that column in the SELECT clause, nothing more. – The generated query should return all of the information asked in the question without any missing or extra information. – Before generating the final SQL query, please think through the steps of how to write the query. Output Format: In your answer, please enclose the generated SQL query in a code block: “` — Your SQL query “` Take a deep breath and think step by step to find the correct SQL query.”’ |
使用时,把“db_details”替换为数据库模式信息,“question”替换为自然语言问题。“db_details”是数据库表定义语句(DDL),可加SQL注释描述。目前OmniSQL仅支持SQLite。
2、使用vLLM进行推理
OmniSQL与vLLM结合使用示例:
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
prompt = input_prompt_template.format(db_details = "...", question = "...")
model_path = "seeklhy/OmniSQL-7B"
tokenizer = AutoTokenizer.from_pretrained(model_path)
sampling_params = SamplingParams(
temperature = 0,
max_tokens = 2048,
n = 1
)
llm = LLM(
model = model_path,
dtype = "float16",
tensor_parallel_size = 1,
max_model_len = 8192,
gpu_memory_utilization = 0.92,
swap_space = 8,
enforce_eager = True,
disable_custom_all_reduce = True,
trust_remote_code = True
)
chat_prompt = tokenizer.apply_chat_template(
[{"role": "user", "content": prompt}],
add_generation_prompt = True, tokenize = False
)
outputs = llm.generate([chat_prompt], sampling_params)
for output in outputs:
responses = [o.text for o in output.outputs]
print(responses[0])
按此步骤,用户能快速用OmniSQL实现文本转SQL,完成自然语言与数据库高效交互。
六、结语
OmniSQL是文本转SQL领域重大突破,开源模型与数据集推动技术普及。未来,有望扩展至多语言、多数据库引擎场景,在自然语言交互式数据分析中发挥更大作用,推动大数据和人工智能技术发展应用。
项目地址
开源地址:https://github.com/RUCKBReasoning/OmniSQL
arXiv论文:https://arxiv.org/abs/2503.02240
(文:小兵的AI视界)