Skip to content

私有 Azure OpenAI Serivce 預想架構規劃

Info

此文是寫給廣大的 IT Infra 背景群眾看的,主要是提供落地架構設計參考,若你是想要知道 OpenAI 怎麼用的,此文並無涉及,可以參考官方文件 Azure OpenAI is now generally available

2022/11 最驚嚇到我的事情就是 ChatGPT 這服務的誕生,簡直看到 科技奇異點 ,然後沒想到這服務的母公司 OpenAI 居然是 Microsoft 投資的,我只能說真的是可喜可賀和感到哀傷。

可喜可賀是我可以在很近的距離看到這技術將要創造的歷史,感到哀傷是 ChatGPT 樹立了一個相當驚人的技術屏障,都不知道以後新進或菜鳥工程師到底要怎麼跟這個競爭,但幸好若問他做特別需要專業性問答的事情,這服務目前有可能會回答錯誤或亂答,譬如說問它網路除錯或設計問題後,看起來我還不會失業 :>

下圖是標準工程師使用範例,本人對於 HTML 和 CSS 毫無理解,也不知道從何改,然後我就去問 ChatGPT 後,就改好了...

Azure OpenAI Service Architecture Pre Design

聲明

於本文撰寫的今天 20220203 雖身為 Microsoft 員工,但我也還沒有拿到 Azure OpenAI 的訂閱權限,所以還沒有實測過這架構,故本文是依據既有 Azure 文件和我對 Azure 網路的認知提供預想架構給各位參考,反正後續可以修修改改

主要是看到強者我同事 Jimmy Liao - Azure OpenAI Part 1: 初探 OpenAI Studio 這文章,看到裡面 Azure OpenAI 左側的內容,才想先把網路架構先寫一寫給大家參考一下

目前預想私有架構上分為 2 個方案

  1. 生產環境規劃
  2. PoC 驗證環境規劃

方案 1: Production 生產私有環境規劃

方案 2: PoC 驗證私有環境規劃

預想私有架構詳解

整體私有網路的架構關鍵核心是 Azure Private Endpoint 和 Azure Private Link 的使用,根據此文 Private-link resource 故可提供以下服務 Private Endpoint 給私有連線使用,此外這個服務是在 Azure Cognitive Services 底下,所以若你有既有架構的話可以直接沿用

Private-link resource name Resource type Note
Azure OpenAI Services Microsoft.CognitiveServices/accounts 文件還沒有出來,但功能有
Azure Key Vault Microsoft.KeyVault/vaults N/A
Azure Storage Microsoft.Storage/storageAccounts N/A
Azure Monitor Microsoft.insights/privateLinkScopes 這個是用 Azure Monitor Private Link Scope (AMPLS)
Azure Cognitive Services Microsoft.CognitiveServices/accounts N/A

關於 DNS,如果是完全新建服務的話,還要注意 Azure Private DNS 解析問題,但這是另一塊需要額外討論處理,解法不外乎 2 種常見作法:

  1. Azure Private DNS Resovler: Azure PaaS 服務,本身有跨國架構需求,有 Private DNS Zone 管理需求相當推薦
  2. Customer DNS Forwarder: Azure VM + 看你喜歡哪家的 DNS,如 AD / Infoblox / Bind9 等,做 Forwarder

關於雲地連線,從地端環境連到 Azure,不外乎就 2 種常見做法

  1. Azure ExpressRoute 專線
  2. S2S VPN 使用 IPSec Tunnel

如果只是初期開啟來試試的話,S2S VPN 能用,後續訓練資料量大起來的話,是蠻推薦使用 ExpressRoute 確保連線穩定和低延遲,詳參 滑鼠點點之跨國 Azure ExpressRoute 網路架構

建議完整服務

下述的 API Management/Application Gateway 跟 Azure OpenAI 能力提供並無直接關係,故初期測試可以先以 PoC 驗證環境規劃樣板為主,再後續加下列服務上去完善

此外關於 API 控管的部分,Azure OpenAI 有提供 Azure OpenAI Service Swagger API 供程式呼叫使用,它角色如同常見的 Backend APIs,服務本身沒有做什麼特別的保護,故前面可以使用 API Management 進行轉換 API 和管制,而 API Management 前面還可以用 Application Gateway 保護 API

Q&A

Q1: 如果我不用上面什麼 Private Endpoint 還是有的沒的,可以用 Azure OpenAI Service?

A1: 可以,強者我同事 Jimmy Liao - Azure OpenAI Part 1: 初探 OpenAI Studio有寫系列文,可以直接參考他的系列文章

Q2: 現在申請不到 Azure OpenAI Service,難道我就沒什麼東西可以先評估了嗎?

A2: 雲地網路可以先討論和先拉,按照我的理解,正常台灣客戶討論到實際落地起來都會比 Azure OpenAI Service 推出的時間還要久,因為它不是單純滑鼠點點就可以解決的事情

其次就是看 Production 生產私有環境規劃 內容,了解一下裡面的內容個別功能

Q3: 無關題目,身為一名 Infra 工程師,對於這個服務有什麼想像力嗎?

A3: 修網路,丟給它一堆路由資訊,然後跟我說一下到底哪一條是擺錯的或者是哪裡怪怪的

References