從本篇開始進入開發面的實踐,在進入Semantic Kernel之前,讓我們先前會用的模型做大略的認識,總不能要開發LLM應用,卻不認識模型對吧。目前較為人熟知的模型應屬ChatGPT了,不管是開發者或是一般使用者應該都有聽過,但是除了ChatGPT之外,其實像是Meta AI、Google都有一些開源模型,甚至一些政府研究單位也有基於一些開源模型進行微調或改造後的模型。
通常來說就是開源與非開源,像是ChatGPT是OpenAI公司商用的模型,未對外開源,而Meta AI的LLaMa則是開源的(但有一些條款必須遵守,詳情參閱Meta AI官方資料),如果想知道有哪些熱門的開源模型,那麼Hugging Face絕對是首選,在上面有相當多開源模型的資料(https://huggingface.co/models) ,擁有廣大的社群支援。
而ChatGPT模型則是非開源模型,所以開發者要使用時,僅能以API形成叫用服務商所提供的模型服務,目前僅有OpenAI與Microsoft Azure(簡稱AOAI)這二個地方提供ChatGPT模型服務。
OpenAI是推出ChatGPT模型的研究團隊,主要專注於自然語言處理、機器學習和深度學習等領域的研究,其中最著名的就是 GPT 系列模型,尤其是 GPT-3、GPT-3.5 以及目前最新的 GPT-4 模型,這些模型在自然語言生成和語言理解方面取得了顯著突破。2018 年,OpenAI 正式由非營利組織轉型為營利性質,並成立名為 OpenAI LP 的子公司,而2019 年,OpenAI 與微軟(Microsoft)達成獨家合作協議,微軟成為 OpenAI 的重要股東以及專屬雲端服務供應商。因此目前全球提供ChatGPT模型服務的廠商就只有OpenAI與Microsoft Azure OpenAI服務,而OpenAI的服務運算資源其背後也是Microsoft Azure雲端基礎建設。
那麼接下來的問題是,當我們要用ChatGPT模型時,要選擇OpenAI還是Microsoft Azure OpenAI服務呢?
如果你是個人開發者,屬於玩票性質,非實現真實產品的開發,那麼選擇OpenAI會比較方便,因為目前Microsoft Azure OpenAI服務是需要審核制的,以企業用戶為優先。除此之外,可以從以下面向去決定選擇哪一個平台。
模型更新速度
通常最新的模型會先於 OpenAI 上推出,約 2-3 週後,Azure 平台也會上架最新的模型。儘管雙方存在合作關係,更新速度雖有時間差,但不會相差過大。例如目前最新的 GPT-4 模型已在兩個平台上提供。另外Microsoft Azure OpenAI服務基於企業用戶的考量,對於即將退役的模型,其延長服務的時間會比OpenAI來的長,讓企業用戶有足夠時間能升及既有已存在的LLM應用。
平台穩定度
OpenAI 的「SLA 可靠性」目前官方文件並未有明確保證說明,根據我的使用經驗,即便我是付費訂閱用戶,在使用上仍然經常還到服務中斷的情況,這對實現產品化的LLM應用來說是值得注意的(工程師應該不想一天到晚接到客訴或老闆電話吧),而 Azure OpenAI
Service 根據 Microsoft 官方文件,至少達到 99.9 %(出事還有人可以背鍋XD)。
可擴展性
作為全球第二大的雲端平台的 Azure 無疑具備了擴展性,可以處理大量數據和流量的能力,並且可以易於搭配像權限管控,VPN等整合機制,而 OpenAI 平台目前尚未推出相關功能。
API 價格
目前是以Token數計價,二個平台價格大致上是一致的。不過目前OpenAI有推出Enterprise方案,也許在價格及功能或穩定性有不同的保證。
API 相容性
目前二個平台的API 相容性是沒什麼問題的,除了API 的呼叫端點不同之外。
資料隱私
過去OpenAI是會將使用者的對話記錄再次回饋於模型的訓練,不過目前OpenAI官方已聲明不會再使用使用者的對話記錄資料做為模型的訓練。至於Azure OpenAI Service則是一開始便基於資料隱私,不會將使用者的對話記錄用於模型的訓練。
首先模型的部份如同上面提到的Azure OpenAI Service與OpenAI是相同,只是會有點時間差而已,最近OpenAI有公告一些舊模型即將退役,因此以下僅列出還會持續運作的模型,大致可以分成基礎模型、特定用途模型。
GPT-4
無疑是目前最新的GPT模型,有8K及32K二個不同Token數版本,OpenAI訂閱戶可以在ChatGPT網頁使用的最新模型版本。
GPT-3.5 Turbo
是目前OpenAI ChatGPT網頁上的免費版本用的模型,有4K及16K二個不同Token數版本。
Fine-tuning models
目前可以支援進行Fine-tuning的模型,有babbage-002、davinci-002、GPT-3.5 Turbo,前二者是GPT-3.5的基礎模型。
Embedding models
目前可以支援Embedding 的模型,Ada v2。
Speech to text
Whisper模型,用於聲音轉文字的特定用途模型。目前在Azure OpenAI Service並沒有這個模型可以使用,不過Azure AI服務原本就有一個用於聲音轉文字的服務,支援音訊轉譯成超過 100 種語言
DALL·E
DALL·E模型用於圖像生成的特定用途模型,目前為DALL·E 2,近期即將推出DALL·E 3版本,產生更精緻的圖像並且與ChatGPT整合,預計今年秋天提供API,優先對付費訂閱戶開放。Microsoft方面則會優先於Bing Chat中換用DALL·E 3版本,提供圖像生成(現階段是DALL·E 2)。
以上這些模型都可以在OpenAI或Azure AI服務中找到,並且以API方式進行叫用,不過有一點要注意的是Microsoft Azure AI服務,相同的模型僅能部署2個,若有特殊需求則需要另外申請,看起來不管是OpenAI或Azure AI服務平台,資源都是相當緊張的。下一篇我們會介紹有關API面的開發前準備知識。
嗨,我是Ian,我喜歡分享與討論,今年跟2位朋友合著了一本ChatGPT主題書,如果你是一位開發者,這本書或許會有些幫助,https://www.tenlong.com.tw/products/9786263335189
這次的鐵人賽文章也會同時發佈於個人blog,歡迎關注我的blog : https://medium.com/@ianchen_27500