使用AI帮助我们编写嵌入式软件的最佳做法
扫描二维码
随时随地手机看文章
您是否使用人工智能开发您的嵌入式软件?虽然它可能还没有成为主流,但我看到很多团队都在疯狂地研究如何使用AI来提高性能和吞吐量。如果你不想落后,你也应该尝试。我将是第一个承认你所获得的并不总是正确的,但是我已经看到并经历了使用人工智能工具的巨大改进,这些工具还处于婴儿期。在这篇文章中,我将分享一些最佳实践,这些实践将帮助您改进提示,从而从AI模型中获得更好的结果。一个人工智能模型能够产生多少嵌入式软件会让你吃惊。
警告:不要毫无疑问地相信任何人工智能输出!确保遵循最佳实践,如执行代码评审和测试。
最佳实践#1-从编码标准开始
我经常发现,当有人想使用LLM生成代码时,他们会直接跳进来,问一些问题,比如"你能生成一个……"。毫无疑问,您将从模型中得到一个答案,而代码的风格将无法匹配您需要的内容。即使模型提供了正确的解决方案,您也必须重新编写代码。
我经常遵循的第一步是为模型提供我的风格偏好和示例。它不需要是一个长达90页的样式文档,但静态分析或格式化工具无法捕捉到的基本内容。我通常包括如何命名变量、函数等。我会排除像大括号应该去哪里这样的细节,因为可以使用像抓整洁这样的工具来清理代码。
最佳实践#2-使用迭代步骤
模糊地告诉人工智能模型产生一些"大"的东西是很有诱惑力的。比如要求它开发一个完整的码头者图像或代码模块。当你在没有提供太多细节的情况下对某些东西进行猛烈的打击时,你会得到很多垃圾。然而,我也发现,如果你给太多的信息,你也有可能得到垃圾!
诀窍是使用迭代步骤。例如,你可以遵循如下流程:
1. 把你的问题分成任务或步骤
2. 提供您的编码风格偏好
3. 将提示符与最初的任务细节结合起来
4. 分析反应
1)如果成功了,继续下一个任务
2)如果不成功,改进提示和重复
5. 对最终结果进行代码审查
6. 测试代码
7. 手工代码任何改进
最佳实践#3-使用AI优化现有代码
我发现人类不会编写有效执行的代码。我们倾向于编写逻辑上流动正确的代码,但不一定使用可用的编程语言或硬件。我最喜欢的提示之一是:
下面的代码是在[硬件架构]上运行的,您能改进它以更有效地执行吗?
我发现,即使是相对简单的函数,有时也可以改进。在一个非常有问题的情况下,模型能够提出降低CPU利用率近20%的建议!现在,没有任何黑暗魔法或特殊的技术。像我一样,一个有经验的开发人员可以看到该做些什么。我很想知道人工智能是否会得出类似的结论。是的,它在大约5秒钟内写出了代码,当时我需要几分钟。(我不能在5秒内写20行代码!)。
最佳做法#4-针对具体情况和具体情况定制提示
当使用AI生成代码时,输出质量直接与输入的质量挂钩。一个有效的策略是尽可能使提示尽可能具有特定性和上下文,而不使模型中的信息过载。这可以包括:
· 指定您需要解决的精确问题。而不是"生成一个排序列表的函数",使用"生成一个用快速排序排序一个整数数组的C函数"。"
· 提供代码运行的上下文,如硬件架构、操作系统和编译器版本。
· 包括内存使用或执行时间等限制。
例如,您可以制作如下提示符:
"该功能将在一个有限制的内存的8位单片机上运行。您是否可以优化下面的排序算法,以减少其内存足迹,而又不严重影响其运行时性能?"
这种方法有助于生成更准确和有用的代码,并随着时间的推移教给人工智能模型您的需求。
最佳做法#5-验证人工智能建议并将其与人类专业知识结合起来
大赦国际可以提供强有力的建议和见解,但这些不应取代人的专门知识。相反,使用人工智能作为工具来增强你的技能。例如:
· 具有现有解决方案和最佳实践的交叉引用A生成的代码。
· 根据行业标准和你自己的经验验证代码的逻辑和效率。
· 仔细整合AI代码建议,确保它们与您现有的代码库很好地融合,并坚持您的项目架构。
通过验证Ai生成的代码并进行深思熟虑的集成,您可以利用AI的速度和建议,同时保持成功的嵌入式软件开发所需的高标准。
结论
我不能说的太多,你真的不能相信人工智能今天的模型。就像计算机科学101一样,垃圾会给你提供垃圾。人工智能的问题是,有时候我们认为我们没有提供垃圾!关键是遵循最佳实践,为您提供更好的提示,以获得您正在寻找的结果。
人工智能不是银子弹。我可能已经让它带我去了一次徒劳的追逐,因为它提高了我的吞吐量。然而,有趣的是,它的进化速度有多快。在您知道之前,每个开发人员都将被迫使用它,如果他们想跟上。模型只会改进;你可以遵循的最佳实践越多,你的结果就越好。