Hugging Face + PyCharm
那是一個星期二的早晨。作為 Transformers 的維護者,我正在做我大多數工作日早晨都會做的事情:開啟 PyCharm,載入 Transformers 程式碼庫,深情地凝視著 聊天模板文件,同時忽略了當天被提及的 50 個使用者問題。但這一次,感覺有些不同。
有些東西……等等!電腦!增強!
那是……?
那些使用者問題今天肯定不會得到回覆了。我們來談談 PyCharm 中的 Hugging Face 整合。
Hugging Face 就在你家
我可以只列出功能來介紹這個整合,但這很無聊,而且有文件可以查閱。相反,讓我們透過實踐來了解如何使用它。假設我正在編寫一個 Python 應用程式,並且我決定應用程式能夠與使用者聊天。不僅僅是文字聊天,我們還希望使用者能夠貼上圖片,並且應用程式也能自然地討論這些圖片。
如果您對機器學習的當前最新技術不太熟悉,這可能看起來是一個可怕的需求,但不要害怕。只需在您的程式碼中右鍵單擊,然後選擇“插入 HF 模型”。您將看到一個對話方塊:
與影像和文字同時聊天被稱為“影像-文字-文字”:使用者可以提供影像和文字,模型輸出文字。在左側向下滾動直到找到它。預設情況下,模型列表將按點贊數排序——但請記住,舊模型即使不再是最新技術,也通常會積累大量點贊。我們可以透過檢視模型名稱下方最後更新的日期來檢查模型的舊程度。讓我們選擇一個既新近又受歡迎的模型:microsoft/Phi-3.5-vision-instruct
。
您可以為某些模型類別選擇“使用模型”以自動將一些基本程式碼貼上到您的筆記本中,但通常更好的方法是滾動右側的模型卡並獲取任何示例程式碼。您可以在對話方塊右側看到完整的模型卡,與 Hugging Face Hub 上顯示的一模一樣。我們來做這個,然後把它貼上到我們的程式碼中!
您的辦公室網路安全人員可能會抱怨您從網際網路上覆制了一大段隨機文字,甚至沒有閱讀就運行了它,但如果發生這種情況,就稱他們為書呆子,然後繼續操作。瞧:我們現在有了一個可以愉快地討論影像的工作模型——在這種情況下,它讀取並評論 Microsoft 幻燈片截圖。請隨意玩轉這個示例。嘗試您自己的聊天或您自己的影像。一旦它執行起來,只需將此程式碼封裝到一個類中,它就可以在您的應用程式中使用了。我們剛剛在十分鐘內就獲得了最先進的開源機器學習,甚至沒有開啟網頁瀏覽器。
這些模型可能很大!如果您遇到記憶體錯誤,請嘗試使用記憶體更大的 GPU,或者嘗試減小示例程式碼中的 20。您還可以刪除 device_map="cuda" 將模型放入 CPU 記憶體中,但會犧牲速度。
即時模型卡片
接下來,讓我們在我們的這個小場景中改變視角。現在假設您不是這段程式碼的作者——您是一位需要審查它的同事。也許您就是之前那位“書呆子”評論的網路安全人員,仍然對那個評論感到不滿。您看著這段程式碼片段,完全不知道自己在看什麼。別慌——只需將滑鼠懸停在模型名稱上,整個模型卡就會立即出現。您可以快速驗證這個模型的來源,以及它的預期用途。
(如果您在做其他事情,完全忘記了兩週前編寫的程式碼,這也會非常有用)
本地模型快取
您可能會注意到,第一次執行此程式碼時,模型必須下載,但之後載入速度會快得多。模型已儲存在您的本地快取中。還記得前面那個神秘的 🤗 圖示嗎?只需單擊它,您就會看到快取中的所有內容:
這是一種查詢您當前正在使用的模型的好方法,並且一旦您不再需要它們,也可以清除它們並節省一些磁碟空間。對於兩週失憶症的情況也很有幫助——如果您不記得當時使用的模型,它可能就在這裡。請記住,2024 年大多數有用的、生產就緒的模型都會大於 1GB,因此您的快取可能會很快填滿!
人工智慧時代的 Python
在 Hugging Face,我們傾向於將開源 AI 視為開源理念的自然延伸:開放軟體為開發人員和使用者解決問題,為他們創造新的能力以整合到其程式碼中,開放模型也如此。人們往往會被複雜性矇蔽,過分關注實現細節,因為它們都是如此新穎和令人興奮,但模型存在的目的是**為您做事。**如果您抽象掉架構和訓練的細節,它們本質上是**函式**——您程式碼中的工具,將某種輸入轉換為某種輸出。
因此,這些功能是天作之合。就像 IDE 已經為您調出函式簽名和文件字串一樣,它們也可以為訓練好的模型調出示例程式碼和模型卡。像這樣的整合使得輕鬆地引入聊天或影像識別模型變得非常方便,就像您引入任何其他庫一樣。我們認為這顯然是未來程式碼的樣子,我們希望您會覺得這些功能很有用!
下載 PyCharm 即可試用 Hugging Face 整合。
[HF 整合是 Pycharm Professional 的一項功能。]
點選此處,使用 PyCharm4HF 程式碼免費獲得 3 個月的 PyCharm 訂閱。