天天看點

微軟釋出ChatGPT 版必應 用的是 .NET 技術

作者:opendotnet

微軟在今天在Redmond 線下舉辦媒體一場活動,釋出了新版的微軟必應,在桌面上推出了測試版,移動版也即将推出。微軟首席執行官納德拉稱Al-powered搜尋為公司自雲15年以來最大的事情。

微軟釋出ChatGPT 版必應 用的是 .NET 技術

2023年1月初,微軟已經在讨論将OpenAI的技術納入Word、PowerPoint、Outlook和其他應用程式,這樣使用者就可以用簡單的提示自動生成文本,2023年1月下旬,微軟宣布即将會把ChatGPT加入Azure雲服務。新版微軟必應+Chatgpt的測試版會推出,在面對谷歌剛剛宣布釋出Bard聊天機器人的時刻,這場釋出會就更容易引人注目。

微軟的大量雲服務,包括必應搜尋,他們的技術棧都是.NET , 都是用2014宣布開源的跨平台的 .NET ,必應早在2018年就從.NET Framework更新到.NET Core 2.1, 具體參見 https://devblogs.microsoft.com/dotnet/bing-com-runs-on-net-core-2-1/。.NET Core為Bing 帶來了的顯著性能改進。

微軟釋出ChatGPT 版必應 用的是 .NET 技術

下面将彙總一下微軟的開發部落格——這些部落格均涉及微軟将産品和服務遷移到.NET 6的成果。部落格按時間由近及遠排序。

《Microsoft Teams’ Infrastructure and Azure Communication Services’ Journey to .NET 6》: https://devblogs.microsoft.com/dotnet/microsoft-teams-infrastructure-and-azure-communication-services-journey-to-dotnet-6/

微軟釋出ChatGPT 版必應 用的是 .NET 技術

遷移到 .NET Core 是由多種因素驅動的:

  1. 成本降低:Azure 計算成本平均節省 29%。
  2. 性能提升:性能提升30-50%,包括P99 CPU使用率和P99服務時延。
  3. 服務和網絡現代化:通路架構中的最新功能,例如輕量級應用程式記憶體占用,支援Linux上的容器,更好的異常處理,進而在惡劣的條件下獲得更好的可靠性以及最新的安全修複。
  4. 提高工程滿意度和生産力

《Microsoft Commerce’s .NET 6 Migration Journey》:https://devblogs.microsoft.com/dotnet/microsoft-commerce-dotnet-6-migration-journey/

一個特别重要的例子是,一個服務從 .NET Framework 遷移到 .NET Core 3.1,同時盡可能多地保留其他相同内容(盡管此更改也包括對 .NET Core 的依賴項更新,以及在遷移其代碼時所做的小改進)。下圖顯示了服務延遲提高了約 78%,并且在最初部署後(使用相同的負載、環境和硬體運作)顯著提高了穩定性!

微軟釋出ChatGPT 版必應 用的是 .NET 技術

随着我們更複雜的服務遷移到 Kubernetes 中,我們的遷移需要的不僅僅是 .NET:

  • 從Windows 到Linux
  • .NET 架構到 .NET Core(3.1,在某些情況下為 5.0,現在是 6.0)
  • 平台轉向容器和Kubernetes(遠離虛拟機)
  • 更換建構和釋出系統,以利用最新的安全性和合規性改進并支援容器化應用程式。
  • 随着我們在遷移時利用平台和 .NET 中的增強和改進,以及我們的合作夥伴對依賴項執行了相同的操作,還有更多功能。雖然這些好處并不完全歸功于我們的 .NET Core 遷移,但它們是通過遷移實作的,我們非常感謝 .NET 團隊在遷移過程中提供的所有幫助和支援!

《Microsoft Teams Assignments Service’s Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/microsoft-teams-assignments-service-dotnet-6-journey/

微軟釋出ChatGPT 版必應 用的是 .NET 技術

