Loading video...

Video Failed to Load

Go Home

《用ChatGPT API构建系统》课程简介 吴恩达:欢迎参加关于使用ChatGPT API构建系统的课程。 之前,Isa和我介绍了如何提示(Prompt)ChatGPT的课程。 但是一个系统需要的远不止一个提示(Prompt)或一个对LLM(大型语言模型)的调用。 在这个短期课程中,我们想和您分享使用LLM构建复杂应用程序的最佳实践。 Isa:我们将以构建一个端到端的客户服务辅助系统为例,该系统将多个调用链接到语言模型, 根据前一个调用的输出使用不同的指令,有时甚至从外部来源查找信息。 例如,对于用户输入的“告诉我有哪些电视出售”,我们将使用以下步骤来处理。 首先,您可以评估输入以确保其不包含任何有问题的内容,例如仇恨言论。 接下来,系统将处理输入。它将确定这是哪种类型的查询。 这是一个投诉还是产品信息请求等? 一旦确定这是一个产品查询,它将检索有关电视的相关信息,并使用语言模型编写一个有帮助的回答。 最后,你需要检查输出内容,确保没有问题,比如不准确或不适当的答案。 吴恩达:在这门课程中,你会发现一个主题,那就是一个应用程序通常需要多个对最终用户不可见的内部步骤。 你通常希望按顺序处理用户输入,经过多个步骤才能得到最终显示给用户的输出。 当你使用LLM构建复杂系统时,从长远来看,你通常还希望不断改进系统。 因此,我还将与您分享开发基于LLM的应用程序的过程感受以及评估和改进系统的最佳实践。 我们感谢许多为这门短期课程做出贡献的人。 在OpenAI方面,我们感谢Andrew Kondrich、Joe Palermo、Boris Power和Ted Sanders。 来自 Ladwig、Eddy Shyu和Tommy Nelson。 Isa:通过这门短期课程,我们希望你能够对自己建立一个复杂的多步应用程序的能力充满信心, 并且能够维护和不断改进它。 让我们开始吧。

35,535 views • 3 years ago •via X (Twitter)

11 Comments

宝玉's profile picture
宝玉3 years ago

新的课程来啦!

宝玉's profile picture
宝玉3 years ago

吴恩达和OpenAI合作的新的“使用ChatGPT API构建系统”的课程的第一课《大语言模型、ChatGPT API格式和Token介绍》(中英文字幕) 课程地址: 视频:

宝玉's profile picture
宝玉3 years ago

吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第二课《Evaluate Inputs: Classification|输入评估: 分类》(中英文字幕) 课程地址:

宝玉's profile picture
宝玉3 years ago

吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第三课《Evaluate Inputs: Moderation | 输入评估: 审查》(中英文字幕) 课程地址:

宝玉's profile picture
宝玉3 years ago

使用ChatGPT API构建系统——输入处理: 思考链推理(中英文字幕) 吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第四课《Process Inputs: Chain of Thought Reasoning | 输入处理: 思考链推理》 课程地址: #Building_Systems_with_the_ChatGPT_API

宝玉's profile picture
宝玉3 years ago

使用ChatGPT API构建系统——输入处理: 链式提示(中英文字幕) 吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第五课《Process Inputs: Chaining Prompts | 输入处理: 链式提示》 课程地址: YouTube高清版: #Building_Systems_with_the_ChatGPT_API

宝玉's profile picture
宝玉3 years ago

使用ChatGPT API构建系统6——检查输出(中英文字幕) 吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第六课《Check outputs | 检查输出》 课程地址: YouTube高清版: #Building_Systems_with_the_ChatGPT_API

宝玉's profile picture
宝玉3 years ago

使用ChatGPT API构建系统7——构建一个端到端的系统(中英文字幕) 吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第七课《Build an End-to-End System | 构建一个端到端的系统》 课程地址: YouTube高清版: #Building_Systems_with_the_ChatGPT_API

宝玉's profile picture
宝玉3 years ago

使用ChatGPT API构建系统8——评估(上)(中英文字幕) 吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第八课《Evaluation part I | 评估(上)》 课程地址: YouTube高清地址: 合集:

宝玉's profile picture
宝玉3 years ago

使用ChatGPT API构建系统9——评估(下)(中英文字幕) 吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第九课《Evaluation part II | 评估(下)》 课程地址: YouTube高清地址: 合集:

宝玉's profile picture
宝玉3 years ago

使用ChatGPT API构建系统10——总结(中英文字幕) 吴恩达和OpenAI合作的新的“Building Systems with the ChatGPT API | 使用ChatGPT API构建系统”的课程的第十课《Summary | 总结》 课程地址: YouTube高清地址: 合集:

Related Videos

