购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

在过往的经历中,有两类技术的自学让我感到困难,一是Unity3D,二是Hadoop。对于前者,自学的难点在于编程中涉及大量向量和物理运算,我需要花时间重新回忆并熟悉它们;而对于后者,我尝试读过不少Hadoop入门书,却常常会读得头昏脑涨!HBase、Hive、Pig、YARN、Spark似乎既相关(都离不开分布式、开源、数据、计算框架这些关键词)又各不相同,学习Hadoop不是学一门单一的技术,而是像选修一个技术方向。

学AI应用开发是不是也像学上述两种技术那样困难?恰恰相反,我觉得AI应用开发与传统开发无异——尽管表面上看并非如此。

科技行业有自己的时髦词汇,有些是实打实来自技术或者方法论的演进,如分布式、边缘计算、测试左移等;而有些可能是华而不实的辞藻,如所谓的“云技术”,不过是从云厂商租用服务器而已。在人工智能(artificial intelligence,AI)技术爆发的这几年,我们对AI领域的时髦词汇都已经耳熟能详,如神经网络(neural network)、大语言模型(large language model,LLM)、机器学习(machine learning)、智能体(agent)等,这些都属于扎实的技术术语,掌握它们没有捷径,可能需要高等数学和矩阵计算的知识储备作为支撑。

对于想踏入AI领域的开发者,所有这些都是不透明的。例如,如果我想制作一款将音频内容转换为文本的AI应用,如何判断对我来说“了解什么是机器学习”是不是达成目标的充分必要条件?这是每个人跨入一个陌生领域时都会遇到的问题。

怎么解决这个问题?一种“简单粗暴”的方式是:如果我想知道“机器学习”对达成目标有没有影响,就去搜寻与机器学习有关的视频课程,在理解的过程中感受、判断。听上去很理想、很直接,但现实可能是:

我满心欢喜点开一个号称5小时入门机器学习的视频课程,却发现它默认我拥有高等数学基础。

我找到第二个颇具潜力的视频课程,在观看过程中发现它引用了该视频创作者之前发布的一段关于“梯度下降算法”的视频内容,于是我又跳转至“梯度下降算法”视频补充上下文,继而又发现它依赖该视频创作者更早期发布的一段关于“线性回归”的视频内容,于是我不得不又前往那个视频去补充新的知识点……如此往复,我很难判断我是离想要的答案更近了还是更远了。

我找到同时包含理论讲解和Python示例代码的第三个视频课程,但我不是一个有Python语言背景的开发者,其中有一些Python语法(如复杂的字典推导式)实在让我困惑,于是任务的优先级又变成了“先学Python”。

这时候我才意识到,这种碎片化的学习方式并不是一个好的选择,更好的选择是寻找一本系统化的、理论与实践相结合的书边学边做。

这是我的真实经历。在过去几年中,因身边无人指引,我在学习AI应用开发的过程中走了不少弯路。如今我常想,对一个AI应用开发“门外汉”来说,理想的学习路径应该是什么样的?这个问题的答案对刚踏入这个领域的人很有价值,这也是我编写本书的出发点。

我不得不承认,探寻技术深度的同时兼顾技术广度是不可能完成的任务,我只能通过以下问题做出取舍:我究竟想要什么?我想要的是不是自己力所能及的?我为此付出是否值得?

也许我可以把YouTube上吴恩达主讲的全部机器学习斯坦福公开课学完,但这对我用OpenAI接口开发一个将音频内容转换为文本的AI应用的帮助有多大呢?甚至对我的职业发展的帮助有多大呢?掌握知识一定有益,但考虑到边际效用递减,在我看来想清楚“不学什么”比确定“学什么”更重要。这既不是什么新问题,也不是什么新思路。

如果我说,在AI应用开发中,开发者无须关心Gemini、Claude等大模型的内部实现,也不用了解OpenAI开发平台的工作原理,是不是听上去就不那么难了?这恰好呼应了我在开头提出的观点:AI应用开发不仅不难,而且与传统开发无异。

本书将帮助开发者最大限度地利用已有知识,踏上AI应用开发的学习之旅。 tiD32bAzpHYHD3IEdUVJ9eUIvxXsaTH3rn54JSFjyPX/1IBZYskI6+2O0NIRD0zl

点击中间区域
呼出菜单
上一章
目录
下一章
×