当前位置: 欣欣网 > 码农

从传统领域转型大模型写出畅销书:这位新加坡科研局的专家如何做到的?

2024-05-13码农

作者 | 梦依丹 受访嘉宾 | 黄佳

出品 | CSDN(ID:CSDNnews)

大模型正在刷新一切,软件开发从数字化时代进入智能化时代。 软件工程师们 正站在历史的转折点上, 在大模型的催化下,编程的门槛日益降低,人人都能成为开发者,应用开发触手可及,程序员们正步入一个既充满挑战也孕育无限可能的新纪元。

本文主人公 黄佳 是一位在软件开发行业摸爬滚打 20 多年的大数据和 AI 专家,就在他以为能靠 SAP 就能吃一辈子饭而沾沾自喜时,一位在 IBM 当项目经理朋友的一句话,给他打开了新世界的大门。

黄佳 新加坡科研局首席AI研究员,前埃森哲新加坡公司资深顾问入行 20 余年,参与过政府部门、银行、电商、能源等多领域大型项目,积累了极为丰富的人工智能和大数据项目实战经验。近年主攻方向为 NLP 预训练大模型应用、FinTech 应用、持续学习。

曾出版【GPT图解 大模型是怎样构建的】【数据分析咖哥十话】【零基础学机器学习】【SAP 程序设计】等多本畅销书,最近刚出版【大模型应用开发 动手做 AI Agent】一书。

从 SAP 到大模型,20 年程序员的转型之路

从 SAP 转型并全力以赴投身到 AI 大模型的研究与开发之中,他的经历恰是众多程序员与时代变迁下的缩影。 在此过程中,他撰写了多本 AI 方面的畅销书籍,其中【GPT图解 大模型是怎样构建的】更是获得 2023 年度十大 IT 技术图书,读者将其评价为「即见树木,又见森林 」。随后,他又将底层原理知识转化成具体的实战应用,将在【大语言模型原理与应用开发实战】当中揭晓。

Q:请先介绍一下自己,目前主要从事的工作,所用到的技术栈及日常关注的技术动态?

黄佳: 我在新加坡科技研究局做大模型的科研和落地应用的工作。

我之前长期从事 SAP 系统的设计、二次开发和实施,最近几年,则是义无反顾的投入到了大语言模型的训练、微调,以及大语言模型的应用开发工作。大语言模型的爆发只是这两年的事情,但是在这之前的好几年,我们研究所已经投入了大量的资源对基于 Transformer 架构的语言模型进行科研和应用,如 BERT、T5 等老一代模型,彼时科研项目多,但应用落地项目少。ChatGPT 系列闭源模型和 Llama3 系列开源模型问世之后,我们的企业合作、以及落地应用项目一下子多了起来。很多企业已经开始把开源或者闭源模型的能 力嵌入到企业工作和产品的方方面面。这种从科研型项目,到企业的落地应用,正是我们所乐见的。

因此,我所关心并应用的技术栈,目前很简单,就是开源和闭源大语言模型的训练、微调、量化,以及基于这些模型能力的落地应用。

Q:你最早接触编程是什么时候?可否分享一下你的编程之路

黄佳: 1988 年 9 岁的时候,我所在的小学作为试点学校购入了一批苹果电脑。 有一天,我的班主任突然问我: 你会 26 个英文字母吗?

当时我哥曾经教我一些英文,但我即不知道老师的意图,也误会了她的问题。我以为它问我会不会用英文数数,我说会 20 个,能从 one 数到 twenty。

老师说:啊,那也行啊。再学 6 个就够了。(下面的话语气很神秘,好像学校什么地方埋藏着宝贝…… 也不能让别的同学知道,应该是害怕被嫉妒…… ) 我想让你加入咱们学校的计算机小组,别和别人说呢,咱们学校有几台苹果机。

就这样,我阴差阳错的进入了计算机小组。

