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