​GPT充当大脑,指挥多个模型协作完成各类任务,通用系统AutoML-GPT来了

当前,AI 模型虽然已经涉及非常广泛的应用领域,但大部分 AI 模型是为特定任务而设计的,它们往往需要大量的人力来完成正确的模型架构、优化算法和超参数。ChatGPT、GPT-4 爆火之后,人们看到了大型语言模型(LLM)在文本理解、生成、互动、推理等方面的巨大潜力。一些研究者尝试利用 LLM 探索通往通用人工智能(AGI)的新道路。

近期,来自德克萨斯州大学奥斯汀分校的研究者提出一种新思路 —— 开发任务导向型 prompt,利用 LLM 实现训练 pipeline 的自动化,并基于此思路推出新型系统 AutoML-GPT。

Spring如何连接MySQL数据

论文地址:

https://www.php.cn/link/39d4b545fb02556829aab1db805021c3

AutoML-GPT 使用 GPT 作为各种 AI 模型之间的桥梁,并用优化过的超参数来动态训练模型。AutoML-GPT 动态地接收来自 Model Card [Mitchell et al., 2019] 和 Data Card [Gebru et al., 2021] 的用户请求,并组成相应的 prompt 段落。最后,AutoML-GPT 借助该 prompt 段落自动进行多项实验,包括处理数据、构建模型架构、调整超参数和预测训练日志。

AutoML-GPT 通过最大限度地利用其强大的 NLP 能力和现有的人工智能模型,解决了各种测试和数据集中复杂的 AI 任务。大量实验和消融研究表明,AutoML-GPT 对许多人工智能任务(包括 CV 任务、NLP 任务)是通用的、有效的。

AutoML-GPT 简介

AutoML-GPT 是一个依赖数据和模型信息来格式化 prompt 输入段落的协作系统。其中,LLM 作为控制器,多个专家模型作为协作的执行者。AutoML-GPT 的工作流程包括四个阶段:数据处理、模型架构设计、超参数调整和训练日志生成。

具体来说,AutoML-GPT 的工作机制如下:

  • 通过 Model Card 和 Data Card 生成固定格式的 prompt 段落
  • 构建训练 pipeline,在选定的数据集和模型架构上处理用户需求
  • 生成性能训练日志并调整超参数
  • 根据自动建议的(auto-suggested)超参数调整模型

输入分解

AutoML-GPT 的第一阶段是让 LLM 接受用户输入。为了提高 LLM 的性能并生成有效的 prompt,该研究对输入 prompt 采用特定的指令。这些指令包括三个部分:Data Card、Model Card、评估指标和附加要求。

如下图 2 所示,Data Card 的关键部分由数据集名称、输入数据集类型(如图像数据或文本数据)、标签空间(如类别或分辨率)和默认评估指标组成。

如下图 3 所示,Model Card 由模型名称、模型结构、模型描述和架构超参数组成。通过提供这些信息,Model Card 能告知 LLM 整个机器学习系统使用了哪些模型,以及用户对模型架构的偏好。

除了 Data Card 和 Model Card,用户还可以选择请求更多的评估基准、评估指标或任何约束。AutoML-GPT 将这些任务规范作为高级指令提供给 LLM,用于相应地分析用户需求。

当有一系列需要处理的任务时,AutoML-GPT 需要为每个任务匹配相应的模型。为了达到这一目标,首先系统需要获得 Model Card 和用户输入中的模型描述。

然后,AutoML-GPT 使用 in-context 任务 - 模型分配机制,动态地为任务分配模型。这种方法通过将模型描述和对用户需求的更好理解结合起来,实现了增量模型(incremental model)访问,并提供了更大的开放性和灵活性。

用预测训练日志调整超参数

AutoML-GPT 根据 Data Card 和 Model Card 设置超参数,并通过生成超参数的训练日志来预测性能。该系统自动进行训练并返回训练日志。在数据集上的模型性能训练日志记录了训练过程中收集的各种指标和信息,这有助于了解模型训练进展,找出潜在问题,以及评估所选架构、超参数和优化方法的有效性。

