一鍵控制10萬多個AI模型,HuggingFace為類ChatGPT模型們做了個「APP Store」
從聊天到程式設計再到支援各種插件,強大的 ChatGPT 早就不是一個簡單的對話助手,而是朝著 AI 界的「管理層」不斷前進。
3 月 23 號,OpenAI 宣布 ChatGPT 開始支援各類第三方插件,例如著名的理工科神器 Wolfram Alpha。藉由此神器,原本雞兔同籠都算不準的 ChatGPT 一躍成為理工科尖子生。 Twitter 上許多人評論說,ChatGPT 插件的推出看起來有點像 2008 年 iPhone App Store 的推出。這也意味著 AI 聊天機器人正在進入一個新的進化階段 ——「meta app」階段。
緊接著,4 月初,浙江大學和微軟亞研的研究者提出了一種名為「HuggingGPT ”的重要方法,可以看做是上述路線的大規模演示。 HuggingGPT 讓 ChatGPT 充當控制器(可以理解為管理層),由它來管理其他大量的 AI 模型,從而解決一些複雜的 AI 任務。具體來說,HuggingGPT 在收到用戶請求時使用 ChatGPT 進行任務規劃,根據 HuggingFace 中可用的功能描述選擇模型,用選定的 AI 模型執行每個子任務,並根據執行結果匯總回應。
這種做法可以彌補當前大模型的許多不足,例如可處理的模態有限,在某些方面比不上專業模型等。
雖然調度的是 HuggingFace 的模型,但 HuggingGPT 畢竟不是 HuggingFace 官方製作。剛剛,HuggingFace 終於出手了。
和 HuggingGPT 概念類似,他們推出了一個新的 API—HuggingFace Transformers Agents。透過 Transformers Agents,你可以控制 10 萬多個 Hugging Face 模型完成各種多模態任務。
例如在下面這個例子中,你想讓 Transformers Agents 大聲解釋圖片上描繪了什麼內容。它會試著理解你的指令(Read out loud thecontent of the image),然後將其轉換為 prompt,並挑選合適的模型、工具來完成你指定的任務。
英偉達AI 科學家Jim Fan 評論說:這一天終於來了,這是邁向「Everything APP」(萬事通APP)的重要一步。
不過也有人說,這和AutoGPT 的自動迭代還不一樣,它更像是省掉了寫prompt 並手動指定工具這些步驟,距離萬事通APP 還為時過早。
Transformers Agents 位址:https://huggingface.co/docs/transformers/transformers_agents
Transformers Agents 怎麼用?
在發布的同時,HuggingFace 就放出了Colab 位址,任何人都可以上手一試:
https://huggingface. co/docs/transformers/en/transformers_agents
#簡而言之,它在transformers 之上提供了一個自然語言API:首先定義一套策劃的工具,並設計了一個智能體來解釋自然語言和使用這些工具。
而且,Transformers Agents 在設計上是可擴充的。
團隊已經確定了一組可以授權給智能體的工具,以下是已整合的工具清單:
- 文件問答:給定一個圖像格式的文件(例如PDF),回答關於該文件的問題(Donut)
- 文字問答:給定一段長文本和一個問題,回答文本中的問題(Flan-T5 )
- 無條件的圖像說明:為圖像添加說明(BLIP)
- 圖片問答:給定一張圖片,回答關於這張圖片的問題(VILT)
- 影像分割:給定影像和prompt,輸出該prompt 的分割遮罩(CLIPSeg)
- 語音轉文字:給定一個人說話的錄音,將語音轉錄成文本(Whisper)
- #文字到語音:將文字轉換為語音(SpeechT5)
- #零樣本文字分類:給定文字和標籤列表,確定文字與哪個標籤最對應( BART )
- 文字摘要:用一個或幾個句子來概括一個長文本(BART)
- 翻譯:將文字翻譯成給定的語言(NLLB)
這些工具整合在transformers 中,也可以手動使用:
<code>from transformers import load_tooltool = load_tool("text-to-speech")audio = tool("This is a text to speech tool")</code>
使用者也可以將工具的程式碼推送到Hugging Face Space 或模型儲存庫,以便直接透過智能體來利用該工具,例如:
- 文字下載器:從web URL 下載文字
- Text to image : 根據prompt 產生圖片,利用Stable Diffusion
- 映像轉換:在給定初始影像和prompt 的情況下修改影像,利用instruct pix2pix stable diffusion
- Text to video : 根據prompt 生成小視頻,利用damo-vilab
具體玩法的話,我們先看幾個HuggingFace 的示例:
##生成圖像描述:
<code>agent.run("Caption the following image", image=image)</code>
#朗讀文字:
<code>agent.run("Read the following text out loud", text=text)</code>
輸入:A beaver is swimming in the water
輸出:
tts_example音訊:00:0000:01
讀取檔案:
在執行agent.run, 之前,需要先實例化一個大語言模型智慧體。這裡支援 OpenAI 的模型以及 BigCode、OpenAssistant 等開源模型。
首先,請安裝agents 附加元件以安裝所有預設依賴項:
<code>pip install transformers[agents]</code>
要使用openAI 模型,需要在安裝依賴項後實例化一個「OpenAiAgent」 openai:
<code>pip install openaifrom transformers import OpenAiAgentagent = OpenAiAgent(model="text-davinci-003", api_key="<your_api_key>")</code>
要使用BigCode 或OpenAssistant,首先登入以存取推理API:
<code>from huggingface_hub import loginlogin("<YOUR_TOKEN>")</code>
然後,實例化智能體:
<code>from transformers import HfAgentStarcoderagent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoder")StarcoderBaseagent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoderbase")OpenAssistantagent = HfAgent(url_endpoint="https://api-inference.huggingface.co/models/OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5")</code>
如果使用者對此模型(或另一個模型)有自己的推理端點,可以將上面的URL 替換為自己的URL 端點。
接下来,我们了解一下 Transformers Agents 提供的两个 API:
单次执行
单次执行是在使用智能体的 run () 方法时:
<code>agent.run("Draw me a picture of rivers and lakes.")</code>
它会自动选择适合要执行的任务的工具并适当地执行,可在同一指令中执行一项或多项任务(不过指令越复杂,智能体失败的可能性就越大)。
<code>agent.run("Draw me a picture of the sea then transform the picture to add an island")</code>
每个 run () 操作都是独立的,因此可以针对不同的任务连续运行多次。如果想在执行过程中保持状态或将非文本对象传递给智能体,用户可以通过指定希望智能体使用的变量来实现。例如,用户可以生成第一张河流和湖泊图像,并通过执行以下操作要求模型更新该图片以添加一个岛屿:
<code>picture = agent.run("Generate a picture of rivers and lakes.")updated_picture = agent.run("Transform the image in picture to add an island to it.", picture=picture)</code>
当模型无法理解用户的请求并混合使用工具时,这会很有帮助。一个例子是:
<code>agent.run("Draw me the picture of a capybara swimming in the sea")</code>
在这里,模型可以用两种方式解释:
- 让 text-to-image 水豚在海里游泳
- 或者,生成 text-to-image 水豚,然后使用 image-transformation 工具让它在海里游泳
如果用户想强制执行第一种情况,可以通过将 prompt 作为参数传递给它来实现:
<code>agent.run("Draw me a picture of the prompt", prompt="a capybara swimming in the sea")</code>
基于聊天的执行
智能体还有一种基于聊天的方法:
<code>agent.chat("Generate a picture of rivers and lakes")</code>
<code>agent.chat ("Transform the picture so that there is a rock in there")</code>
这是一种可以跨指令保持状态时。它更适合实验,但在单个指令上表现更好,而 run () 方法更擅长处理复杂指令。如果用户想传递非文本类型或特定 prompt,该方法也可以接受参数。
以上是一鍵控制10萬多個AI模型,HuggingFace為類ChatGPT模型們做了個「APP Store」的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。