在遷移後,我們确實看到了一些 CPU 和延遲的改進,但最一緻的改進是記憶體消耗(程序\專用位元組)的減少。随着我們繼續調整我們的代碼庫,我們對此遷移解鎖的更有針對性的優化感到非常興奮!例如,我們可以利用它來減少更多代碼路徑中的配置設定,因為大多數 BCL API 現在都支援它作為 的替代方法。此外,我們現在可以通路 .NET 6 (https://docs.microsoft.com/en-us/dotnet/core/runtime-config/) 中的大量新配置選項,并期待調整和調整運作時以更好地适應我們的所有工作負載。

《OneService Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/one-service-journey-to-dotnet-6/

微軟釋出ChatGPT 版必應 用的是 .NET 技術

在兩年多的時間裡,我們将大量 .NET Framework 4.7.2 應用、庫和測試項目轉換為 .NET 6,驗證了功能和性能等效性(或更好),現在幾乎完全在生産中的 .NET 6 上運作。該項目取得了重大成功,有助于降低營運成本并改善開發人員體驗。

突出:

  • 基礎設施成本降低 29%。
  • 遷移服務的 CPU 平均提高 30%。
  • 主 API 的 P95 延遲提高了 8-27%。
  • 減少了技術債務,現在可以輕松地更新到年度 .NET 版本。
  • 更快樂、更高效的團隊。

《Exchange Online Journey to .NET Core》:https://devblogs.microsoft.com/dotnet/exchange-online-journey-to-net-core/

出于三個原因,我們之是以有動力遷移到 .NET Core。首先,我們非常需要提高性能和成本效益。任何基于雲的供應商都知道,每一次低效率都會花費真金白銀。第二,知道 .NET Framework 不再積極開發,我們希望遷移到一個為未來開辟道路的現代架構。第三,可能更重要的是它很酷,有光澤和新鮮。

微軟釋出ChatGPT 版必應 用的是 .NET 技術
微軟釋出ChatGPT 版必應 用的是 .NET 技術

《The Azure Cosmos DB Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/the-azure-cosmos-db-journey-to-net-6/

微軟釋出ChatGPT 版必應 用的是 .NET 技術

Azure Cosmos DB's API網關是一種低延遲的 Azure 服務。它以多種方式利用 .NET 來實作其性能和延遲要求。多年來,每次 .NET 更新都産生了許多好處,既包括新的 API,這些 API 提供了更好的方法來管理性能,并改進了架構中的現有 API 和運作時行為。我們正在積極與 .NET 團隊合作,采用 .NET 7,并期待在即将釋出的 .NET 版本中推出更多影響深遠的性能功能。

《Microsoft Graph’s Journey to .NET 6》:https://devblogs.microsoft.com/dotnet/microsoft-graph-dotnet-6-journey/

四年前,該服務在 IIS 上運作,在 .NET Framework 4.6.2 上 ASP.NET。目前,該服務在 HTTP 上運作.sys.NET 6 上 ASP.NET 核心,在 .NET Core 3.1 和 .NET 5 上暫時停止。每次更新時,我們都觀察到 CPU 使用率有所提高,尤其是在 .NET Core 3.1 和最近的 .NET 6 中。

  1. 從 .NET 架構到 .NET Core 3.1,我們觀察到在相同的流量下 CPU 減少了 30%。
  2. 從 .NET Core 3.1 到 .NET 5,我們沒有觀察到要報告的有意義的差異。
  3. 從 .NET 5 到 .NET 6,我們觀察到在相同的流量下,CPU 又減少了 10%。

CPU 使用率的大幅降低轉化為更好的延遲、吞吐量和有意義的計算容量成本節約,進而有效地幫助我們實作目标。

微軟釋出ChatGPT 版必應 用的是 .NET 技術

《Azure Active Directory’s gateway is on .NET 6.0!》:https://devblogs.microsoft.com/dotnet/azure-active-directorys-gateway-is-on-net-6-0/

Azure 活動目錄的網關服務是一個反向代理,用于處理構成 Azure 活動目錄 (Azure AD) 的數百個服務。如果使用了 office.com、outlook.com、portal.azure.com 或 xbox.live.com 等服務,則表示你已使用 Azure AD 的網關。網關提供 TLS 終止、自動故障轉移/重試、異地鄰近路由、限制和向 Azure AD 中的服務分段等功能。該網關存在于全球 54 個 Azure 資料中心,每天為大約 1850 億個請求提供服務。直到最近,Azure AD 的網關還在 .NET 5.0 上運作。截至 2021 年 9 月,它已在 .NET 6.0 上運作。

微軟釋出ChatGPT 版必應 用的是 .NET 技術

這些部落格都在強烈凸顯着.NET的進步:

  • 更低的CPU消耗
  • 更低的記憶體占用
  • 更低的響應延遲
  • 更高的吞吐量
  • 更完善的腳手架
  • 更強大的測試和監控工具
  • ……

之後類似的部落格還會釋出在:Developer Stories - .NET Blog (microsoft.com) :https://devblogs.microsoft.com/dotnet/category/developer-stories/ , 有興趣的讀者可以加入收藏夾持續關注。

繼續閱讀