还记得显示器当时就做的很漂亮,白白半透明的塑料外壳后脑,比那时候的一般黑白或彩色电视机好看,屏幕是绿绿的,透着一丝神秘感。

正是这种!!!!激起了回忆杀!!!

具体学习过程印象还是挺深的,可能对于当时 4 年级小学生来说,英文是一点点小趣味。记得老师有一天讲的 Go To 语句,这个语句现在很少用到了哈哈,属于那种已经被抛弃的一类编程范式,毕竟现代程序运行时不好随便就Go To到别的地方。

老师在黑板上写:今天我们学习Go To(钩兔)语句!

哈哈哈,没办法,因为毕竟当时老师和同学都更习惯中文。

然后,我撇了一眼旁边同学的笔记,看到她记录的是:钓兔语句。哈哈哈哈,笑了一天。

学了两年多,6 年级时候,代表学校参加了编程比赛,记得大题目就是用Basic语言写算法打印杨辉三角形这类的题目。因为升初中了,就离校了,也不知道得的是几等奖,后来学弟升到同样的初中,我问他学校说没说我们得了几等奖。他说,得奖了,也发奖了,就是我代表你们领的。

Q:职业生涯中是否碰到过什么令你头疼甚至折磨你好几天的那种的 bug,最后又是如何解决的?

黄佳: 当了这么多年的程序员,那这样的时刻简直不要太多了。这就是程序员生命的一部分不是吗?

我曾经支持过我当时所工作的国家的公务员的 Payroll 和全国公积金系统,每天晚上进行几百万人的批处理,然后把文件发给相关几十个上百个部门(各种银行,金融机构)。如果晚上系统 batch job fail 突然掉,凌晨三点接到领导电话马上起来 Debug,找到方案,解决问题,如果解决不了问题,那么也要确定下一步的计划,比如请求客户通知各大银行今早推迟拉取文件 4 个钟头(也就是说下 4 个钟头必须解决问题,因为你总不能让客户一而再再而三的通知各大银行推迟发钱)。有的时候,以为找到了解决方案,结果一个 change 进入了 production 系统,又搞砸了其它相关的模块。

奇怪的是,我其实并不记得这些具体的艰难跋涉和痛苦了,就好像,一个程序和项目过去了,就湮灭在历史的长河中,再也回忆不起来了。我认为这和我一直从事的都是具体业务的程序设计,而不大涉及系统架构的原因,因此我遇到的问题都是很具体的,解决方案也都不是通用性质的。

但是,有一点无疑,那就是:

1. 所有问题最终都是有解的;

2. 新的问题也会不断回来的。

作为程序员,永远战战兢兢,永远如临深渊,永远如履薄冰。

Q:在你 20 多年的技术编程生涯中,你是如何保持保持对新技术的敏感度和学习热情的?

黄佳: Stay hungry stay foolish.

我觉得人生有转变是非常幸运的事情。其实我不是一直对新技术敏感的,有长达 15 年左右的时间,我在做同一件事情,就是 SAP 程序设计。我持续的重复自己,然后沾沾自喜,说你看一个技术栈,居然可以红火十几年,也许会一直红火下去,也许我可以靠完全一样的技术,吃一辈子的饭。就像老一辈的 COBOL 程序员现在仍然很吃香,不是吗?

直到有一天,终于到了一个没有任何挑战,没有任何新意,没有任何激情的状态。工作仍然在那里,我已经驾轻就熟,轻车熟路。但是我不再拥有创造的意义感。

此时,一个在 IBM 当项目经理,也在内部做过一些 Coaching 的朋友(前辈)告诉我说,「哦,如果你无聊的话,也可以学学机器学习,现在很热门的呦,你知道吗?吴恩达的课程听说过吗?我也试着学了学,前两课讲的还听清楚的,我通过了,到第三课开始编程了,我就学不进去了。你可以试试。」

嗯嗯嗯。我可以试试。我想也是如此。我应该试一试。

