在開始使用 Azure OpenAI Service 的時候,看到一堆模型,一開始會不知道該選擇哪一個,所以還是得先瞭解一下目前 Azure OpenAI Service 上面目前有哪些可以使用的模型,又它們適合的情境會是在哪一方面。
說明
目前在 Azure OpenAI Service 上面提供了幾個大分類的模型,將主要功能和適用的情境整理如下:
GPT-3 和 Codex 已 retired,之後一律使用 GPT 3.5 或 GPT-4
Embeddings | |||
描述 | 一系列可以將文字轉為向量格式的模型,可將結果給機器學習模型和演算法使用。目前 Azure OpenAI Service 提供三個系列的模型:相似度、文字搜尋、程式碼搜尋。 | ||
適合情境 |
|
|
|
支援微調 (Fine-tune) | 無 |
GPT-3.5 (ChatGPT) | GPT-4 | |
描述 | GPT-3 的改進模型,可以理解並產生自然語言或程式碼。也是 ChatGPT 使用的模型。 | GPT-3.5 的改善模型,為目前推出的模型中,能力最強大的模型。 |
適合情境 | GPT3 + Codex 適合的情景皆可 | GPT3 + Codex 適合的情景皆可 |
支援微調 (Fine-tune) | 無 | 無 |
在 Azure OpenAI Service 上目前 GPT-4 為預覽階段,需額外填寫表單申請,也限制在已經通過 Azure OpenAI Service 申請才可以再申請此模型。目前只要可以使用 Azure OpenAI 就可以使用,要注意有提供的區域。
以上是 Azure OpenAI 上面目前有提供的模型,除此之外 OpenAI 還有提供一些模型:
- DALL·E
將自然語言轉成圖片的模型,未來 Azure OpenAI 上應該也會提供,因為牌價表是有的。(目前微軟已有提供且最新版為 DALLE 3) - Whisper
將聲音轉成文字的模型,目前可以使用 Azure 認知服務中的語音轉文字 (Speech to text) 來取代。(目前微軟也有提供) - Moderation
檢查內容是否有包含不適當的字眼和分類,像是仇恨、威脅、自殘、性、未成年等,目前可以使用 Azure Content Moderator 來取代。
模型命名慣例
在模型的命名上通常會以底下的格式來命名:
{capability}-{family}[-{input-type}]-{identifier}
元素 | 描述 |
{capability} | 模型的模型功能。 例如,GPT-3 模型會使用 text ,而 Codex 模型則使用 code 。 |
{family} | 模型的相對系列。 例如,GPT-3 模型包括 ada 、babbage 、curie 和 davinci 。 |
{input-type} | 模型支援的內嵌輸入類型 (僅限內嵌模型)。 例如,文字搜尋內嵌模型支援 doc 和 query 。 |
{identifier} | 模型的版本識別碼。 |
GPT-4 模型
GPT-4 可以解決比任何 OpenAI 先前模型更精確的困難問題。 如同 gpt-35-turbo,GPT-4 已針對聊天優化,但適用於傳統完成工作。目前按照可接受的 Token 數分為兩個系列,差異在 gpt-4
可接受的 Token 上限為 8192,gpt-4-4k
為 32768。
gpt-4
gpt-4-32k
gpt-4-turbo-preview
2023/11 新增
GPT-3 模型 (Retired)
GPT-3 根據模型能力和適用情境還分作 4 個系列,相關功能和細節整理如下:
|
|
|
| |
|
|
|
|
在系列的命名上其實很容易記憶,從系列的第一個英文字母來看 A → D,模型能力會逐漸變大,而後面的模型當然也可以完成前面模型的情境,但是可能回應速度會比較慢,所以可以根據需求跟成本來考量該選擇哪一種系列。
Codex 模型 (Retired)
Codex 是 GPT-3 子系的模型,它訓練資料還有來自於 GitHub 上的大量程式碼,效果上會以 Python 會最好,除此之外也支援 C#、JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、SQL 和 Shell 等程式語言,而根據能力分為兩個系列:
|
| |
ChatGPT 模型
專為交談介面而設計的模型,命名為 gpt-35-turbo
,和 GPT-3 模型不同,需要用特定格式的聊天文字記錄格式作為 Prompt。目前 0301 會在 2024/01/04 Retired,以及新增 16k 模型,可以接受 16384 個 Tokens。
- gpt-35-turbo (0301)
- gpt-35-turbo (0613)
- gpt-35-turbo-16k (0613)
- gpt-35-Turbo (1106) 2023/11 新增
Embeddings 模型
Embeddings 分為三個功能系列:相似度、文字搜尋、程式碼搜尋,每個系列也像前面 GTP-3 會再根據運算能力分為 Ada、Babbage、Curie、Davinci,當然運算速度跟結果也和前面是一樣按照 A → D 變化,除此之外還影響到模型可回傳的維度。
- Ada:1024 個維度
- Babbage:2048 個維度
- Curie:4096 個維度
- Davinci:12288 維度
底下借用 OpenAI 的一張圖,Embeddings 系列模型會將輸入的文字,根據不同功能的模型轉換成右邊的文字對應的向量,這些資料就可以給機器學習模型之類或是用來給分群(Clustering)和迴歸使用等。
比如說拿向量結果畫出底下的分群圖 (圖片來自於 OpenAI):
04/22 補充
目前不管在 Azure 或是 OpenAI 都建議使用新推出的 v2 版模型 text-embedding-ada-002
,這個模型就不按照功能來區分,就只需要使用同一個模型就可以完成任務,更多新模型的介紹可以參考 OpenAI 的說明頁面。
相似度 (Similarity)
用於兩個或以上文字片段之間語意的相似度。
|
文字搜尋
用於文本的語意等的檢索。又可以分為擷取文件類型為 doc,搜尋和查詢為 query。
|
程式碼搜尋
用於使用自然語言對程式碼搜尋相關。code 用擷取程式碼片段,text 用於自然語言搜尋。
|
小彩蛋
在找資料的時候有注意到一個系列命名的小彩蛋,就是他的名字都是過去在數理相關領域的名人,整理如下,如果對於這些名人有興趣的朋友可以參考連結的 Wiki 說明,不過也找不到官方文件正式說明命名是不是有關,就當作小彩蛋來看吧。
系列 | 名人 |
Ada | 愛達·勒芙蕾絲 |
Babbage | 查爾斯·巴貝奇 |
Curie | 瑪麗·居禮 (居禮夫人) |
Davinci | 李奧納多·達文西 |
結論
稍微整理了 OpenAI 和 OpenAI 對於模型的解釋,以及針對模型適合使用的情境,其他還有一些細節,大家可以參考參考資料提供的連結去細看。
2023/07/22 更新
目前有許多模型都會被淘汰掉,之前建立的會還可以在 2024/07/05 前使用,建議可以參考官方文件盡快使用其它模型來取代。