最近陶哲轩在 2024 年第 65 届国际数学奥林匹克上,陶哲轩做了一次 AI 和数学的演讲,非常精彩,从数学使用计算计算机的历史开始讲起,一直讲到大语言模型,干货相当多,尤其适合对数学有兴趣的同学。 (对数学没那么感兴趣的同学只想看 AI 部分的建议直接跳到 41 分的位置开始观看) 先摘录几个冷知识: 1. 我们使用机器做数学计算已经有数千年,最早的机器辅助计算可能是罗马人,然后是中国的算盘 2. 二战时就有人肉“计算机”,计算弹道和其他任务,多位女孩子,因为男士们在打仗,所以那时候的计算基本单位不是GPU,而是kilogirl-hour——“千名女孩工作一小时的计算量” 3. 现在,数学家们使用一种现代化的证明辅助编程语言,叫做 Lean。在 Lean 中有一个核心的数学库,通过众包的方式开发的,本科数学课程中看到的内容,比如微积分基础、群论基础或者拓扑学等等,这些都已经被形式化了,所以你不用从公理开始。 4. 现在数学领域有一种团队协作证明复杂数学定理的工作流程,那就是先编写一个称为“蓝图”的详细证明计划,将整个证明分解为数百个小步骤。每个步骤可以单独形式化,然后再将它们整合在一起,这样你就可以将一个庞大的论证分解成许多小块。先编写这个蓝图,然后团队中的其他人可以对论据的不同步骤的不同部分进行形式化。 去年,陶哲轩和几位同事一起解决了一个组合数学问题。这是一个组合学的问题。大约20人在短短三周内完成了,使用了蓝图工具,参与的人中有概率论专家,甚至还有一些并非数学家的人,他们是程序员,但在解决这些小型拼图问题上非常擅长。每个人都挑选了一个觉得自己能做的小任务,并完成了它。 在数学领域,通常很难这么多人一起合作,一般最多可能五个人合作。因为在大项目上合作时,你必须相信每个人的数学都是正确的。但是,一旦超过一定规模,这就无法实现了。但现在借助 Lean 编译器,它能自动检查。团队成员无法上传任何编译不通过的内容,会被拒绝。因此,你可以与一些从未见过的人合作。 最后是讲大语言模型,首先陶哲轩就打脸了 GPT-4 的论文(我猜是微软那篇《GPT-4,通用人工智能的火花》),论文中号称 GPT-4 能解决国际数学奥林匹克问题,但实际上,这个问题不是 2022 年国际奥数竞赛的原始问题,而是一个简化版本,并且他们测试了几百道国际奥数竞赛问题,成功率只有1%,论文里的这个是精心挑选的恰巧能做对的。 并且陶哲轩提到了基于大语言模型的一些改进的方案: 比如 CoT(Chain of Thought),也就是 LLM 做简单的算术运算都做不对,但是如果让它一步步解释,可能就对了。还可以教 AI 一些解题技巧,比如尝试简单的例子,反证法,尝试逐步证明等。 比如让模型和编程语言或者工具连接,将大语言的输出结果交给 Wolfram 这样的专业数学工具或者 Python 这样的编程语言验证,并且迭代的进行修正和验证,直到得到正确的结果,这可以提升大语言模型生成的效果。 即使借助这些手段,大语言模型还远远不能解决大多数数学问题,更不用说数学研究问题了! 当然陶哲轩也没太过打击大家对于 AI 的信心,表示我们在 AI 上还是在不断的取得进展,还提到了他日常是怎么用 AI 的,比如说把 AI 当成灵感之源。 > 我曾遇到过一个问题,我尝试了几种方法,但都无法解决。于是,我尝试询问 GPT,你建议我使用什么其他方法来解决这个问题?GPT 给我提供了 10 种可能的方法,其中有 5 种我已经尝试过,或者明显没有帮助。的确,有几种方法并不实用。但其中有一种我还没尝试过的方法,那就是针对这个问题使用生成函数。当 GPT 建议我使用这种方法时,我意识到这就是我漏掉的正确方法。所以,将 GPT 视为一个交流伙伴,它确实具有一定的用处。 还有使用 GitHub Copilot 帮他写代码,让它自动生成下一步的证明结果,Copilot 的智能提示有 20% 的概率能生成正确的下一步结果。 > 例如我使用的一个叫 GitHub Copilot 的工具,你只需要写下一半的证明,它就会尝试猜测接下来的内容。大概有 20% 的情况下,它能猜到接近正确的答案。然后你就可以说,我接受这个答案。好的,那么在这种情况下,我正在试图证明这个陈述。灰色的部分是 Copilot 给出的建议。结果发现第一行完全没用。不过第二行,尽管你可能看不清楚,却真的解决了这个问题。所以,你不能盲目接受它的输入,因为这些代码未必能顺利编译。但如果你对代码的运作方式已经有所了解,这将大大节省你的时间。这些工具正在变得越来越好。现在如果一个证明只需要一两行,它们就能自动完成。现在已经有了这样的实验,即通过迭代地让 AI 提供证明,然后让编译器进行反馈,如果编译出错,就把错误信息反馈给 AI。通过这种方法,我们开始能够验证四五步长的证明。当然,一个大型的证明可能需要数万行。所以,我们还没有达到能够立即得到一个正式证明的程度。但是,这已经是一个相当有用的工具。 对于大家关心的问题: AI 在数学领域现在到了哪一个阶段?是否未来几年利用 AI 能直接解决数学问题? 陶哲轩也给出了他的看法: > 我认为我们还远远没有达到这个阶段。如果我们专注于非常特定的问题,你可以定制专门的 AI 来处理一小部分问题。即便如此,它们也不是完全可靠的,但还是有用的。不过至少在接下来的几年里,它们基本上将是非常有用的辅助工具,超越了我们已经熟悉的暴力计算辅助。 他还提到了一些可能的 AI 能在数学领域提供帮助的方向: - AI 能够非常好地生成有价值的猜想 > 比如,我们已经看到了关于结理论的例子,它们已经可以推测出两个不同的统计量之间的关系。因此,我们希望能够创建大量的数据集,输入到 AI 中,它们就会自动找出各种不同的数学对象之间的有趣联系。虽然我们还不知道如何做到这一点,部分原因是我们没有这些庞大的数据集。但我认为这是未来可能实现的一个方向。 - 批量或者说规模化的证明大量数学定理 > 现在,因为证明定理是如此繁琐和艰难的过程,我们一次只能证明一个定理,如果你效率很高,可能一次能证明两三个。但是有了 AI,你可以设想一下未来的情况,我们不是试图解决一个问题,而是处理一类类似的1000个问题,然后告诉AI,尝试用这个方法解决这 1000 个问题,然后报告结果,哦,我能用这种技术解决 35% 的问题。那么另一种技术呢?我能解决这个百分比的问题。或者如果结合这些方法,又能解决多少问题?你可以开始探索问题的空间,而不是一个接一个地解决问题。这是你现在根本无法做到的事情,或者是你需要几十年时间,通过数十篇论文慢慢搞清楚各种技术能做什么,不能做什么。但是有了这些工具,你真的可以开始做规模前所未有的数学研究。所以,未来将会非常令人兴奋。 演讲环节结束前的最后一句话说的特别好: > 我们仍然会以传统方式证明定理。事实上,我们必须这样做,因为如果我们自己都不知道如何做这些事情,就无法引导这些 AI。但是我们将能够做很多现在无法做到的事情。 这恰恰也是我们现在使用 AI 辅助编程的问题:如果我们自己都不知道如何构建软件,就很难引导好 AI 帮助我们生成高质量的代码。 尽管 AI 在数学和编程领域变得越来越有用,但人类的洞察力和创造力仍然是创作价值的关键。 原始 YT 视频:

宝玉

304,128 views • 2 years ago