于是我就开始了。—— 一扇新世界的大门从此打开了。

大概 1-2 个月后,我拿到了吴恩达在 Coursera 上面的机器学习课程结业证书,而与此同时,我的第四本著作【零基础学机器学习】也基本定稿了(前三本著作都是 SAP 技术)。——是的,学习和写作的过程,对我来说通常是同一个过程,因为只有如此,我才能够真实的记录初学者的疑虑、烦恼、从不懂到懂的心路历程和所有困惑。

之后,我真的爱上了 AI 这个领域,这个领域发展很快,我感觉自己从一个半退休的老家伙又重回青年人的状态,我进入科研机构,和一群同事们学习,读最新的论文,做项目。AI 领域中的大量精巧算法令我非常非常着迷 (举个例子,比如生成式对抗网络 GAN 的左右手互博原理,ResNet 中的残差链接,再比如 CNN 的卷积核权重共享和特征提取思想、RNN 的循环连接思想等)真是不胜枚举 ,数不完也说不清。

总之,重拾激情吧。只有激情和改变,与时俱进,你才能够持续的热爱生活。

黄佳最新【大语言模型——原理与应用开发实践】即将上线

大模型时代,哪些技能会被放大?

大模型正重塑软件开发,测试驱动开发创始人 Kent Beck 在推特上写道:尽管过去的职业技能中有 90% 会被淘汰,但剩下的 10% 技能将被放大 1000 倍。

Q:在 CSDN 发布的 【2024 AI 开发者调查报告中】,90% 的开发者已使用代码智能助手/生成工具,相比传统编程,大模型时代下的开发者应该更注重哪些技能的提升?

