AI 导读
# 导读
在 2016 年,我离开了飞速发展的拼多多,在年底创办了一家人工智能聊天机器人的公司 BotHub。那个时候,Transformer 这个当前最重要的基础模型还没有被提出来。我们尝试过各种机器学习模型、开源的软件包以及各种云平台提供的解决方案,也通过数据标注、模型的训练,为不少中国出海的企业提供了面向普通消费者的智能聊天机器人。但是在这个过程中,我们始终没有摆脱“有多少人工就有多少智能”这样一个诅咒。所有的“智能”都来自于大量的人工数据标注,甚至很多硬编码的业务规则。而即便这样,在很多特殊情况下,“人工智能”还是表现得像一个“人工智障”。也因为如此,整个智能聊天机器人的服务也显得很不经济。
直到 ChatGPT 的出现,我有一个强烈的感觉,那就是“强人工智能”已经来了。这一次人工智能领域的进展,完全不同于 80 年代的学习理论,也远远超越了 2012 年的深度神经网络的意义,它会变成一场席卷全世界的风暴。AI 应用不仅仅是算法工程师和机器学习研究人员的专利了,而是变成了每个工程师都可以快速学习并参与开发的领域。
# 人人都应该学习如何开发新一代 AI 应用?
AI 算法工程师原先是一个专门的工作。原来我们的技术团队里,都会分工成产品经理、UI/UE 设计师、前端开发、后端开发、大数据团队和 AI 算法这样一系列的工种。大部分人对于 AI 也只是有个概念性的了解,其实相对缺乏深入的认识。我为什么说,人人都应该拥抱新的 AI 浪潮,要去了解怎么开发新的 AI 应用呢?主要有 3 个原因。
第一个原因,是这一轮的 AI 浪潮里,开发新的 AI 应用的门槛大大降低了。过去,AI 应用开发是一个门槛比较高的领域。你需要有不错的数学基础,熟悉微积分、线性代数和概率论;然后掌握大量的机器学习和深度学习的知识,了解各种基础模型,比如逻辑回归、SVM、CNN、LSTM 等等的原理和实现;接着,你还要学会使用各种机器学习的编程框架,比如 TensorFlow 或者 PyTorch,买上一块价格不菲的 GPU 尝试训练模型;最后,你还需要理解在实际应用里锤炼机器学习的各种实战技巧和模型,比如各种各样的特征工程方式、Dropout 等正则化方法、超参数调优等等。对于没有相关经验的人来说,不花上个一两年时间,你可能很难说得上能用 AI 算法做出一些有价值的产品出来。
但是这一轮的 AI 浪潮完全不用。伴随着 GPT-3、Stable Diffusion 这样预训练好的大型基础模型的出现,以及这些模型的能力通过开放 API 的形式提供出来,即使没有任何机器学习的理论知识,你只需要一两天时间,就能做出一个能解决实际问题的 AI 应用。
比如,最近你在 GitHub 上就能看到很多工程师,花上 1-2 天时间就做出来的图书翻译、人工智能语音对话的应用。任何一个稍有开发经验的工程师,都能够在几周甚至几天之内,学会使用这些基础模型以及相应的开放 API 开发出有使用价值的应用。
第二个原因,是这一轮的 AI 浪潮里,对应技术能够应用的范围非常广泛,可以说是包罗万象。AI 本身是计算机刚刚发明出来就有的学科,在历史的进程中也有过很多次大的进步和发展。比如 80 年代学习理论(Learning Theory)的发展,就使得 SVM 在实践中被大量应用。2000 年之后随着互联网广告的高速发展,海量参数的分布式机器学习就被广泛运用在搜索、推荐和广告的业务中。2012 年随着 AlexNet 的发布,深度学习和卷积神经网络(CNN)就带来了计算机视觉的爆发。但是,这些历史的发展,往往只是某一个细分领域上的进步。而且这个过程里,对于每一个具体问题我们都要单独收集数据、训练单独的机器学习模型来解决里面某一个小问题。
从 2020 年的 GPT-3 开始,拥有海量参数的大模型登上了历史舞台,直接使用 GPT-3 这样的预训练好的大语言模型,无需任何微调,就能解决情感分析、命名实体识别、机器翻译等一系列的自然语言处理问题。而对于很多 AI 没见过的问题,也只要通过自然语言给到 AI 几个例子,通过“小样本学习”(Few-Shot Learning),AI 就能给出正确的回答。
在计算机视觉上,像 2021 年 OpenAI 发表的 CLIP 这样的模型也有类似的效果。我们对于图片的分类不再局限于预先的人工数据标注的类别,而是可以扩展到任何类别上去。在自然语言、语音、视觉,乃至这些领域相互融合的多模态领域里,AI 同时在加速发展、在进步。
这一轮的 AI 浪潮开始让我们看见了“通用人工智能”(AGI)的雏形,AI 应用的覆盖领域被大大扩展了,几乎任何一个问题都有机会通过 AI 来解决优化。今天你所在的行业和领域,都有机会通过简单的 AI 应用开发,提升效率和产出。
第三个原因,是这个浪潮带来的变化会对我们每一个人的工作带来巨大的冲击。在过去短短的两三个月里,在个人生活里,我已经习惯于让 AI 帮我写代码,翻译英文资料,修改我写过的文章,为文章配图。在工作上,也已经让 AI 来优化商品文案、优化商品搜索,并且进一步开始尝试让 AI 承接更多原本需要由人来进行的工作。
我不知道 AI 会不会让你失业,但是善用 AI 的团队和公司接下来一定会有更高的效率和产出。无论你是产品经理还是工程师,是产品运营还是美术设计,在这一轮 AI 浪潮下,你的工作性质都会产生根本性的改变。AI 会像一个助手一样随时陪伴在我们身边,随时帮我们解决简单的知识性工作,甚至在很多时候给我们创意性的启发。
英伟达的创始人黄仁勋先生说,ChatGPT 的发布堪称是人工智能产业发展的 “iPhone 时刻”。而要我说,整个 AI 基于基础大模型发展出来的能力,堪比一次工业革命。固然,这个改变对很多人的职业生涯来说,也是一场危机。但是就像丘吉尔所说的,“不要浪费一场危机”,尽早去拥抱这个变化,你就有机会像在 2008 年 App Store 发布的时候去学习移动 App 开发一样,把握住未来的机会。
# 课程分成了 3 个模块
- 第一个模块,是基础知识篇。这里,我会带你探究大型语言模型的基本能力。通过提示语(Prompt)和嵌入式表示(Embedding)这两个核心功能,看看大模型能帮我们解决哪些常见的任务。通过这一部分,你会熟悉 OpenAI 的 API,以及常见的分类、聚类、文本摘要、聊天机器人等功能,能够怎么实现。
- 第二个模块,是实战提高篇。我们会开始进入真实的应用场景。要让 AI 有用,不是它能简单和我们闲聊几句就可以的。我们希望能够把自己系统里面的信息,和 AI 系统结合到一起去,以解决和优化实际的业务问题。比如优化传统的搜索、推荐;或者进一步让 AI 辅助我们读书读文章;乃至于让 AI 自动根据我们的代码撰写单元测试;最后,我们还能够让 AI 去决策应用调用什么样的外部系统,来帮助客户解决问题。
- 第三个模块,我们来重点关注语音与视觉。光有文本对话的能力是不够的,我会进一步让你体验语音识别、语音合成,以及唇形能够配合语音内容的数字人。我还会教会你如何利用现在最流行的 Stable Diffusion 这样的开源模型,去生成你所需要的图片。并在最后,把聊天和画图结合到一起去,为你提供一个“美工助理”。
# 如何学习
# 应用场景
比如基于 AI 的画图能力,有人让它创建大量的“填色本”,自动生成填色书进行售卖。How to Create Midjourney Coloring Books (opens new window)
# 通过 AI 工具改造你的学习与工作流程
分享一下我主要使用的工具和优化的流程
让 ChatGPT 成为你学习知识的助教
过去一段时间我最常用的自然是“万能”的 ChatGPT。我发现很多人觉得它没什么大用的原因是,总是问它一些过于宽泛的问题,比如“怎么学习 Java”,这样很难得到有针对性的回答。一个我最常用的用法,就是请它帮我解释一下你遇到的新知识。并且,和搜索不同,你可以针对它的回答中你不了解的知识进一步地追问,直到你觉得搞清楚了这个知识点。
注:当我研究一个新课题的时候,对于没有完全理解的名词和概念,我都请 AI 为我解释一下。
而且,ChatGPT 不仅可以解释概念,还能解释代码。你可以直接贴一段代码给到 ChatGPT,让它为你详细讲解,可以说是一个非常好的助教。而且这个助教知识广博、不知疲倦、极有耐心,绝对不会因为你有什么不懂的反复提问而表示不耐烦。
注:随手拿一段你觉得不太熟悉的代码让 AI 为你解释,比起自己去查文档要快上很多。
因为 ChatGPT 的访问限制比较严格,你也可以通过 Quora 发布的 Poe 来实现同样的目标,在 Poe 里,你不仅可以使用 ChatGPT 的模型,也可以使用好几个其他的大语言模型,你也可以比较之后选择自己最喜欢的。
通过翻译插件快速浏览英文资料
不仅在 AI,在整个软件开发领域,大量的第一手资料都是英文的。想要跟上技术的最新发展,读英文资料是必不可少的。虽然我自己的英文阅读能力也还不错,但是比起中文来还是要慢上许多。
但是,随着机器翻译的进步,我已经越来越多地使用彩云小译 (opens new window)这样的浏览器插件,将我要看的内容变成中英文对照的版本。我会快速先浏览中文翻译,如果觉得翻译得有些看不懂,或者内容特别有价值,才会去看看英文原文。通过这样的方式,在同样的时间内,我的阅读量大增,能够吸收的知识也比之前多了很多。
注:中英文对照的形式,既让我能够快速通过中文浏览,也方便在翻译不准确的时候去看英文原文。
彩云是付费产品,可以选择它的替代产品比如 https://github.com/immersive-translate/immersive-translate 或者 https://github.com/yetone/openai-translator
除了文章,现在也有越来越多的音视频的资料,比如各种各样的播客和视频。很多时效性最强最新的资料,都只有音频或者视频,而没有文字版。但是音频和视频没法像文字一样快速浏览一遍,做个判断值不值得去读。
好在随着语音识别和文本摘要的成熟,也有很多插件可以快速帮助我们将音频和视频转录成文本,然后通过 ChatGPT 背后的语言模型生成一个摘要。这样,我就可以先快速浏览一遍摘要,决定值不值得把整个视频看一遍。比如,我最近就常常用 Glarity (opens new window) 这个浏览器插件,帮助我快速总结视频内容,再来决定是否要看。
注:大神约翰卡马克的访谈,我就是先让 AI 帮我总结一下,再决定要不要完整地看整个视频
通过 AI 辅助你来读论文
而要追上最新的技术进展,去读一读论文也是一个好办法。我之前也在极客时间开过一门专门讲解大数据经典论文的专栏《大数据经典论文解读》,里面我还专门讲过论文应该怎么读。
不过现在,随着大语言模型的进展,我们还是让 AI 辅助我们来读论文。我现在,都会通过 scispace (opens new window) 这个网站,把我要读的论文先传上去。然后我们可以直接向 AI 提问题,快速了解论文讲解了什么东西,然后再来决定是不是有必要进行精读。
注:scispace 内置了很多读一篇论文你会关心的常见问题,而且可以直接指定回答的语言。
而在精读的过程中,针对公式、图表,你也可以框选出来,让 AI 给你做详细的解释。这些工具,都可以大大降低你去学习论文的门槛,提升掌握这些复杂的知识的效率。
市场上,也有许多其他类似的工具。比如 ChatPDF (opens new window) 就可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。
让 AI 先写点代码打个样
另外一个最近大幅度提升我生产效率的工具,就是 AI 写代码。如果你和我一样是个工程师,而你还没有用上 GitHub Copilot (opens new window),那我觉得你要做的第一件事情就是把它装上用起来。这个课程里的不少代码,我都借助了 ChatGPT 和 Copilot 的帮忙。
当我有一个小需求需要实验一下,我就会找 ChatGPT 来帮忙。通过直接把具体的需求描述给 ChatGPT,往往我就得到了一段可用的代码。比起自己慢慢读教程、查文档,这是一个快得多的方法。虽然有时候,这个代码不一定够完美,但是以它为基础改造一下比起从头写起来要快得多。特别是需要用到一些新的我不熟悉的包的时候,就特别有用。
而在 VS Code 里使用 Copilot 的体验也非常棒,往往只是输入了注释或者代码的开头,它就能把后面的代码直接帮你写了。如果只是一些简单的函数调用的胶水代码,Copilot 十有八九是对的。我有一些原来在 ACM 区域赛拿过金牌的朋友,都说自己现在大部分代码都是让 Copilot 来写,自己只需要负责在一些情况下修修 Bug 就好了。
没有创作灵感?让 AI 给些建议
现在也已经有了很多 AI 的写作工具,但是在实际的写作上,我倒是并不依赖 AI 来产出内容。不过,在没有灵感的时候,让 AI 帮助我头脑风暴一下还是很有帮助的。当我围绕一个主题想要写点新内容的时候,我往往可以通过 notion.ai (opens new window) 来寻找灵感。虽然它的很多主意了无新意,但也会有很多时候给出我没有思考过的角度。
我们不应当依赖 AI 给我们一个答案,但是把它当成一个助手,让它给我们多出些主意,是一个非常好的使用方法。
同样的,你还可以尝试给 ChatGPT 设置一个不同的人设,让它从另外一个角度帮助你思考题问题。这个时候,尽管你只有一个人,但是你还是可以组织一个各路大神汇聚的团队帮助你做头脑风暴。
注:让 Sam Altman 给你出出主意,如何创建一个优秀的孵化器。只要在这个头脑风暴的过程里,能得到 1-2 个对你有价值的点,就足够了。
当然,我是一个工程师,也常常写些文章。如果你是一个设计师,你自然要多尝试用用 Midjourney、Dall-E 2 这样的画图工具。我相信每个人都会有一些适合自己的 AI 工具。
# 问答
推荐一些常用和收藏的 ai 网站
ChatGPT聚合站:https://hokex.com
游戏生成站:https://latitude.io/
家庭作业辅助站:https://ontimeai.com/
文字转语音站:https://www.resemble.ai/
艺术作画站:https://starryai.com/
logo制作站:https://www.logoai.com/
openai dell.e: https://labs.openai.com/
ai写作站:https://www.getconch.ai/
音乐制作站:https://soundraw.io/
声音模拟站:https://fakeyou.com/
一句话生成一段视频:https://runwayml.com/
文字转语音:https://murf.ai/
Audio2Face 面部动画
Audio2Gesture 人物动作
Pose Tracker 可以让 AI 分析视频里的人物动作
copy.AI 人工智能文案写作工具
Perplexity.AI 智能搜索引擎
Sitekick.AI 着陆页制作工具
aiva.ai 人工智能音乐创作
Playground AI: https://playgroundai.com/
Clip Drop: https://clipdrop.co/relight
Astria: https://www.strmr.com/examples
能不能分享下AI相关的学习路径和曲线
作者回复: 每个人的学习目标和路线不太一样,而且在大模型时代,AI应用开发和对于模型的训练和研究其实彻底分开了。
如果是应用开发,我建议是多动手,这个专栏可以作为一个起点,然后多看看其他人做的开源项目解决了什么问题。找一个你自己想解决的问题,去动手实践。
如果想要深入研究如何训练大模型,一方面是动手,多去huggingface上看看别人的模型和代码。另外还是要打好扎实的基础,从一些经典的教科书开始。
线上课程的话,入门可以用 deeplearning.ai 的,深入一点,可以看看斯坦福 css224n,再往后就需要自己深入研究啦。
在国内网络环境,怎样安全地使用CHATGPT 处理咱们的数据啊?
作者回复: 数据出海有法规,敏感数据不要用ChatGPT处理哦 后面会有部分章节讲到一些开源模型,可以用这些来做私有化的解决方案,当然效果和ChatGPT有差距。
测试工程师如何抓住这次的机遇呢,开发能力没有那么强,老师有什么建议吗?
作者回复: 根据自然语言描述的需求,以及函数签名,自动生成大量测试我觉得会是一个趋势,可以看看后面讲解Langchain和链式调用的地方,我给了一个通过ChatGPT自动写单元测试的案例。
# 来源
- 极客时间《AI 大模型之美》 (opens new window)专栏笔记