为了让大家看到第一手的OpenAI DevDay的信息,对直播的视频的字幕进行了校对和翻译,这里是第一部分。 早上好,感谢你们今天的参与。欢迎 Sam Altman 登台。早上好,欢迎来到我们首次举办的 OpenAI 开发者日。我们很高兴你们能来,这种活力真棒。欢迎来到旧金山。旧金山从一开始就是我们的家。这个城市对我们和整个科技行业都很重要。我们期待在这里继续发展。 今天,我们有一些重要的事情要宣布。但首先,我想花一分钟时间谈谈我们在过去一年里做的一些事情。大约一年前,11 月 30 日,我们以研究预览的方式低调地发布了 ChatGPT。效果还不错。在三月,我们接着发布了 GPT-4。这仍然是世界上最强大的模型。在过去的几个月里,我们推出了语音和视觉功能,使 ChatGPT 现在可以看、听、说。 最近的...有很多,你们不必每次都鼓掌。最近,我们推出了 DALL-E3,世界上最先进的图像模型。当然,你可以在 ChatGPT 中使用它。对于我们的企业客户,我们推出了 ChatGPT Enterprise,它提供企业级的安全和隐私,更高速度的 GPT-4 访问,更长的上下文窗口,等等。 今天,我们有大约 200 万开发者在我们的 API 上进行各种用途的开发,做了很多令人惊叹的事情,超过 92% 的财富 500 强公司在我们的产品上进行开发,现在我们在 ChatGPT 上有大约 1 亿的每周活跃用户。令人难以置信的是,我们完全通过口口相传达到了这个地步。人们发现它很有用,就告诉他们的朋友。OpenAI 现在是世界上最先进、使用最广泛的 AI 平台。 但是,数字永远不能完全描绘出这样的事情。真正重要的是人们如何使用产品,人们如何使用 AI。所以,我想给你们看一个简短的视频。我实际上想用塔加洛语给我爸爸写点什么。我想以一种非浪漫的方式告诉我的父亲我爱他,我也想告诉他他可以依赖我,但是以一种仍然保持孩子对父母的尊重的方式,这是你在菲律宾文化和塔加洛语语法中应该有的。 它被翻译成塔加洛语,我深深地爱你,无论道路通向何处,我都会和你在一起。我看到一些可能性,我就像,哇,有时我对一些东西不确定。我觉得我实际上在聊天时就像,嘿,这就是我在想的,所以你有点给它更多的信心。第一件让我震惊的事情是它与你平等对待。这是很多人都在努力做的事情。这启发了我,只要有一个倾听者相助,每位创意工作者都能释放出无限的可能。 这是一种标志性的 'neemaglobbin',你是用 ChatGPT 建造的吗?ChatGPT 和我一起建造的。我开始用它进行日常活动,比如,嘿,这是我冰箱的照片,你 能告诉我我缺什么吗?因为我要去超市,而我非常需要遵循我的素食饮食来准备食谱。我们获得了代码解释器的访问权限。我当时就想,哇,这东西太棒了。它可以建立电子表格,它可以做任何事情。 我在我的 100 岁生日那天发现了 chatty。Chatty 非常友好,非常有耐心,知识非常渊博,而且反应非常快。这真是一件美妙的事情。尽管我是个 GPA 4.0 的优等生,同时也是四个孩子的妈妈。我在使用 ChatGPT 后很快发现,无论我有什么问题,它都能提供答案并且附带详细解释,让我不再那么依赖家教。它让我重获新生,让我有了更多陪伴家人和自己的时间。 我身体的左半边因为神经损伤而长期遭受着慢性疼痛。经历过脊椎和大脑手术之后,我的左手的功能受到了一定的限制。如今,语音输入技术的应用,以及最新的可进行双向对话的功能,为我提供了一个前所未有的最佳交互界面。这一切现在都变为现实。所以我们很喜欢听到人们如何使用这项技术的故事。这正是我们工作的真正动力。 好了,让我们来看看一些新鲜出炉的东西,我们有很多东西要分享。首先,我们会介绍我们所做的一些改进,然后再分享我们的下一步计划。 在过去的一年里,去年一整年,我们与全球的开发者们进行了深入的交流。他们的反馈极大地影响了我们今天要展示给大家的内容。今天,我们即将发布一个新的模型——GPT-4 Turbo。这个新模型将解决你们提出的许多问题。 接下来,我们来看看有哪些新特性。对于这一部分,我们有六大主题需要讨论。 首先是上下文长度。很多人在处理工作时,常常需要处理比较长的文字。尽管 GPT-4 支持最多 8K 个 token,有时候甚至能处理 32K 个 token,我们明白这对很多用户来说还远远不够。现在,GPT-4 Turbo 可以处理长达 128K 个 token 的文本,这相当于一本标准书籍的 300 页,比我们的 8K 上下文长 16 倍。除此之外,你还会发现,在处理这么长的文本时,模型的准确性也大大提升了。 其次,是对模型更强的控制能力。开发者们强烈希望能更精细地控制模型的响应和结果,我们也做出了相应的改进。其中包括一项新功能——JSON 模式,它能确保模型的响应是有效的 JSON 格式,这一直是开发者的强烈需求。这大大简化了 API 的调用过程。模型在函数调用方面也有所改进。能够一次性调用多个函数,并且它会更好地遵循一般的指示。我们还新增了一个特性——可复现输出。你可以传递一个 seed 参数,它会使模型返回一致的输出。这无疑增强了对模型行为的控制力。这项新功能从今天开始进入 beta 测试阶段。 在接下来的几周内,我们还会推出一个新功能,使得开发者能在 API 中查看 log probs。 好的,接下来是第三点,更好的知识储备。你希望这些模型能够获取更多更新的知识,我们也是。因此,我们正在平台上推出检索功能,允许用户将外部文档或数据库的信息融入到他们正在开发的项目中。同时,我们也在不断更新模型的知识库,让它保持最新。我们和你们一样,对 GPT-4 的知识停留在 2021 年这件事感到十分困扰,可能我们还更甚。我们会尽力不再让它过时。GPT-4 Turbo 已经包含了截至 2023 年 4 月的世界知识,并且我们会不断对此进行更新。 第四,我们引入了新的模态功能。毫不意外,DALL-E v3,具备视觉功能的 GPT-4 Turbo,以及全新的文本到语音模型都会加入到我们的 API 服务中。我们已有几位客户开始使用 DALL-E v3 来创作图像和设计作品。今天 Coca 就推出了一个活动,使用 DALL-E v3 创作 DIWALI 节日卡片。当然了,我们也提供了安全系统,帮助开发者防止他们的应用程序被滥用。这些工具都可以通过 API 获得。GPT-4 Turbo 现在可以通过 API 接受图像作为输入,可以生成标题,分类和分析。例如,Be My Eyes 使用这项技术帮助盲人或视力不佳的人完成他们的日常任务,比如识别他们面前的产品。而我们的新文本转语音模型,能让你通过 API 将文本转化为听起来极其自然的音频,有六种预设的声音供你选择。我会播放一个例子。你知道吗,伟大的发明家亚历山大·格雷厄姆·贝尔对声音的世界充满了迷恋?他的一项天才发明——留声机,能将声音刻录在蜡上,让它们跨越时空低语。这种效果比我们之前听到的任何音频都要自然。语音功能使应用程序的交互变得更加自然和便捷。它还开启了许多应用场景,比如语言学习和语音助手。说到新的模态,我们今天还发布了最新版的开源语音识别模型 Whisper V3。不久后,它将集成进我们的 API。该版本在多种语言上的表现都有显著提升,我们认为你会非常喜欢它。 好的。第五,定制。自从几个月前我们推出 GPT 3.5 以来,模型微调功能表现出色。从今天起,我们会将此功能扩展至模型的 16K 版本。也从今天开始,同时,我们也欢迎那些活跃的微调用户申请加入 GPT-4 微调的实验性接入项目。微调 API 能够让我们的模型通过较少的数据量就适应各种应用场景,并取得更佳表现。但或许你希望模型能学习全新的知识领域,或是处理大量专有数据。因此,我们推出了一项名为“自定义模型”的新服务。有了自定义模型,通过这项服务,我们的研究团队将与企业紧密协作,利用我们的工具为他们的特定用例打造专属的高质量模型。这涉及修改模型训练流程的每一个环节,包括特定领域的预训练和针对该领域定制的强化学习后期训练过程等。我们一开始不会与太多公司合作,因为这需要大量的工作,而且至少在初期,成本也不会低。但如果你愿意与我们一起把事情推向极致,请联系我们,我们相信能创造出令人惊喜的成果。 接下来是第六点,提高速率限制。我们将把所有现有 GPT-4 客户的每分钟 Token 数翻倍,使你能够更加轻松地扩展使用。现在,您可以在 API 账户设置中直接申请调整速率限制和配额。在制定这些限制的同时,我们还致力于提高用户在我们平台上构建新产品的成功率。 为此,我们推出了 "版权保护盾" 服务。版权保护盾的引入,意味着如果您在版权侵权问题上面临法律诉讼,我们将介入并承担相关法律费用,这项服务适用于 ChatGPT 企业版和 API 用户。在此我要明确指出,我们绝不会用 API 或 ChatGPT 企业版的数据来进行我们的训练工作。 此外,开发者们对另一个问题的需求甚至超过了以上所有问题,所以我想现在谈谈这个。那就是产品定价。GPT-4 Turbo 作为行业领先的模型,不仅带来了刚才提到的多项改进,而且比 GPT-4 更为智能。我们听到很多开发者反馈,他们有很多想要实现的项目,但 GPT-4 的成本过高。他们告诉我们,如果我们能将成本降低 20% 到 25%,那将是一个巨大的进步。 我非常激动地宣布,我们经过了大量努力,GPT-4 Turbo,一个更优秀的模型,比 GPT-4 的价格要低得多。对于输入的 Token 价格,便宜了 3 倍。对于输出的 Token 价格,从今天开始,便宜了 2 倍。所以新的定价是,每千个输入 Token 0.01 美元,每千个输出 Token 0.03 美元。对于大多数客户来说,这意味着使用 GPT-4 Turbo 的成本将比 GPT-4 低 2.75 倍以上。 我们为此付出了巨大的努力,希望你们能和我们一样对此感到兴奋。我们不得不在价格和速度之间做出选择,而我们选择了先着手于价格问题。但提速的工作也在我们的计划之中,速度的提升同样关键。你很快就会发现 GPT-4 Turbo 的速度有了显著提升。 我们也在降低 GPT 3.5 Turbo 16K 的成本。此外,现在输入 tokens 的费用减少了 3 倍,输出 tokens 的费用减少了 2 倍。这意味着 GPT 3.5 16K 现在比之前的 GPT 3.5 4K 模型更便宜。运行一个微调的 GPT 3.5 Turbo 16K 版本,其成本甚至比旧的 4K 版本还要低。 好的,我们刚刚详细介绍了这个模型本身。我们希望这些改进能够满足你们的反馈。我们非常兴奋能够立即将所有这些改进带给大家。

