原創(chuàng) ruby ruby的數(shù)據(jù)漫談2024-01-26 08:30 廣東
摘要:AutoGen官網(wǎng)上這張圖非常有意思,讓多個ChatGPTs協(xié)作完成復(fù)雜任務(wù)。大語言模型興起的時候,大家都很興奮,感覺AI很快就能在實際工作起到巨大的作用。但實際把類似ChatGPT這樣的工具,嵌入到業(yè)務(wù)流程中時,才發(fā)現(xiàn)至少有兩點不滿意,“這不滿意,那也不滿意”。特有的應(yīng)用場景,通用化工具是很滿足的,AI Agent更大的靈活性和自動化能力,使之成為未來重要的研究方向。
Autogen的基本概念
AutoGen能做什么
AutoGen的優(yōu)勢
AutoGen的應(yīng)用場景
AutoGen的問題
01
—
Autogen的基本概念
AutoGen是微軟推出的一個框架,它通過多個能夠相互對話以解決任務(wù)的代理(agents),實現(xiàn)了LLM(Large Language Model)應(yīng)用程序的開發(fā)。AutoGen代理具有可定制性、可對話性,并且能夠無縫地允許人類參與。它們可以在采用LLM、人類輸入和工具的各種模式下運行。
短短幾個月在Github上已經(jīng)獲得了20多K的星星,可見大家對AutoGen的興趣還是非常高的。
02
—
AutoGen能做什么
AutoGen使得基于多代理對話的下一代LLM(大型語言模型)應(yīng)用程序能夠以最小的工作量進(jìn)行構(gòu)建。它簡化了復(fù)雜LLM工作流的編排、自動化和優(yōu)化。它最大程度地提高了LLM模型的性能,并克服了它們的弱點。它支持復(fù)雜工作流的多樣化對話模式。借助可定制和可對話的代理,開發(fā)人員可以使用AutoGen構(gòu)建涉及對話自治、代理數(shù)量和代理對話拓?fù)涞母鞣N對話模式。它提供了一系列具有不同復(fù)雜性的工作系統(tǒng)。這些系統(tǒng)涵蓋了各種領(lǐng)域和復(fù)雜性的廣泛應(yīng)用。這展示了AutoGen如何輕松支持多樣化的對話模式。AutoGen提供了增強的LLM推理。它提供了API統(tǒng)一和緩存等實用工具,以及錯誤處理、多配置推理、上下文編程等高級使用模式。
AutoGen提供了兩類Agent,AssistantAgent和UserProxyAgent,都繼承了父類ConversableAgent。AssistantAgent配置了默認(rèn)的系統(tǒng)消息。默認(rèn)系統(tǒng)消息旨在使用LLM解決任務(wù),包括建議Python代碼塊和進(jìn)行調(diào)試。UserProxyAgent用戶的代理,可以執(zhí)行代碼并向其他代理提供反饋。默認(rèn)情況下,每次接收到消息時,代理都會提示用戶輸入。代碼執(zhí)行默認(rèn)啟用。默認(rèn)情況下禁用基于LLM的自動回復(fù)。可以修改配置信息,自定義方法。GroupChat是一個比較有意思的方式,可以把多個Agent放到一個組里,讓它們協(xié)同工作再對外輸出,有點像公司組織架構(gòu)的部門。
啟動速度還是相當(dāng)快的 ,界面如下:
Agents配置代理信息;
通過日志輸出可以看到 ,primary_assistant扮演了一個私人助理的角色。
local_assistant相當(dāng)于是一個當(dāng)?shù)貙?dǎo)游的角色 ,開始給出計劃。
language_assistant是語言助理 ,可能這個流程設(shè)置的時候就是為全球旅行吧。
其實這個案例相對簡單,并沒有發(fā)揮多智能代理的能力,我這邊再舉一個具體的例子來說明,可能會比較詳細(xì)一點,例如你直接問比亞迪股票2023下半年最近的價格趨勢是?能用圖形化展示嗎?股票趨勢受哪些因素的影響?當(dāng)問這個問題的時候,目前的chatgpt是回答不出來的,因為它沒有相關(guān)的知識,那么如果要回答這個問題,
第一、它能夠知道去哪里獲取比亞迪股票的數(shù)據(jù)?即上網(wǎng)檢索數(shù)據(jù),爬取數(shù)據(jù),即上網(wǎng)檢索數(shù)據(jù)和寫代碼獲取數(shù)據(jù)的能力。
第二步將獲取的數(shù)據(jù)寫python 代碼,圖形化展示。寫代碼展示數(shù)據(jù)的能力。
第三步上網(wǎng)檢索影響股票因素的新聞,并抽取新聞內(nèi)容。即上網(wǎng)檢索數(shù)據(jù)的能力,和抽取新聞,總結(jié)內(nèi)容的能力。
如果將這三步的上網(wǎng)檢索內(nèi)容、檢索數(shù)據(jù)、寫代碼的能力、以及抽取新聞、總結(jié)新聞的能力配置到它的skill里面,類似是低代碼的方式,它的s kell就是AIGC所擁有的基本能力,通過多個能力的排列組合完成一個復(fù)雜的任務(wù),即通過配置基本的skill能力和語言問題完成復(fù)雜的功能。這個和我們常見的低代碼是否類似,不過這種低代碼不是圖形化的,而是語言類型的低代碼。
說一個相對比較容易理解的方式,就是這個工具提供的一個配置基本能力的框架,以及組合流水線的方式,當(dāng)你設(shè)計好一款產(chǎn)品例如汽車,也設(shè)計好安裝的基本流程(各種基本能力執(zhí)行的順序),那么按照順序執(zhí)行(順序組裝零件)、就可以生產(chǎn)一輛汽車了(就可以得到你想要的結(jié)果了),這樣比如是不是好理解一些了,大家可以嘗試一下。
03
—
AutoGen的優(yōu)勢
1.自動化:
·任務(wù)代理:AutoGen允許用戶通過代理頒布任務(wù),它能理解任務(wù)需要并將其分解成合理的步驟。
·參數(shù)設(shè)置:用戶可以通過精細(xì)的參數(shù)設(shè)置來指導(dǎo)AutoGen如何執(zhí)行任務(wù),實現(xiàn)高度定制化的自動化流程。
·全程自動化:通過設(shè)定參數(shù)后,AutoGen能夠執(zhí)行全自動化流程,用戶無需參與其中的任何步驟,實現(xiàn)“一鍵式”操作。
·代理助手:生成的代理助手和用戶代理可以協(xié)同工作,分步驟地完成復(fù)雜任務(wù),提高了任務(wù)的執(zhí)行效率。
2.代碼生成與執(zhí)行:
·快速原型創(chuàng)建:AutoGen能夠基于用戶需求快速生成代碼,這對于需要迅速構(gòu)建原型的開發(fā)者極為有用。
·功能具體實現(xiàn):不僅僅是原型,AutoGen還能針對具體的功能和需求生成可執(zhí)行的代碼。
內(nèi)置Python解釋器:因為AutoGen內(nèi)置了Python解釋器,它可以直接執(zhí)行生成的Python代碼,省去了在其他環(huán)境中部署代碼的需要。
3.面向任務(wù):
·任務(wù)專注:AutoGen的設(shè)計初衷是為了高效地完成特定任務(wù),這使得它在執(zhí)行任務(wù)時比通用的編程方式更加高效。
·用例特化性能:由于AutoGen對特定任務(wù)有更深入的專注,它能夠在這些用例中提供更優(yōu)化和更合適的性能表現(xiàn)。
AutoGen能夠提供從代碼生成到任務(wù)執(zhí)行的全方位自動化解決方案,尤其是在需要快速迭代和應(yīng)對復(fù)雜任務(wù)的環(huán)境中表現(xiàn)出色。它的自動化、代碼即時執(zhí)行和面向任務(wù)的設(shè)計,讓它成為現(xiàn)代軟件開發(fā)中富有價值的工具,使得開發(fā)工作變得更加高效、精確和可控。
04
—
AutoGen的應(yīng)用場景
AutoGen的能力可以被應(yīng)用于非常廣泛的領(lǐng)域,不僅限于傳統(tǒng)的軟件和數(shù)據(jù)科學(xué)類項目,還可以擴展到工業(yè)自動化、教育、游戲開發(fā)、健康醫(yī)療等多個行業(yè)。下面是一些具體應(yīng)用領(lǐng)域的介紹:
軟件工程:
在軟件開發(fā)方面,AutoGen可以自動生成和執(zhí)行代碼,加快開發(fā)過程,減少bug率。它也可以用于自動化測試,快速找出現(xiàn)有代碼的缺陷,并提供解決方案。
數(shù)據(jù)分析與數(shù)據(jù)科學(xué):
AutoGen可以用于構(gòu)建數(shù)據(jù)分析管道,包括數(shù)據(jù)預(yù)處理、模型訓(xùn)練和結(jié)果分析。自動選擇最佳算法和參數(shù)調(diào)整,增強模型性能,并縮短項目周期。
機器學(xué)習(xí)與人工智能:
在機器學(xué)習(xí)領(lǐng)域,AutoGen能夠自動化構(gòu)建和調(diào)優(yōu)機器學(xué)習(xí)模型,這對于非專業(yè)人士來說非常有價值,因為它降低了進(jìn)入門檻。
供應(yīng)鏈管理:
AutoGen可以應(yīng)用于供應(yīng)鏈優(yōu)化問題,自動分析和優(yōu)化庫存管理、物流規(guī)劃和需求預(yù)測等關(guān)鍵流程。
游戲開發(fā):
對于游戲行業(yè),AutoGen能夠幫助開發(fā)者自動化生成游戲代碼、協(xié)助設(shè)計AI行為,并能夠自動進(jìn)行游戲測試。
教育:
在教育領(lǐng)域,AutoGen可以自動生成教學(xué)材料、習(xí)題和測驗,以及利用智能代理來進(jìn)行個性化教學(xué),改善學(xué)習(xí)體驗。
健康醫(yī)療:
AutoGen能夠幫助研究人員和臨床醫(yī)生分析醫(yī)療數(shù)據(jù),自動生成診斷報告、治療建議,甚至輔助藥物發(fā)現(xiàn)和基因組分析。
多行業(yè)協(xié)作:
在設(shè)計和規(guī)劃領(lǐng)域,AutoGen可以協(xié)助多個代理協(xié)同工作,如在建筑和城市規(guī)劃中,代理可以幫助自動解決復(fù)雜的規(guī)劃難題。
互聯(lián)網(wǎng)技術(shù):
AutoGen還可以融入Web技術(shù)中,用于自動化網(wǎng)頁內(nèi)容創(chuàng)建,進(jìn)行信息的自動化檢索和分析,并結(jié)合社交媒體數(shù)據(jù)進(jìn)行市場分析。
客戶支持與服務(wù):
在客戶服務(wù)領(lǐng)域,AutoGen能夠生成自動響應(yīng)機器人,基于用戶輸入提供定制化的幫助和支持。
05
—
AutoGen的問題
1.針對特定場景設(shè)計的框架,跟LangChain對比,顯得應(yīng)用范圍比較窄,框架沒有支持的能力,用起來就比較費勁了。
2.依賴用戶輸入,完全自動化可能效果不可控,用戶輸入很重要,但是給出好的提示詞也不是一件簡單的事。
3.Agent的底層也是大模型的推理,會跟大模型頻繁交互,而且AutoGen默認(rèn)還是用GPT4,費用是個比較頭疼的問題。