第五季回归 让我们一起共赴AI时代!
你好,我是郑晔!
我又回来了!带着我的第五个专栏《程序员的 AI 开发第一课》回来了!
之前,我用了三年时间在《极客时间》写了四个专栏,把脑子里已经形成知识体系的东西都完整呈现出来了。如今,距离我的第四个专栏《程序员的测试课》已经过去了三年。期间,极客时间的编辑问过我好几次,要不要再写一个新专栏,我的答案都是不了,因为我实在觉得没有什么能拿得出手的东西了,直到 ChatGPT 的出现。
ChatGPT 几乎以一种横扫千军之势让所有人重新认识了 AI,像 LLM、GPT 这样拗口的技术词汇也已经变得耳熟能详。从 2023 年初开始,因为一些项目的机会,我开始接触 AIGC 相关的内容。这个领域新东西层出不穷,我也有了一种眼花缭乱的感觉:一会儿新的大模型问世,一会儿文生图得到了改进,一会儿可以克隆声音了。
如果只是更好的模型,可能我还会觉得 AI 只是一个好玩的工具,但看到一些借助这些模型开发的应用,我知道,可能有新的应用开发模式要来了。当我有机会接触到 LangChain,读着它的代码,我感受到了一种前所未有到编程模式。
我已经从业二十多年了,尽管我们常说软件领域飞速变化,但在我看来,技术的变迁并不快,因为大多数变化只是表层的变化,真正底层的变革少之又少,而 LLM 引发的编程范式转变是前所未有的,基于大模型的 AI 应用开发需要我们有不同的编程范式。
传统的应用开发和 AI 应用开发之间有什么差别呢?如果说传统的应用开发是程序员把执行规则一条条写在代码里,那么基于大模型的 AI 应用开发最大的差异就是,有些执行规则是由模型替我们判定的。
正是认识到这些变化的存在,我更积极地探索 AI 应用开发,我深深地感到 AI 不再是离我们很遥远的 AI,它会慢慢渗透到我们的日常开发工作中。2023 年 11 月,我写了一篇公众号文章《 程序员的 AI 三重境界》,分享了我对程序员使用 AI 的理解:
-
作为用户的程序员
-
作为 API 调用者的程序员
-
作为模型调教者的程序员
在我看来,每个程序员都应该积极地拥抱 AI,因为我们往往是离新技术最近的一群人。但是,对大多数人来说,困难的永远不是理念,而是行动。我想学习 AI,但该怎么学呢?这个问题其实也困扰着当时的我,因为 AI 的新东西太多了,单独学每个 AI 工具,或是每个 AI 框架,学到的东西也必然是零散的。
诚如我在自己专栏一贯秉承的理念,我希望有一个知识框架让相关的东西各就其位,这样,再有新东西出来,我们就可以更好地将它放在一个合适的地方。经过一段时间的梳理,我终于找到了一个可以支撑起这些内容的框架:AI 应用开发。于是,就有了我的第五个专栏 《程序员的 AI 开发第一课》。这个专栏核心回答的就是一个问题: 如果我要开发一个带有 AI 功能的应用,我需要知道什么。
这个专栏的基础内容就是脱胎于《程序员的 AI 三重境界》,算是时隔一年,在这篇文章上思考继续深入的结果。专栏包括了三个模块:
-
大模型基础
-
应用开发
-
模型能力
大模型基础站在用户和技术的角度去理解大模型以及提示词的使用方法,它可以帮助我们更好地使用大模型。应用开发是整个专栏的核心,介绍了两个基础但最为典型的 API——OpenAI API 和 LangChain;并以此为基础,介绍了常见的应用类型:聊天机器人、RAG 和 Agent;还讲到了一些工程实践,如记忆、缓存等。模型能力则是为了应对很多企业出于更多实际考虑,需要部署自己大模型的情况。
一如我的其它专栏,这个专栏并不是学习的终点,而是一个起点,希望它能够帮助你更好地学习后续的很多东西。如果在学过这个专栏之后,你有了继续前行的勇气和动力,那才是我写作这个专栏的最好结果。
这个专栏与之前专栏最大的差异是,之前的专栏写的基本上都是行业共识的东西,而 AI 相关的东西正处于快速的演化过程中。我实在不敢说这些内容是否会有陈旧过期的情况,我只是尽力地选择一些有长期价值的内容,因此,我只能抱着一颗交流的心去开启这个新专栏。
一个老朋友曾经这样评价我:通过给别人讲东西,把自己给讲明白了。这大概是写专栏于我最大的价值。时至今日,我也在每天不断地学习 AI 的过程中,这个专栏的创作过程中,我感觉特别明显,总会新内容不断地出现。所以,这一次,我想欢迎所有我专栏的老同学和我一起前行,让我们共同携手,一起进步,共赴未知 AI 的新时代!