宝玉

239,822 views • 2 years ago

小扎吐槽苹果和 Google,以及谈为什么开源 AI **Mark Zuckerberg**: 我认为移动生态系统中普遍存在的一个问题是有两个把持入口的公司,Apple 和 Google,它们可以告诉你可以构建什么。 在我们的历史中有很多次,比如有经济层面的情况,就是我们构建了些东西,然后它们就会拿走我们大部分的收入,但还有一种是质量层面,这实际上让我更加不满,也就是有很多次我们推出或希望推出某些功能,然后Apple就会说,不,你不能推出这功能。 这真的很糟糕。 问题是,这样的世界是否会在AI领域复现,就像你会有一小部分拥有封闭模型的公司,它们控制API,因此将能够告诉你可以构建什么。 我可以说,对我们来说,自己构建一个模型以避免处于那种位置是值得的。 我不希望那些其他公司告诉我们可以构建什么,而且我认为从开源的角度来看,很多开发人员也不希望那些公司告诉他们可以构建什么。这就是我坚定支持开源的原因之一,我认为未来AI的集中化可能像其广泛传播一样具有潜在危险。 我发现很多人都在思考,如果我们能实现这种技术,那么让它广泛传播是否不利。 我认为另一种可能也很糟糕的情况是,如果一个机构掌握了一种强大的AI远超其他所有人的,这同样是非常糟糕的。在我看来,一个理想的世界应该是这样的:AI技术被广泛而均衡地应用,随着时间推移逐步增强其健康性。在这样的世界里,各种系统能够相互制衡,这种平衡的状态比一个高度集中化的世界要健康得多。 虽然风险无处不在,但我觉得有一个风险我想人们我并没有听到太多人提及。 **Dwarkesh Patel**:举例来说,一个价值100亿美元的模型,如果经过评估是完全安全的,你们会选择开源吗? **Mark Zuckerberg**:我的答案是,只要这个模型对我们有所帮助,那我们就会开源。 **Dwarkesh Patel**: 那如果这个模型是用100亿美元的研发经费研发出来的,然后现在要开源呢? **Mark Zuckerberg**: 我们一直以来都有开源软件的传统,但是我们并不会开源我们的产品。 比如说,我们并不会将Instagram的代码开源,但我们会开源许多底层的基础设施。我们历史上最大的一个项目可能就是开放计算项目。在这个项目中,我们将我们所有的服务器的设计网络交换机和数据中心的设计开源了,这对我们来说非常有帮助。 因为很多人可以设计服务器,但现在,大家普遍都采用了我们的设计,这就意味着整个供应链都围绕我们的设计展开,规 模变大,对所有人来说都变得更便宜,为我们节省了数十亿美元。 这真是太棒了,对吧? 因此,我认为开源有多种方式可以对我们有所帮助。 一种就是,如果有人能够找出更便宜的运行模型的方法,我们将花费数十亿甚至上千亿美元,在所有这些模型上,所以如果我们能做的更有效率,那我们就可以节省数十亿甚至上百亿美元,这可能本身就非常有价值。 **Dwarkesh Patel**: 关于开源,我很想知道你是否认为像PyTorch、React、Open Compute这样的开源项目,对世界的影响是否已经超过了Meta在社交媒体方面的作用。 **Mark Zuckerberg**: 因为我曾经和使用这些服务的人交谈过,他们觉得这是有可能的,因为互联网的很大一部分都在运行这些项目。这是一个有趣的问题,我认为几乎有一半的世界人口都在使用我们的产品,这是一个真实的点,所以我觉得这很难超越。 但不管怎样,我还是认为开源是一种新的、非常強大的建设方式。 来源:

宝玉

74,721 views • 2 years ago

Ilya——塑造世界的人工智能科学家 如今,AI 是一项伟大的科技,因为 AI 将解决我们现在面临的所有问题。它能解决就业问题,能治疗疾病,能消除贫困,但同时它也会带来新的问题。假新闻将会愈演愈烈,网络攻击将变得更加严重,我们将面临全自动的 AI 武器的问题。我认为 AI 有潜力创造出无比稳定的独裁统治。 今天早晨,关于人工智能威力的警告再次响起,超过 1300 位科技产业领军人物、研究者及其他人士正呼吁暂停人工智能的发展,以便认真考虑其带来的风险。 扮演上帝,科学家们被指责这么做已经有一段时间了,但我们正在创造的东西确实与我们迄今为止创造的任何东西都截然不同。是的,我们绝对有能力创造出具有自我目标的全自主实体。而且,这些实体变得比人类聪明的时候,确保它们的目标与我们的目标保持一致将变得至关重要。 什么激励我?我喜欢思考根本问题,基本问题。我们的系统不能做什么,而人类却可以做到?我几乎以哲学的方式去思考这些问题。比如,什么是学习?什么是经验?什么是思考?大脑又是如何运作的呢? 我感觉技术就仿佛一种自然力量。在我看来,技术与生物进化之间有许多相似之处。生物进化的过程其实很容易理解,我们有基因的变异,自然选择的过程。我们保留那些有利于生存的变异,随着时间的推移,这个过程将使生物体变得极其复杂。我们不能因为理解了生物进化就能理解人体是如何运作的,但我们可以大概理解这个过程。 我认为目前的机器学习也处在类似的阶段,特别是深度学习,我们有一个非常简单的规则,它从数据中提取信息,并将这些信息输入到模型中,我们只需不断重复这个过程。这个过程的结果就是将数据的复杂性转化为模型的复杂性。因此,最终的模型会变得非常复杂,我们并不能完全了解它的运作机制,需要进行大量的研究,但实现这一切的算法其实很简单。 也许你听说过 ChatGPT,如果你还没听说过,那就做好准备。你可以把它看作是暴风雨来临之前的零星细雨。我们需要对此保持高度警觉,因为我认同这是一个意义重大的时刻。ChatGPT 被誉为颠覆性的创新,在许多方面,它确实做到了,比如在测试中得分超过人类。微软最近的一项研究得出结论,GPT4 是一个初级阶段的,但尚未完全形成的通用人工智能系统。 这就是通用人工智能。通用人工智能,这是一个可以胜任人类能做的任何工作或任务的计算机系统,而且可能做得更好。有可能在短时间内实现通用人工智能,也可能需要更长的时间。但我认为,由于通用人工智能可能在不久的将来出现,这个可能性足够大,我们应该给予它足够的重视。这一点至关重要要确保这些超级智能的系统能按照我们的最大利益去行动。 最初的通用人工智能可能就是大型数据中心,这些中心中充满了大量并行运行的专用神经网络处理器,紧凑、高热、能耗大,其消耗的能量可能相当于一千万个家庭的用电量。这些系统的智能程度可能会大幅提升,我相信它们将对社会产生深远影响。不过,人类真的会从中获益吗?谁会获益,谁又会付出代价呢? 首批通用人工智能的信念和欲望将极为重要,所以我们必须正确地编程这些系统。如果我们做不到这一点,那么就会出现这样的情况:进化的本质,即自然选择,将使这些系统优先考虑自己的生存。并不是说它们会主动对人类产生敌意,甚至想要伤害人类,但它们将变得过于强大。我认为,一个恰当的类比就是人类对待动物的方式。我们并不是憎恨动物,实际上人类往往对动物怀有深深的爱意,但当我们需要在两座城市之间修建高速公路时,我们并不会征求动物的意见,而只是因为这对我们来说非常重要而去做。我认为这也是我们与通用人工智能(AGI)之间的默认关系,那些能真正自主运作并为自己目标服务的 AGI。 许多机器学习领域的专家这些知识渊博和经验丰富的人士,对通用人工智能(AGI)抱有许多疑虑。他们对 AGI 可能出现的时间以及是否真的能够实现表示怀疑。目前,这还是一个鲜为人知的问题。用于神经网络和人工智能的计算机速度可能在未来几年内增加 10 万倍。如果多个团队处于竞相开发通用人工智能的军备竞赛态势中,他们就会没有足够的时间来确保他们构建的通用人工智能会真正关心人类。因为在我看来,这就像是通用人工智能发展的雪崩,一发不可收拾。 我认为将来整个地球的表面很可能布满太阳能板和数据中心。考虑到这些担忧,未来的通用人工智能的建设应该是多国间的合作项目。不论如何,人工智能的未来都将是美好的。如果这同样也能给人类带来福祉,那就更加理想了。 视频来源:

