text2sql框架-DB-GPT使用总结

该文章已生成可运行项目,

1. 说明

DB-GPT 是一个开源的 AI 原生数据应用开发框架

官方地址是:https://www.yuque.com/eosphoros/dbgpt-docs/

2. 项目下载

使用源码安装 DB-GPT,DB-GPT 的 Python 项目下载地址为 https://github.com/eosphoros-ai/DB-GPT

3. 安装 huggingface 客户端

DB-GPT 需要使用 huggingface 中的模型,需要先安装 huggingface 客户端

  • 安装 huggingface-cli
pip install -U huggingface_hub
  • 设置环境变量(Windows)

由于 huggingface 无法直接访问,因此需要设置 huggingface 代理网站

HF_ENDPOINT		https://hf-mirror.com

4. 安装 Python 依赖包

pip install -r requirements/dev-requirements.txt
pip install "dbgpt[default]"
pip install openai

依赖包安装相关内容参考 setup.py 文件

5. 代理模型准备

5.1. 安装 python 依赖包

安装阿里云模型服务灵积 DashScope 的 python 依赖包

pip install dashscope

5.2. 从 huggingface 下载 Embedding 模型

mkdir models

huggingface-cli download --resume-download GanymedeNil/text2vec-large-chinese --local-dir models/text2vec-large-chinese

执行以上命令下载 text2vec-large-chinese 模型,–local-dir 参数指定模型下载后的本地保存路径

6. 代理模型配置

以下使用的是局域网内部署的 qwen2 模型,与 OpenAI 接口格式相同

在项目根目录增加. env 文件,内容如下:

LLM_MODEL=chatgpt_proxyllm
PROXY_API_KEY=...
PROXY_SERVER_URL=...
PROXYLLM_BACKEND=qwen2-72b

各参数说明如下:

  • LLM_MODEL

使用固定值 chatgpt_proxyllm,代表需要访问 OpenAI 接口,或者通过代理访问 OpenAI 接口,或者访问与 OpenAI 格式相同的其他模型接口

  • PROXY_API_KEY

使用模型对应的 API Key,例如 “sk-xxx”

  • PROXY_SERVER_URL

指定访问 OpenAI 接口的地址,或者通过代理访问 OpenAI 接口的地址,或者与 OpenAI 格式相同的其他模型接口的地址

例如 “http://1.2.3.4:8080/chat/completions”

  • PROXYLLM_BACKEND

实际使用的模型名称,例如 “qwen2-72b”

7. 配置元数据库

默认使用本地的 sqlite,不需要额外配置

8. 启动应用

python dbgpt/app/dbgpt_server.py

9. DB-GPT 使用

10. 网页访问

启动日志中会显示

=========================== WebServerParameters ===========================

host: 0.0.0.0
port: 5670

对应的访问链接为

http://127.0.0.1:5670/

10.1. 验证模型访问

打开网页后,在首页显示的模型名称下方输入问题,点击按钮,验证模型访问

10.2. 添加数据库

在 DB-GPT 网页左侧边栏下方,点击 “Database”

点击需要访问的数据库对应类型的图标,例如 “MySQL”

点击右侧的 “Create” 按钮,输入数据库访问 URL 等信息并保存

10.3. 查询数据库数据——Chat Data

在 DB-GPT 网页左侧边栏上方,点击 “New Chat”

点击 “Chat Data”

在上方可以切换需要使用的模型及数据库

输入自然语言,从指定数据库查询对应的数据

10.4. 查询数据库表的等信息——Chat DB

在 DB-GPT 网页左侧边栏上方,点击 “New Chat”

点击 “Chat DB”

输入自然语言,从指定数据库查询对应的表结构等信息

10.5. 模型管理

在 DB-GPT 网页左侧边栏下方,点击 “Models”

显示当前已配置的模型信息及状态

点击 “Create Model” 可以创建新的模型

本文章已经生成可运行项目
Text2SQL任务中,DB-GPT通过一系列技术手段和优化策略来提升其准确性。首先,DB-GPT-Hub项目通过数据集的精心收集和预处理来确保模型训练的质量。这一过程包括筛选高质量的文本-SQL对,并进行标准化和清洗,以减少噪声并增强数据的一致性[^1]。此外,DB-GPT-Hub项目通过选择适合的预训练语言模型,并在其基础上进行微调,从而在降低模型训练成本的同时提升模型的性能。 其次,DB-GPT框架支持多种模型的微调,这为开发者提供了灵活的选择,可以根据具体任务需求选择最合适的模型架构。例如,开发者可以选择基于不同的预训练语言模型(如BERT、T5等)进行微调,从而找到最适合当前任务的模型[^2]。此外,DB-GPT还支持使用Hugging Face中的模型,这为开发者提供了丰富的模型资源[^3]。通过这些方式,DB-GPT能够更好地适应不同的Text2SQL任务需求,从而提高其准确性。 另外,DB-GPT-Hub项目还强调了模型微调的重要性。通过对模型进行精细的微调,可以进一步提升模型在特定任务上的表现。例如,在微调过程中,可以采用不同的优化策略,如调整学习率、使用不同的损失函数等,以达到最佳的训练效果。 最后,DB-GPT-Hub项目鼓励社区参与,通过开源的方式让更多开发者参与到Text2SQL准确度提升的工作中来。这种开放的合作模式有助于汇集多方智慧,共同推动Text2SQL技术的发展[^1]。 ### 优化策略 1. **数据预处理**:确保训练数据的质量,包括去除噪声、标准化文本格式等。 2. **模型选择**:根据任务需求选择合适的预训练模型进行微调。 3. **微调技巧**:采用不同的优化策略,如调整学习率、使用不同的损失函数等。 ```python # 示例代码:使用Hugging Face的Transformers库加载预训练模型并进行微调 from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, DataCollatorForSeq2Seq, Trainer, TrainingArguments # 加载预训练模型和分词器 model_name = "t5-small" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSeq2SeqLM.from_pretrained(model_name) # 准备训练数据 # 假设train_dataset是一个包含输入文本和目标SQL的Dataset对象 # train_dataset = ... # 设置训练参数 training_args = TrainingArguments( output_dir="./results", evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=8, num_train_epochs=3, weight_decay=0.01, ) # 创建Trainer trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, tokenizer=tokenizer, ) # 开始训练 trainer.train() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值