您是否使用人工智能開發(fā)您的嵌入式軟件?雖然它可能還沒有成為主流,但我看到很多團隊都在瘋狂地研究如何使用AI來提高性能和吞吐量。如果你不想落后,你也應(yīng)該嘗試。我將是第一個承認你所獲得的并不總是正確的,但是我已經(jīng)看到并經(jīng)歷了使用人工智能工具的巨大改進,這些工具還處于嬰兒期。在這篇文章中,我將分享一些最佳實踐,這些實踐將幫助您改進提示,從而從AI模型中獲得更好的結(jié)果。一個人工智能模型能夠產(chǎn)生多少嵌入式軟件會讓你吃驚。
警告:不要毫無疑問地相信任何人工智能輸出!確保遵循最佳實踐,如執(zhí)行代碼評審和測試。
最佳實踐#1-從編碼標準開始
我經(jīng)常發(fā)現(xiàn),當(dāng)有人想使用LLM生成代碼時,他們會直接跳進來,問一些問題,比如"你能生成一個……"。毫無疑問,您將從模型中得到一個答案,而代碼的風(fēng)格將無法匹配您需要的內(nèi)容。即使模型提供了正確的解決方案,您也必須重新編寫代碼。
我經(jīng)常遵循的第一步是為模型提供我的風(fēng)格偏好和示例。它不需要是一個長達90頁的樣式文檔,但靜態(tài)分析或格式化工具無法捕捉到的基本內(nèi)容。我通常包括如何命名變量、函數(shù)等。我會排除像大括號應(yīng)該去哪里這樣的細節(jié),因為可以使用像抓整潔這樣的工具來清理代碼。
最佳實踐#2-使用迭代步驟
模糊地告訴人工智能模型產(chǎn)生一些"大"的東西是很有誘惑力的。比如要求它開發(fā)一個完整的碼頭者圖像或代碼模塊。當(dāng)你在沒有提供太多細節(jié)的情況下對某些東西進行猛烈的打擊時,你會得到很多垃圾。然而,我也發(fā)現(xiàn),如果你給太多的信息,你也有可能得到垃圾!
訣竅是使用迭代步驟。例如,你可以遵循如下流程:
1. 把你的問題分成任務(wù)或步驟
2. 提供您的編碼風(fēng)格偏好
3. 將提示符與最初的任務(wù)細節(jié)結(jié)合起來
4. 分析反應(yīng)
1)如果成功了,繼續(xù)下一個任務(wù)
2)如果不成功,改進提示和重復(fù)
5. 對最終結(jié)果進行代碼審查
6. 測試代碼
7. 手工代碼任何改進
最佳實踐#3-使用AI優(yōu)化現(xiàn)有代碼
我發(fā)現(xiàn)人類不會編寫有效執(zhí)行的代碼。我們傾向于編寫邏輯上流動正確的代碼,但不一定使用可用的編程語言或硬件。我最喜歡的提示之一是:
下面的代碼是在[硬件架構(gòu)]上運行的,您能改進它以更有效地執(zhí)行嗎?
我發(fā)現(xiàn),即使是相對簡單的函數(shù),有時也可以改進。在一個非常有問題的情況下,模型能夠提出降低CPU利用率近20%的建議!現(xiàn)在,沒有任何黑暗魔法或特殊的技術(shù)。像我一樣,一個有經(jīng)驗的開發(fā)人員可以看到該做些什么。我很想知道人工智能是否會得出類似的結(jié)論。是的,它在大約5秒鐘內(nèi)寫出了代碼,當(dāng)時我需要幾分鐘。(我不能在5秒內(nèi)寫20行代碼!)。
最佳做法#4-針對具體情況和具體情況定制提示
當(dāng)使用AI生成代碼時,輸出質(zhì)量直接與輸入的質(zhì)量掛鉤。一個有效的策略是盡可能使提示盡可能具有特定性和上下文,而不使模型中的信息過載。這可以包括:
· 指定您需要解決的精確問題。而不是"生成一個排序列表的函數(shù)",使用"生成一個用快速排序排序一個整數(shù)數(shù)組的C函數(shù)"。"
· 提供代碼運行的上下文,如硬件架構(gòu)、操作系統(tǒng)和編譯器版本。
· 包括內(nèi)存使用或執(zhí)行時間等限制。
例如,您可以制作如下提示符:
"該功能將在一個有限制的內(nèi)存的8位單片機上運行。您是否可以優(yōu)化下面的排序算法,以減少其內(nèi)存足跡,而又不嚴重影響其運行時性能?"
這種方法有助于生成更準確和有用的代碼,并隨著時間的推移教給人工智能模型您的需求。
最佳做法#5-驗證人工智能建議并將其與人類專業(yè)知識結(jié)合起來
大赦國際可以提供強有力的建議和見解,但這些不應(yīng)取代人的專門知識。相反,使用人工智能作為工具來增強你的技能。例如:
· 具有現(xiàn)有解決方案和最佳實踐的交叉引用A生成的代碼。
· 根據(jù)行業(yè)標準和你自己的經(jīng)驗驗證代碼的邏輯和效率。
· 仔細整合AI代碼建議,確保它們與您現(xiàn)有的代碼庫很好地融合,并堅持您的項目架構(gòu)。
通過驗證Ai生成的代碼并進行深思熟慮的集成,您可以利用AI的速度和建議,同時保持成功的嵌入式軟件開發(fā)所需的高標準。
結(jié)論
我不能說的太多,你真的不能相信人工智能今天的模型。就像計算機科學(xué)101一樣,垃圾會給你提供垃圾。人工智能的問題是,有時候我們認為我們沒有提供垃圾!關(guān)鍵是遵循最佳實踐,為您提供更好的提示,以獲得您正在尋找的結(jié)果。
人工智能不是銀子彈。我可能已經(jīng)讓它帶我去了一次徒勞的追逐,因為它提高了我的吞吐量。然而,有趣的是,它的進化速度有多快。在您知道之前,每個開發(fā)人員都將被迫使用它,如果他們想跟上。模型只會改進;你可以遵循的最佳實踐越多,你的結(jié)果就越好。