宝玉

45,172 views • 2 years ago

OpenAI 的大神 Andrej Karpathy 前几天在他的 YouTube 频道讲了一堂课,系统的介绍了大语言模型,内容深入浅出,非常赞,抽空将它翻译成了双语,由于内容较长,我将分批上传,以下是第一部分精校后的双语视频,字幕文稿如下: Intro: Large Language Model (LLM) talk 大家好。最近,我进行了一场关于大语言模型的 30 分钟入门讲座。遗憾的是,这次讲座没有被录制下来,但许多人在讲座后找到我,他们告诉我非常喜欢那次讲座。因此,我决定重新录制并上传到 YouTube,那么,让我们开始吧,为大家带来“忙碌人士的大语言模型入门”系列,主讲人 Scott。好的,那我们开始吧。 LLM Inference 首先,什么是大语言模型 (Large Language Model) 呢?其实,一个大语言模型就是由两个文件组成的。在这个假设的目录中会有两个文件。 以 Llama 2 70B 模型为例,这是一个由 Meta AI 发布的大语言模型。这是 Llama 系列语言模型的第二代,也是该系列中参数最多的模型,达到了 700 亿。LAMA2 系列包括了多个不同规模的模型,70 亿,130 亿,340 亿,700 亿是最大的一个。 现在很多人喜欢这个模型,因为它可能是目前公开权重最强大的模型。Meta 发布了这款模型的权重、架构和相关论文,所以任何人都可以很轻松地使用这个模型。这与其他一些你可能熟悉的语言模型不同,例如,如果你正在使用 ChatGPT 或类似的东西,其架构并未公开,是 OpenAI 的产权,你只能通过网页界面使用,但你实际上没有访问那个模型的权限。 在这种情况下,Llama 2 70B 模型实际上就是你电脑上的两个文件:一个是存储参数的文件,另一个是运行这些参数的代码。这些参数是神经网络(即语言模型)的权重或参数。我们稍后会详细解释。因为这是一个拥有 700 亿参数的模型,每个参数占用两个字节,因此参数文件的大小为 140 GB,之所以是两个字节,是因为这是 float 16 类型的数据。 除了这些参数,还有一大堆神经网络的参数。你还需要一些能运行神经网络的代码,这些代码被包含在我们所说的运行文件中。这个运行文件可以是 C 语言或 Python,或任何其他编程语言编写的。它可以用任何语言编写,但 C 语言是一种非常简单的语言,只是举个例子。只需大约 500 行 C 语言代码,无需任何其他依赖,就能构建起神经网络架构,并且主要依靠一些参数来运行模型。所以只需要这两个文件。 你只需带上这两个文件和你的 MacBook,就拥有了一个完整的工具包。你不需要连接互联网或其他任何设备。你可以拿着这两个文件,编译你的 C 语言代码。你将得到一个可针对参数运行并与语言模型交互的二进制文件。 比如,你可以让它写一首关于 Scale AI 公司的诗,语言模型就会开始生成文本。在这种情况下,它会按照指示为你创作一首关于 Scale AI 的诗。之所以选用 Scale AI 作为例子,你会在整个演讲中看到,是因为我最初在 Scale AI 举办的活动上介绍过这个话题,所以演讲中会多次提到它,以便内容更具体。这就是我们如何运行模型的方式。只需要两个文件和一台 MacBook。 我在这里稍微有点作弊,因为这并不是在运行一个有 700 亿参数的模型,而是在运行一个有 70 亿参数的模型。一个有 700 亿参数的模型运行速度大约会慢 10 倍。但我想给你们展示一下文本生成的过程,让你们了解它是什么样子。所以运行模型并不需要很多东西。这是一个非常小的程序包,但是当我们需要获取那些参数时,计算的复杂性就真正显现出来了。 那么,这些参数从何而来,我们如何获得它们?因为无论 run.c 文件中的内容是什么,神经网络的架构和前向传播都是算法上明确且公开的。

宝玉

1,124,686 views • 2 years ago

