From 40facfbe8cba4d52b8ea47a1a4419e9ed41adcb9 Mon Sep 17 00:00:00 2001 From: criwits Date: Fri, 19 Jul 2024 23:59:20 +0800 Subject: [PATCH] ai --- README.md | 18 ++-- content/_index.md | 30 +------ content/bring-intelligence-to-machines.md | 103 ++++++++++------------ content/menu/index.md | 2 + content/revisions.md | 39 ++++++++ 5 files changed, 101 insertions(+), 91 deletions(-) create mode 100644 content/revisions.md diff --git a/README.md b/README.md index 6604d26a..af9d429f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # 《你缺失的那门计算机课》网页版 -这是《[你缺失的那门计算机课](https://www.criwits.top/missing)》在线版本的源码仓库。本仓库使用 [Hugo](https://gohugo.io/) 生成静态网页,使用修改过的 [Book](https://themes.gohugo.io/themes/hugo-book/) 主题。 +这是《[你缺失的那门计算机课](https://www.criwits.top/missing)》网页版的源码仓库。本仓库使用 [Hugo](https://gohugo.io/) 生成静态网页,使用修改过的 [Book](https://themes.gohugo.io/themes/hugo-book/) 主题。 ## 如何使用 -正常来说,您直接访问 [这个网址](https://www.criwits.top/missing) 即可查看本书的内容。如果您想在本地预览本书的内容,可以按照以下步骤操作: +通常情况下,您直接访问 [这个网址](https://www.criwits.top/missing) 即可查看本书的内容。如果您想在本地预览本书的内容,可以按照以下步骤操作: 1. 安装 [Hugo](https://gohugo.io/)。 2. 克隆本仓库到本地。 @@ -16,14 +16,16 @@ ## 著作权与许可 -本教程内容版权所有 © 2021–2024 Hans Wan 和 Windy Deng +《你缺失的那门计算机课》网页版 版权所有 © 2021–2024 Hans Wan 和 Windy Deng -本教程中的所有文字,除非特别说明,均以 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh) 协议许可。本教程所有内容「按原样」提供,并且不含有任何明示或者暗示的担保。我们不保证本教程中任何部分的绝对正确。若您认为本文中叙述的方法、技巧等知识与您从其他地方看到的不同或相悖,请遵循您自己的判断。 +《你缺失的那门计算机课》网页版(下称「本作品」)中的所有原创内容,除非特别说明,均以 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh) 协议许可。您可以在协议允许的范围内自由地分享、复制本作品的内容及基于本作品内容进行创作,但必须注明原作者和链接,并且不得用于任何商业目的。 -为便于进行教学,文中引用了一些来自互联网公开资源的图片及其他非我们原创的内容。这些内容的著作权归属它们的原作者和 / 或版权所有方所有。若有侵权请联系我们删除。我们对这些内容的作者表示由衷感谢。 +本作品所有内容「按原样」提供,并且不含有任何明示或者暗示的担保。我们不保证本作品中任何部分的绝对正确。若您认为本文中叙述的方法、技巧等知识与您从其他地方看到的不同甚至相悖,请遵循您自己的判断。 -文中出现的所有商标,无论是否标注有 ® 或 ™ 及其他商标标识,其所有权都归属它们各自的持有者所有。 +为便于进行教学,本作品中引用了一些来自互联网公开资源的图片及其他非我们原创的内容。这些内容的著作权归属它们的原作者和 / 或版权所有方所有。若有侵权请联系我们删除。我们对这些内容的作者表示由衷感谢。 -本教程网页版使用 [Hugo](https://gohugo.io/) 生成,遵循 [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) 协议。 +本作品中出现的所有商标,无论是否标注有 ® 或 ™ 及其他商标标识,其所有权都归属它们各自的持有者所有。本作品中所提及和展示的所有计算机软件的著作权等知识产权归属于各自的开发者和 / 或公司所有。 -本教程网页版所使用的主题 [Book](https://themes.gohugo.io/themes/hugo-book/) 作者为 Alex Shpak,遵循 [MIT](https://opensource.org/licenses/MIT) 协议。 \ No newline at end of file +本教程网页版使用 [Hugo](https://gohugo.io/) 生成。Hugo 采用 [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) 协议授权。 + +本教程网页版所使用的主题 [Book](https://themes.gohugo.io/themes/hugo-book/) 作者为 Alex Shpak。该主题采用 [MIT](https://opensource.org/licenses/MIT) 协议授权。 \ No newline at end of file diff --git a/content/_index.md b/content/_index.md index 0bc70827..f3a8fcdb 100644 --- a/content/_index.md +++ b/content/_index.md @@ -51,9 +51,8 @@ type: docs - 指令集、操作系统与应用生态(敬请期待) - [Windows 11 修整指南]({{}}) -- 超越篇(敬请期待) +- 超越篇 - [从加减乘除到 AI 对话]({{}}) - - 构建一个云上的世界 - 以密码之剑护网安之盾 @@ -71,35 +70,12 @@ type: docs ## 版本修订 +- AI now: 基本完成「从加减乘除到 AI 对话」一章 (24/7/19) - Format, fix and fine-tune: 调整网页版格式,修复一些错误,微调表述 (24/6/12) - Content update: 更新落后内容,调整图片格式 (24/5/25) - Every visit counts again: 现在在网页底部又可以看到网站的访问量了 (24/5/12) - Content update: 修些小地方 (24/5/3) -- Engine changed: 更换页面引擎为 Hugo (24/5/3) -- Content update: 修些小地方 (24/4/20) -- Content update: 完成「空间管理」一章 (24/4/18) -- Content update: 更新一些小地方 (23/12/12) -- Housewarming: 迁移到境内服务器,大幅优化访问速度 (23/10/21) -- Content update: 修正错漏、更新「显示器」「蓝屏」两章 (23/10/9) -- Content update: 更新落后内容 (23/10/6) -- Checkpoint: 一周年了(大概),整点贺词 (23/2/1) -- Content update: 完成「蓝屏」一章 (22/11/20) -- ~~Every visit counts: 现在在网页底部可以看到网站的总访问量了 (22/3/19)~~ -- Content update: 完成「用户」一章 (22/3/17) -- Content update: 完成「工具软件」一章 (22/3/14) -- Content update: 完成「开荒」一章 (22/3/9) -- PDF ready: 第一版 PDF 出炉啦!(22/2/19) -- Checkpoint: 完成「跋」这一部分 (22/2/12) -- Content update: 完成「显示器」一章 (22/2/11) -- Content update: 完成「怎样寻找优质教程」一章 (22/2/10) -- Content update: 完成「压缩」一章 (22/2/8) -- Engine changed: 更换页面引擎为 GitBook (22/2/8) -- Content update: 完成「Office / WPS」「浏览器」两章 (22/1/29) -- Breaking news: 教程的编写动机改变了,因此删去了「致谢」部分 (22/1/19) -- First release: 完成「问题」一章,基础篇暂定完成,在域名上发布 (21/12/28) -- Content update: 完成「维护与防护」一章 (21/12/27) -- Content update: 完成「电脑组成」「文件管理」「软件安装」三章 (21/12/26) -- First things first: 开坑 (21/12/25) +- [更多……]({{}}) ## 作者 diff --git a/content/bring-intelligence-to-machines.md b/content/bring-intelligence-to-machines.md index 955342b2..96706013 100644 --- a/content/bring-intelligence-to-machines.md +++ b/content/bring-intelligence-to-machines.md @@ -9,24 +9,33 @@ type: docs 本文正在施工中…… {{}} - {{< hint warning >}} 欢迎来到《你缺失的那门计算机课》超越篇!在这一部分,我们将带领大家在了解「电脑最好怎么用」的基础上,探索无限的可能性——今天,人们利用电脑这一强大的工具,创造了一个璀璨斑斓的世界。人工智能、云计算、网络安全、大数据……这些词汇,或许你早已在各种各样的地方听说过,但你是否真正了解它们?我们将用通俗易懂的语言,带领大家走进这些新颖的领域,探索它们的奥秘。 {{< /hint >}} {{< hint info >}} -这一章我们将介绍超越篇的第一个领域——人工智能,常常被人们简称为「AI」(Artificial Intelligence)。AI 技术让电脑不再是冷冰冰的机器,而拥有了一定模仿人类思维的能力。今天,诸如 AI 对话、AI 绘画、AI 写作等技术正在极大地提高人们的生产效率。阅读完这一章,你或许能找到下面这些问题的答案: +这一章,我们将介绍超越篇的第一个领域——人工智能,它常常被人们简称为「AI」(Artificial Intelligence)。AI 技术让电脑不再是冷冰冰的机器,而拥有了一定模仿人类思维的能力。今天,诸如 AI 对话、AI 绘画、AI 写作等技术正在极大地提高人们的生产效率。阅读完这一章,你或许能找到下面这些问题的答案: - 我想体验一下现在最新的 AI 技术! - 到底是什么让 AI 能够模仿人类的思维,实现「智能」? - 未来,AI 技术会如何发展?我们需要担心吗?我们应该怎么办? {{< /hint >}} -## 体验 AIGC 的魅力 +## 让机器像人一样思考 + +### 人工实现的「智能」 + +我们把「人工智能」这个词拆成两个部分:「人工」和「智能」。「智能」本是人类的专利,我们的意识、思考、判断和情感等都是智能的表现。「人工」修饰着「智能」,昭示着这种「智能」由人工实现。人工智能技术的目标,就是由「人工」来实现一种所谓的「智能」,并让机器能够模拟和呈现它,从而让它们具有识别、决策、判断,乃至分析、学习和创造的能力。 + +上千年前,古代东西方的人们就不约而同地畅想过各种各样的「自动人偶」,其中的一些甚至具有意识和智慧,这可以看成是「人工智能」概念最早的先驱。近代,随着数学和逻辑学的发展,学者们开始研究如何把世间一切逻辑都用数学语言表达出来,这为人工智能的发展奠定了基础。到了 20 世纪中叶,伴随着电子计算机的诞生,人工智能技术也开始萌芽,人们开始使用电子计算机模拟人类的思维。此后,人工智能技术经历了几次高潮和低谷,而当下则是人工智能技术发展的一个新高峰。 + +今天,人工智能技术已经完完全全地融入了我们生活的每一个角落。当我们「刷脸」步入小区大门时,人脸识别系统能像门卫一样辩认我们的身份;当我们上网购物时,推荐系统能像私人助理一般推测我们的喜好。马路上,各种「智驾」技术正在解放司机的双手;工厂中,机器人正在代替人类完成重复性劳动……这些我们今天看来已经理所当然、司空见惯的技术,其实都是人工智能技术的应用。 -### 什么是 AIGC?「模型」又是什么? +近年来,「AI 绘画」「AI 聊天」等技术再一次高调地让「AI」进入人们的视野。作为 AI 一种应用,这些技术看似各不相同,但它们有着一个共同的特点:它们都是由机器来生成一些内容,例如绘画作品、聊天回复、文学小说等。机器生成的内容在质量和效果上与人类相差无几,甚至有时候还能达到超越常人的水平。这种技术称为「生成式人工智能」,简称「生成式 AI」,通常被缩写成英文 AIGC(Artificial Intelligence Generated Content)。如果说传统的 AI 技术,如前文提到的人脸识别、推荐系统等,是让「智能」去「干活」,那么 AIGC 技术则是让「智能」去「创作」。 -谈到「人工智能」四个字,近年来非常火爆的「AI 绘画」「AI 聊天」等技术一定会浮现在你的脑海中。这些技术看似各不相同,但它们有着一个共同的特点:它们都是由机器来生成一些内容,例如绘画作品、聊天回复、文学小说等。机器生成的内容在质量和效果上与人类相差无几,甚至有时候还能达到超越常人的水平。这种技术称为「生成式人工智能」,简称「生成式 AI」,通常被缩写成英文 AIGC(Artificial Intelligence Generated Content)。AIGC 的出现具有里程碑意义,因为它让人们看到了人工智能技术的无限可能。 +AIGC 的诞生具有里程碑式的意义。在 AIGC 技术大规模应用之前,人们通常认为「创作」是人类思维独有的能力,传统的 AI 技术只不过是让机器代替人类做一些简单而枯燥的工作。然而,AIGC 技术的出现打破了这种观念。自此之后,人们对 AI 技术的未来充满了无限的憧憬,也让人们对 AI 技术的潜在风险产生了更多的担忧。 + +### 什么是「模型」,如何「训练」模型? 在 AI 领域中,「模型」(model)指的是用于完成特定任务的算法,或者可以理解为「程序」。例如,用于 AI 绘画的模型,输入你的文字描述,就能输出一幅符合描述的图画。而用于 AI 聊天的模型,输入你的问题,就能输出一个符合问题的回答。模型是人工智能技术的核心,它决定了 AI 的功能和效果。 @@ -36,13 +45,13 @@ type: docs ![模型的训练](bring-intelligence-to-machines/Model_training.png) -将模型加以包装,就能得到可供用户使用的 app 或网站产品,人们可以在 app 或网页上便捷地使用 AI 模型。2022 年末,美国人工智能技术公司 OpenAI 基于其所研发的「GPT」系列模型,上线了一款 AI 聊天机器人「ChatGPT」,引起了全球的轰动。ChatGPT 能够像人类一样写出比较通顺、自然的文章,并且能在许多领域针对提问作出清晰而详细的回答,因而在短时间内便获得了巨大的关注。自那时起,AIGC 技术仿佛在一夜间火遍了全球,成为了人们茶余饭后讨论的热门话题——人们开始畅想 AI 技术的无限潜能,亦开始担忧 AI 技术的潜在风险。 +将模型加以包装,就能得到可供用户使用的 app 或网站产品,人们可以在 app 或网页上便捷地使用 AI 模型。2022 年末,美国人工智能技术公司 OpenAI 基于其所研发的「GPT」系列模型,上线了一款 AI 聊天机器人「ChatGPT」,引起了全球的轰动。随后,谷歌、Meta、微软等行业巨头纷纷推出了自己的 AIGC 模型;与此同时,许多国内人工智能研究机构、高校和企业也不甘落后,各种国产模型如雨后春笋般出现。这些产品各自有着不同的特色和应用场景,琳琅满目,让人目不暇接。下图展示的就是 ChatGPT 的界面。 ![ChatGPT 的界面](bring-intelligence-to-machines/ChatGPT.png) -ChatGPT 的发布打开了 AIGC 大规模应用世界的大门。随后,谷歌、Meta、微软等行业巨头纷纷推出了自己的 AIGC 产品;与此同时,许多国内人工智能研究机构、高校和企业也不甘落后,各种国产模型如雨后春笋般出现。这些产品各自有着不同的特色和应用场景,琳琅满目,让人目不暇接。由智谱 AI 和清华大学 KEG 联合开发的 GLM/ChatGLM 模型则是其中的佼佼者,它在生成内容质量和速度上都有着相当不错的表现。「智谱清言」是智谱 AI 官方推出的体验平台,提供了包括 ChatGLM 在内的多种 AIGC 模型供用户使用。 +在一众国内国外的 AIGC 模型中,由智谱 AI 和清华大学联合开发的 GLM/ChatGLM 模型表现突出,它在生成内容质量和速度上都有着相当不错的表现。智谱 AI 公司推出的「智谱清言」平台,提供了包括 ChatGLM 在内的多种 AIGC 模型供用户使用。下面,我们就借助「智谱清言」平台,来体验 AIGC 的魅力。 -下面,我们就借助「智谱清言」平台,来体验 AIGC 的魅力。 +## 体验 AIGC 的魅力 ### 在「智谱清言」上使用 ChatGLM 模型 @@ -111,13 +120,13 @@ ChatGPT 的发布打开了 AIGC 大规模应用世界的大门。随后,谷歌 ## 从加减乘除到 AI 对话 -体验过 AIGC 的魅力之后,你是否好奇过,这些神奇的技术究竟是如何实现的?从「加减乘除」的四则运算到人工智能的各种应用,之间到底经历了怎样的跨越?本节将带着你慢慢揭开 AI 那神秘的面纱,用通俗易懂的语言向你展现在人工智能背后的基本原理。 +体验过 AIGC 的魅力之后,你是否好奇过,这些神奇的技术究竟是如何实现的?「计算机」的本质是「计算」,但从「加减乘除」的四则运算到人工智能的各种应用,之间到底经历了怎样的跨越?本节将带着你慢慢揭开 AI 那神秘的面纱,用通俗易懂的语言向你展现在人工智能背后的基本原理。 ### AI 的本质——「预测」 我们可以简单地把人工智能的本质归纳为「预测」。「预测」指的是依据某种「经验」,根据已知的信息去推测未知的信息。例如,天气预报是一种预测,人们的「经验」来自于长期对天气的观察和气象学的发展,「已知的信息」则是人们收集到的各种气象数据。借助经验和已知信息,气象学家们可以预测未来的天气情况——这便是「未知的信息」。 -上面我们看到的各种 AIGC 应用,其实亦是一系列的「预测」。以 AI 对话为例,在模型训练过程中,模型通过大量的语料数据,「学习」到了人类语言的统计规律——例如,「你好」之后通常会伴随另一句问候,「你是谁」之后通常会伴随一句自我介绍;「今天天气真」之后大概率是「好」「不好」等词汇,而「美国的首都」之后要么是「华盛顿」要么是一个问号。最终,借助这些统计规律,模型能够做到给定任意的一串文字,预测出接下来最可能的一个词汇。 +上面我们看到的各种 AI 应用,其实亦是一系列的「预测」。以 AI 对话为例,在模型训练过程中,模型通过大量的语料数据,「学习」到了人类语言的统计规律——例如,「你好」之后通常会伴随另一句问候,「你是谁」之后通常会伴随一句自我介绍;「今天天气真」之后大概率是「好」「不好」等词汇,而「美国的首都」之后要么是「华盛顿」要么是一个问号。最终,借助这些统计规律,模型能够做到给定任意的一串文字,预测出接下来最可能的一个词汇。 ![模型的本质是预测](bring-intelligence-to-machines/GPT_is_predicting.png) @@ -128,11 +137,11 @@ ChatGPT 的发布打开了 AIGC 大规模应用世界的大门。随后,谷歌 建立在这样的看法上,我们不难明白,AI 模型的关键便是这套「预测」算法的设计、训练、验证和优化。还是以 AI 对话模型为例,如何设计出合理的「预测」方式,如何让模型从文字语料中学习到足够的「经验」,就是人们正在研究的重要问题。这些问题解决的好坏,直接决定了 AI 模型的表现。 -### 线性回归、损失和梯度下降 +### 一个简单的「预测」问题——租金预测 -诸如 AI 对话那样的模型,其内部的「预测」算法极为复杂,我们无法在这里详细展开。相反地,我们选择一个简单得多的「预测」问题——「租金预测」,来展示 AI 模型工作和训练的基本原理。 +诸如 AI 对话那样的模型,其内部的「预测」算法极为复杂,我们无法在这里详细展开。相反地,我们选择一个简单得多的「预测」问题——「租金预测」来进行研究。在理解了「租金预测」问题之后,我们就能以小见大,举一反三地理解 AI 推理的过程。 -#### 租金预测问题 +#### 线性回归模型 假设我们现在要根据一间房屋的面积,预测它的租金。在这个问题中,「面积」就是「已知的信息」,房屋的租金则是对应的「未知的信息」。为了获取「经验」来解决这个预测问题,我们收集了该地区 20 套出租屋的面积和租金数据,如下表所示: @@ -151,15 +160,15 @@ ChatGPT 的发布打开了 AIGC 大规模应用世界的大门。随后,谷歌 这些数据将被用来「训练」我们的模型。我们可以将这些数据绘制成散点图,横轴是房屋的面积(平方米),纵轴是房屋的租金(元/月)。如下图所示: -![房屋面积与租金的关系](bring-intelligence-to-machines/House_price_vs_size.png) +![房屋面积与租金的关系](bring-intelligence-to-machines/House_price_vs_size.png#center) 从图上我们可以直观地看见,我们可以用一条直线来刻画和租金之间的关系——具体地说,如果把面积记作 {{}}x{{}},把对应的租金记作 {{}}y{{}},那么它们之间的关系就可以用方程 {{}} y = ax + b {{}} -来描述。这个方程就是我们的「模型」,其中 {{}}a{{}} 和 {{}}b{{}} 是这个模型的「权重」。{{}}a{{}} 和 {{}}b{{}} 的值决定了这条直线长什么样,也就决定了我们的模型对租金的预测效果。 +来描述。这个方程就是我们的「模型」,其中 {{}}a{{}} 和 {{}}b{{}} 是这个模型的「参数」。{{}}a{{}} 和 {{}}b{{}} 的值决定了这条直线长什么样,也就决定了我们的模型对租金的预测效果。 -现在,我们的目标就是:对上面那 20 个房屋数据进行「学习」,来找到**最合适**的 {{}}a{{}} 和 {{}}b{{}},这样我们的模型就可以胜任「预测租金」的任务了。由于这个模型是一个线性方程,这个问题又被称为「线性回归」问题。 +现在,我们的目标就是:对上面那 20 个房屋数据进行「学习」,来找到**最合适**的 {{}}a{{}} 和 {{}}b{{}},也就是参数,这样我们的模型就可以胜任「预测租金」的任务了。由于这个模型是一个线性方程,它被称为「线性回归」模型。 #### 「损失」函数 @@ -176,7 +185,7 @@ L = \sum_{i=1}^{20} (\hat{y_i} - y_i)^2 = \sum_{i=1}^{20} (ax_i + b - y_i)^2 观察上面的式子,在那 20 个样本点给定,也就是说 {{}}x_i{{}} 和 {{}}y_i{{}}({{}}i = 1, 2, \cdots, 20{{}})都是定值的情况下,{{}}L{{}} 只和 {{}}a{{}} 与 {{}}b{{}} 有关——{{}}L{{}} 是一个关于 {{}}a{{}} 和 {{}}b{{}} 的函数,我们记作 {{}}L(a, b){{}}。 -现在,模型的训练问题,就被我们抽象成了求这个函数 {{}}L(a, b){{}} 的最小值点的问题。 +现在,所谓「训练模型」,就是求这个函数 {{}}L(a, b){{}} 的最小值点。 #### 梯度下降 @@ -184,35 +193,10 @@ L = \sum_{i=1}^{20} (\hat{y_i} - y_i)^2 = \sum_{i=1}^{20} (ax_i + b - y_i)^2 {{}} L(a, b) = \sum_{i=1}^{20} (ax_i + b - y_i)^2 {{}} -比较简单,我们可以直接通过求(偏)导数的方式找到最小值点。但是,当模型的参数量不是 2 而是 2000 甚至 2 千万时,当模型不再是线性的而是复杂函数构成时,直接「解」出最小值就不太可行了。我们需要寻找一个「通用」的方法,对于任何一个损失函数,都可以有效地找到我们需要的最小值点——哪怕不十分精确,但是足够接近就可以。这个方法就是「梯度下降」。 +比较简单,我们可以直接通过求(偏)导数的方式找到最小值点。但是,当模型的参数量不是 2 而是 2000 甚至 2 千万时,当模型不再是线性的而是复杂函数构成时,直接「解」出最小值就不太可行了。我们需要寻找一个「通用」的方法,对于再复杂的失函数,都可以有效地找到我们需要的最小值点——哪怕不十分精确,但是足够接近就可以。这个方法就是「梯度下降」。 -{{< details title="直接求损失函数的最小值点" open=false >}} -计算得到 -{{}} -\left\{ -\begin{aligned} -\frac{\partial L}{\partial a} &= 2 \sum_{i=1}^{20} x_i (ax_i + b - y_i)\text{,} \\ -\frac{\partial L}{\partial b} &= 2 \sum_{i=1}^{20} (ax_i + b - y_i)\text{,} -\end{aligned} -\right. -{{}} -令 -{{}} -\frac{\partial L}{\partial a} = \frac{\partial L}{\partial b} = 0\text{,} -{{}} -则可以解出 -{{}} -\left\{ -\begin{aligned} -a &= \frac{\sum_{i=1}^{20} x_i y_i - \frac{1}{20} \sum_{i=1}^{20} x_i \sum_{i=1}^{20} y_i}{\sum_{i=1}^{20} x_i^2 - \frac{1}{20} (\sum_{i=1}^{20} x_i)^2}\text{,} \\ -b &= \frac{1}{20} \sum_{i=1}^{20} y_i - a \frac{1}{20} \sum_{i=1}^{20} x_i\text{。} -\end{aligned} -\right. -{{}} -可以证明,这一组 {{}}a{{}} 和 {{}}b{{}} 使得损失函数 {{}}L(a, b){{}} 达到最小值。 - -这种算法称为「最小二乘法」。 -{{< /details >}} +> 对于这个线性回归问题,直接求出最小损失值点的方法被称为「最小二乘法」。 +> 让我们先把刚刚的损失函数放到一边,考虑一个(可导,但是无法直接解出导数零点的)一元函数 {{}}f(x){{}},我们的目标是找它的最小值点。我们可以先随意挑一个 {{}}x_0{{}} 作为起点: @@ -230,20 +214,27 @@ b &= \frac{1}{20} \sum_{i=1}^{20} y_i - a \frac{1}{20} \sum_{i=1}^{20} x_i\text{ 对于有多个自变量的函数,它在某一点处对不同自变量的(偏)导数值共同构成了「梯度」。在上面的一元函数例子中,导数值反映着图像在一点处向上向下的趋势,而在多元函数中,梯度则反映着图像在一点处最快上升和下降的方向。因此,对于多元函数,我们可以用「梯度」来指导我们的「走」的方向——我们每次「走」的方向,都是梯度指向的函数值减小最快的方向。不断地重复训练,我们就能逐步接近函数的(局部)最小值点。 -(这里要画个图,但是我不会画) - 回到具体问题中的损失函数 {{}}L(a, b){{}},即使这个函数非常复杂,只要它可导(微),我们就可以从一个随机的起点开始,用梯度下降的方法逐步找到它的最小值点。模型训练的过程,核心就是这一梯度下降的过程。 -当然,在实际的训练过程中,我们会用到许多优化的技巧,比如「随机梯度下降」、「Adam 优化器」等,以加速训练的过程。但是,无论怎样的优化技巧,它们的本质都是在「梯度下降」的基础上进行的。 +当然,实际的训练过程中还会对许多细节进行优化。譬如,上文中提到的学习率 {{}}\alpha{{}} 的取值,对训练的效率有着至关重要的影响。选择合理的 {{}}\alpha{{}},对 {{}}\alpha{{}} 动态地调整,就能有效地提升训练效果。此外,当样本点的数量不是 20 个而是 2000 甚至 200 万个时,对样本点的处理方式亦十分关键。不过,「万变不离其宗」,这些优化的方法都是围绕着「梯度下降」这个核心展开的。 + +### 模型在变,核心未变 + +租金预测问题是一个非常简单的「预测」问题,它所使用的模型只有两个参数,模型的形式仅仅是一个线性方程。然而,从这样简单的线性回归问题,到复杂无比的 AI 对话模型,训练它们的核心原理却并没有本质的区别。不管模型多么复杂,参数数量多大,训练模型仍然需要构造合适的「损失」函数,收集大量的训练数据,通过(类似于)梯度下降的方式,逐步调整模型参数,让损失函数的值逐渐减小。这一切未曾改变,只是在更加复杂的模型和更加庞大的数据集上进行罢了。 + +在看完上文的介绍之后,你对一个 AI 模型从诞生到应用的过程应该有了一个大致的了解。下面我们总结一下这个过程: + +- **需求分析与模型设计**:我们要根据实际的需求设计出合理的 AI 模型,确定模型的结构等技术细节。在上面租金预测的例子中,我们通过「观察」数据特征,选择了线性回归模型;而面对更加复杂的场景,更加复杂、能力更强的模型也会被设计出来。 +- **数据采集与预处理**:我们需要收集大量用于训练的数据。对于租金预测,那 20 个样本就是我们全部的训练数据。现实中,我们不仅需要收集海量数据,还要对数据进行清洗、去噪、标注等处理。 +- **模型训练**:将训练数据送入模型,梯度下降调整模型参数,再重复这个过程——就这样。这个过程是整个 AI 模型开发中最为耗时的一个环节,但是它的本质,与我们上面讲的线性回归模型训练过程并没有太大的区别。 +- **模型验证**:在训练结束后,我们还需要想办法验证我们模型的效果。常用的方法是再另外收集一些数据,将数据送入模型进行预测并与实际值进行比较。如果模型的预测效果不好,我们还需要回到训练环节,调整模型的结构、参数等。 + +这个过程中,每一步都需要大量的实验和探索。从「加减乘除」到现在的 AI 对话,AI 技术的发展是人们不断努力的结果。在未来,AI 技术还会继续发展,为人们的生活和工作带来更多的便利。 -### AI 是如何炼成的? +## 大模型、GPU 和 AI 芯片 -看完上面的内容,我们不难总结出一个 AI 模型从诞生到应用的流程: +人们已经发现,不断增大 AI 模型的规模,增加参数的数量,就能显著地提升模型的效果。现在,人们把模型参数量特别大的模型称为「大模型」[^1]。例如前文大家体验的 GLM 模型,其开源版本 GLM-4 的参数量就能达到 90 亿个。一些大模型的参数量甚至能达到上百亿。下表展示了目前一些流行大语言模型的参数量。 -- **需求分析与模型设计**:这一步,人们根据实际的需求设计出合理的 AI 模型,确定模型的输入、输出、结构等技术细节。 -- **数据采集与预处理**:人们收集大量用于训练的数据,对数据进行清洗、标注、划分等预处理工作。 -- **模型训练**:人们将预处理好的数据输入到模型中,通过梯度下降等方法,让模型逐渐「学习」到数据的规律。这个过程需要不断重复进行,直到模型的表现达到预期。 -- **模型验证与调优**:人们将训练好的模型输入到验证集中,检验模型的表现。如果模型表现不佳,人们会对模型进行调优,然后重新训练。 -- **模型部署与应用**:当模型表现达到预期,人们会将模型部署到实际的应用中,让模型为人们提供服务。 +(未完) -这个过程中,每一步都需要人们的不断努力和探索。从最初的「加减乘除」到现在的 AI 对话,AI 技术的发展是人们不断努力的结果。在未来,AI 技术还会继续发展,为人们的生活和工作带来更多的便利。 \ No newline at end of file +[^1]: 不过现在「大模型」一词其实往往被用来特指「大语言模型」(Large Language Model,简称 LLM),即我们文中所谓的「AI 对话模型」。 \ No newline at end of file diff --git a/content/menu/index.md b/content/menu/index.md index 3b5a8f20..24477d6e 100644 --- a/content/menu/index.md +++ b/content/menu/index.md @@ -24,6 +24,8 @@ headless = true - [蓝屏与解决蓝屏]({{}}) - [成为空间管理大师]({{}}) - [Windows 11 修整指南]({{}}) +- 超越篇 + - [从加减乘除到 AI 对话]({{}}) - 附录 - [练习题答案]({{}}) - [笔记本新机「开荒」指南]({{}}) diff --git a/content/revisions.md b/content/revisions.md new file mode 100644 index 00000000..c4c4ac3c --- /dev/null +++ b/content/revisions.md @@ -0,0 +1,39 @@ +--- +title: 版本修订 +type: docs +--- + +# 版本修订 + +这里记录了本作品自面世以来的所有内容更新和修订。每次更新和修订都会在这里记录,以便读者查阅。 + +- AI now: 基本完成「从加减乘除到 AI 对话」一章 (24/7/19) +- Format, fix and fine-tune: 调整网页版格式,修复一些错误,微调表述 (24/6/12) +- Content update: 更新落后内容,调整图片格式 (24/5/25) +- Every visit counts again: 现在在网页底部又可以看到网站的访问量了 (24/5/12) +- Content update: 修些小地方 (24/5/3) +- Engine changed: 更换页面引擎为 Hugo (24/5/3) +- Content update: 修些小地方 (24/4/20) +- Content update: 完成「空间管理」一章 (24/4/18) +- Content update: 更新一些小地方 (23/12/12) +- Housewarming: 迁移到境内服务器,大幅优化访问速度 (23/10/21) +- Content update: 修正错漏、更新「显示器」「蓝屏」两章 (23/10/9) +- Content update: 更新落后内容 (23/10/6) +- Checkpoint: 一周年了(大概),整点贺词 (23/2/1) +- Content update: 完成「蓝屏」一章 (22/11/20) +- ~~Every visit counts: 现在在网页底部可以看到网站的总访问量了 (22/3/19)~~ +- Content update: 完成「用户」一章 (22/3/17) +- Content update: 完成「工具软件」一章 (22/3/14) +- Content update: 完成「开荒」一章 (22/3/9) +- PDF ready: 第一版 PDF 出炉啦!(22/2/19) +- Checkpoint: 完成「跋」这一部分 (22/2/12) +- Content update: 完成「显示器」一章 (22/2/11) +- Content update: 完成「怎样寻找优质教程」一章 (22/2/10) +- Content update: 完成「压缩」一章 (22/2/8) +- Engine changed: 更换页面引擎为 GitBook (22/2/8) +- Content update: 完成「Office / WPS」「浏览器」两章 (22/1/29) +- Breaking news: 教程的编写动机改变了,因此删去了「致谢」部分 (22/1/19) +- First release: 完成「问题」一章,基础篇暂定完成,在域名上发布 (21/12/28) +- Content update: 完成「维护与防护」一章 (21/12/27) +- Content update: 完成「电脑组成」「文件管理」「软件安装」三章 (21/12/26) +- First things first: 开坑 (21/12/25) \ No newline at end of file