大模型系列|基于大模型复杂数据系统架构(二)

张俊林老师在 2023 WAIC AI 开发者论坛的演讲非常有概括性,这边沿着思路进行一定的整理。(文章来源:WAIC 2023 | 张俊林:大语言模型带来的交互方式变革)

文章目录

  • 1 Planning+Programming 模式的系统技术架构
  • 2 HuggingGPT的Prompt架构
  • 3 数据系统:Data-Copilot


1 Planning+Programming 模式的系统技术架构

在这里插入图片描述
基于大模型的数据系统要实现更加智能的自动化,要将LLM大模型放在大脑中枢位置,张老师的这页概括了依靠大模型的理解能力,下游需要的两个大模块:

  • 任务规划(复杂的任务,将它先拆成若干个简单任务,然后再逐个解决)
  • 形式化语言(Programming(程序)、API、SQL、模块调用)

这里的任务规划有点类似“把大象放进冰箱”的任务拆解。来看张老师的一个举例,SheetCopilot:
在这里插入图片描述
用户可以发出一个查询:
「把销售额在 200-500 之间的记录点亮。」

LLM(这里是 GPT-4)首先会把这个任务规划成子任务,这里是三个子任务:

  • 1)先筛选出销售额在 200-500 之间的条目(写 prompt,再把表格的 schema(即表格每一列的含义)告诉它。GPT-4 就会生成一个 API)
  • 2)把背景点亮成蓝色;
  • 3)把点亮的数据嵌入回表格。

其中这里需要使用Text-to-SQL 的技术(可参考:大模型与数据科学:从Text-to-SQL 开始(一)),比如,谷歌的SQL-PaLM 操作数据库的方式有两种:

  • 一是在上下文学习(in-context learning), 也就是给模型一些例子,包括数据库的 schema、自然语言的问题和对应的 SQL 语句,然后再问几个新问题,要求模型输出 SQL 语句
  • 另一种方式是微调(fine-tuning)

在比较复杂的数据库表上,其准确率为 78%,已经接近实用化水准了。这意味着随着技术的进一步快速发展,很可能 SQL 语句不需要人写了

参考文献:
WAIC 2023 | 张俊林:大语言模型带来的交互方式变革


2 HuggingGPT的Prompt架构

参考HuggingGPT:
在这里插入图片描述
LLM作为控制器(Controller),用来理解用户需求,然后结合HuggingFace社区的模型,将用户任务分解为:

  • 任务规划(Task Planning)
  • 模型选取(Model Selection)
  • 任务执行(Task Execution)
  • 响应生成(Response Generation)

HuggingGPT综合使用了:

  • “基于规范的指令”(specification-based instruction)
    是指对Task做了规范约束,必须是下面的这种格式,包含任务内容(task)、任务id(id)、任务依赖(dep)和参数(args)等四个要素:
[{"task": task, "id", task_id, "dep": dependency_task_ids, "args": {"text": text, "image": URL, "audio": URL, "video": URL}}]
  • “基于示范的解析”(demonstration-based parsing)
    Prompt中给它提供了若干“示例”(Demonstrations)。这会激发大模型的基于上下文学习(In-Context Learning)或者叫做Few-shot learning能力,从而产生更好的理解和生成。

参考文献:
硬核Prompt赏析:HuggingGPT告诉你Prompt可以有多“工程”


3 数据系统:Data-Copilot

Data-Copilot: 大语言模型做你最贴心省事的数据助手

号称:无需繁琐操作,只需要输入一句话, Data-Copilot自动帮你完成查数据,分析数据,管理数据,预测趋势,还可以画图做表

在这里插入图片描述
接口设计:我们设计了一个self-request的过程,使LLM能够自主地从少量种子请求生成足够的请求。然后,LLM根据生成的请求进行迭代式的设计和优化接口。这些接口使用自然语言描述,使它们易于扩展和在不同平台之间转移。
接口调度:在接收到用户请求后,LLM根据自设计的接口描述和in context demonstration来规划和调用接口工具,部署一个满足用户需求的工作流,并以多种形式呈现结果给用户。

此时该系统也是符合:Planning+Programming 模式。其中:

  • LLM根据自设计的接口描述和in context demonstration来规划任务实现Planning;
  • 还有该系统的Programming 核心是利用LLM强大的代码生成能力为接口库中的每个接口生成具体的代码(interface implementation)
    在这里插入图片描述