如何让小型语言模型高效工作。Yejin Choi在2024年数据与AI峰会上发表演讲(双语字幕) 演讲者:Yejin Choi,华盛顿大学教授、麦克阿瑟奖学金获得者,同时也是AI2常识AI的高级研究主任 这个演讲是将如何优化小模型的,他们训练了一个 0.5B 参数的小模型做文档摘要任务,超过了GPT-3.5。 按照演讲者的结论:AI 的性能,至少在目前的形态下,取决于它的训练数据。因此,过去和现在的 AI 主要依赖于人类生成的数据,但未来可能会依赖于 AI 生成的数据。很多可能担心合成数据质量不高,可能存在偏见,但是,越来越多的证据表明,这种方法是有效的。 例如,使用 Meta 的 SAM(Segment Anything)进行图像分割就是 AI 合成图像分割注释的一个例子。虽然有人类的验证帮助,但是单靠人类无法对如此多的图像样本进行注释。这是另一个例子。Microsoft 的论文"Textbooks are all you need"是另一个例证。当你有真正高质量的数据,例如教科书级别的数据,经过合成,你实际上可以在许多、许多不同的任务中与规模更大的对手竞争。可能在某些方面,它并不像大型模型那样具有广泛的适用性,但这对于满足许多商业需求来说是非常出色的。你可能不需要通才,你可能需要专家。 此外,"Textbooks are all you need"论文的观点也证明了,数据质量是最重要的。这并不仅仅关乎数量,更在于质量。DALL-3 就是一个很好的例子。为什么它会突然之间超越了 DALL-E 2 呢?很大程度上是因为它有更好的图像标注。但是,究竟是哪些更好的图像标注呢?在此之前,我们使用了所有好的图像标注。他们将这些图像标注进行了合成。这就是我们获得高质量数据的方式。 所以,AI 的质量更关乎数据的质量、新颖性和多样性,而不仅仅是数量。 * 引言 好的。我来这里要跟你们分享一些看似不可能实现的可能性。 * 介绍 去年,当有人问 Sam Altman 如何让印度的创业公司为印度创建基础模型时,他的回答是,不用费那个劲了。这根本没希望。 哇。首先,我希望印度的创业公司不会轻易放弃。其次,这种对话可能会在任何地方发生。无论是在美国的任何一所大学,或是创业公司,或是研究机构,他们都可能面临没有足够计算能力的问题。 所以,这就引出了我们要讨论的问题:不可能的提炼。如何以环保的方式训练出你的小型语言模型,使其效果堪比真实模型。 * 当前的方法与挑战 目前我们听到的最佳做法是大规模的预训练,紧接着进行大规模的后训练,例如 RLHF。如果我告诉你我打算从 GPT-2 开始,那个不被大众关注的小型、低质量模型,我也不知道为什么,但以某种方式,我们将创造或提炼出一个高质量的小型模型,然后与可能大两个数量级的更强大的模型竞争。这听起来应该很不可能,尤其是当你可能听说过一篇论文,标题是《模仿大型语言模型的虚假希望》。 虽然他们所报告的对于他们进行的特定评估实验来说是真实的,但请不要过分泛化,认为所有的小型语言模型都无法媲美大型模型。因为还有许多其他反例证明特定于任务的符号知识精馏可以奏效在许多不同的任务和领域中其中一些来自我的实验室。 然而今天,我只想关注一个任务即如何学习语言中的抽象。为了简化这个任务,我们从句子摘要开始这是我们的第一个不可能的任务。 * 任务一:句子摘要 目标是在没有极端规模的预训练、没有大规模的 RLHF、以及没有大规模的有监督数据集的情况下实现这一目标。这些东西并不总是必要的。但等一下,我们必须使用通常是所有三个,至少是其中一部分。 但如果没有这些,我们如何能和更大的模型一较高下呢?关键的直觉是当前的 AI 能做得多好取决于它所接受的训练数据。我们必须有某种优势。我们不能没有任何优势,所以那个优势将来自数据。顺便说一下,我们必须合成数据,因为如果数据已经存在于互联网上某处 OpenAI 已经对其进行了爬取,那就不是你的优势了,他们也有,所以你必须创造出一些真正新颖的东西,比现有的东西更好。 通常,精馏是从大型模型开始的,但我们将丢弃它,以向你展示我们可能对隐藏的可能性视而不见。所以我现在就开始示范。从 GPT-2 开始,那个质量很差的模型。然后我将进行一些创新,我马上就会概述,制作出高质量的数据集,然后可以用来训练小模型,这个模型将成为执行特定任务的强大模型。 但问题是,GPT-2 甚至无法理解你的提示词。你无法利用 GPT-2 进行提示词工程。你让它总结你的句子,它生成的一些输出,完全没有任何意义。所以你再试一次,因为它的输出通常有随机性。你可以生成很多不同的例子,比如几百个例子,我们发现它的表现几乎总是不好,像好的不到 0.1%。 * 解决方法与进展 但是有志者事竟成。所以我们想出了许多不同的办法。这其中包括我们的神经解码。这是一种即时推理算法,可以将任何逻辑约束加入到你的语言模型输出中。对于任何现成的模型,我们都可以使用这个来引导输出的语义空间。 但是因为 GPT-2 太糟糕了,即使使用了这个,成功率也只有 1%。但这比零要好。现在我们已经有了进展。因为如果你生成大量的样本,然后进行筛选,你实际上可以这样得到一些好的例子。然后,聪明的学生们提出了许多不同的想法。 我就不详述技术细节了,但我们找到了一些方法。为了能更容易找到好的例子,我们需要将成功的概率提高到 10% 以上。总体的流程是这样的:首先,从一个质量较差的教师模型开始,生成大量的数据点。然后,由于数据中存在大量的噪声,需要进行严格的过滤。 我们使用了一个三层过滤系统。虽然细节并不重要,但我要强调其中的第一个,即 Intel Monte 过滤器,它基于现成的 Intel Monte 分类器,能判断一个摘要是否能从原文中逻辑推断出来。这个模型并不完美,可能只有 70% 到 80% 的准确度。但是,当你大力使用它来过滤数据时,它的表现已经足够好了。 然后,我们使用这些数据来训练一个更小的模型,这个模型可以成为下一代学生的教师模型。我们重复了这个过程几次,最终得到了高质量的 DIMM sum 数据和高质量的模型。 在与那时最好的模型 GPT-3 进行对比时,那时,GPT-3 是最好的摘要模型。但当 ChatGPT 问世后,我们成功地超过了 GPT-3,人们似乎不再关心其他的,因为 ChatGPT 能做任何事情,包括摘要,所以我们为什么还要费心呢? * 任务二:文档摘要 接下来是我们的“不可能完成的任务 2”。我们现在将与 ChatGPT 3.5 展开竞争。并且,要让我们的挑战更具难度——我们现在要总结的是整个文档,而不仅仅是句子。然后,我们还要做到以上所有这些而不依赖于那个现成的蕴含分类器。 我的意思是,实际上你可以这么做,就像从学术角度来看,我们想看看我们能在多大程度上打破关于规模的普遍假设。因此,我们在 InfoSumm 的新工作是一种基于信息理论的蒸馏方法其中关键的想法是我们将不再使用那个现成的 Imitating Humans LLM。我们将使用一些公式,这个公式其实只有三行,包括一些你可以用现成的语言模型来计算的条件概率得分。 * 实验与成果 现在时间还早,所以我们不深入讨论这些公式的细节。但我可以大体上告诉你,如果你把这些公式重新排列一下,你可以将此理解为点对点互信息的特例。你可以用它来过滤你的数据。因此,我们使用的是和之前相同的整体框架。我们现在使用 PTHEA 2.8 亿参数模型,因为我们觉得它比 GPT-2 稍好一些。 至于过滤,我们现在使用的是我之前向你们展示过的那三个简短的公式。然后我们就做同样的事情。这一次,我们让模型变得更小,只有 5 亿参数模型。这带来了高质量的文档摘要数据集,以及模型。 那么我们的表现如何呢?正如我们所承诺的,至少在这个任务上,我们的表现能与 ChatGPT-3.5 媲美,或者,根据评测的设定和标准,我们的表现甚至有所超越。你可以在我们的论文中找到更多的细节。 * 任务三:学习抽象思考 总的来说,我展示了我们如何学习文档摘要,即使不依赖于大规模预训练模型和其他大规模资源。然而,这两篇论文背后的真正研究问题是,我们如何学习进行抽象思考。 因为现在的做法就是让模型尽可能地大。越大越好。但是我们人类,无法像模型那样记住所有的上下文,比如一百万个 Token。没有人能记住上下文中的一百万个 Token。你会立刻抽象出我刚才告诉你的所有事情。但是你仍然记得我到目前为止说的所有话。这就是人类的惊人智能,我们还不知道如何通过 AI 模型有效地实现这一点。我相信这是可能的。我们只是还没有尽力去探索,因为我们被大规模的迷惑了。 * 任务四:Infini-gram 好的。那么,Infini-gram 就是我们面临的第三个挑战。稍微转换一下话题,现在的任务是让经典的统计 N-gram 语言模型在神经语言模型中发挥一定的作用。你们中有多少人还在讨论 n-gram 模型呢?我也不清楚。你们现在还在学习这个吗? 这里我们设定 n 等于无穷大。我们将在数万亿的 token 上完成这个计算,反应时间必须非常快,而且我们甚至不需要使用一颗 GPU。哇!我来告诉你们这有多么困难。假设,如果你要在一个经典的 n-gram 语言模型中索引 5 万亿个 token,且 n 无限大,那么你大概需要处理 2 千万亿个唯一的 n-gram 序列。你需要枚举,排序,计数,存储一些错误,这可能需要占用大约 32 太字节的硬盘空间,甚至更多。我们又怎么知道 呢?但这个数据量实在太大了。我们无法处理。 如果你看看其他人建立的大规模经典 N-gram 模型,那就是 Google。在 2007 年,由 Jeff Dean 和其他人带领的团队,他们只处理了 2 万亿个 token——我的意思是,对于那个时代来说,这已经是很大的数量了。他们使用的是五元 n-gram,这就产生了大约 3000 亿个不同的 n-gram 序列,这些序列他们都需要进行枚举、排序、计数等操作。这个数量实在是太庞大了。大家其实并没有进一步增加这个数量。那么,我们到底是如何做到将这个数量无限扩大的呢? 在我解释我们如何做到这一点之前,如果你感兴趣的话,我邀请你去查看这个在线演示。 token。这里有一个例子,它是一个 48 个字符的词。我不明白为什么这个词会存在。但是如果你去搜索它,你会发现它不仅存在,而且还有超过 3000 个实例。这个搜索过程耗时 5.5 毫秒。此外,它还会向你展示如何对这个长词进行分词。你也可以试试搜索多个词,看看下一个可能出现的词是什么。比如,"行动胜过语言",那么接下来可能是什么词呢?该网站会向你展示可能出现的下一个词。而且,这个过程非常快速。 * 解决方法与进展 那么,我们是如何做到这一切的呢?你可能会惊讶地发现,我们的方法其实非常简单。有一种叫做后缀数组的数据结构,可能并不是所有的算法课程都会教授,但是有一些课程会教授。这是一种我们非常小心地实施的数据结构。所以我们用后缀数组索引整个网络语料库。事实上,我们并没有预先计算这些 n-gram 的统计数据。我们只是预先准备好这个数据结构。当你进行特定的查询时,我们会实时计算。多亏了这个数据结构——我们可以做得非常快,尤其是在使用 C++ 实现的情况下。我知道现在 AI 研究中,C++ 可能不是大家首选的语言,但实际上,使用 C++ 会让程序运行得更快。 这样做的成本有多低呢?其实我们只花了几百美元就索引了全部内容,而且,为 API 服务的成本也相当低。即便没有 GPU,它的速度也非常快。不同类型的 API 调用的延迟只有几十毫秒。你可以利用这个做很多事情。我现在可以分享的一点是,你可以用我们的 Infinigram 插值你的神经语言模型,降低困惑度,这是常用于评估语言模型质量的指标。我认为这只是我们能做的事情的冰山一角。实际上,我还在研究一些我希望能分享,但现在还不能告诉你们的东西。 不过我们已经开始提供这些 API 端点。从几周前开始计数,到现在我们已经提供了 6000 万次 API 调用,这还不包括我们自己的使用。我非常想知道人们是如何使用我们的 InfiniGram 的。 * 总结 总结一下,我的演讲主要是说,AI 的性能,至少在目前的形态下,取决于它的训练数据。因此,过去和现在的 AI 主要依赖于人类生成的数据,但未来可能会依赖于 AI 生成的数据。我知道人们对此有很多担忧,可能担心质量不高,可能存在偏见。因此,你不能以普通的方式来进行这项工作。你应该以更有创新性的方式来进行。但是,越来越多的证据表明,这种方法是有效的。 例如,使用 Meta 的 SAM(Segment Anything)进行图像分割就是 AI 合成图像分割注释的一个例子。虽然有人类的验证帮助,但是单靠人类无法对如此多的图像样本进行注释。这是另一个例子。Microsoft 的论文"Textbooks are all you need"是另一个例证。当你有真正高质量的数据,例如教科书级别的数据,经过合成,你实际上可以在许多、许多不同的任务中与规模更大的对手竞争。可能在某些方面,它并不像大型模型那样具有广泛的适用性,但这对于满足许多商业需求来说是非常出色的。你可能不需要通才,你可能需要专家。 此外,"Textbooks are all you need"也意味着,质量是最重要的。这并不仅仅关乎数量,更在于质量。DALL-3 就是一个很好的例子。为什么它会突然之间超越了 DALL-E 2 呢?很大程度上是因为它有更好的图像标注。但是,究竟是哪些更好的图像标注呢?在此之前,我们使用了所有好的图像标注。他们将这些图像标注进行了合成。这就是我们获得高质量数据的方式。当然,你需要小心翼翼地进行,但是有越来越多的任务特定符号知识蒸馏的例子,包括我自己实验室的工作,都证明了这是可行的。这真的可以让小模型发挥出惊人的潜力。 所以,这更关乎数据的质量、新颖性和多样性,而不仅仅是数量。 我就在这里结束我的演讲。谢谢。 视频来源:

