在過去的一年裡,ChatGPT,Bard和其他著名的大型語言模型(LLM)主導了我們的新聞提要。 這是理所當然的。 這些令人興奮的技術讓我們看到了人工智慧的未來、力量和可能性。
雖然公眾的大部分興奮都集中在創建文本、圖像和視頻上,但這些工具可用於許多其他學科,如軟體自動化。
本文將深入探討快速工程如何幫助我們實現軟體自動化。 但是,我們的第一個停靠港應該是對快速工程本身的檢查。
什麼是快速工程?
像 ChatGPT 這樣的大型語言模型根據我們提供的提示或句子生成輸出。 但是,結果因我們使用的單詞或說明而異。 當我們輸入模糊和不精確的指令時,輸出可能不會達到目標。
快速工程是指經過深思熟慮的輸入設計,有助於從這些令人興奮的 AI 系統中引出更精確、準確和最終可用的內容。
大型語言模型(LLM)系統使用自然語言處理(NLP)來解釋我們提供給它們的語句。 機器將這些問題或指令(即提示)轉換為代碼,並通過其龐大的數據存儲庫運行它們,以我們指定的任何格式(即文本、圖像、代碼)生成內容。
ChatGPT 接受了超過 570 GB 數據的訓練
. 培訓材料包括書籍、文章、網路文本等。 換句話說,這些數據集包含難以想像的知識量。
雖然我們可能理解這個過程,但這些系統引擎蓋下發生的大部分事情都發生在我們的視線之外。 當然,我們控制輸入和輸出,我們訓練系統,但這些演算法如何工作和做出決策仍然是一個謎。 用紐約大學人工智慧教授山姆·鮑曼(Sam Bowman)的話來說, “我們建造了它,我們訓練了它,但我們不知道它在做什麼。
及時的工程設計通過使用產生可預測和可用結果的輸出來幫助我們管理這種混亂。 它們為我們提供瞭解鎖這些應用程式中大量知識的途徑。 這門學科正在成為一種新的職業
,隨著企業研究如何利用這項強大的技術,課程如雨後春筍般湧現。
提示工程如何提供説明
使用軟體自動化?
軟體自動化和LLM有很多共同點。 它們都讓我們看到了未來的一瞥,機器將增強人類的創造力,創造更快、更高效的工作場所。
這兩種技術都可以融合在幾個令人興奮的領域。 以下是我們可以在軟體自動化中使用快速工程的三種方法。
#1. 生成代碼
編寫代碼是大型語言模型最有前途的應用之一。 AI LLM還處於起步階段。 在接下來的幾年裡,隨著更多的資源被添加到計算和訓練中,這項技術應該會得到改進。
從長遠來看,這些進步可能會看到人工智慧在有限或沒有人為干預的情況下編寫整個程式。 但是,就目前而言,LLM有一些局限性。 LLM編碼輸出的品質主要取決於輸入的品質。 正如他們所說,垃圾進,垃圾出。
當然,不僅僅是有效的快速工程成為障礙。 如 ChatGPT和學術界的大型語言模型:機遇與挑戰 (Meyer,2023),“目前,ChatGPT 更有可能成功準確編寫較小的代碼塊,而它在編寫更大/更複雜的程式(例如軟體包)方面的可靠性值得懷疑。
此外,在《自然》雜誌最近的一篇文章中,一些計算機科學家警告說,我們應該謹慎地使用LLM生成代碼。 另一篇當代論文, 大型語言模型和簡單、愚蠢
的錯誤(Jesse,2023 年)展示了供應商 Copilot 使用的流行 LLM、Codex 如何生成“已知的逐字 SStuB 比已知的逐字正確代碼多 2 倍”。
雖然這些問題不容忽視,但對於這些程式如何通過支持技術和非技術團隊來幫助實現軟體開發的民主化,仍然有很多合理的興奮。
也許最令人印象深刻的事情是像ChatGPT這樣的工具可以非常快速地生成功能代碼。 通過正確的提示,工程師可以減少對某些類型的代碼進行程式設計所需的時間,從而確保更快的軟體開發生命週期。
2022年底,流行的程式設計中心
Stack Overflow禁止AI生成
在其論壇上回答。 他們列舉了與應用程式相關的高錯誤率和不準確性。 然而,該技術還處於起步階段;此外,對人工智慧生成輸出的不滿既歸因於技術本身,也歸因於糟糕的提示工程。
儘管對這項技術存在疑慮,但麥肯錫最近的一篇文章
強調了提示工程已經在程式設計領域產生的影響。 諮詢公司的 2023年 AI 的現狀:生成式 AI 的突破之年 分享了兩個有趣的趨勢。 首先,7%投資於人工智慧的組織正在招聘及時的工程師。 其次,使用人工智慧的公司將與人工智慧相關的軟體工程職位從38%減少到28%。
解釋這些趨勢的一種方法是,企業對這種設置感到滿意,並準備將軟體自動化移交給他們的機器。 雖然這些數位可能會讓現有的工程師感到震驚,但麥肯錫的調查顯示,“只有8%的人表示他們的員工規模將減少五分之一以上。 總體而言,工程師可能需要重新學習技能,以利用人工智慧生成的軟體自動化的趨勢。
人工智慧生成的軟體自動化的一個明顯應用包括創建自動化機器人。 然而,雖然快速工程是一個表面上使用者友好的介面,因為它專注於對話,但它是否可以取代現有的解決方案還有待觀察。
在許多方面,像 ZAPTEST 這樣的軟體已經使軟體自動化市場民主化。 現在出現了無代碼工具,允許非技術團隊構建 高品質的 RPA 機器人。 雖然像 ChatGPT 這樣的軟體可以構建機器人,但對於任何不是軟體工程師的人來說,實施和維護可能會很棘手。
從 GUI 記錄人機交互並將這些動作轉換為代碼比使用提示更加使用者友好。 再加上LLM產生不穩定和錯誤百出的代碼的潛力,可以公平地說,RPA軟體在可預見的未來不會消失。
#2. 轉換非結構化數據
非結構化數據並不是 機器人流程自動化的強項。 該技術不是為處理電子郵件、圖片、音訊等內容而構建的。 RPA 工具需要具有組織結構的預定義數據模型。
很大一部分非結構化數據涉及自然語言文本。 構建大型語言模型是為了“理解”這些資訊並從中提取語義含義。 因此,這為想要解釋這些文本並將其轉換為 RPA 工具可接受的格式的團隊創造了相當大的機會。
許多團隊多年來一直在使用自然語言處理(NLP)來幫助他們進行情感分析。 這個過程,也稱為意見挖掘,幫助組織掌握消費者對品牌的感受和態度。 在大多數情況下,這些工具用於檢測文本中的積極、消極和中性情緒。 然而,這項技術也能夠進行更精細的情緒檢測。
雖然市場上有幾種工具提供此功能,但LLM提供了一條超越瞭解人們對產品或服務的感受之外的更通用用途的途徑。 例如,數據分析近年來大受歡迎。 大數據通過允許公司獲得有助於數據驅動決策的見解和理解,為公司提供優勢。
機器人流程自動化工具可以説明收集數據。 但是,正如我們上面提到的,他們與特定類型的資訊作鬥爭。 但是,當與使用大型語言模型的 AI 工具配對時,RPA 可以收集大量數據並使用它來生成商業智慧 (BI) 工具所需的資訊。
生成式AI更令人興奮的方面之一是它能夠理解數據輸入。 通過正確的提示工程,團隊可以將這些數據轉換為適用於其 RPA 工具的格式。
RPA 可以説明提高大數據工作流的效率。 對於初學者,您可以使用它來幫助進行數據輸入和提取。 但是,也許最有價值和最有趣的用例涉及使用 RPA 工具來轉換、清理和載入數據,或者確保數據遷移快速、高效和準確地運行。
另一個需要注意的重要點是數據治理。 自動化數據請求有助於組織保持合規性,並使數據遠離體力勞動者的視線。
#3. 測試自動化
測試自動化 已經在軟體開發圈子裡起飛,因為它提供了一種更快的方法來驗證軟體。 測試和質量保證傳統上是昂貴且耗時的過程;測試自動化為這兩個挑戰提供了解決方案。
提示工程可以做的第一件事就是提高測試用例的品質。 通過正確的提示,這些機器可以分析測試用例並確定問題和補救措施。 此過程可以增強測試用例的範圍,並導致更全面的測試。
例如,您可以採用與人工審閱者大致相同的方式提供大型語言模型代碼。 這些機器可以快速運行代碼並發現錯誤、錯誤,甚至識別性能問題。 也許更有趣的是,LLM還提供了從片段完成測試用例代碼的可能性,從而加速了測試用例的創建。
提示工程旨在解決推動 敏捷/DevOps 軟體開發方法出現的許多問題。 工程師需要高效、易於重複的測試,以便在部署應用程式之前發現問題。 這裡的想法是,通過騰出時間,軟體開發人員可以專注於更具創造性和價值驅動的任務。
正如經典論文《測試自動化中的技術債務》中所概述的
(K. Wiklund,2012),如果軟體開發團隊花費太多時間手動測試和驗證他們的軟體,他們可能會遇到問題。 測試自動化解決方案的初始成本、缺乏自動化經驗,甚至對舊方法的偏好都可能導致這些減速。
敏捷軟體開發最有趣的方面之一是
行為驅動開發(BDD)。
該概念是指開發具有預期用戶行為的軟體。 雖然實施這種方法顯然可以節省時間,但許多團隊都在努力實現這種自動化。 但是,LLM可以提供解決方案。
技術債務的一些最常見癥狀包括文檔差和缺乏強大的測試。 這些是今天的LLM可以幫助解決的問題。 但是,其他值得注意的癥狀(例如重構)對於當前的生成式AI來說過於複雜,並且可能不會節省時間。
結語
生成式人工智慧應用具有巨大的潛力。 但是,使用者友好的對話介面可能會產生誤導。 許多人認為,從這些機器產生高質量的輸出很簡單。 然而,優秀的快速工程比您想像的要複雜得多。
有效的快速工程需要大量的試驗和錯誤。 它還需要代表工程師進行大量深思熟慮,以確保答案有用。 最後,檢查和重新檢查工作很重要,因為眾所周知的錯誤可能性。
雖然即時工程工作可能正在增加,但並不是每個人都相信。 奧古茲·A·阿卡爾(Oguz A. Acar)在《哈佛商業評論》(Harvard Business Review)上撰文,提出了一個引人入勝的論點: “未來幾代人工智慧系統將變得更加直觀和善於理解自然語言,減少對精心設計的提示的需求。
無論未來如何,生成式人工智慧都將在其中。 雖然快速工程有很多希望,但很難確定它將發揮什麼確切的作用。
有趣的是,軟體測試自動化軟體已經充滿了用例和成功案例,證明瞭它適合在不影響應用程式準確性或全面驗證的情況下加快軟體開發。
像ZAPTEST這樣的工具已經允許開發人員解決諸如時間和資源不足,技術債務,文檔以及綜合測試和RPA等問題。 更重要的是,這些工具比快速工程更使用者友好,使它們更適合非技術團隊。 與以往一樣,真正的潛力在於這些令人興奮的自動化技術的交匯點。