来看一个例子:

用户问题: 预测下面四个季度的中国季度GDP
部署工作流:获取历史GDP数据----> 采用线性回归模型预测未来----->输出表格

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52314.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

把网站改为HTTPS访问方法

HTTPS是使用TSL/SSL加密超文本传输协议的扩展,用于跨网络的安全传输。网站更改为HTTPS,直接在网站形象上可以得到提升,更重要的是您的网站肯定会在排名和提升方面受益。机密信息的交换需要受到保护,以阻止未经授权的访问。 加密&a…

c语言指针的运算

1、通过指针计算数组的元素&#xff08;指针相减&#xff0c;类型需要一致&#xff09;&#xff0c;比如数组元素指针相减得到的是中间相差的元素个数&#xff0c;可以用于计算数组元素的个数等 #include "stdio.h" #include <stdlib.h>int main() {int a[10]…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(19)-Fiddler精选插件扩展安装,将你的Fiddler武装到牙齿

1.简介 Fiddler本身的功能其实也已经很强大了&#xff0c;但是Fiddler官方还有很多其他扩展插件功能&#xff0c;可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了&#xff0c;为了更好的扩展Fiddler&#xff0c…

spring-cache框架使用笔记

spring-cache框架使用笔记 什么是spring-cache框架 spring-cache是spring框架中的一个缓存抽象层&#xff0c; 它提供了一种简便的方式来集成不同的底层缓存实现&#xff0c; 如内存缓存(concurrentMap/ehcache/caffeine)/分布式缓存(redis/couchbase)等 它简化了在app中使用…

go 如何知道一个对象是分配在栈上还是堆上?

如何判断变量是分配在栈&#xff08;stack&#xff09;上还是堆&#xff08;heap&#xff09;上&#xff1f; Go和C不同&#xff0c;Go局部变量会进行逃逸分析。如果变量离开作用域后没有被引用&#xff0c;则优先分配到栈上&#xff0c;否则分配到堆上。判断语句&#xff1a;…

tomcat

1. 简述静态网页和动态网页的区别。 静态网页是指在服务器存储的网页内容保持不变&#xff0c;不会根据用户的请求或其他条件而改变。它的内容是固定的&#xff0c;无法根据用户的不同需求进行个性化或实时更新。静态网页一般由HTML、CSS和JavaScript等静态资源组成&#xff0…

引入联合GraphQL以解决系统架构中的问题

随着使用需求的增长&#xff0c;用户群的扩大以及新功能的引入&#xff0c;让工程师按照业务的主要领域进行组织变得不可避免。当这些领域在单个实体&#xff08;如类、服务、应用程序或代码库&#xff09;的层面变得过于庞大难以管理时&#xff0c;引入联合GraphQL成为优化系统…

华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(六)

系列文章目录 个人简介&#xff1a;机电专业在读研究生&#xff0c;CSDN内容合伙人&#xff0c;博主个人首页 Python面试专栏&#xff1a;《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读&#xff0c;一起进步&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; …

web前端框架Javascript之JavaScript 异步编程史

早期的 Web 应用中&#xff0c;与后台进行交互时&#xff0c;需要进行 form 表单的提交&#xff0c;然后在页面刷新后给用户反馈结果。在页面刷新过程中&#xff0c;后台会重新返回一段 HTML 代码&#xff0c;这段 HTML 中的大部分内容与之前页面基本相同&#xff0c;这势必造成…

vue列表全选反选

1、结果查看 2、 选中时添加样式 3、点击选择调用方法 4、全选反选调用方法

“ARTS挑战:探索技术,分享思考“

文章目录 前言一、学习的内容二、遇到的困难及解决办法三、学习打卡成果展示四、学习技巧的总结五、未来学习打卡计划后记 关于 ARTS 的释义 ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Sha…

C语言自定义类型 — 结构体、位段、枚举、联合

前言 本期主要对通讯录三篇博客文章进行补充 通讯录文章&#xff1a;通讯录系列文章 对结构体进行详细介绍&#xff0c;其次讲解位段、枚举、联合体 文章目录 前言一、结构体1.什么是结构体2.结构声明2.1 声明格式2.2 如何声明&#xff08;代码演示&#xff09; 3.特殊声明3.1…