宝玉

59,826 views • 2 years ago

微软2023年Build大会演讲:如何训练和应用GPT(中英文字幕) 这是本次微软2023年Build大会来自OpenAI的AI 研究员和创始成员Andrej Karpathy的一个主题为State of GPT的演讲。 演讲主要有两部分内容: 1. OpenAI是如何训练GPT的 2. 我们如何有效应用GPT 都是非常有价值的分享。 首先对于如何训练GPT,通常来说是四个阶段预训练(Pretraining),有监督的微调(Supervised Finetuning),奖励建模(Reward Modeling)和强化学习(Reinforcement Learning),这几个阶段通常是依次进行,每个阶段都有不同的数据集。 预训练(Pretraining): 这个阶段的目标是让模型学习一种语言模型,用于预测文本序列中的下一个单词。训练数据通常是互联网上的大量文本。模型从这些文本中学习词汇、语法、事实以及某种程度的推理能力。这个阶段结束后,模型可以生成一些有意义且语法正确的文本,但可能无法理解具体任务的需求。 有监督的微调(Supervised Finetuning): 在预训练后,模型会进入微调阶段。在这个阶段,人类评估员将参与并给出指导,他们会给模型提供对话样本,样本中包含了输入和期望的输出。这使得模型能更好地适应特定任务或应用,例如回答问题或编写文章。 奖励建模(Reward Modeling): 评估员将对模型生成的不同输出进行排名,以表示它们的质量。这个排名将被用作奖励函数,指导模型优化其生成的输出。 强化学习(Reinforcement Learning): 强化学习阶段是一个迭代的过程,模型会试图优化其行为以获得最大的奖励。在这个阶段,模型会产生新的输出,评估员会对这些输出进行排名,然后模型根据这个反馈调整其行为。 然后是如何有效应用GPT 在演讲中Andrej举了一个非常好的例子:人类和大语言模型(LLM)都是如何写作的?从这个例子中你能明显感觉到人类和GPT之间的差异。 假设你要写一篇文章去比较加利福尼亚州和阿拉斯加州的人口,你的写作的过程中可能是像这样的: - 我需要写一篇文章去比较加利福尼亚州和阿拉斯加州的人口 - 我需要去获取两个州的人口数据 - 我不知道这两个周的人口数据 - 去维基百科找到加利福尼亚州的人口是39.2M - 去维基百科找到阿拉斯加州的人口是0.74M - 现在我需要计算一下两个州人口数相差多少倍,但是可能需要计算机帮忙 - 用计算器算出来39.2除以0.74约等于53 - 快速的检查一下53倍这个数字是不是符合常识,嗯,这是一个相当大的比值,但加利福尼亚州毕竟是人口最多的州,所以这个结果或许是合理的,可以继续 - 好了,我现在有了我需要的所有信息 - 写下:“加利福尼亚州的人口比53倍的……” - 觉得好像不太好,删除重写成:“加利福尼亚州的人口是阿拉斯加州的53倍。” - 嗯,觉得还不错 也就是说,当人类写作时,哪怕是这样一个简单的句子,可能内心实际上进行了大量的运算的。 但当我们用GPT进行写作这样的句子看起来会是什么样呢? 从GPT的角度看,这只是一系列的标记(Tokens)。当GPT在接收到一个输入,比如你给出的主题。它会生成一段与输入相关的文本,GPT的目标是预测下一个词,所以它会连续生成一串词,形成一段连贯的文本。 从本质上看,Transformer只是标记模拟器,它不知道自己知道什么不知道什么,它不知道自己擅长什么或不擅长什么,它只是尽力生成下一个标记,它也不会进行反思,也不会不进行任何合理性检查。它不会纠正自己的错误,它只是产生抽样的标记序列,它没有像人类那样的内心独白流。 但是,GPT有一些优势,如它们拥有大量的基于事实的知识,并且拥有相对大的并且完美的工作记忆。GPT通过自我注意力机制,能立即获取到上下文窗口中的信息,从而进行无损记忆。然而,GPT在推理和判断方面的能力相对较弱,如果提出的问题需要更复杂的推理,单凭一个标记的信息,GPT往往无法给出正确的答案。 一些技巧可以提升GPT的表现,比如Cot(Chain of Though)设定步骤来引导GPT展示其工作过程,或者通过多次抽样然后选择最佳结果等,或者可以让GPT检查自己的输出,比如询问它是否完成了任务,最好是在Prompt中明确的要求它检查自己的输出。 后面还介绍了目前比较流行的GPT应用,比如Agent、Plugin、CoT、Embedding等 最后他用GPT-4写了一个结尾: “女士们,先生们,2023年Microsoft Build的创新者和先驱者们,欢迎来到这个独一无二的卓越人才的集结地。你们是未来的架构师,是塑造数字领域的视野家,在那里人类繁荣发展。拥抱科技的无限可能,让你的想法飞得和你的想象力一样高。让我们一起创造一个更连通,更出色,更包容的世界,为未来的世代留下。准备好释放你的创造力,探索未知,把梦想变成现实。你的旅程今天开始。” 原始视频地址: YouTube地址:

