2021年11月的 Microsoft Ignite , 微軟帶來了全新的 Azure OpenAI Service,通過新的 Azure 認知服務(wù)能夠訪問 OpenAI 強大的 GPT-3 模型 。 雖然微軟還沒有正式開放 Open AI Service , 但 GitHub 和 OpenAI 已經(jīng)推出了基于 GPT-3 的新模型 Codex 的工具 - Copilot ,通過它可以幫助軟件開發(fā)人員更高效地編寫代碼。我相信不少小伙伴都已經(jīng)開始在 Visual Studio Code / Visual Studio 使用 Copilot 感受到 GPT-3 的威力。 作為開發(fā)者, 希望微軟能盡快開放相關(guān)文檔, 能盡快掌握相關(guān)技能 。 為了滿足各位要求, 今天我就帶大家進入 OpenAI 。
GPT-3 介紹
2020 年 5 月,Open AI 發(fā)表了一篇開創(chuàng)性的論文,題為 Language Models Are Few-Shot Learners。 他們展示了 GPT-3語言模型,它使用了一個具有 1750 億個參數(shù)的神經(jīng)網(wǎng)絡(luò)。 GPT-3 使用來自 CommonCrawl、WebText、維基百科和書籍語料庫的數(shù)據(jù)進行訓(xùn)練, 并在各種自然語言處理任務(wù)中表現(xiàn)出驚人的性能,包括翻譯、問答和完形填空任務(wù)。在性能上 GPT-3 也是非常優(yōu)秀, 超過了很多現(xiàn)有的模型。2020 年 7 月,也就是論文發(fā)表兩個月后,OpenAI 開放了一個 beta API playground,大家可以通過 API 方式訪問 GPT-3 模型。
GPT-3 的幾個主要特點
1. 零/單/少樣本學(xué)習(xí)(Zero/one/few-shot learning): 通常,深度學(xué)習(xí)會針對一組特定的類別進行訓(xùn)練和測試。 如果計算機視覺中對星球大戰(zhàn)中的 BB8 , R2D2 , C3PO 進行分類,在測試過程中就只能針對這三個類別進行。 但在零樣本學(xué)習(xí)設(shè)置中,系統(tǒng)在測試時,可以使用不在訓(xùn)練內(nèi)的類別(例如,用曼努達人做測試)。 單/少樣本學(xué)習(xí)(one-shot 和few-shot) 也是一個道理,在測試時,系統(tǒng)會分別看到一個或幾個新的類別。
2. 零/單/少樣本任務(wù)遷移(Zero/one/few-shot task transfer): 這個整合了 零/單/少樣本學(xué)習(xí)和多任務(wù)學(xué)習(xí)的概念。 新任務(wù)(或者顯示零個、一個或幾個新任務(wù)的示例)可以隨時執(zhí)行,而不是在測試時才展示新類。 例如, 輸入 “I love you -> 我愛你。 I miss you -> ____。” GPT-3 就可以通過單樣本任務(wù)遷移 ,把之前沒有訓(xùn)練過的英語轉(zhuǎn)中文的任務(wù)執(zhí)行起來
3. Transformers: Transformers 是解決機器翻譯問題的框架, 有一個簡單的網(wǎng)絡(luò)結(jié)構(gòu),基于自注意機制,不依賴于遞歸和卷積完全。通過并行計算使Transformer效率高,需要更少的訓(xùn)練時間。
4. 生成模型(Generative models): 統(tǒng)計學(xué)中分類任務(wù)有兩種模型-判別模型,生成模型。 判別模型對給定的可觀察變量和目標(biāo)變量對的條件概率進行編碼:p(y|x)。 生成模型對聯(lián)合概率進行編碼:p(x,y)。 生成模型可以“生成類似于現(xiàn)有數(shù)據(jù)的新數(shù)據(jù)”,GPT-3 模型就是應(yīng)用生成模型來。
5. 多任務(wù)學(xué)習(xí)(Multitask learning): 大多數(shù)深度學(xué)習(xí)系統(tǒng)都是單任務(wù)的, 只針對特定的場景。多任務(wù)系統(tǒng)克服了這一限制。 他們受過訓(xùn)練,能夠針對給定的輸入解決不同的任務(wù)。 例如我輸入一個蘋果,他可以幫我翻譯成英文的 Apple ,可以找到一張?zhí)O果的圖片,也可以找到蘋果的一些特征等。
6. 半監(jiān)督學(xué)習(xí)(Semi-supervised learning): 是以無監(jiān)督的方式訓(xùn)練具有非常大數(shù)據(jù)集的模型,然后通過在較小的數(shù)據(jù)集中使用監(jiān)督訓(xùn)練來調(diào)整模型以適應(yīng)不同的任務(wù)。
通過 OpenAI API 調(diào)用GPT-3
由于微軟現(xiàn)在還沒開放 OpenAI 的 GPT-3 功能 , 現(xiàn)階段我們只能通過 OpenAI (beta.openai.com) 提供的 API 使用 GPT-3 。(當(dāng)然你需要有一個美國的電話號碼來激活該功能) ,OpenAI 有非常豐富的文檔, 以及示例 ,讓開發(fā)者可以非常快上手使用 API。
Python 調(diào)用 API 幾個必須的步驟
- 安裝 openai 庫
pip install openai
-
申請 API 的密鑰
-
可以通過 Notebook 測試一下
幾個注意的點
- 模型 engine ,現(xiàn)在針對 GPT-3 有2個比較主要的模型
模型 | 介紹 |
---|---|
text-davinci-002 | GPT-3 關(guān)于自然語言處理場景的模型,通常需要較少的上下文。 除了響應(yīng)提示外,還支持在文本中插入補全。 |
code-davinci-002 | 可以理解和生成程序代碼的模型,包括將自然語言翻譯成代碼(這個模型需要另外申請) |
-
關(guān)于一些示例,你可以通過訪問
https://beta.openai.com/examples 學(xué)習(xí)更多的應(yīng)用場景
-
你可以通過 OpenAI 提供的 Playground 做一些測試 https://beta.openai.com/playground
-
你可以針對自己的業(yè)務(wù)定義 GPT-3 模型 ,你可以通過該鏈接了解更多 https://openai.com/blog/customized-gpt-3/
展望
GPT-3 功能強大 ,讓 AI 應(yīng)用場景更貼近實際的生活 。 我非常希望微軟的 OpenAI Service 能盡快開放 ,讓更多的開發(fā)者能使用。 還有現(xiàn)在 OpenAI GPT-3 在中文的支持還是非常有限的, 我也寄望微軟版本的服務(wù)能有更好的中文支持。
相關(guān)資料
-
了解 Azure OpenAI Service 功能,請訪問 https://azure.microsoft.com/en-us/services/cognitive-services/openai-service/
-
Azure OpenAI Service 介紹,請訪問
https://blogs.microsoft.com/ai/new-azure-openai-service/ -
OpenAI 的相關(guān)博客 https://openai.com/blog/
本文摘自 :https://www.cnblogs.com/