NSQL:用于SQL生成的开源大型基础模型
NSQL,一系列专为 SQL 生成任务设计的自回归开源大型基础模型。这些模型能够将自然语言查询转换为精确的 SQL 命令,支持多种数据库系统,适用于开发者在数据库查询自动化方面的需求。
直达下载
回到上一页 介绍
NSQL 是一系列专为 SQL 生成任务设计的自回归开源大型基础模型(FMs)。这些模型专门针对处理从文本到 SQL 的转换,提供了在各种数据库系统上自动编写 SQL 查询的能力。通过在 HuggingFace 上提供所有模型权重,NSQL 致力于提升开发者在数据库查询自动化方面的效率。
核心功能和特点:
- 多种模型尺寸:NSQL 提供不同尺寸的模型,包括 350M、2.7B、6B 和 7B,以适应不同的性能和精度需求。
- 广泛的应用场景:适用于连接至 Postgres 或 SQLite 的各种场景,支持直接通过数据进行问题解答。
- 高度的自动化和精确性:利用先进的机器学习技术,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 模型。
×
直达下载