文章《Semantic Kernel -- LangChain 的替代品?》的錯誤和疑問 探討

張善友發表於2023-10-04

微信公眾號文章 Semantic Kernel —— LangChain 的替代品?[1] ,它使用的示例程式碼是Python ,他卻發了這麼一個疑問:

支援的語言對比(因為 Semantic Kernel 是用 C#開發的,所以它對 C#比較支援)如上所示。不清楚 Semantic Kernel 為什麼要用 C#來開發,C#相比 Python 和 JavaScript 來說使用的人會少很多。

Semantic Kernel是微軟在實踐GPT 改造現有產品的過程中經驗的總結,微軟的產品: Bing.com , Office 365 等都是使用C# 開發的, Semantic Kernel 採用C#來開發就很自然了,大量的商業系統是使用C#、Java這樣的強型別語言構建的,採用Python這樣的弱型別語言構建商業系統並不多。隨著ChatGPT的火爆,Prompt-tuning已經成為當前大語言模型(Large Lanugage Model,LLM)時代最流行的生產技術,使得很多人一夜之間似乎有了程式設計的能力。微軟在這個背景下推出的一個結合LLM與傳統程式設計技術的開源的程式設計框架Semantic Kernel更加切合應用開發的需求。SK 大約 是在 2023 年 3 月下旬開源,大約開源6個多月,比 LangChain 晚開源了4個月 ,其實SK 在微軟內部的開發時間上要比Langchain 早的多,這也正是SK 的優良的架構和程式碼質量,同時制定了更為合理的外掛開發規範,馬上就要釋出1.0 版本了。

文章在大模型支援的描述也是錯誤的:

Semantic Kernel 只支援 OpenAI,Azure OpenAI,HuggingFace 上的模型,而 LangChain 支援的模型要多得多。

Semantic kernel 不僅支援OpenAI, Azure OpenAI,HuggingFace上的模型, 它可以支援任何LLM, 社群已經做了很多的支援庫,例如llama2、文心一言、通一千問等不整合到SK倉庫,社群各自維護,具體可看我整理的Semantic kernel資源:https://github.com/geffzhang/awesome-semantickernel[2]:

Semantic kernel 鼓勵對大模型的支援作為單獨外掛獨立維護,增強SK 模組化和 可維護性: https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#adding-plugins-and-memory-connectors[3]。

文章在對比Planner 和 Langchain Agent 時候的描述也是對Semantic Kernel有所微詞:

目前 Semantic Kernel 就只有幾種 Planner,對比 LangChain 還是比較少的,但一般的應用場景也足夠用了。

Semantic kernel 還有一個基於 YAML 的 DSL 定義和執行復雜工作流的流業務流程協調程式擴充套件,提供靈活性,支援通用技能,包括語義函式、原生函式和需要聊天互動的技能,以更易於使用的方式進行互動。


Semantic Kernel 代表了微軟在 AI 應用開發領域的探索,其功能和 LangChain 有所相似,但Semantic Kernel 是為應用開發開發人員建立的。Semantic Kernel 使構建企業AI編排器變得容易,這是Copilot Stack的中心[4]。Semantic Kernel的清晰文件和程式碼示例讓應用程式開發人員容易理解,很容易就可以將Semantic Kernel 整合到應用程式中。

Semantic Kernel 還支援 ML 工程師和資料科學家喜愛的功能。


相關連結:

相關文章