草莓团队创造了o1 - Building OpenAI o1 (Extended Cut) 观后笔记

news2024/9/22 14:53:14

美妙的事物往往需要世界去创造,商业希望大模型越来越快给出回答。或许花费几个月几年的时间持续思考,大模型能够解决更复杂的问题,而不只是回答42

刚发现凌晨OpenAI发布了一个22多分钟的采访,将构建出O1的整个团队拉到一个小屋子,讲述了关于新模型的故事。

1 O1 一个推理模型

它是一系列新模型的其中之一,和4O的体验会不一样

包含两个模型:o1-preview + o1 - mini,都是基于O1框架构建的

1.1 什么是推理

对于简单的问题,我们需要快速的得到答案:例如湖南省会城市等。简而言之就是一手的知识,可以直接得到答案的那些,或者说可以死记硬背的那些知识。

但是对于复杂的问题:解密、写商业计划或者小说等,回答之前稍微思考一下会更好。

总之,推理就是用 用时间换取更好的输出

1.2 研究多久了

其实是在Alpha Go启发了他们,尤其是深度强化学习的表现,想着如何将RL-强化学习和GPT两种范式结合起来。具体的开始时间点很难确定,因为前期做了不少探索和准备工作,项目的确定到研发花费了挺长的时间。

2 AHA!时刻

我记得在一本书里面看到过,就是一个惊叹、困惑或者觉悟的时刻,啊哈?

1. 第一次训练集成了COT的模型时

2. 让模型自身用强化学习生成思考步骤,比让人类写出思考过程再训练,表现更好

3. 看到o1解答数学题的过程中,发现了很多有趣的点子

        读它的思考过程就像一种灵性的体验

4. 因为设置了有限的思考时间和容量,快到这个节点时,它会想:嗷,时间快到了,我得先给出个答案了

5. 它的思考过程和“我"很相似

3 遇到的挑战

训练大模型本身就是很难得,会有上千个出错的点,实际上也会冒出上百个错误

让大模型按照某个达到目标得路径去思考,是很煎熬得事情(仅仅是使用4o,想让它按照指定格式输出,也得不断调整prompt适应不同的case)

就好像发射火箭登录月球,一旦角度错了,过程就很煎熬。因为COT专注的就是逻辑正确性,想要让它学会和掌握逻辑是有点难的,毕竟十分的抽象。(说的是掌握逻辑推理本身,而不是用逻辑推理分析问题)

它通常表现得很好,但遇到一些敏感问题时,还会有些不可靠,所以还需要评估更多的测试(后面会提到这个强化学习除了让它会推理,还希望能够强制遵守预定义原则)

对于一些有趣问题的回复

        当在twitter看到有人说gpt不能做啥,就把问题和答案复制过来去训练它。

        把答案hardcode在模型里面

4. O1 可以用来做什么

4.1 写代码

        关注于需求和问题的定义-关注于重点和高层的定义使用TDD方式开发,自己就主要编写测试代码,作为质量把关。我其实在思考有没有可能将高层的定义可视化,但是没时间去具体做,github仓库倒是开了,就是根据需求设计自动生成代码,而不是基于UI,UI在我看来只是一部分。

这里就有个点要注意哈!现在很多工具都支持单元测试,模型也有这个能力,但单元测试如果自己不仔细审核是会有问题的。生成的单元测试如果根据有问题的来,单元测试也是错的

4.2 Debug

        将错误信息丢给o1,它的思考过程会给出很多的有用的信息,应该是相对于4o更多的信息

4.3 头脑风暴和写文章

        因为会反复思考,所以过程中会不断保持风格等的一致性和关联性,内容中也会有相互引用等待,出现错误也能自动修正

        因为可以思考,所以对于头脑风暴这种,它会先自己筛选一遍,选出比较好的,而不是一股脑的输出了。

4.4 处理非结构化思考

        这些目前的4o等也差不多可以做到,但它能够进一步的分析。我在想,或许我需要开一篇文介绍下知识的层级,也就是直接获取的知识以及需要推理才能获得的基于上下文的知识。

4.5 目前不擅长的事情

        目前它的知识库并不多,尤其是世界的知识,毕竟专注点是逻辑推理。但在scaling的时候,会不断的增加这些内容的。

5 还没意识到的特别重要的事情

5.1 大模型的完备生态系统

        运行超大规模的模型、超大规模的数据集和大模型的训练.,当然目前是有相关的生态的,例如各种云计算厂商,尤其微软的azure是可以运行gpt4的,但是它们的表现,可能并没达到期待。而我们更不用说了,因为没有类似的模型,也就没有需求,虽然生物医疗方面的数据也很大,但可能到了那个位置才能看到问题。