黄佳: 这 3 方面的技能可能对程序员大有裨益:

  • 对业务的深刻理解;

  • 强大的与人沟通的能力,解决问题不重要,编码也不那么重要,如何让你的领导听懂你说什么还是挺重要的;

  • 架构能力和逻辑思维 —— 代码再容易写,也需要人告诉 AI 要怎么设计,设计什么。

  • Q:会说话就能当程序员,未来只需学习自然语言就能编程?你觉得大语言模型时代,程序员还有必要学习编程语言吗?或者说一些基础算法、数据结构这些基础知识?

    黄佳: 答案不言自明。如果你的目标是一个普通码农,学不学都无所谓,学什么都无所谓。如果你的目标是一个技术工匠,你就用工匠精神去学习。好比一个精通 18 般武艺的厨师炒出来的菜,和一个用微波炉加热预制菜的服务生,对于一个只需要填饱肚皮的人来说,价值是相同的。如果我们的客户全都是只需要填饱肚子的人。

    同理:AIGC时代,我们还需不需要艺术家去一笔一笔地绘画?

    Q:2024 年被外界解读为大模型应用落地元年,在你主攻的 NLP 预训练大模型应用层面,你觉得当前面临哪些挑战和问题?

    黄佳: 挑战和问题非常多,每一个都是你我的机遇:

    1. 无法实际落地 —— 这是一个范式的改变,大家还在理解之中,这是从严谨的程序设计逻辑到自然语言编程的范式改变,诸多问题需要解决;

    2. 找不到落地场景 —— 需要一个发现场景的慧眼;

    3. 安全性和幻觉 —— 随着大语言模型能力越来越强,以及RAG的上下文变长,模型有所参照,相信这个问题会逐渐有答案;

    4. 算力需求大 —— 摩尔定律会化解。

    Q:ChatGPT 和 Llama3 各自所代表的闭源和开源模型已落地到千行百业的应用中,这里想插个技术圈一直伴随的争议,就是开源大模型和闭源大模型,你如何看待两者之间的争论,未来是大模型开源称霸一方还是闭源遥遥领先?

    黄佳: 我是这样看待的,二者是会永远共存并且可以互相印证,彼此促进的。这就像历史上的 Unix vs Linux,MS Office vs WPS,并不会是谁吃掉谁,而是相互激发着、刺激着彼此的成长。

    更具体一些说:

  • 开源模型,如 Llama3,提供了透明度和可访问性,使研究者和开发者能够自由地修改、改进和适应这些模型以满足特定的需求。开源策略促进了创新的速度和广度,因为它允许全球的贡献者共同解决问题和分享解决方案。这种模式可以加速技术发展和应用的普及,特别是在学术界和初创企业中。

  • 闭源模型,如ChatGPT,通常由商业公司开发,可能在资源、专有数据集和商业驱动的创新方面具有优势。闭源策略有助于保护知识产权和商业秘密,可能导致在特定领域或应用中具有更精细调优的性能。

  • 关于未来哪种模式将占据主导地位,这很难一概而论。可能的情况是开源和闭源模型将继续并存,各自在不同的环境和用途中发挥优势。开源模型可能会在学术研究和开放创新领域继续扩大影响力,而闭源模型可能会在需要高度专业化和商业化的应用场景中占据主导地位。具体选择哪种模型,可能会根据业务需求、成本效益和技术支持等多种因素综合考虑。

    另外,随着 AI 领域的快速发展和法规政策的逐步完善,未来可能会出现新的模式或者对现有模式的调整。例如,可能会有更多的合作模式出现,结合开源的创新能力和闭源的资源优势,来共同推动大模型技术的发展。

    这种趋势可能会导致更多的跨界合作和技术共享,从而推动整个行业的进步。——作为科研人员,以及应用开发人员,这种竞争和合作都是我所乐见的。因为OpenAI 和 GPT一家独大的情况,对每个人来说肯定也不是好消息。

    目前,我已经欣喜的看到,在商用闭源模型领域,Claude3 Opus模型已经在很多方面超越了GPT-4,当然GPT-5也随时会再度出场赶超。而开源模型领域,优秀的模型如Lllama3, Mistral系列模型,以及Phi-3系列模型,都在积极的靠近GPT-4。我们抱着非常积极的心态期待未来创新的不断涌现。

    Q:大模型智能体(Agent)技术也非常火爆,可否给我们分享一些案例,在你的课程中,是否会有这方面的内容分享?

    黄佳: 好的,恰好这一段,我正在聚焦于Agent的研究工作。Agent其实就是由大模型驱动的、会自主决策的自动化应用程序。

    学 Agent,最重要的是两点:一是学习先进的 Agent 认知框架(比如 CoT、ReAct 、 Self-Ask、Plan-n-Execute);二是学习集成了先进 Agent 认知框架的开发平台(比如 LangChain、LlamaIndex,以及 OpenAI Assistants)。

    从先进的 Agent 认知框架来说,吴恩达老师最近总结了 4 大范式。

    这四种基本的思维框架设计模式分别是:

  • 反思(Reflection):Agent 通过交互学习和反思来优化决策。

  • 工具使用(Tool use):Agent 在这个模式下能调用多种工具来完成任务。

  • 规划(Planning):在规划模式中,Agent 需要规划出一系列行动步骤来达到目标。

  • 多 Agent 协作(Multiagent collaboration):涉及多个 Agent 之间的协作。刚才说的.. ..都是这种认知模式下的产物。

  • 那么在课程中,我剖析得更为具体,分为:

  • CoT(Chain of Thought) 通过引入连贯的思考过程来引导模型进行更深入的逻辑推理,极大地提高了模型处理复杂问题的能力;

  • Self-Ask - 允许模型自我生成问题,进行自查询来获取更多信息,然后再结合这些信息生成最终答案;

  • Reflection - 增加了自我反思和自我改进的能力,不仅仅是在解决单一问题时进行思考,而是利用长期和短期记忆来优化整体的决策过程;

  • Function Callings/Tool Calls - 工具调用机制就如虎添翼 赋予了大模型更多的环境交互和掌控环境的能力;

  • ReAct框架是推理和行动的整合,Reasoning and Acting, ReAct框架的核心思想在于 在思考,观察和行动 反复循环,迭代,不断优化解决方案,知道问题最终解决位置,这就不仅使Agent能够进行复杂的内部推理,还能实时反应并调整其行为以适应不断变化的环境和需求。这进一步增强了模型的交互能力和应用范围,代表了在Agent认知框架发展中的一个新的里程碑;

  • Plan-and-Solve – 先做计划,在执行任务,步步为营,这样就更能够增加任务的完成度。

  • 这些推理框架,我们并不只是理论上面去讲解,而是全部有代码实现,通过实战案例来学习如何设置Agent 的思维框架。

    下一步,就是 Agent 应用开发框架,或者说工具的实战。

    每一个框架,我们也会配备具体业务案例进行实战演练。

    Q:你觉得学习大模型智能体(Agent)技术需要具备哪些编程基础?

    黄佳: 1. 只需要简单的编程基础

    2. 清晰的逻辑思维

    3. 对大语言模型原理的深入理解 (最好手撕几次Transformer架构)

    4. 大语言模型的开发框架/API

    大模型时代,程序员大可不必焦虑

    Q:AI 技术正以日为单位飞速进展,每一天都见证着技术的跃进与创新的火花。语言模型领域 Claude 3、GPT-4、Gemini 1.5 争先树立了新的评测标杆,而开源模型界也不甘落后,Llama 3、Grok-1.5 以及 Mixtral 等项目的活跃发展,在这个竞争激烈的大模型时代,程序员如何摆脱技术变革所带来的焦虑或者不安心理?

    黄佳: 只有跳进来学这一条路,而且,AI 技术对于应用开发人员来说不难,开发人员做提示工程设计、做大模型开发是降维打击。但是需要知道学什么,知道怎么学。因为这个技术栈内容很杂,很容易钻到一个兔子洞里面去出不来,但是学的东西又不实用。我的建议是先总览全局,再找到自己喜欢的点深入钻研。

    最后:不必焦虑,也不必觉得自己年龄大(反正你年龄应该是没我大),因为不仅仅你是新手,所有人都是新手。奥尔特曼第一次看到 GPT-4 也是和你我一样震惊,他也是新手,每一个人,包括 GPT-4 的创建者,都是和我们一样,从 0 理解 GPT。现在 GPT 已经在那里了,等着我们去从 0 开始思考,怎么有创造力的去使用它。

    Q:对比市面上的其它大语言模型课程,你是否可以谈谈这门课的亮点是什么?

    黄佳: 我从这几点谈谈这门课:

  • 实用性,我强调代码实战。亲手编码较多,每天都在尝试用大模型编码,做实际项目;

  • 覆盖面广,从大模型原理、应用、到开发实战、到微调量化,总揽全局,厘清脉络,各种开发框架之间的关联和比较;

  • 适合初学者。我的风格是从0到1,循序渐进,初学者通常会觉得非常舒服;

  • 集体学习,加入群,一起进步,这个学习氛围会让你很有收获。

  • Q:在担任技术教练的过程中,有哪些让您难忘的学员或案例?

    黄佳:我目前的经验集中在做项目,和写作书籍、专栏课程上。我的作品让我拥有了一大堆支持者,他们的鼓励让我不断前进。

    这是其中部分读者和粉丝对我课程和作品的鼓励与评价:

  • 我喜欢读者「终于摆脱碎片化,完成了拼图」这样的赞叹;

  • 很喜欢读者的一句话:见树木,又见森林。希望我们的课程能够给学习者带来全局观。

  • 收到的肯定实在是太多太多了,这些激励着我尽力而为,做好自己作为一个知识传播者的本分。

    有关【大语言模型——原理与应用开发实战】的课程大纲及更详细内容, 欢迎大家扫描课程小助理微信 领取。