Azure OpenAI 和文字完成概觀
Azure OpenAI 服務提供以 REST API 存取 OpenAI 強大的語言模型,包括 GPT-3.5 及 GPT-4 模型系列。 這些模型可以輕鬆地調整至您的特定工作,包括但不限於內容生成、摘要、語意搜尋,以及自然語言翻譯為程式碼。
除了 REST API 存取之外,還有 .NET SDK 可用來存取 Azure OpenAI 服務。 這就是我們將用來組建應用程式的內容。 但在組建應用程式之前,讓我們進一步了解什麼是 Azure OpenAI,以及什麼是文字完成。 了解這個讓我們具備使用 AI 組建令人驚奇的應用程式所需的基礎。
Azure OpenAI 概觀
Azure OpenAI 服務使用 OpenAI GPT-3.5、GPT-4、Codex 和 DALL-E 模型給予客戶進階語言 AI,並提供 Azure 的安全性和企業承諾。 Azure OpenAI 使用 OpenAI 共同開發 API,以確保相容性,並且能夠在兩個 API 之間順暢轉換。
透過 Azure OpenAI,客戶可享有 Microsoft Azure 的安全性功能,同時執行與 OpenAI 相同的模型。 Azure OpenAI 提供私人網路、區域可用性、負責任 AI 內容篩選,以及使用您自己的資料擴充模型的能力。
完成端點是 API 服務的核心元件。 此 API 可提供存取模型的文字輸入、輸出介面。 使用者只要提供包含英文文字命令的輸入提示,模型就會產生完成文字。
文字完成
在本單元中,我們將了解文字完成。 不過,完成端點可用於各種不同的工作。 它為所有 Azure OpenAI 模型提供簡單而強大的文字輸入、輸出介面。 您輸入一些文字作為提示,模型就會產生試圖與您提供的任何內容或模式相符的完成。 例如,如果您給 API 這個提示:「正如笛卡兒說,我思,故」,模型就有很高的可能性會傳回「我在」的完成。
您看到的實際完成結果可能會有所不同,因為 AI 預設是隨機的。 換句話說,每次呼叫時,您可能會收到稍微不同的完成,即使您的提示維持不變。
這個簡單的「文字輸入、輸出」介面意味著您可以透過提供指示,或是幾個您想要它完成的動作範例,就可以「程式設計」此模型。 它的成功通常取決於工作的複雜度,以及您提示的品質。 一般的規則是,思考您要如何撰寫一個文字問題,交給年輕的學生去解決。 撰寫良好的提示會提供足夠的資訊,讓模型知道您想要的內容及其回應的方式。
我們稍後將探討如何撰寫良好的提示,但現在讓我們看看不同類型的完成。
Azure OpenAI 完成的類型
如前所述,您將提示傳入 Azure OpenAI API,以提供您想要它執行的動作指示。 而且,您可以讓它執行像是分類文字、產生構想,或甚至將文字轉譯成表情符號等動作。
分類
針對此第一個完成類型,讓我們深入探討如何使用指示「程式設計」模型。
您可以告訴模型將資料排序為預先定義的類別。 此完成類型稱為分類。
例如,您可以傳遞指示或提示,類似於完成 API:
This is a sentiment classifier
Example: "I loved the new movie!"
Sentiment: Positive
Example: "I hate it when my phone battery dies"
Sentiment: Negative
Example: "My day has been 👍"
Sentiment: Positive
Example: "This is the link to the article"
Sentiment: Neutral
Examples:
1. "I loved the new Batman movie!"
2. "I hate it when my phone battery dies"
3. "My day has been 👍"
4. "This is the link to the article"
5. "This new music video blew my mind"
Examples sentiment ratings:
1: Positive
2: Negative
3: Positive
4: Neutral
5: Positive
Create sentiments for:
1. "I can't stand homework"
2. "This is no fun. I'm bored 😠"
3. "I can't wait for Halloween!!!"
4. "My cat is adorable ❤️❤️"
5. "I hate chocolate"
Sentiment classifications:
1.
向模型顯示 4 個用情緒分類的句子範例之後,我們提供它一列範例清單,然後再提供一列具有相同數字索引的情緒評分。 API 能夠從中找出它要如何輸出已分類的情緒。
這可引導到我們想要模型執行的動作:我們會為模型提供 5 種情緒來分類,然後它應該會在一列排序清單中輸出每一種的分類。
這可讓模型用一個呼叫就對五個 (甚至更多) 範例進行評分。
您可以開始明白提示,或者傳遞至模型的文字,就是程式設計語言。
第幾代
您可以使用各種 GPT 模型完成的一個最強大而且最簡單的工作,就是產生新構想或輸入的版本。 您可以給模型一列故事的幾個構想清單,它就會試著新增內容到清單中。 我們看過它建立商務方案、特性描述和行銷口號,只要提供幾個範例即可。
交談
此模型能非常熟練地和人類交談,甚至與自己對話。 我們已經看過只用幾行指令,此模型就能以客服聊天機器人的身分聰明地解答問題,絕不會慌張,或是作為妙語如珠的聊天夥伴,會講笑話和雙關語。
轉換
此模型是一種語言模型,對於使用文字和字元來傳達資訊的方式非常熟悉。 範圍從自然語言文字到英文以外的程式碼和語言。 此模型也能了解內容到一個層次,讓它可以使用不同的方式加以摘要、轉換和表達。
翻譯
此模型已經掌握許多語言,例如法文,因此您不需要教導它。 相反地,您只需要在提示中提供足夠的翻譯範例,讓它瞭解它只是從一種語言翻譯成另一種語言。
轉換
在此範例中,我們會將電影的名稱轉換成表情圖示。 這可顯示模型在提取模式及處理其他字元的適應性。
在這裡,我們預期輸出是蜘蛛人電影的表情圖示標記法。
Back to Future: 👨👴🚗🕒
Batman: 🤵🦇
Transformers: 🚗🤖
Wonder Woman: 👸🏻👸🏼👸🏽👸🏾👸🏿
Spider-Man: 🕸🕷🕸🕸🕷🕸
Winnie the Pooh: 🐻🐼🐻
The Godfather: 👨👩👧🕵🏻♂️👲💥
Game of Thrones: 🏹🗡🗡🏹
Spider-Man:
摘要
此模型能夠掌握文字內容並使用不同的方式重新述說。 例如,它可能需要一組文字,並產生讓兒童都可瞭解的說明。
Completion
雖然所有提示都會有完成結果,但是在您想要模型補足您無法做到的部分的案例中,把文字完成想成它自己的工作會很有幫助。 例如,如果給予模型這個提示,它就會繼續關於垂直農業的思路。
Vertical farming provides a novel solution for producing food locally, reducing transportation costs and
基於事實的回應
大型語言模型 (LLM) 有許多知識,是從他們定型的資料中已經學習到的。 它們也能夠提供聽起來真實,但事實上是編造的回應。 有兩種方式可以限制 LLM 編造答案的可能性。
1. 提供基本事實給 API 如果您提供模型一篇文本 (像是維基百科的項目) 以回答問題,它比較不可能編造回應。
2. 使用低可能性並向 API 顯示如何說「我不知道」 如果模型了解在它遇到比較不確定的問題時,說「我不知道」或類似的回應是合適的,它就比較不會編造答案。
在此範例中,我們給模型它已知的問題和解答範例,然後給予它所不知道的事物範例並提出問號。 我們也將可能性設定為零,讓模型在有任何疑慮時,更可能回覆"?"
Q: Who is Batman?
A: Batman is a fictional comic book character.
Q: What is torsalplexity?
A: ?
Q: What is Devz9?
A: ?
Q: Who is George Lucas?
A: George Lucas is American film director and producer famous for creating Star Wars.
摘要
Azure OpenAI 服務提供以 REST API 存取 OpenAI 強大的語言模型,包括 GPT-3.5 及 GPT-4 模型系列。 它也給予您所依賴的從 Azure 雲端提供的安全性和企業功能。
OpenAI 語言模型中最有用的功能之一是文字完成。 您傳入提示或一般語言描述,說明您想要模型執行的動作,而且它可以執行文字分類、文字生成或文字摘要等工作。