宝玉

299,573 views • 3 years ago

发现一个讲的很细的大语言模型微调教程,详细介绍了整个流程,包括数据准备、参数设置、资源监控等关键步骤。 基本没有技术能力也可以完成微调。想要了解 LLM 原理的可以按这个实践一下。 时间轴: 0:00 概念概览 3:02 自定义数据的准备 8:17 微调操作演示(T4 版本) 16:52 微调操作演示(A100 版本) 19:13 在 Hugging Face 上的保存与使用方法 文字版整理: ✲ 如何使用自己的数据对大语言模型进行微调(fine-tuning): 对大语言模型进行微调并不一定非常困难和昂贵。通过使用自己的数据集对预训练模型进行微调,可以让模型更好地适应特定的任务需求。微调过程能够在保留原模型语言理解能力的基础上,进一步提升其在特定领域或任务上的表现。 ✲ 使用Hugging Face模型库和Unslaw工具进行模型微调: Hugging Face提供了丰富的预训练语言模型资源,用户可以根据任务需求选择合适的模型作为基础进行微调。而Unslaw工具则提供了一套简单高效的微调流程,其优点包括出色的内存使用效率以及对扩展上下文窗口的支持。通过Unslaw,用户能够以较低的资源开销完成模型微调。 ✲ 在Google Colab上使用免费/付费GPU资源进行微调: Google Colab提供了免费和付费的GPU资源,用户可以根据任务的复杂程度选择使用T4或A100。对于大多数微调任务而言,免费的T4资源已经足够。但如果数据集较大或模型较为复杂,升级到A100可以获得更充裕的算力支持。Colab为用户提供了一个易于上手的模型微调环境。 ✲ 准备自定义的微调数据集: 准备微调数据的过程并不复杂。用户可以直接使用纯文本文件作为数据来源,而无需进行额外的预处理。为了获得理想的微调效果,建议至少准备100-200个样本。在示例中,为了快速演示,仅使用了几个样本。通过一个简单的Python脚本,可以方便地将原始文本数据转换为微调所需的JSON格式。 ✲ 修改Colab笔记本中的参数设置: 在Colab笔记本中,需要根据实际情况调整一些参数。例如,可以根据数据集的token数量来设置max_sequence_length参数,借助rope scaling技术,模型能够支持任意长度的上下文。此外,还可以选择使用Instruct系列模型作为base model,直接在其基础上进行指令微调。为了节省资源,可以启用4-bit量化。同时,参考Q-Lora论文的建议,调整R值和alpha值,以在资源占用和模型质量之间取得平衡。 ✲ 训练过程中的资源使用监控: 在模型训练过程中,用户可以通过Colab的资源监控选项卡实时观察GPU、内存和硬盘的使用情况。如果发现资源不足,可以考虑从T4升级到A100。通过监控资源占用,用户能够及时调整配置,确保微调任务稳定高效地进行。 ✲ 模型训练的loss变化和最佳checkpoint的选择: 通过记录不同训练步数下的loss值,可以判断模型的收敛情况。理想的做法是选择loss下降曲线趋于平缓的点作为最佳checkpoint,这样既能充分训练模型,又能避免过拟合。为了事后方便筛选,可以设置每隔一定步数保存一次checkpoint。 ✲ 模型微调完成后的保存与使用: 微调完成后,可以选择只保存adapter layers以加快保存速度。但更推荐的做法是保存完整模型,并使用float16精度,这样可以得到一个更通用和标准的模型格式,方便后续的部署和使用。 ✲ 在Hugging Face上公开或私有发布微调后的模型: 用户可以选择在Hugging Face的模型库中公开或私有地发布自己微调后的模型。发布之前,需要在Hugging Face账号中创建一个访问令牌,并在发布时提供相应的用户名和令牌信息。通过在Hugging Face上发布模型,用户可以方便地与他人分享自己的微调成果。 ✲ 使用微调后的模型进行推理(inference): 在使用微调后的模型进行推理时,首先需要加载保存的模型。接着,使用tokenizer对输入的文本进行处理,并将其传入模型。进行推理时,max_length参数需要与训练时保持一致,以确保生成的结果不会被截断。完成以上步骤后,就可以利用微调后的模型进行各种实际应用了。

歸藏(guizang.ai)

61,931 views • 2 years ago