程序员学会与大模型相处,提升个人开发效率

过去一年,通过各种平台我们可以轻而易举的接收到人们关于使用大模型遇到诸多问题的声音 。然而,显而易见的是,大模型可以在许多方面提高我们的效率,尤其是在处理文档、测试用例和代码等繁琐事务方面 。

程序员学会与大模型相处,提升个人开发效率

文章插图
大模型的优势和短板是什么?
首先,我们需要了解大模型的概念 。由于训练数据和参数等多种原因,不同的模型有各自的优势 。在一些微信机器人中 , 我们会使用文心一言来获取实时的信息内容,并结合国内外的开源和闭源模型(如ChatGPT等)进行不断优化 。而在撰写英文文档和邮件等内容时,则会优先考虑国外的模型 。
其次,我们要知道大模型不擅长什么 。大模型擅长的是生成文本 。究其本质它又是一个概率模型,所以它需要借助其他工具来完成自身不擅长的内容(比如数学计算) 。因此,我们不应该期望大模型能够帮助我们完成一些数学计算,而是应该期望它能根据我们的上下文,生成数学计算的公式、代码等等 。
提高个人效率的关键之一是学会与大模型进行有效的交流 。
大模型的交流方式主要通过Prompt进行,而构建一个Prompt是需要持续迭代的过程 。在这个过程中 , 我们需要不断尝试,以找到最适合自己的模式 。因此网上也先后出现了很多针对Prompt的教程,甚至因此衍生出了新的赚钱之道 。常见的模式是:
1、确定角色和任务 。比如明确扮演一个中级开发工程师以及需要完成哪些任务 。
2、背景 。提供一些必要的上下文 , 以便于有概率地、更好地匹配到答案 。
【程序员学会与大模型相处,提升个人开发效率】3、列出你对其的一些具体要求,比如返回的格式和内容等 。
4、最后的import将根据用户选择的是类还是方法来确定 。
精炼上下文成本,活用各类工具
Prompt模板,绝对属于人们口中的“一看就会,一用就废”的存在,同一个需求可能真的会获得千人千面的答案 。因此,很多人在使用AIGC工具时最大的问题是编写Prompt往往需要花费超过任务完成时间的时间 。
也因此,从某种程度上来说,我们所需要的上下文并不一定要准确 , 但一定要精炼,以节省自己的时间 。所以 , 从时间成本上来说,我们要考虑引入工具,或者构建适合自己的工具来完善这个过程 。
对于开发人员来说,目前市面上流行的工具有:GithubCopilot、ChatGPT等其他内容生成工具 。诸如GitHubCopilot在生成效果上之所以好,是因为它会根据当前的代码文件、编辑历史,分析出一些相似的上下文 , 再交由大模型处理 。整个过程是全自动的,所以它能大量节省时间 。但是鉴于每月可能产生10到30美元的成本 , 需要认真探讨更合适的方案 。
基于此,来自中国的飞算SoFlu软件机器人,推出专注JAVA生成AI函数的FuncGPT(慧函数) 。通过自然语言描述Java函数需求,不需要繁复的上下文,输入需求、出参、入参 , 即可实时生成高质量、高可读性、拿来即用的Java函数代码 。生成代码可直接复制到IDEA,或一键导入Java全自动开发工具函数库,满足程序员不同的使用场景 。最重要的是它是免费的 。
个人成长:增强人工智能不擅长的技能 。
随着AIGC成本的进一步降低,可能会有一些部门因为生成式AI而被公司缩减规模 。这并不是因为AIGC可以取代人类,而是因为人们预期可以提高20~30%的效率 , 并且在一些团队试验后也发现确实如此 。
假设AIGC能够增加一个团队的效率20%,那么从管理层的角度来看,他们会考虑减少团队成员的20% 。而更有趣的是,如果团队规模减少了20%,由于沟通成本的降低 , 效率提升会更为显著 。因此,该团队的效能提升超过了20% 。
就短期而言,那些掌握了AIGC能力的开发人员不会因此被淘汰 。但从长远来看,开发行业的内卷现象将会加剧 。十多年前,只需懂一些Java的人就可以了,但如今的标准则是既要精通Java设计模式,又要熟练掌握各种Java算法 。因此 , 从个人职业发展的角度,我们需要适当地提升在人工智能领域不擅长的其他技能 。
就能力而言,AI不擅长解决复杂上下文的问题,比如架构设计、软件建模等等 。从另一个层面上,由于AI作为一个知识库,它能够帮助我们解决一些软件开发的基础问题(比如某语言的语法),会使得我们更易于上手新语言,从而进一步促使开发者变成多面手,成为多语言的开发者 。


推荐阅读