实验

为了评估 AutoML-GPT 的性能,该研究使用 ChatGPT(OpenAI 的 GPT-4 版本)来实现它,并进行多项实验从多个角度展示了 AutoML-GPT 的效果。

下图 4 展示了使用 AutoML-GPT 在未知数据集上训练的结果:

下图 5 展示了 AutoML-GPT 在 COCO 数据集上完成目标检测任务的过程:

下图 6 展示了 AutoML-GPT 在 NQ 开放数据集(Natural Questions Open dataset,[Kwiatkowski et al., 2019])上的实验结果:

该研究还使用 XGBoost 在 UCI Adult 数据集 [Dua and Graff, 2017] 上评估了 AutoML-GPT,以探究其在分类任务上的性能,实验结果如下图 7 所示:

感兴趣的读者可以阅读论文原文,了解更多研究细节。



Spring框架是一个开源的JavaEE(Java Enterprise Edition)应用程序框架,被广泛的应用于企业级Java开发中。它采用了控制反转(IOC)和面向切面编程(AOP)等思想,为Java开发者提供了丰富的功能和便捷的开发体验。在使用Spring框架进行Java开发的时候,常见的需求是需要将数据存储到数据库中,而MySQL数据库是其中一种最常用的数据库之一。那么Spring如何连接MySQL数据库呢?
一、Spring中引入MySQL连接驱动
Spring框架并不包含MySQL连接驱动,需要在使用之前将其引入项目中。可以通过Maven来引入MySQL连接驱动,只需在pom.xml文件中添加MySQL数据库的依赖即可。

mysql
mysql-connector-java
8.0.19

在版本号中可根据实际情况进行修改,这里以8.0.19版本为例。
二、配置MySQL数据源
配置数据源是连接MySQL数据库的关键步骤。Spring框架提供了多种方式进行数据源的配置,以下为两种常用的方式。
1. 使用XML文件进行配置
可以使用Spring的配置文件(例如applicationContext.xml)来进行MySQL数据源的配置。






其中,id属性为该数据源的名称,class属性为要使用的数据源类。接下来的driverClassName属性为MySQL连接驱动的名称,url属性为要连接的MySQL数据库的地址及相关参数(可根据实际情况进行修改),username和password分别为MySQL数据库的用户名和密码。
2. 使用注解进行配置
也可以通过使用注解的方式进行MySQL数据源的配置。
@Configuration
public class DBConfig {
@Value(\"${mysql.datasource.url}\")
private String url;
@Value(\"${mysql.datasource.username}\")
private String username;
@Value(\"${mysql.datasource.password}\")
private String password;
@Value(\"${mysql.datasource.driverClassName}\")
private String driverClassName;
@Bean
public DataSource mysqlDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
通过@Configuration注解将类标记为配置类,@Value注解用于将属性值注入到类中。最后使用@Bean注解将DataSource对象交由Spring容器来管理。
三、使用MySQL数据源
配置完MySQL数据源之后,就可以在Java代码中使用该数据源来连接MySQL数据库了。以下为一个简单的SQL查询示例。
@Test
public void test() {
ApplicationContext context = new ClassPathXmlApplicationContext(\"applicationContext.xml\");
JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class);
List> resultList = jdbcTemplate.queryForList(\"SELECT * FROM orders\");
System.out.println(resultList);
}
其中,使用ClassPathXmlApplicationContext类加载Spring的配置文件(可以根据实际情况进行修改),使用JdbcTemplate类来执行SQL查询语句。
以上就是Spring如何连接MySQL数据库的相关介绍和示例,希望对大家有所帮助。无论是使用XML配置还是注解配置,关键在于要引入MySQL连接驱动和配置MySQL数据源。接下来可以根据实际情况进行修改和扩展,以适应更复杂的业务场景。