目錄
Transformers Agents 怎麼用?
首頁 科技週邊 人工智慧 一鍵控制10萬多個AI模型,HuggingFace為類ChatGPT模型們做了個「APP Store」

一鍵控制10萬多個AI模型,HuggingFace為類ChatGPT模型們做了個「APP Store」

May 16, 2023 am 09:40 AM
ai 模型

從聊天到程式設計再到支援各種插件,強大的 ChatGPT 早就不是一個簡單的對話助手,而是朝著 AI 界的「管理層」不斷前進。

3 月 23 號,OpenAI 宣布 ChatGPT 開始支援各類第三方插件,例如著名的理工科神器 Wolfram Alpha。藉由此神器,原本雞兔同籠都算不準的 ChatGPT 一躍成為理工科尖子生。 Twitter 上許多人評論說,ChatGPT 插件的推出看起來有點像 2008 年 iPhone App Store 的推出。這也意味著 AI 聊天機器人正在進入一個新的進化階段 ——「meta app」階段。

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

緊接著,4 月初,浙江大學和微軟亞研的研究者提出了一種名為「HuggingGPT ”的重要方法,可以看做是上述路線的大規模演示。 HuggingGPT 讓 ChatGPT 充當控制器(可以理解為管理層),由它來管理其他大量的 AI 模型,從而解決一些複雜的 AI 任務。具體來說,HuggingGPT 在收到用戶請求時使用 ChatGPT 進行任務規劃,根據 HuggingFace 中可用的功能描述選擇模型,用選定的 AI 模型執行每個子任務,並根據執行結果匯總回應。

這種做法可以彌補當前大模型的許多不足,例如可處理的模態有限,在某些方面比不上專業模型等。

雖然調度的是 HuggingFace 的模型,但 HuggingGPT 畢竟不是 HuggingFace 官方製作。剛剛,HuggingFace 終於出手了。

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

和 HuggingGPT 概念類似,他們推出了一個新的 API—HuggingFace Transformers Agents。透過 Transformers Agents,你可以控制 10 萬多個 Hugging Face 模型完成各種多模態任務。

例如在下面這個例子中,你想讓 Transformers Agents 大聲解釋圖片上描繪了什麼內容。它會試著理解你的指令(Read out loud thecontent of the image),然後將其轉換為 prompt,並挑選合適的模型、工具來完成你指定的任務。

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

英偉達AI 科學家Jim Fan 評論說:這一天終於來了,這是邁向「Everything APP」(萬事通APP)的重要一步。

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

不過也有人說,這和AutoGPT 的自動迭代還不一樣,它更像是省掉了寫prompt 並手動指定工具這些步驟,距離萬事通APP 還為時過早。

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

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>
登入後複製

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

#朗讀文字:

<code>agent.run("Read the following text out loud", text=text)</code>
登入後複製

輸入:A beaver is swimming in the water

輸出:

tts_example音訊:00:0000:01

讀取檔案:

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

在執行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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1324
25
PHP教程
1272
29
C# 教程
1251
24
C  中的chrono庫如何使用? C 中的chrono庫如何使用? Apr 28, 2025 pm 10:18 PM

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

如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

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

怎樣在C  中處理高DPI顯示? 怎樣在C 中處理高DPI顯示? Apr 28, 2025 pm 09:57 PM

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

C  中的實時操作系統編程是什麼? C 中的實時操作系統編程是什麼? Apr 28, 2025 pm 10:15 PM

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

怎樣在C  中測量線程性能? 怎樣在C 中測量線程性能? Apr 28, 2025 pm 10:21 PM

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

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

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

量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 Apr 30, 2025 pm 07:24 PM

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

C  中的字符串流如何使用? C 中的字符串流如何使用? Apr 28, 2025 pm 09:12 PM

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

See all articles