Page 343 - 《软件学报》2026年第2期
P. 343
822 软件学报 2026 年第 37 卷第 2 期
转化遵从图 2 中所示的流程. 具体的, 系统将用户输入的自然语言问题或查询统一传递给自然语言处理 (NLP) 模
型, 该模块负责理解查询的上下文、意图和结构. 与此同时, 数据库模式也被分析以理解数据结构和不同表及字段
之间的关系. 自然语言到 SQL 转化的模型主要有两种: 一种是编码解码模型, 一种是大语言模型. 对于编码解码模
型来说, 经过 NLP 处理的查询被输入到机器学习模型的编码器组件中, 编码器将自然语言查询转换为捕捉其语义
含义的结构化表示. 随后, 编码后的表示被传递给解码器组件, 解码器根据编码信息生成相应的 SQL 查询, 并进行
输出精炼, 确保生成的 SQL 查询语法正确且语义准确. 对于大语言模型来说, 大语言模型通过直接接收用户问题
和数据库模式的描述, 将其转化为 SQL 查询. 最终, 模型精炼后的 SQL 查询作为系统的最终输出, 可以被数据库
所执行. 此外, 还有一个反馈循环, 可以根据生成的 SQL 查询的准确性来微调模型. 我们在接下来的章节中逐一分
解和比较各方法在标准化流程中的异同.
自然语言处理模型
编码解码模型
基于词嵌入 模型微调
用户 自然语言问题 自然语言处理 基于图
基于注意力机制
编码器 基于预训练语言模型
基于树
解码器 基于草图
输出精炼 基于注意力机制 SQL
数据库模式 基于中间表示
大语言模型 基于微调
基于提示词工程
图 2 自然语言到 SQL 转换标准化架构
2.1.1 基于深度学习方法
(1) 编码. 编码就是将问题的语义表示, 数据库模式的结构表示, 数据库和查询的连接等问题, 利用深度学习模
型统一编码成隐向量以包含丰富的语义和结构信息. 编码模型主要有以下 4 种, 分别是基于词嵌入的方法、基于
图的方法、基于注意力机制的方法以及基于预训练语言模型的方法.
● 基于词嵌入的方法通过将查询中的每个单词映射到连续的向量空间, 使得语义相似的单词具有相近的向量
表示. 该方法在 Text2SQL 的早期研究中得到广泛应用, 例如 Seq2SQL [15] 、SQLNet [16] 、IncSQL [17] 和 TypeSQL [18]
等模型均采用词嵌入方法对查询或数据库模式进行编码, 并将其作为输入. 与 one-hot 编码相比, 词嵌入方法能够
为每个单词提供包含丰富语义信息的向量表示, 因为这些词向量可以从大规模语料库中学习到更优的词汇表征.
● 基于图的方法充分利用了数据库模式中蕴含的丰富结构信息. 这类方法通过图中的节点表示数据库中的表
和列, 并通过边建模表与列之间的关系 (如包含关系、主外键约束等), 进而利用图神经网络 (GNN) 对图结构进行
编码. 早期的代表性方法包括 GNN [19] 、Global-GNN [20] 和 RAT-SQL [21] 等. 此外, 图结构还被用于编码自然语言查
询, 从而与数据库模式编码相结合以解决 Text2SQL 问题. 具体而言, LGESQL [22] 通过线图 (line graph) 捕获多跳语
2
义信息, SADGA [23] 则利用图结构为自然语言查询和数据库模式设计了统一的编码框架. S SQL [24] 进一步关注问题
中单词之间的语法依赖关系, 而 ShadowGNN [25] 则对数据库模式进行抽象化处理, 忽略表或列的具体名称, 并通过
图投影神经网络获取问题与数据库模式的联合表示. 这些方法显著提升了 Text2SQL 任务中对复杂语义和结构信
息的建模能力.
● 基于注意力机制的方法主要采用基于 Transformer [26] 的编码器, 通过注意力机制突出查询与数据库模式之间
的关联关系, 从而优化编码表示并提升模型性能. X-SQL [27] 、SQLova [28] 和 UnifiedSKG [29] 等模型直接利用
Transformer 作为核心模块, 充分发挥其强大的语义建模能力. 此外, RAT-SQL [21] 和 DuoRAT [30] 设计了关系感知的
注意力机制, 专门用于捕捉表与列之间的复杂关系. 值得注意的是, 注意力机制是预训练语言模型 (如 BERT [31] 、
GPT [32] 等) 的核心组件, 其在 Text2SQL 任务中得到了广泛应用. 这里特别总结了那些在模型中显著利用注意力机
制的方法.
● 基于预训练语言模型的方法通过利用预训练语言模型 (如 BERT 等) 对查询问题和数据库模式进行编码, 以

