命令式
命令式有時也稱為指令式,命令式的場景下,計算機只會機械的完成指定的命令操作,執行的結果就取決於執行的命令是否正確。GPT 之前的人工智慧就是這種典型的命令式,透過不斷的煉丹,告訴計算機要怎麼做,計算機只是機械的完成指定場景下的任務。
宣告式
宣告式也稱為描述式或者申明式,這種方式告訴計算機想要的,由計算機自己去設定執行的路徑,需要計算機有一定的智慧
。
最常見的宣告式例子 就是資料庫,查詢的 sql 就表示我們想要的結果集,資料庫執行查詢 sql 的時候,會幫我們處理查詢,並且返回查詢的結果。資料庫在查詢的時候,會進行索引匹配,做查詢最佳化等處理,再返回資料結果的時候,同時使用最優的查詢路徑。如果我們自己去處理這些操作,就需要寫很多程式碼了,而不是僅僅透過一行程式碼就能解決。現在最熱門的宣告式例子 是ChatGPT 為代表的生成式AI的 GPT,我們透過寫一些提示Prompt 指引去引導人工智慧完成不同的任務。
Kubernetes 的設計用的就是宣告式的設計思想。Kubernetes 不僅僅是一個編排系統,實際上它消除了編排的需要。 編排的技術定義是執行已定義的工作流程:首先執行 A,然後執行 B,再執行 C。 而 Kubernetes 包含了一組獨立可組合的控制過程,可以連續地將當前狀態驅動到所提供的預期狀態。 你不需要在乎如何從 A 移動到 C,也不需要集中控制,這使得系統更易於使用且功能更強大、 系統更健壯,更為彈性和可擴充套件。這正是宣告式的設計思想的體現。
這次生成式AI 在人工智慧領域所帶來的變革,如果你把生成式 AI 看成是一些命令式的簡單介面呼叫是非常錯誤的。我們需要象Kubernetes 那樣看待這次生成式 AI 。生成式AI是一個類似於Kubernetes的 全新的作業系統,它改變了我們過往對人工智慧的認知。我們需要從告訴計算機要怎麼做轉變為告訴計算機必須要完成什麼。那如何在專案中管理這些Prompt 指引是一個專案中不可缺少的。 微軟釋出了開源的面向生成式 AI 程式設計的框架 Semantic Kernel (簡稱SK:https://github.com/microsoft/semantic-kernel),讓專案能更有效地管理這些指引,SK 讓我們開發LLM 應用更簡單,這和Kubernetes下的應用開發框架Dapr 的很多理念是相通的。
生成式人工智慧誕生後,我們從告訴機器要怎麼做轉變為告訴機器必須要做什麼,這就降低了對於編碼的依賴。例如翻譯,歸納,總結再不用做具體演算法了,只需要用簡單的提示語 AI 就可以幫你完成。那就是說我們需要做的是寫 Prompt 觸發人工智慧做事,Prompt 的內容涵蓋不同的場景,不同的任務,涉及到各式各樣的工作流程。如何管理好這些 Prompt 讓生成式 AI 能完成任務這是大家所關注的。還有透過對話上下文作出不同的響應,讓 AI 注入到對話流中也是很重要。Semantic Kernel 就是用來解決管理上下文對話以及各種技能的框架。
Semantic Kernel 是面向 AI 程式設計的最佳方案,可以結合不同場景,綜合技能和意圖,支援多語言開發的框架。.NET 開發者可以透過 Semantic Kernel ,可以更高效地生成式 AI 的應用開發。
盧建輝今天上線了 OpenAI 的 .NET 內容了 https://github.com/kinfey/dotNETOAIBooks ,歡迎大家學起來。