Azure OpenAI Service 01 - Azure OpenAI 模型介紹

在開始使用 Azure OpenAI Service 的時候,看到一堆模型,一開始會不知道該選擇哪一個,所以還是得先瞭解一下目前 Azure OpenAI Service 上面目前有哪些可以使用的模型,又它們適合的情境會是在哪一方面。

說明

目前在 Azure OpenAI Service 上面提供了幾個大分類的模型,將主要功能和適用的情境整理如下:

GPT-3 和 Codex 已 retired,之後一律使用 GPT 3.5 或 GPT-4
 GPT-3CodexEmbeddings
描述一系列可以瞭解並產生自然語言的模型。一系列可以理解和產生程式碼的模型,也包含可以將自然語言翻譯成程式碼的功能。屬於 GPT-3 的子系列,訓練資料包含來自於 GitHub 上面的程式碼。一系列可以將文字轉為向量格式的模型,可將結果給機器學習模型和演算法使用。目前 Azure OpenAI Service 提供三個系列的模型:相似度、文字搜尋、程式碼搜尋。
適合情境
  • 聊天機器人
  • 文章或句子情緒分析
  • 翻譯文字
  • 產生文案
  • 按前後文完成文字
  • 歸納文章重點
  • 產生範例程式碼
  • 解釋 SQL 語法
  • 撰寫單元測試
  • 檢查程式碼是否有錯
  • 程式語言轉換
  • 產生 SQL 語法
  • 重寫程式碼成函示庫或框架版本
  • 插入程式碼
    • 根據前後綴在中間插入並完成程式碼
  • 編輯程式碼
    • 產生程式範例
    • 重構程式
    • 函示重新命名
    • 新增文件說明
  • 搜索
    結果按與查詢文字的相關性排序
  • 聚類
    按查詢文字相似性分組
  • 推薦
    推薦具有相關文字的項目
  • 異常檢測
    識別出相關性低的異常值
  • 多樣性測量
    分析相似性分佈
  • 分類
    查詢的文章按其最相似的標籤分類
支援微調 (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 模型包括 adababbagecuriedavinci
{input-type}模型支援的內嵌輸入類型 (僅限內嵌模型)。 例如,文字搜尋內嵌模型支援 docquery
{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 個系列,相關功能和細節整理如下:

 AdaBabbageCurieDavinci
命名text-ada-001text-babbage-001text-curie-001text-davinci-003
速度 (數字越小回應速度越快)1234
結果 (數字越小回應結果越好)4321
適用情境
  • 剖析文字
  • 簡單分類
  • 地址修正
  • 關鍵字搜尋
  • 中等分類
  • 語意搜尋分類
  • 語言翻譯
  • 複雜分類
  • 文本情感
  • 文本摘要
  • 理解複雜意圖
  • 理解因果關係
  • 文章或內容摘要

在系列的命名上其實很容易記憶,從系列的第一個英文字母來看 A → D,模型能力會逐漸變大,而後面的模型當然也可以完成前面模型的情境,但是可能回應速度會比較慢,所以可以根據需求跟成本來考量該選擇哪一種系列。

Codex 模型 (Retired)

Codex 是 GPT-3 子系的模型,它訓練資料還有來自於 GitHub 上的大量程式碼,效果上會以 Python 會最好,除此之外也支援 C#、JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、SQL 和 Shell 等程式語言,而根據能力分為兩個系列:

 CushmanDavinci
命名code-cushman-001code-davinci-002
速度 (數字越小回應速度越快)12
結果 (數字越小回應結果越好)21

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)

用於兩個或以上文字片段之間語意的相似度。

適用類型模型命名
集群、迴歸、異常偵測、資料視覺化text-similarity-ada-001
text-similarity-babbage-001
text-similarity-curie-001
text-similarity-davinci-001

文字搜尋

用於文本的語意等的檢索。又可以分為擷取文件類型為 doc,搜尋和查詢為 query

適用類型模型命名
搜尋、內容相關性、資訊擷取text-search-ada-doc-001
text-search-ada-query-001
text-search-babbage-doc-001
text-search-babbage-query-001
text-search-curie-doc-001
text-search-curie-query-001
text-search-davinci-doc-001
text-search-davinci-query-001

程式碼搜尋

用於使用自然語言對程式碼搜尋相關。code 用擷取程式碼片段,text 用於自然語言搜尋。

適用類型模型命名
程式碼搜尋和相關性code-search-ada-code-001
code-search-ada-text-001
code-search-babbage-code-001
code-search-babbage-text-001

小彩蛋

在找資料的時候有注意到一個系列命名的小彩蛋,就是他的名字都是過去在數理相關領域的名人,整理如下,如果對於這些名人有興趣的朋友可以參考連結的 Wiki 說明,不過也找不到官方文件正式說明命名是不是有關,就當作小彩蛋來看吧。

系列名人
Ada愛達·勒芙蕾絲
Babbage查爾斯·巴貝奇
Curie瑪麗·居禮 (居禮夫人)
Davinci李奧納多·達文西

結論

稍微整理了 OpenAI 和 OpenAI 對於模型的解釋,以及針對模型適合使用的情境,其他還有一些細節,大家可以參考參考資料提供的連結去細看。

2023/07/22 更新

目前有許多模型都會被淘汰掉,之前建立的會還可以在 2024/07/05 前使用,建議可以參考官方文件盡快使用其它模型來取代。

參考資料