NSQL:用于SQL生成的开源大型基础模型

NSQL,一系列专为 SQL 生成任务设计的自回归开源大型基础模型。这些模型能够将自然语言查询转换为精确的 SQL 命令,支持多种数据库系统,适用于开发者在数据库查询自动化方面的需求。
直达下载
回到上一页
clickgpt_line.png_noView
介绍

NSQL 是一系列专为 SQL 生成任务设计的自回归开源大型基础模型(FMs)。这些模型专门针对处理从文本到 SQL 的转换,提供了在各种数据库系统上自动编写 SQL 查询的能力。通过在 HuggingFace 上提供所有模型权重,NSQL 致力于提升开发者在数据库查询自动化方面的效率。

核心功能和特点:

  1. 多种模型尺寸:NSQL 提供不同尺寸的模型,包括 350M、2.7B、6B 和 7B,以适应不同的性能和精度需求。
  2. 广泛的应用场景:适用于连接至 Postgres 或 SQLite 的各种场景,支持直接通过数据进行问题解答。
  3. 高度的自动化和精确性:利用先进的机器学习技术,NSQL 能够准确解释自然语言并转换成有效的 SQL 查询。

安装说明:

通过简单的命令安装所需依赖,详见以下代码:

    
pip install -r requirements.txt

使用示例:

examples/ 目录中,我们提供了多个示例,展示如何连接到 Postgres 或 SQLite 数据库并直接使用数据回答问题。以下是一个代码片段示例:

    
from db_connectors import PostgresConnector
from prompt_formatters import RajkumarFormatter
from manifest import Manifest

# 创建数据库连接
postgres_connector = PostgresConnector(
    user=USER, password=PASSWORD, dbname=DATABASE, host=HOST, port=PORT
)
postgres_connector.connect()

# 获取数据库架构
db_schema = [postgres_connector.get_schema(table) for table in postgres_connector.get_tables()]

# 初始化格式化器和Manifest客户端
formatter = RajkumarFormatter(db_schema)
manifest_client = Manifest(client_name="huggingface", client_connection="http://127.0.0.1:5000")

# 定义获取SQL查询的函数
def get_sql(instruction: str, max_tokens: int = 300) -> str:
    prompt = formatter.format_prompt(instruction)
    res = manifest_client.run(prompt, max_tokens=max_tokens)
    return formatter.format_model_output(res)

# 示例查询
print(get_sql("Number of rows in table?"))

数据准备和训练:

我们在 data_prep 文件夹中提供了数据准备脚本,用于生成 NSText2SQL 数据集以训练 NSQL 模型。

编程学习
编程学习 免费领取编程学习资料 进编程学习交流群
订阅号
视频号
公众号 关注公众号,回复关键字java领取大厂最新面试题
×
编程学习
免费领取编程学习资料 进编程学习交流群