5.2 跨项目的一致性模式

        这个可能是产品方面的,因为模型会不断的迭代,旧的模型会取代新的模型,但如果能够留下点东西肯定会更好吧。或许也是为了找到一种创新的模式

5.3 团队氛围

        互相陪着吃饭、闲逛、写代码、测试等等,有时候我也挺期待所谓的peercode的。

6. 草莓团队工作怎么样

       成员之间都比较近,可以及时的问问题、一起测试等。不要觉得问问题很蠢,立刻问就对了每个项目都会有很大收获,从Dota2Bot获得了工程化经验,从GPT4学到了需要不停的做研究,可能是最大的研究性团队了吧?我猜说的是紧密联系的那种,不像小组的模式。

        大家都有自己的热情和激情,知道什么时候该学习、什么时候该写代码、什么时候该熬夜了

       每个人都贡献了很多想法,都是不停的迭代成现在这样。当一个人,说相信这个点子不错,感兴趣的就会一起去尝试实现它,哪怕有些人自己定了不少deadline,也会尽量去尝试更多 

        大致是:从一个足够吸引人的起始点,大家努力做出个可用的版本,然后不断共享自己的想法来完善它,就像滚雪球一样,最后会发现这就是我们想做的。 这个和xspace当初定将汽车送上太空的目标差不多,工程师都是理想主义,如果定的目标是卖多少单,实现多少KPI肯定是很蒙的,不如一个看似荒唐或浪漫的同一目标。

7 为什么会有o1 mini

        o1 mini是为了更快的构建出一个o1实现的流水线,以较低的成本和较快的速度验证。

8 为什么要构建o1

        构建一个有能推理的模型很酷。

        美好事物出现需要时间,我们的大模型有着回答越来越快的趋势。目前只给了它几分钟的时间思考,未来可能让它能够花费数月数年的时间去思考,从而创造出更好的事物。

        世界需要个有用的东西,现实世界是需要逻辑推理遵守规则的。为了解锁一些以前模型未具备的能力。尤其是想要结果更可靠,自身的推理是不可或缺的,不然都没法发现错误或者更好的可能性

 9 模型的人格

        观察了模型的元数据,发现每次训练的模型,都会有自己的小癖好,有着不同的倾向、擅长和不擅长的,每个模型都像有人格一样

看这些东西,有时候感觉世界上有一些自身的碎片,我也在尝试用多个模型的组合,实现模拟思维,只是目前能够使用的模型表现欠佳,不得不吐槽下部分模型了,复杂点的prompt理解能力很差需要反复调反复调

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于单片机红外感应智能卫生间系统仿真

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…

基于微信小程序的智慧物业管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

设置VsCode搜索时排除文件,文件列表中隐藏文件

按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法,配置好VsCode后,打开一个C/C工程,发现左侧的面板会显示编译时生成的中间文件(比如.d和.o文件)。我们可以通过设置隐藏掉一些我们不需要打开的文件以简洁面板…

Class path contains multiple SLF4J bindings.

最近由于要改kafka成datahub&#xff0c;于是在pom文件上引入了 <dependency><groupId>com.aliyun.datahub</groupId><artifactId>aliyun-sdk-datahub</artifactId><version>2.25.1</version> </dependency> 然后让我去测试…

C语言中if else组合

一 bool变量与“零值”进行比较 bool 变量与“零值”进行比较的 if 语句怎么写&#xff1f; bool bTestFlag FALSE;//想想为什么一般初始化为 FALSE 比较好&#xff1f; A), if(bTestFlag 0); if(bTestFlag 1); B), if(bTestFlag TRUE); if(bTestFlag FLASE); C), if(b…

WPF DataGrid 动态修改某一个单元格的样式

WPF DataGrid 动态修改某一个单元格的样式 <DataGrid Name"main_datagrid_display" Width"1267" Height"193" Grid.Column"1"ItemsSource"{Binding DataGridModels}"><DataGrid.Columns><!--ElementStyle 设…

libreoffice word转pdf

一、准备一个word文件 运行&#xff1a; cd /root libreoffice --headless --convert-to pdf --outdir /root/output doc1.docx 发现中文乱码&#xff1a; 此时我们需要给linux 上添加中文字体&#xff1a; centos7 添加中文字体 再次运行正常&#xff1a; libreoffice --h…

61. 旋转链表【 力扣(LeetCode) 】

