有没有人尝试过用数据库内容训练ai模型?

有没有可能用数据库内容训练ai模型,然后通过自然语言对数据库直接进行各种访问?

LLMs and SQL 参考一下

然后有可能你为了得到想要的结果,写出来的 prompt 比 sql 还啰唆。

1 个赞

我想的是直接输出最终结果,而不是sql,面向最终用户的。

GitHub - debanjum/khoj: Search assistant for your org-mode, markdown notes, beancount transaction and images 🦅 这种吗?

你曲解了我的意思。

1 个赞

参考一下这个视频:

楼主的描述不太清楚啊, 我觉得你想要的不是 “用数据库内容训练 gpt” 而是 “训练 gpt 使用数据库查询结果并汇总”. 前者没什么意义因为一般数据库内容太少基本被 gpt 的整个语料库淹没掉了.

后面这项其实就是 new bing 做的事情. 微软会先给 gpt 类似这样的一段提示词:

用户提问时, 你可以输出 QUERY(keyword) 查询相关信息, 综合之后作答.

微软会扫描 gpt 输出, 遇到 QUERY(...) 这种格式的就调用搜索引擎 api 查询相关内容给 gpt (这部分用户看不到), gpt 理解之后再汇总给用户. gpt 可以现场学会使用这些, 不需要重新训练模型参数.

放在楼主这个问题里面, 就是把前面提示词里的 QUERY 换成要求 gpt 自己写 sql 语句, 你自己再写个工具扫描它的输出, 遇到它输出 SQL(SELECT * ...) 之类的就拿到数据库查了结果给它.

问题是 gpt 用简单的工具还成, sql 有点复杂, 它不一定能用得好.

前几天 meta 有篇文章就是讲这个的, 有兴趣的话可以参考: [2302.04761] Toolformer: Language Models Can Teach Themselves to Use Tools

2 个赞

如果是简单的查询,直接让chatgpt干就行了。因为像sql这样很简单的语言chatgpt是不太可能出错的,你只要事先喂给他你的表的名字和字段啥的,然后用自然语言说你想要查什么数据,他都能给你写正确。

不过 gpt 目前支持的上下文长度是有限的,如果你的表太多字段也太多,可能会导致预输入文本太长,没办法支持后续的完整的交互。

但是如果你需要很复杂的查询,那肯定会很麻烦,因为自然语言是很不精确的,一旦逻辑复杂起来,想用自然语言讲清楚一个查询逻辑,复杂程度是几何程度的递增。当逻辑复杂起来以后,我们也是用类似伪代码的程度来描述逻辑,而不是用通俗的自然语言。这种时候打半天 prompt 还要考虑自然语言可能没有说清楚的问题,干脆不如直接写 SQL了。

可以的吧,但数据库表结构和与其它表的关系不要设计得太复杂了。数据表结构设计得很简单,sql就不会写出很复杂的查询,这样用prompt自然语言写查询就可以做到。

如果不得不把数据表结构逻辑设计得很复杂,那不如直接写sql,不要用自然语言。

sqlchat/sqlchat: Chat-based SQL Client and Editor for the next decade (github.com)

已经有人做了,可以试试

看截图是会先输出 SQL 语句,应该是为了消解用户疑虑,或便于调试 prompt。非专业人士就算用了这个数据库,他也无法判断输出结果对不对。

目前的AI我觉得还是比较适合做辅助创意的工作,比如写代码样例、写文案、写故事、作曲、插画。。。可以节省部分劳力、开拓思维,但恐怕距离满意还有些距离,最后还是需要人工再修饰。

image