跳到内容

训练建议

主要因素

系统输出准确性的主要决定因素是训练数据的质量。最重要的训练数据是已知正确的“问题-SQL”对。这是一个程式化的图示,展示了预期的结果:

原因在于,系统使用检索增强层来生成 SQL 查询。该层通过问题-SQL 对的参考语料库进行训练。已知正确的“问题-SQL”对越多,系统的准确性就越高。

“问题-SQL”对包含丰富的嵌入信息,系统可以利用这些信息来理解问题的上下文。当您的用户倾向于提出具有很多歧义的问题时,这一点尤其重要。一个已知正确的 SQL 语句实际上编码了大量信息。

当有新问题出现时,即使是很小的 LLMs 也能通过参考示例的正确答案,对 SQL 进行微小修改以适应新问题。已知正确的 SQL 与新问题越接近,系统的准确性就越高。在上面的示例中,如果用户提问“按销售额排名前 5 位的客户是哪些?”,几乎任何 LLM 都能准确回答这个问题。

始终从 Jupyter notebook 开始

首次使用本系统时,我们通常建议您在 Jupyter 环境中使用它,以便您对输入系统的训练数据拥有最大控制权,并可以执行批量操作,例如提取数据库 schema 等。

提示 / 暗示

当您刚开始使用时,尝试在提问时给出一些关于您的偏好的“提示”。例如,如果您正在询问关于特定表的问题,您可能希望在问题中包含表名。这将帮助系统理解您问题的上下文并提供更准确的答案。

SQL 语句

  • SELECT * FROM my_table 是一个用于训练系统的 SQL 语句示例。它太通用了,没有为系统提供足够的上下文来理解表的结构。如果您使用 SQL 语句进行训练,最好使用包含列名的语句。例如,SELECT id, name, email FROM my_table 是一个用于训练系统的更好 SQL 语句示例。
Vanna Logo Vanna.AI

只需提问即可从数据库中快速获取洞察