零、原题链接 61. 旋转链表 一、题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 二、测试用例 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入…

828华为云征文 | 在Huawei Cloud EulerOS系统中安装Docker的详细步骤与常见问题解决

前言 Docker是一种轻量级的容器技术&#xff0c;广泛用于应用程序的开发、部署和运维。在华为云的欧拉&#xff08;Huawei Cloud EulerOS&#xff09;系统上安装和运行Docker&#xff0c;虽然与CentOS有相似之处&#xff0c;但在具体实现过程中&#xff0c;可能会遇到一些系统…

【ArcGIS微课1000例】0123:数据库中要素类批量转为shapefile

除了ArcGIS之外的其他GIS平台,想要打开ArcGIS数据库,可能无法直接打开,为了便于使用shp,建议直接将数据库中要素类批量转为shapefile。 文章目录 一、连接至数据库二、要素批量转shp一、连接至数据库 打开ArcMap,或者打开ArcCatalog,找到数据库连接,如下图: 数据库为个…

Maven的详细解读和配置

目录 一、Maven 1.1 引言 1.2 介绍 1.3 下载安装 1.3.1 解压 1.3.2 配置环境变量 1.3.3 测试 1.4 仓库[了解] 1.5 Maven配置 1.5.1 修改仓库位置 1.5.2 设置镜像 二、IDEA - MAVEN 2.1 idea关联maven 2.2 为新项目设置 2.2 创建java项目[重点] 2.3 java项目结构…

连续数组问题

目录 一题目&#xff1a; 二思路&#xff1a; 三代码&#xff1a; 一题目&#xff1a; leetcode链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二思路&#xff1a; 思路&#xff1a;前缀和&#xff08;第二种&#xff09;化0为-1hash&#xff1a; 这样可以把…

C++入门12——详解多态1

目录 1.多态的概念 2.多态的定义与实现 2.1多态构成的条件 2.2虚函数 2.3虚函数的重写 虚函数重写的两个例外&#xff1a; 1.协变(基类与派生类虚函数返回值类型不同) 2.析构函数的重写(基类与派生类析构函数的名字不同) 2.4 C11 override 和 final 2.5 重载、覆盖(…

机器学习周报(9.16-9.22)-Pytorch学习(四)

文章目录 摘要Abstract1 完整模型训练套路及模型验证套路1.1 模型及训练代码1.2 利用GPU训练模型1.3 完整的模型验证&#xff08;测试&#xff09;套路 2 CNN 实现mnist手写数字识别2.1 网络模型搭建2.2 测试训练好的模型 总结 摘要 通过学习CNN模型的训练及验证套路&#xff…

【服务器入门】Linux系统基础知识

【服务器入门】Linux系统基础知识 远程登录与文件传输基础命令与文本编辑vi/vim使用shell脚本基本命令1、目录操作2、文件创建与删改3、文件连接与查看 参考 目前超算使用的系统以Linux系统为主&#xff0c;肯定需要了解一些相关知识。本博客就以本人运行WRF模型所需&#xff0…

LeetCode[中等] 155. 最小栈

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…

Docker配置代理解决pull超时问题

操作系统: CentOS Linux 8 Docker版本: 26.1.3 前置&#xff1a;你需拥有&#x1f431; 1. 配置 proxy.conf 1.1 创建配置文件目录 创建 docker.service.d&#xff0c;进入到 docker.service.d 中打开 proxy.conf (没有文件打开会自动创建)。 注意&#xff1a;每个人的路径可…

【数据结构-二维差分】力扣2536. 子矩阵元素加 1

给你一个正整数 n &#xff0c;表示最初有一个 n x n 、下标从 0 开始的整数矩阵 mat &#xff0c;矩阵中填满了 0 。 另给你一个二维整数数组 query 。针对每个查询 query[i] [row1i, col1i, row2i, col2i] &#xff0c;请你执行下述操作&#xff1a; 找出 左上角 为 (row1…

【漏洞复现】Nacos Derby SQL注入漏洞

Nacos Derby SQL注入漏洞 Nacos Derby SQL注入漏洞&#xff08;CNVD-2020-67618&#xff09;是一个重要的安全问题&#xff0c;它涉及到Nacos中使用的Derby数据库存在的SQL注入风险。SQL注入是一种攻击手段&#xff0c;攻击者通过在应用程序的输入字段中插入恶意的SQL代码&…

Day6:反转链表

题目&#xff1a;给你单链表的头节点head&#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 输入&#xff1a;head[1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] public ListNode reverseList() {if (head null) {return head;}ListNode cur head.next;head.next null…