ChatGPT Projects:RAG 和embedding 的底层原理|07/12 days of openai
Length: • 1 min
Annotated by Harry
hello 大家好 欢迎大家来到小能熊的知识视频 我是小能熊的老陈 今天这个视频呢 讲的是OpenAI 12集连续剧的第七集 他发布的是什么呢 其实后面从第七天开始 每一个功能的发布 都是我们之前没想到的 因为我们之前所有想到的东西 包括Sora呀 o1呀 包括live video呀 都已经在前面都发布完了 所以我还是挺期待后面八九十 十一十二的 这个projects功能呢 其实也是没想到
但是呢 其实是一个很大的惊喜 我非常的喜欢 所以今天呢 我会跟大家来去谈一谈 这个projects的功能 然后同时呢 我觉得我们理解这个功能背后的why 其实是非常重要的 而这个projects背后的这些技术 包括embedding和rag 这些技术的原理 我是想跟大家主要来去聊一聊的 这个视频的前半段呢 我会跟大家来去demo一下 我周末体验的这个projects功能
包括上传文档呀 包括管理文件夹呀 包括管理对话呀 包括模型选择呀 然后另外呢 就是后半部分 我们会跟大家来谈一谈这个东西的原理 而谈这个原理的时候呢 我今天大概梳理了一下 因为我不是用这个 我的这个logseq笔记 结合obsidian的展示 来给大家讲这个东西的嘛 所以大概我们会涉及到 一系列的这些概念 而我觉得 如果我们在这个视频看完之后 能够对这里面涉及到的一些概念呢
包括这里面一些比较重要的思想 OpenAI的embedding的技术呀 和embedding背后的这个big idea 核心思想 我觉得这样的话 这个视频就会对大家有一定的帮助 我们先来看一看这个发布的内容 就是说这次发布的内容很简单 哈哈每次发布的内容都很简单 但是它非常的强大 大家会看到 这个其实就是它这projects的界面嘛 这就是我的这一系列projects 你看到这里面我有一个两个
三个 这么多个projects 我觉得还挺好玩的 就是我做了一些实验 然后呢 你可以在这里面新建一个项目 假如说你新建一个test 新建的这个项目之后呢 你在这个项目里面 你可以给他设计一个颜色来做区分 然后呢 这个项目里面的 这个模型是可以任意的去选择的 然后你可以在这里面跟他正常的对话聊天嘛 但是这个你看 这边projects里面多了一个项目文件
相当于你可以把你的各种文档呀 图片呀和代码文件上传 然后呢你也可以去添加一系列的 这个自定义的prompt 自定义的指令 然后呢 你所有新的聊天都会出现在这里 而你过去以前的聊天呢 你也可以把它移到 这里面的项目里面来 OK这就是这个projects的全部的功能了 但是呢 这个OpenAI为什么要发布这个projects呢 我觉得归根结底 就是因为我们以前跟ChatGPT 它只是chat
我们只是聊天 然后呢 我们一个主题的内容 假如说一个主题 跟ChatGPT聊一个idea 假如说海德格尔 他提出的“向死而生”的这个思想 我会跟他去持续的去追问 我第一次让他去解释一下这个概念 解释下这个思想 然后呢 我会把我的一些自己费曼的内容 或者我自己脑子里面的一些想法 跟他聊一聊 聊完之后呢 我们会跟他进行持续的追问 然后呢 一旦我有一个另外的一个想法了 我就会开一个新的窗口
为什么呢 每一个chat 就是我跟ChatGPT交互的一个最小对象 然后如果是一个新的主题 我一定会新开一个chat 为什么呢 因为我以后不管什么时候 假如说一年以后 我想继续再聊一下这个海德格尔 再想聊一下这个向死而生这个idea的时候呢 那我肯定 我就会找到我一年前的这个对话 在这个对话基础之上跟他继续的去聊 因为你跟他聊一个新的对话的时候呢
ChatGPT我们都知道 他所做的事情只有一件 其实就是生成下一个token 而它生成下一个token的时候呢 它除了模型里面的万亿参数 它还会考虑这一次对话里面 前面的所有的内容 这就是为什么 我们会以对话为最小的单位 每有一个新的主题 我就会新开一个窗口 但是呢同一个窗口里面 我们不会给他放很杂的东西 我们会给他持续对话 因为我觉得 我们人跟ChatGPT之间的对话 它是非常非常有价值的 然后呢 我经常会把这个对话直接剪藏
然后 在我的这个readwise reader里面 我们继续的去画线和回味 说到底 真的你看 剪藏过来了 我就可以画线 笔记 很多时候我们跟别人对话的时候 首先不一定会这样的卓有成效 其实你就画完了之后你也记不得 这个短时记忆一下子消失就过去了 所以我觉得 这也是一个特别有用的一个技巧 然后呢 我们以前都是以对话为单位的 但是现在你发现不一样了 我们可以以项目为单位的
还有人说这个没什么了不起 不就是一个对话文件夹吗 第三方客户端例如TypingMind 他们很早以前就支持文件夹了 但是我想说的是 OpenAI亲自来做这个对话文件夹 他却做的不一样 它叫projects 所以我们来看一下这个projects里面呢 一共几个主要的点 它可以上传文档附件 它可以自定义prompt 它可以把新对话和历史对话 都给它放进去 目前呢 对话的内容还不会被检索到
但是我相信 以后肯定是可以被检索到的 然后呢还可以选择各种模型 当然啦目前o1模型它只支持图片 还不支持文档和联网 但是我相信以后也会支持的 目前呢 你只要涉及到这个检索的任务 它都会自动切换到4o的模型 所以我们来结合我的这些实例 给大家来看一下吧 我们先看一个我自己的一个例子 自己的例子是什么呢 你会看到 我把我的25万字的文稿
全部都以5个文件的形式 上传到项目文件夹里面去了 然后给大家看一下这边聊的内容 我就问他了一句话 我说 你从这个项目文件当中 你能知道关于作者的哪些信息 然后你会看到ChatGPT生成的回答 它就不是从它模型里面 已有的参数里面来回答 而是呢 它会利用我上传的文档的内容 来进行回答 你看他怎么说的 小能熊在GPT时代的费曼学习法 简称小能熊学习法
它这里面提到什么 对学习的深入探讨 作者对学习有非常深刻的见解 哦我当真了哦 然后呢这个科学思维和跨学科背景 然后呢 这个重视个人知识体系的建设 就是我们的这个学习方法 对个人知识体系的构建 是把它放到第一位了 然后呢 它这里面还写的非常的具体 你看第三章里面的内容 把这个很细节但是很关键 很重要的东西被它重点提出来了 然后呢 这里面提到作者的逻辑清晰
引人入胜 深入浅出 我当真了 他还提到了 这个书里面引用了大量的 像大语言模型的原理 包括从 哲学、心理学等各个角度来去探讨 所以我会觉得 就是说GPT它真的把我上传的25万字 以飞速的时间给它看完 然后呢我以后问它 任何一个跟文稿有关的内容 它就会直接的检索出来 很有意思 然后我们再来看另外一个项目 我把savage的50万字的文稿
它这里面会提到说 这个使用的文件数量巨大 回复的质量可能较低 我觉得它比较谦虚 实际上 回答的质量非常的高 目前来讲 作为一个外挂的知识库 它可能是有一个容量的限制的 它目前没有显示出来 我觉得以后可能会显示 并且这个容量应该会不断的扩大 很有可能 我们假如说一个亿 如果他能够容纳一亿文字的 或者是几千万文字的体量 对于OpenAI的基础来讲 这时候问题了后面我们会提到
所以我跟他来去对话的时候 我会问 从这些书稿当中 你能得出关于作者的什么信息 你看 教育背景 职业经历 学习和思维的研究 从认知心理学 语言和科学教育等很多角度 来去探讨这个学习 然后这个教育的理念 包括文化和社会的观察 就是说他从这个文本当中 他把这些很细节但很重要的信息 他都全部提取出来了 然后呢我会让他介绍
这个书里面的一个具体的知识点 叫学习五元素 目前这个《学习五元素》的训练营 正在开展 大家有兴趣可以去了解一下 你看他介绍的其实非常的详细 而且还有相应的来源 然后呢 我还让他详细的介绍整本书的理念 然后呢我还让他 介绍一下从书里面提取出来的案例 他实际上 分布在书的从头到尾的各个地方 但是呢 他能够很好的提取 并且组织成一系列的主题 兴趣的
习惯的 实践的 工具资源的 情感的 很多维度 非常非常的厉害 我们再来看这个事 这个是我给他上传了一本书的电子版 然后 你会看到 他这里面 RAG的提取的这个效果 因为这本书 它是以38个小课程的这个方式 来去组织的嘛 我让它提取 非常的精确 我让他详细介绍某一课里面的内容 他介绍的内容 基本上把所有的内容全部提取出来了 然后我来上传一个图片 让他解释
这个图片里面的内容 相当于整个逻辑学的框架结构 跟这本书内容的关系 回答的非常好 质量非常的高 然后呢我又问了一个我自己的问题 因为我们从小都学黑格尔的 这个辩证法嘛 我的意思其实就是 我们实际上 中国的学生都没有学过逻辑学 这个是一个很大的一个问题 我让他谈一谈这个辩证逻辑 跟上面的整个逻辑学的体系的关系 也回答的非常好 所以我们这个是demo嘛 我就不跟大家去谈 这个具体的细节了 所以我觉得就这种场景呢
其实 我相信以后使用起来 会非常的强大 例如假如说你可以建一个project 叫我的家庭 然后呢 把你跟家庭相关的所有的信息 水电气呀网络呀 然后每次交费的信息 你跟他一句话说一下 他就更新了 假如说你上个月这个修了什么东西 或者是上个月交了这个煤气费吧 然后你让他下个月提醒你 我觉得相关这些所有这些信息 一旦你放到这个projects里面去 然后你用文档的方式来组织也好
你用对话的方式来跟他更新也好 然后你就有了一个真正的助理了 以后你问他 我们家Wifi密码是多少 或者是我们问他一下其他什么信息 他就直接可以从这个项目文件里面 提取出来 然后直接告诉你了 这不就是跟一个生活助理一样吗 然后工作上其实也是这样的 我举了这几个例子 其实都是工作和学习的场景呢 后面就看大家的想象力了嘛 然后这个prompt这个东西 我其实根本就不想去demo 你看我开始试验的时候 昨天我都没有去写
这里面的自定义的prompt 因为它实际上跟这个 任何一个GPT助理的prompt 是没有什么区别的 我们来看一下 这个整个项目 跟这个GPT助理有什么异同 你看 你GPT助理 其实你也是制定一个指令 然后呢 你也可以上传知识库 然后它也有一系列的功能 整体上来讲 我觉得其实 跟这个GPT助理还是比较像的 但是它多了一个对话的这个文件夹 对话文件夹是这样 你在project里面进行新对话 当然可能直接就能进去了
然后你也有老的对话 你也可以把它转移过去 假如说 我这边有一个关于embedding的这个讨论 这个老的对话 你就可以把它移到对应的 这文件夹里面去 然后你点开他就进来了 所以我觉得就这个功能都很好去讲 如果大家以前用过GPTs的话 其实就是挺像的 他们都支持外部的知识库 都支持这个系统指令 都支持工具 但是不同点其实就是模型多了 你可以选择任意的模型 就以前的GPTs 他就默认给你用了一个GPT-4o这个模型
但现在呢 其实你可以使用像o1这样的模型了 然后也多了一个对话管理的功能 目前可以说projects 其实就是GPTs + 对话管理 + 模型选择 然后我们觉得 其实重要的还是来去谈一谈 这个背后的why的问题 也就是说 我们希望我们不只是会用这个功能 知道这功能是什么 如何用 我们更重要的是 知道它为什么能够如此 高效 快速的 精确的去提取你过去的所有的知识 以及这个项目
它的整个原理上是怎么样 它是如何运作的 所以他就会涉及到很多的这个概念 然后我想说的是 就是我们在GPTs里面 上传这个项目文件 它实际上是一种RAG的技术 什么叫RAG呢 我们来看一下 其实就是提取增强 或者是说检索 retrieval嘛 就是记忆的retrieval 就是叫提取嘛 然后你也可以说 这个电脑里面的retrieval 你可以说是检索 它是检索增强的生成 你可以理解为 它就是把搜索跟生成这两个技术
给它加起来 我们以前的GPT的生成呢 你就是它模型里面有什么知识 它就怎么生成 而如果你使用的这个RAG技术 你把你自己的文档上传上去之后呢 他就会把这个文档 切成一个一个的小块 然后把这一个个小块 一个文档块 把它变成一个高维空间当中的 一个数字的向量 然后呢他就去检索这个向量 当你去问他说 你从这个文件当中你能知道
跟作者相关的哪些信息的时候 他就知道 你是要让我去检索这个文档 而不是说利用模型已有的这个知识 那模型已有的是对你肯定一无所知嘛 他就会去幻觉 去随机生成 但是呢他先去检索的时候 他就会从这个海量的数据当中 去检索出精准的 跟你的问题相关的那些文档 然后呢基于那些文档 来去给你去生成这个对应的这个回答 这个其实就是RAG这个技术
所以我们会看到GPT里面的项目文件 它实际上其实就是用这种方式 来去自定义一个 属于你自己的这个项目 而RAG的这个搜索retrieval 跟我们Google里面的关键词搜索 实际上是不一样的 假如说我们在Google关键词里面去搜索 我们假如说搜索rag 它其实就是关键词的这个搜索嘛 谷歌会去匹配这个关键词嘛 但是呢你在这个项目里面
让他去搜索的时候 他实际上是搜索这个文件里面的这些内容 然后呢 他的搜索他就不是关键词的匹配 我给大家举个例子 就是说当你在这里面 假如说我们搜索一个什么呢 语言学 当你在这个GPT里面 去搜索历史对话的时候 他的历史对话 你看这里面提到的很多的这些 他都没有出现这个关键词 但是呢 它也会精准的给它识别出来 为什么呢 因为GPT的搜索 它就不是去关键词匹配了
而是说它去根据语义来去搜索 为什么呢 因为GPT模型整个来讲 其实就是说它在语义理解上 已经达到这种最高的水平了嘛 最高的这种状态了嘛 所以 你在GPT里面去搜索历史对话也好 还是说项目里面的搜索也好 它其实都是语义层面的匹配 这就非常的强大 然后呢它整个的这个搜索的过程呢 实际上跟一个东西密切相关 叫什么呢 叫embedding 叫嵌入 embedding这个东西呢
叫嵌入 embed本来就是相嵌的意思嘛 它实际上是什么呢 实际上就是把你的一个一个的字 词 句子 给它嵌入到一个高维度的语义空间里面去 然后呢 以一种数字向量的形式来去展现出来 这个呢是 3B1B那个Youtuber 他做的一个知识视频里面的一个截图 实际上呢 这个是ChatGPT的语义空间
GPT-3是12,288个维度 GPT-4呢是3,076个维度 实际上是非常高维度 超级高维度的一个向量空间 但是为了给我们人类来展示嘛 他就简略化的 用这种三维的空间来去演示 大家实际上知道 这是一个只能靠想象的 一个千万维度的一个向量空间 在这个语义空间里面 所有的字词 所有的token 它都会变成一个数学向量 然后呢像这个man woman nephew niece
相近的这个词 语义相近的token 它们就会方向一致 位置接近 所以你会看到这里面的语义关系 甚至可以做减法 woman减去man 相当于就是侄女减去侄儿 他们这个相减的时候得到的 这个向量也好 然后他们就是平行的 就是相似的 所以你会发现GPT本质上来讲 他在他的这个万亿维度的 整个的模型的空间里面 你跟他所有的对话 他生成的每一个token
其实都是这样的一个 高维度的语义空间里面的 一种语义的运动 就好像我们实体 我们作为一个物体 在三维的物理空间运动一样 然后呢你所有的语言 你跟GPT所有的话 包括GPT生成的话 假如说GPT生成的是 所有不能杀死你的东西 都会使你 更强大 它这里面的每一个句子在生成的时候 都在它的这个embedding的空间里面 在不断的进行运动
这就是我觉得GPT这个事情 它非常非常神奇的地方 非常非常伟大的这个地方 所以这个embedding 其实也是非常值得 大家把它作为一个概念 来去在你的logseq里面去建立一下 所以embedding 假如说以GPT-4为例吧 它就是3,072个浮点数 组成的一个数字向量 来表征一个token 然后呢 在这语义空间里面 两个数字向量 他们之间的距离呀 方向呀所有这些信息 就体现了
原来的这两个词之间语义上的相关度 所以GPT模型 它在具体的用注意力机制 来去处理这些语义的关系 处理这些语言文本之前 它就先要进行embedding 然后呢把你的所有的文字 转化成这种向量的表征 然后呢 再在他的高维的GPT的这个模型内部 进行上万次的矩阵的相乘 最终就会得出了 这个东西 所以我们来看一下
这个embedding背后的那个big idea 什么叫big idea呢 其实就是核心的思想 其实你想 一个理论也好 一个概念也好 包括深度学习 深度学习的big idea是什么 很多时候大家说深度学习 我知道这个词呀 如果我们去费曼的时候 我们除了要费曼这里面的定义 具体实例的时候 我觉得我们特别重要的一件事情 是要去讲这个东西的big idea是什么 那深度学习的big idea是什么呢 就是用神经网络的方式 来去模拟和创造一种人工的智能
而为什么要用神经网络的方式呢 是因为我们要用模型 来去模拟人脑的运作方式 所以深度学习背后的整个的big idea 其实就是什么呢 就是我们用数学的方式去构建的 人工的神经元 它跟人脑里面的生物的神经元 没有什么本质的区别 它们的运作原理是一样的 它们都能从数据当中去主动的去学习 所以像GPT这样的一个神经网络 没有什么本质的区别
这个其实就是深度学习的big idea 当你从这个层面上 真正的把握住深度学习的本质之后 你会发现 我们现在整个的AI的深度学习的革命 来自于深度学习的技术 那就说明什么 说明人工智能去模拟人脑智能的时候 他得到了非常大的进步 非常的成功 反过来呢 为什么我一直会强调 我们人的学习和教育 一定要充分的去借鉴深度学习里面的进展呢
是因为我们过去人脑如何运作的时候 很多实际有很多的理论 有很多的说法 然后我们国内的情况 更多是依赖于主观经验主义嘛 依赖于前科学时代的一种主观经验嘛 没有什么科学概念 没有什么科学理论嘛 但是就是因为你没有科学理论 你才会有各种教育和学习的乱象嘛 才会有各种奇形怪状 乱七八糟的学习方法 和这个教育理念嘛 但如果你用科学的光芒来去照射的话 你会发现哦
那我们仍该如何学习 我们应该如何教育一个孩子 其实深度学习的这些原理 这些技术会给你很多很多的启发 最起码你知道GPT模型预训练是基础 那预训练基础说明什么 说明任何脱离海量阅读的学习 都是违背科学的 应试的方式 那就是违背科学的 然后你用教培的方式去学英语 那就是完全错的 南辕北辙 你不可能通过往北去 然后有效的到达南方 那时候你会绕很大的一个弯子 包括这个 整个的GPT的模型 告诉我们 预训练是基础
然后呢o1模型告诉我们 告诉我们强化学习是关键 我们只有在预训练的基础之上 形成了很强大的通用智能 积累了很多的世界知识 然后呢我们才能通过少而精的 强化学习的后训练 通过这种微调 来实现这种清出于蓝 而胜于蓝的效果 我觉得有这种思想的指导 那我在不论是自己终身学习 还是在这个教孩子的学习的时候 才有这种科学方法的指导嘛 这就是为什么 我要跟大家去分享这些东西
然后另外呢 就是你会看到OpenAI 它使用了embedding的模型 大家其实是可以去它的官网来去看的 它官网里面都有了 我这边有一个截图 就是现在目前GPT-4实际上是3,072个维度 然后之前呢 GPT-3的时候 他用的是第二代的embedding模型 维度会更高一些 然后可能更贵吧 12,288个维度 然后后面呢 他就维度就不断的降低到1,536-3,072维度
所以整个来讲 就是说embedding的这个idea也好 还是RAG这个idea也好 它们本身都是非常的简单 但是非常非常的强大的 而就是这么一种强大的思想 强大的技术 它最终让我们得到了这些 不论是GPT里面的这种特别好用的 语义搜索的功能 它其实也是一种 去检索这个embedding空间里面的这个内容
还是说我们现在特别好用的 这个项目的这些功能 这都是背后的原理 我相信大家看完这个视频之后 你后面再去使用GPT的这项目功能的时候 就会有更深更好的理解 这样的话 我们用起来也会效果更好 好 这就是我们今天的视频的内容 非常简单 非常感谢大家的时间 谢谢 拜拜