人工通用智慧(AGI)可以被認為是一個人工智慧系統,它能夠像人類一樣理解、處理和回應智力任務。這是一項具有挑戰性的任務,需要深入了解人腦的工作方式,以便我們能夠複製它。然而,ChatGPT的出現引起了研究界對開發此類系統的巨大興趣。微軟已經發布了這樣一個由AI驅動的關鍵系統,名為HuggingGPT(Microsoft Jarvis)。
在深入了解HuggingGPT的新內容以及它工作原理的相關細節之前,讓我們先了解ChatGPT的問題,以及為什麼它在解決複雜的AI任務方面很困難。像ChatGPT這樣的大型語言模型擅長於解釋文字資料和處理一般任務。然而,它們經常在特定任務中掙扎,並可能產生荒謬的反應。你可能在解決複雜的數學問題時遇到來自ChatGPT的虛假答案。另一方面,我們有專家級的AI模型,如Stable Diffusion和DALL-E等,它們對各自的學科領域有更深入的了解,但在更廣泛的任務上卻舉步維艱。除非我們在LLM和專業AI模型之間建立起聯繫,否則我們無法完全利用LLM的潛力來解決具有挑戰性的AI任務。這就是HuggingGPT所做的,它結合了兩者的優勢,創造了更有效、更準確、更多的AI系統。
根據微軟最近發表的一篇論文,HuggingGPT利用LLM的強大功能,把它作為控制器,將其與機器學習社群(HuggingFace)中的各種AI模型連接起來,使它能夠使用外部工具,以提高工作效率。 HuggingFace是一個為開發人員和研究人員提供大量工具和資源的網站。它還擁有各種各樣的專業和高精確度的模型。 HuggingGPT將這些模型用於不同領域和模式的複雜AI任務,從而取得了令人印象深刻的結果。在涉及文字和圖像時,它具有與OPenAI GPT-4類似的多模式功能。但是,它也將你連接到互聯網上,你可以提供一個外部Web連結來詢問有關問題。
假設你想讓模型對寫在圖像上的文字進行音訊閱讀。 HuggingGPT將使用最適合的模型串行地執行這項任務。首先,它將從圖像中導出文本,並將其結果用於音頻生成。可以在下面的圖片中查看回應詳細資訊。簡直太神奇了!
對視訊和音訊模式的多模式合作進行定性分析
HuggingGPT是一個協作系統,它使用LLM作為接口,向專家模型發送使用者請求。從使用者提示到模型直到收到回應的完整過程可以分解為以下不連續的步驟:
在這個階段,HuggingGPT利用ChatGPT來理解使用者的提示,然後將查詢分解為小的可操作任務。它還確定了這些任務的依賴關係,並定義了它們的執行順序。 HuggingGPT有四個插槽用於任務解析,分別是任務類型、任務ID、任務依賴性和任務參數。 HuggingGPT和用戶之間的聊天記錄被記錄下來並顯示在顯示資源歷史的螢幕上。
基於使用者環境和可用的模型,HuggingGPT使用一個情境中的任務-模型分配機制,為一個特定的任務選擇最合適的模型。根據這個機制,模型的選擇被認為是單選題,它最初根據任務的類型篩選出模型。之後,根據下載次數對模型進行排名,因為它被認為是反映模型品質的可靠措施。 Top-K模型是根據這個排名選擇的。這裡的K只是一個反映模型數量的常數,例如,如果它被設定為3,那麼它將選擇下載次數最多的3個模型。
在這裡,任務被指派給一個特定的模型,它對其進行推理並傳回結果。為了提高這個過程的效率,HuggingGPT可以同時運行不同的模型,只要它們不需要相同的資源。例如,如果給出一個提示,產生貓和狗的圖片,那麼不同的模型可以並行運行來執行這個任務。然而,有時模型可能需要相同的資源,這就是為什麼HuggingGPT會維護一個
最後一步是產生對使用者的回應。首先,它整合了前幾個階段的所有資訊和推理結果。這些資訊以一種結構化的格式呈現。例如,如果提示是檢測影像中獅子的數量,它將繪製具有偵測機率的適當的邊界框。然後,LLM(ChatGPT)使用這種格式,並以人類友好的語言呈現它。
HuggingGPT建立在Hugging Face最先進的GPT-3.5架構之上,它是一個深度神經網路模型,可以產生自然語言文字。以下是如何在本機上設定它的步驟:
預設設定需要Ubuntu 16.04 LTS,至少24GB的VRAM,至少12GB(最小)、16GB(標準)或80GB (完整)的RAM,以及至少284GB的磁碟空間。此外,需要42GB的空間用於damo-vilab/text-to-video-ms-1.7b,126GB用於ControlNet,66GB用於stable-diffusion-v1-5,50GB用於其他資源。對於「lite」配置,只需要Ubuntu 16.04 LTS。
首先,將server/configs/config.default.yaml檔案中的OpenAI Key和Hugging Face Token替換為你的金鑰。或者,你可以將它們分別放在環境變數OPENAI_API_KEY和HUGGINGFACE_ACCESS_TOKEN中
執行以下命令:
<code># 设置环境cd serverconda create -n jarvis pythnotallow=3.8conda activate jarvisconda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidiapip install -r requirements.txt</code>
<code># 下载模型。确保`git-lfs`已经安装。cd modelsbash download.sh # required when `inference_mode` is `local` or `hybrid`.</code>
<code># 运行服务器cd ..python models_server.py --config configs/config.default.yaml # required when `inference_mode` is `local` or `hybrid`python awesome_chat.py --config configs/config.default.yaml --mode server # for text-davinci-003</code>
現在你可以透過傳送HTTP請求到Web API端點來存取Jarvis的服務。發送請求到:
這些請求應該是JSON格式的,應該包括代表使用者輸入的資訊清單。
<code>cd webnpm installnpm run dev</code>
<code># 可选:安装 ffmpeg# 这个命令需要在没有错误的情况下执行。LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/ffmpeg -i input.mp4 -vcodec libx264 output.mp4</code>
使用CLI設定Jarvis是非常簡單的。只需執行下面提到的命令:
<code>cd serverpython awesome_chat.py --config configs/config.default.yaml --mode cli</code>
Gradio演示也在Hugging Face Space上託管。你可以在輸入OPENAI_API_KEY和HUGGINGFACE_ACCESS_TOKEN後進行試驗。
要在本地運行它:
<code>python models_server.py --config configs/config.gradio.yamlpython run_gradio_demo.py --config configs/config.gradio.yaml</code>
<code>docker run -it -p 7860:7860 --platform=linux/amd64 registry.hf.space/microsoft-hugginggpt:latest python app.py</code>
注意:如果有任何問題,請參考官方Github Repo(https://github. com/microsoft/JARVIS)。
HuggingGPT也有某些需要在此強調一下的限制。例如,系統的效率是一個主要瓶頸,在前面提到的所有階段,HuggingGPT都需要與LLM進行多次互動。這些互動會導致使用者體驗的降低和延遲的增加。同樣,最大的上下文長度也受到允許的令牌數量的限制。另一個問題是系統的可靠性,因為LLM可能會誤解提示並產生錯誤的任務序列,這反過來又會影響整個過程。儘管如此,它在解決複雜的AI任務方面具有很大的潛力,並且是AGI的一個很好的進步。一起期待這項研究會把AI的未來帶往哪個方向吧!
以上是HuggingGPT:處理AI任務的神奇工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!