当前位置: 华文问答 > 数码

程序员现在应该钻研算法还是prompt能力?

2023-11-12数码

我有一个程序员朋友,从chatgpt刚开始爆火的时候就在这个领域折腾创业项目,一开始卖gpt套壳;随着百模大战的白热化,开始做大模型聚合平台;然后有企业开始带着不同的需求找他,他又开始做知识库、开始做小说、论文等文档生成。

就这样他逐渐从一个小白,成长为了一个在大模型领域有着深厚技术实力的专家。用他自己的话说就是「只要你入了局,只要不下场,就会一直被裹挟着前进。」

程序员和算法工程师学习大模型的 切入点、路径和侧重点 应该是不一样的。

正如一块草莓蛋糕, 算法工程师可能从「蛋糕胚」这一层开始深入研究 ,理解其配方和做法,再逐步向上探索更高层次的奶油(应用)层;而程序员,应该 先研究「这块蛋糕该怎么吃」 ,然后随着吃蛋糕的需要,自然而然地切下去,深入探索奶油层下面藏着的「蛋糕胚」。

因此对程序员来说,一上来就钻研算法,站的层太低了;钻研prompt,又太片面了。 程序员的切入点,应该在AI应用层,即「蛋糕的吃法 上。

程序员钻研大模型的「舒适路径」

钻研大模型,对程序员来说比较舒适的路径是:

提示词工程->调用api->AI应用开发框架->RAG技术->Agent->模型微调相关->模型产品部署和交付

Prompt工程

基于提示词对大模型的使用,研究怎样问问题才能激发出大模型的能力。

从会调API开始

选择一个流行的大模型(GPT、chatglm、千问等),学习其官方提供的API文档。通过API进行基础的请求和响应,熟悉大模型的基本功能和限制。

AI应用开发框架

当下大模型应用,从产品形态上正在沿着 AIGC(内容生成)、Insight(知识洞察)、Copilot(智能助手)、Agent(数字代理)四个阶段演进。

而应用开发的技术栈,也在按开源和闭源两条路线不断迭代和发展。

在构建不同应用时,你会接触到各种开发框架和工具,比如LangChain、Semantic Kernel 、Assistant API...这些框架和工具尚处在探索发展过程中,因此需要程序员具备快速学习和适应的能力。

如果你是技术人员,并且也想在大模型应用开发红利中分得一杯羹,强烈建议你听一下 知乎知学堂和AGI课堂 联合推出的 免费公开课——程序员的AI大模型进阶之旅。 课程是由几位业内大佬主讲的,2节直播课,从前沿主流大模型原理到AI应用开发框架,LangChain,AI Agent,模型微调技术,都会做一个全面的系统的介绍和梳理。

现在直播中,还能与大佬对话答疑,免费名额很快就没有了,先占个位置:

很多技术人员,会对Langchain之类的框架各种吐槽,甚至对当前大模型的能力嗤之以鼻。但有一个不容忽视的问题是: 能力不到位,就不可以进行应用落地吗?

并不是的。一个演进中的框架和工具,并不影响你的学习和思考过程;同样,一个能力有限的模型,在框定场景下照样能够发挥出足够大的价值。

RAG技术

当大模型本身的知识不够专有、不够垂直的情况下,可以通过RAG(Retrieval-Augmented Generation)技术引入外部知识库的方式增强模型的生成能力。

Agent

大模型领域的「自动化」。通过加入「感知」、「记忆」、「规划」等机制,让大模型自主思考、决策、规划、执行,来解决问题。

模型微调相关规划

了解Transformer结构,并且了解微调的基本原理和步骤、数据集的构建技巧,并学会如何选择合适的预训练模型和超参数进行微调。

Prompt Tuning

P-Tuning

Prefix Tuning

LoRA

QLoRA

AdaLoRA

模型产品部署和交付

了解常见的部署平台和工具,了解私有化部署的硬件选型知识,学会如何进行模型的打包、测试和发布。

准备适应开发范式的改变

从小模型时代演进到大模型时代,开发范式发生了深刻的转变。

从面向过程到面向目标的编程方式

在传统的软件开发中,程序员需要清清楚楚地预先设计好每一个逻辑分支,以及catch住所有异常。而大模型却是一个「活的」、「模糊的」、「非结构化的」智能组件,我们与它的交互是面向目标的。

因此,研究如何让这样一个组件融入到结构化的程序中,是个令人兴奋的挑战。足以吸引技术人员去思考和钻研。

软件工程组织方式和分工的改变

第一,大模型的高度智能,拓展了人的能力边界;第二,大模型的Copilot能力,提高了人的工作效率;第三,大模型应用本身的开发范式转变,导致软件工程的组织方式亟待改变。

产品经理需要懂技术,程序员需要懂业务。原先的专人专岗、分工极度细化的分工和组织模式,将不再适合大模型应用时代的软件开发过程。

大模型应用时代需要的,是从业务一眼看透整个技术栈的开发者。

「赋能」而不是「替代」:成为进击的程序员

过去,每个公司都需要组建专门的算法团队,投入大量资源来构建和训练小模型。随着通用大模型的崛起,开发AI应用的方式发生了颠覆性的变化。

如今,开发人员可以更加便捷地利用预训练好的大模型,通过微调或集成的方式快速构建出功能强大的AI应用。这种转变为普通程序员提供了更广阔的机遇,使他们能够更轻松地参与到AI应用的开发中。

因此,面对大模型时代的浪潮,深入了解它的技术原理、优势以及局限性变得尤为关键。这不仅有助于程序员更好地运用它,更能使自己在快速变化的技术领域中保持领先地位。

大模型对于程序员而言,讲赋能比讲替代价值要高得多。作为连接模型能力与应用需求的桥梁,程序员无疑扮演着至关重要的角色。这不应该是一个让程序员疯狂焦虑的时代,对程序员来说,这是最好的时代。