自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python 發(fā)布 3.13 版本,人工智能與機(jī)器學(xué)習(xí)的潛在顛覆者!

發(fā)布于 2024-10-30 15:28
瀏覽
0收藏

Python 3.13 版本近期發(fā)布,其中包含了多項(xiàng)重大更新。作為機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)和人工智能領(lǐng)域應(yīng)用最廣泛的編程語言,Python 一直在不斷發(fā)展以滿足這些領(lǐng)域日益增長的需求。最新版本 Python 3.13 提供了多項(xiàng)旨在提升性能和效率的改進(jìn),對于從事機(jī)器學(xué)習(xí)和人工智能項(xiàng)目的開發(fā)者來說,這是一個(gè)重要的里程碑。

Python 在機(jī)器學(xué)習(xí)和人工智能領(lǐng)域的優(yōu)勢主要在于其簡潔性、豐富的庫支持以及龐大的社區(qū)。然而,隨著人工智能領(lǐng)域的不斷擴(kuò)展,對更高性能和效率的 Python 代碼的需求變得至關(guān)重要。Python 3.13 引入了自由線程和即時(shí)編譯 (JIT) 等實(shí)驗(yàn)性功能,可以顯著提升計(jì)算密集型工作負(fù)載的性能,而這些工作負(fù)載在機(jī)器學(xué)習(xí)訓(xùn)練和推理任務(wù)中非常常見。

1. 實(shí)驗(yàn)性自由線程 CPython (PEP 703)

長期以來,全局解釋器鎖 (GIL) 一直是 Python 的一個(gè)限制因素,尤其是在需要多線程的任務(wù)中。GIL 會阻止多個(gè)原生線程同時(shí)執(zhí)行 Python 字節(jié)碼,這可能會成為機(jī)器學(xué)習(xí)模型訓(xùn)練等 CPU 密集型操作的瓶頸。盡管 Python 支持多線程,但 GIL 確保在任何給定時(shí)間只有一個(gè)線程在解釋器中運(yùn)行,這使得充分利用多核處理器變得困難。

對于涉及大型數(shù)據(jù)集和 CPU 密集型計(jì)算的機(jī)器學(xué)習(xí)工作負(fù)載來說,GIL 會嚴(yán)重限制性能。開發(fā)者通常不得不依賴多進(jìn)程等變通方法,但這會增加復(fù)雜性和開銷。

自由線程執(zhí)行簡介

Python 3.13 引入了對自由線程執(zhí)行的實(shí)驗(yàn)性支持,允許 Python 在沒有 GIL 的情況下運(yùn)行。這是該語言執(zhí)行模型的重大變化。移除 GIL 意味著 Python 現(xiàn)在可以支持真正的多線程,允許多個(gè)線程在不同的內(nèi)核上同時(shí)運(yùn)行。

這為更快地執(zhí)行多線程應(yīng)用程序打開了大門,而無需切換到外部庫或多進(jìn)程框架。

對機(jī)器學(xué)習(xí)工作負(fù)載的好處

  • 并行數(shù)據(jù)處理:在沒有 GIL 限制的情況下并行運(yùn)行 CPU 密集型任務(wù)的能力意味著數(shù)據(jù)預(yù)處理、特征提取和模型評估等 CPU 密集型操作現(xiàn)在可以以真正的并行模式運(yùn)行,從而顯著加快工作流程。
  • 提升性能:對于訓(xùn)練機(jī)器學(xué)習(xí)模型,尤其是在處理大型數(shù)據(jù)集或復(fù)雜算法時(shí),自由線程可以顯著縮短完成訓(xùn)練周期所需的時(shí)間。
  • 減少對多進(jìn)程的需求:在早期的 Python 版本中,開發(fā)者不得不求助于多進(jìn)程來繞過 GIL。這通常會導(dǎo)致更高的內(nèi)存消耗和開銷。借助新的自由線程模式,可以緩解這些挑戰(zhàn),從而使代碼更簡潔、更高效。

如何啟用自由線程

在 Python 3.13 中啟用自由線程需要使用特殊版本的解釋器:

  • 自由線程構(gòu)建:要利用此功能,請使用專為自由線程設(shè)計(jì)的構(gòu)建,例如python3.13t? 或python3.13t.exe。
  • 從源代碼構(gòu)建:您還可以使用--disable-gil 選項(xiàng)編譯 Python,以手動構(gòu)建自由線程版本。
  • 檢查支持:要確認(rèn)解釋器中是否已禁用 GIL,請運(yùn)行python -VV? 或檢查sys._is_gil_enabled() 的輸出。

注意事項(xiàng)和限制

雖然自由線程的概念很有前景,但它仍處于實(shí)驗(yàn)階段。在生產(chǎn)環(huán)境中使用它之前,需要牢記以下幾點(diǎn):

  • 潛在的錯誤:由于它是一個(gè)實(shí)驗(yàn)性功能,因此可能會出現(xiàn)無法預(yù)見的錯誤或問題,從而影響穩(wěn)定性。
  • 單線程應(yīng)用程序的性能:如果沒有 GIL,單線程性能可能會因管理多個(gè)線程的額外開銷而受到影響。
  • 重新構(gòu)建 C 擴(kuò)展模塊:對于依賴 GIL 的 C 擴(kuò)展模塊,您需要重新構(gòu)建它們以確保與自由線程版本的 Python 兼容。

2. 引入 JIT 編譯器 (PEP 744)

JIT 編譯器是一種通過在執(zhí)行期間將部分代碼編譯成機(jī)器語言來提高程序性能的系統(tǒng),而不是在執(zhí)行之前進(jìn)行編譯。這使得代碼能夠更快地運(yùn)行,因?yàn)榭梢愿鶕?jù)程序在實(shí)際使用中的情況進(jìn)行某些優(yōu)化。

與傳統(tǒng)解釋器的區(qū)別

  • 傳統(tǒng)解釋器:在典型的 Python 執(zhí)行中,代碼在運(yùn)行時(shí)逐行解釋。雖然這很靈活且易于調(diào)試,但對于計(jì)算密集型任務(wù)(例如機(jī)器學(xué)習(xí)和人工智能中經(jīng)常遇到的任務(wù))來說,速度可能會很慢。
  • JIT 編譯:JIT 編譯器不會解釋每一行代碼,而是識別出代碼中反復(fù)使用的“熱點(diǎn)”部分,并將它們編譯成機(jī)器代碼。這可以加快執(zhí)行速度,因?yàn)闄C(jī)器代碼可以直接在 CPU 上運(yùn)行,而無需解釋的開銷。

Python 3.13 引入了實(shí)驗(yàn)性的 JIT 編譯器,作為 PEP 744 的一部分,旨在加快 Python 程序的執(zhí)行速度。雖然此功能仍處于早期階段,但它標(biāo)志著在提高 Python 處理繁重計(jì)算任務(wù)(包括機(jī)器學(xué)習(xí)和人工智能中常見的任務(wù))的性能方面邁出了重要一步。

內(nèi)部架構(gòu)和優(yōu)化階段

Python 3.13 中的 JIT 編譯器通過將 Python 代碼中頻繁執(zhí)行的部分轉(zhuǎn)換為優(yōu)化的機(jī)器代碼來工作。以下是它的工作原理:

  1. 第一層字節(jié)碼:Python 代碼首先像往常一樣轉(zhuǎn)換為字節(jié)碼。
  2. 熱點(diǎn)代碼檢測:JIT 識別出代碼中經(jīng)常運(yùn)行的部分(“熱點(diǎn)代碼”)。
  3. **中間表示 (IR)**:熱點(diǎn)代碼被轉(zhuǎn)換為一種稱為第二層中間表示 (IR) 的內(nèi)部格式,這種格式更容易優(yōu)化。
  4. 優(yōu)化:IR 經(jīng)過各種優(yōu)化過程以提高性能。
  5. 機(jī)器代碼生成:最后,優(yōu)化的 IR 被轉(zhuǎn)換為機(jī)器代碼,其運(yùn)行速度比原始 Python 字節(jié)碼快得多。

這種方法允許 Python 有選擇地只編譯代碼中最常用的部分,從而在無需手動干預(yù)的情況下提高性能。

對機(jī)器學(xué)習(xí)和人工智能開發(fā)的影響

  • 性能提升:對于機(jī)器學(xué)習(xí)和人工智能工作負(fù)載(其中大型數(shù)據(jù)集和復(fù)雜計(jì)算很常見),Python 的 JIT 編譯器可以帶來顯著的好處:

更快地執(zhí)行 Python 代碼:通過優(yōu)化代碼中的熱點(diǎn),JIT 編譯器可以減少訓(xùn)練循環(huán)、數(shù)據(jù)處理和實(shí)時(shí)推理任務(wù)所花費(fèi)的時(shí)間。

減少開銷:由于 JIT 編譯器根據(jù)使用情況有選擇地編譯代碼,因此它減少了對持續(xù)解釋的需求,從而使 Python 在應(yīng)用程序的關(guān)鍵部分的表現(xiàn)更像一種編譯語言。

  • 對訓(xùn)練循環(huán)和實(shí)時(shí)推理的好處:
  • 訓(xùn)練循環(huán):在訓(xùn)練機(jī)器學(xué)習(xí)模型時(shí),循環(huán)通常需要處理大量數(shù)據(jù)并執(zhí)行重復(fù)計(jì)算。JIT 編譯器可以優(yōu)化這些循環(huán),從而縮短訓(xùn)練時(shí)間。
  • 實(shí)時(shí)推理:對于需要實(shí)時(shí)預(yù)測的應(yīng)用程序(例如人工智能驅(qū)動的服務(wù)),JIT 編譯器可以通過加快推理過程來減少延遲。

未來優(yōu)化

盡管 Python 3.13 中 JIT 編譯器的初始收益并不大,但開發(fā)者可以預(yù)期在未來的版本中會有持續(xù)的改進(jìn)。隨著 JIT 變得更加健壯和智能,它將能夠處理更復(fù)雜的優(yōu)化,從而帶來更大的性能提升。

如何使用 JIT 編譯器

要在 Python 3.13 中啟用 JIT 編譯器,您需要使用實(shí)驗(yàn)性 JIT 選項(xiàng)構(gòu)建 Python:

  • 構(gòu)建 Python:從源代碼構(gòu)建 Python 時(shí),請使用--enable-experimental-jit 選項(xiàng)。
  • 運(yùn)行時(shí)激活:您可以使用PYTHON_JIT? 環(huán)境變量在運(yùn)行時(shí)控制 JIT 編譯器的激活。要啟用 JIT,請?jiān)O(shè)置PYTHON_JIT=1?。您可以通過設(shè)置PYTHON_JIT=0 來禁用它。

關(guān)于實(shí)驗(yàn)狀態(tài)的說明

JIT 編譯器在 Python 3.13 中仍處于實(shí)驗(yàn)階段。默認(rèn)情況下它是禁用的,開發(fā)者應(yīng)該謹(jǐn)慎使用它,尤其是在生產(chǎn)環(huán)境中。隨著 JIT 的發(fā)展,它可能會在未來的 Python 版本中成為一個(gè)更穩(wěn)定、更高效的工具。

3. 增強(qiáng)的類型提示功能

Python 3.13 還對其類型系統(tǒng)進(jìn)行了一些改進(jìn),使開發(fā)者能夠更輕松地編寫清晰、易于維護(hù)和類型安全的代碼。這些更新在大型機(jī)器學(xué)習(xí)項(xiàng)目中特別有用,在這些項(xiàng)目中,數(shù)據(jù)類型的清晰度有助于避免運(yùn)行時(shí)錯誤。

3.1 帶有默認(rèn)值的類型參數(shù) (PEP 696)

TypeVar、ParamSpec 和 TypeVarTuple 默認(rèn)值簡介

Python 的 TypeVar、ParamSpec? 和 TypeVarTuple 泛型現(xiàn)在支持默認(rèn)值。這意味著在定義泛型類或函數(shù)時(shí),您現(xiàn)在可以指定默認(rèn)類型參數(shù),如果未提供特定類型,則將使用這些默認(rèn)類型參數(shù)。

對機(jī)器學(xué)習(xí)代碼庫的好處

  • 簡化泛型類和函數(shù)的定義:在機(jī)器學(xué)習(xí)中,通常使用泛型類來處理數(shù)據(jù)結(jié)構(gòu)、模型或配置。使用默認(rèn)類型參數(shù),您可以減少樣板代碼,使代碼庫更簡潔。
  • 增強(qiáng)代碼可讀性和可維護(hù)性:定義默認(rèn)類型的能力可以使代碼更簡潔易懂,這在大型項(xiàng)目中更容易維護(hù)。

3.2 棄用裝飾器 (PEP 702)

warnings.deprecated() 裝飾器說明

Python 3.13 引入了 warnings.deprecated() 裝飾器,允許開發(fā)者將函數(shù)標(biāo)記為已棄用。此警告在運(yùn)行時(shí)和類型系統(tǒng)中都會引發(fā),從而使開發(fā)者清楚地知道不再建議使用某個(gè)函數(shù)。

好處

  • 標(biāo)記已棄用的函數(shù):此功能允許機(jī)器學(xué)習(xí)工程師清楚地標(biāo)記已過時(shí)或?qū)⒃谖磥戆姹局袆h除的函數(shù)。
  • 協(xié)助代碼重構(gòu):在處理長期機(jī)器學(xué)習(xí)項(xiàng)目時(shí),有效地管理?xiàng)売弥陵P(guān)重要。此裝飾器簡化了識別已棄用功能并隨著時(shí)間的推移對其進(jìn)行重構(gòu)的過程。

3.3 只讀 TypedDict 項(xiàng) (PEP 705)

typing.ReadOnly 簡介

Python 現(xiàn)在允許您將 TypedDict 中的某些項(xiàng)指定為只讀。這是使用新的 typing.ReadOnly 功能完成的,該功能可以防止在設(shè)置特定字段后對其進(jìn)行修改。

好處

  • 防止意外修改:在機(jī)器學(xué)習(xí)項(xiàng)目中,配置和模型參數(shù)通常存儲在字典中。通過將字段標(biāo)記為只讀,您可以確保在運(yùn)行時(shí)不會意外更改關(guān)鍵參數(shù)。
  • 確保數(shù)據(jù)完整性:此功能有助于維護(hù)數(shù)據(jù)結(jié)構(gòu)的完整性,尤其是在復(fù)雜的機(jī)器學(xué)習(xí)管道中。

3.4 使用 typing.TypeIs 進(jìn)行類型縮小 (PEP 742)

typing.TypeIs 用于類型縮小的說明

新的 typing.TypeIs? 功能提供了比現(xiàn)有的 typing.TypeGuard 更直觀的類型縮小行為。它允許類型檢查器根據(jù)條件細(xì)化變量的類型,從而實(shí)現(xiàn)更精確的類型推斷。

好處

  • 提供更直觀、更精確的類型檢查:此功能通過確保在執(zhí)行期間正確縮小類型范圍來幫助開發(fā)者編寫更安全的代碼。
  • 減少運(yùn)行時(shí)錯誤:通過在開發(fā)早期捕獲類型錯誤,此功能可以顯著降低運(yùn)行時(shí)問題的可能性,這在數(shù)據(jù)密集型機(jī)器學(xué)習(xí)項(xiàng)目中特別有用。

4. 使用“asyncio”改進(jìn)并發(fā)性

在人工智能和機(jī)器學(xué)習(xí)中,高效地管理異步任務(wù)至關(guān)重要,尤其是在需要實(shí)時(shí)數(shù)據(jù)處理、模型推理或與多個(gè) API 交互的環(huán)境中。Python 3.13 對 asyncio 模塊進(jìn)行了一些重要更新,改進(jìn)了其在這些苛刻場景中處理并發(fā)性和任務(wù)管理的能力。

Python 3.13 的一項(xiàng)重大改進(jìn)是增強(qiáng)了 asyncio.TaskGroup。任務(wù)組允許多個(gè)異步任務(wù)一起管理,從而更容易處理它們的整個(gè)生命周期,尤其是在處理取消或錯誤時(shí)。

好處

  • 可靠的任務(wù)取消和錯誤處理:在以前版本的 Python 中,在復(fù)雜的機(jī)器學(xué)習(xí)管道中,任務(wù)取消和錯誤管理更難穩(wěn)健地處理。借助改進(jìn)的TaskGroup,開發(fā)者現(xiàn)在可以更輕松地管理這些流程,確保任何故障或取消都能得到妥善處理。這對于涉及大型數(shù)據(jù)集、流數(shù)據(jù)或同時(shí)使用多個(gè)數(shù)據(jù)源的機(jī)器學(xué)習(xí)任務(wù)特別有用。
  • 對于管理異步操作至關(guān)重要:許多機(jī)器學(xué)習(xí)和人工智能應(yīng)用程序依賴于異步操作,例如實(shí)時(shí)流式傳輸數(shù)據(jù)或同時(shí)處理多個(gè)請求。增強(qiáng)的TaskGroup 確保此類任務(wù)能夠高效完成,并更有效地管理任何潛在問題,從而降低管道停滯或瓶頸的風(fēng)險(xiǎn)。

用于服務(wù)器管理的新方法

Python 3.13 為 asyncio? 框架引入了兩種用于管理服務(wù)器連接的新方法:Server.close_clients()? 和 Server.abort_clients()。這些新方法使開發(fā)者能夠更好地控制其異步服務(wù)器進(jìn)程,這在處理多個(gè)客戶端時(shí)(例如在人工智能驅(qū)動的 API 或 Web 服務(wù)中)至關(guān)重要。

好處

  • 更好地控制服務(wù)器連接:新方法允許精確控制客戶端連接的生命周期。close_clients()? 有助于優(yōu)雅地關(guān)閉連接,而abort_clients() 則在必要時(shí)強(qiáng)制終止連接。這些功能對于機(jī)器學(xué)習(xí)和人工智能服務(wù)非常有用,在這些服務(wù)中,實(shí)時(shí)處理來自各個(gè)客戶端的并發(fā)連接至關(guān)重要。
  • 對于人工智能服務(wù)和 API 至關(guān)重要:人工智能驅(qū)動的應(yīng)用程序通常需要同時(shí)處理多個(gè)客戶端請求,例如在人工智能即服務(wù) (AIaaS) 平臺中。有效管理連接的能力對于維護(hù)此類服務(wù)的可靠性和性能至關(guān)重要。這些新方法使開發(fā)者能夠更靈活、更可控地處理這些連接。

5. 標(biāo)準(zhǔn)庫增強(qiáng)

Python 3.13 還對標(biāo)準(zhǔn)庫進(jìn)行了一些更新,這些更新與機(jī)器學(xué)習(xí)和人工智能工作流程高度相關(guān)。這些增強(qiáng)功能有助于改進(jìn)數(shù)據(jù)管理、提高效率并簡化機(jī)器學(xué)習(xí)和人工智能開發(fā)中許多典型任務(wù)的代碼。

5.1. base64 模塊增強(qiáng)

其中一項(xiàng)更值得注意的更新是添加了 base64.z85encode()? 和 base64.z85decode() 函數(shù)。Z85 編碼格式比傳統(tǒng)的 base64 更緊湊,使其成為編碼二進(jìn)制數(shù)據(jù)的理想選擇。

好處

  • 高效編碼二進(jìn)制數(shù)據(jù):許多人工智能應(yīng)用程序涉及處理二進(jìn)制數(shù)據(jù),例如模型權(quán)重、圖像數(shù)據(jù)或序列化神經(jīng)網(wǎng)絡(luò)。Z85 編碼格式提供了一種更節(jié)省空間的方式,以文本友好的格式對這些數(shù)據(jù)進(jìn)行編碼,使其更易于通過網(wǎng)絡(luò)傳輸或存儲在數(shù)據(jù)庫中。
  • 促進(jìn)數(shù)據(jù)傳輸和存儲:Z85 編碼對于在預(yù)期使用文本的系統(tǒng)(例如 JSON API 或數(shù)據(jù)庫)之間傳輸數(shù)據(jù)特別有用。通過高效地編碼二進(jìn)制數(shù)據(jù),開發(fā)者可以節(jié)省存儲空間和帶寬,同時(shí)保持與那些更喜歡文本數(shù)據(jù)格式的系統(tǒng)的兼容性。

5.2. copy 模塊更新

Python 3.13 引入了新的 copy.replace() 函數(shù),該函數(shù)簡化了使用修改克隆對象的過程。這對于經(jīng)常使用復(fù)雜數(shù)據(jù)結(jié)構(gòu)(例如神經(jīng)網(wǎng)絡(luò)配置或超參數(shù))的機(jī)器學(xué)習(xí)和人工智能從業(yè)者來說尤其有用。

好處

  • 簡化克隆和修改復(fù)雜對象:在機(jī)器學(xué)習(xí)和人工智能工作流程中,通常需要復(fù)制模型配置或數(shù)據(jù)集等對象,但只需稍作修改。例如,在調(diào)整超參數(shù)或調(diào)整模型架構(gòu)時(shí),能夠以一種簡潔、高效的方式復(fù)制和替換值可以加快開發(fā)過程。
  • 有助于調(diào)整神經(jīng)網(wǎng)絡(luò)配置:在迭代機(jī)器學(xué)習(xí)模型時(shí),通常會復(fù)制現(xiàn)有配置,同時(shí)進(jìn)行一些小的更改(例如,更改層參數(shù)或優(yōu)化器設(shè)置)。copy.replace() 函數(shù)允許您輕松創(chuàng)建復(fù)雜對象的修改副本,而無需手動修改每個(gè)參數(shù)。

5.3. 新的 dbm.sqlite3 模塊

Python 3.13 中另一個(gè)有價(jià)值的補(bǔ)充是新的 dbm.sqlite3 模塊,該模塊提供了一種輕量級的、基于文件的數(shù)據(jù)庫解決方案,使用 SQLite 作為后端。SQLite 在許多機(jī)器學(xué)習(xí)應(yīng)用程序中廣泛用于存儲元數(shù)據(jù)、結(jié)果或其他鍵值數(shù)據(jù)。

好處

  • 輕量級的、基于文件的數(shù)據(jù)庫解決方案:對于需要簡單數(shù)據(jù)庫解決方案的機(jī)器學(xué)習(xí)項(xiàng)目,例如存儲模型元數(shù)據(jù)、緩存中間結(jié)果或管理配置,dbm.sqlite3 模塊提供了一種易于使用的、基于文件的數(shù)據(jù)庫,而無需設(shè)置完整的數(shù)據(jù)庫服務(wù)器。
  • 非常適合存儲元數(shù)據(jù)和緩存結(jié)果:在機(jī)器學(xué)習(xí)工作流程中,通常需要一個(gè)快速、輕量級的數(shù)據(jù)庫來管理元數(shù)據(jù)或緩存中間計(jì)算的輸出。dbm.sqlite3 模塊利用了 SQLite 的簡單性和性能,使其成為此類用途的理想選擇。

6. 安全性和可靠性改進(jìn)

Python 3.13 對安全性和可靠性進(jìn)行了重要更新,這對于經(jīng)常涉及敏感數(shù)據(jù)和計(jì)算的人工智能應(yīng)用程序來說尤為重要。這些增強(qiáng)功能確保機(jī)器學(xué)習(xí)和人工智能應(yīng)用程序能夠更安全、更可靠地運(yùn)行,尤其是在分布式環(huán)境中。

SSL 增強(qiáng)

Python 3.13 的一項(xiàng)關(guān)鍵改進(jìn)是對 ssl.create_default_context() 方法的更新。它現(xiàn)在設(shè)置了更嚴(yán)格的默認(rèn)標(biāo)志,為網(wǎng)絡(luò)通信提供了增強(qiáng)的安全性。

好處

  • 增強(qiáng)網(wǎng)絡(luò)通信的安全性:新的默認(rèn)設(shè)置有助于確保 SSL/TLS 配置在默認(rèn)情況下更安全。這對于依賴基于云的服務(wù)或 API 的人工智能應(yīng)用程序來說尤為重要,這些應(yīng)用程序通常通過 HTTPS 或其他安全協(xié)議進(jìn)行交互。
  • 對人工智能應(yīng)用程序至關(guān)重要:許多人工智能驅(qū)動的應(yīng)用程序(例如數(shù)據(jù)處理管道和基于云的機(jī)器學(xué)習(xí)服務(wù))都需要安全的通信,以確保數(shù)據(jù)完整性和隱私。這些更嚴(yán)格的默認(rèn)設(shè)置有助于防止網(wǎng)絡(luò)通信中的漏洞,確保敏感數(shù)據(jù)(例如用戶輸入或模型預(yù)測)能夠安全傳輸。

引入“PythonFinalizationError”異常

Python 3.13 還引入了 PythonFinalizationError 異常,當(dāng)在解釋器的終止階段嘗試某些操作時(shí)會引發(fā)此異常。這是一項(xiàng)關(guān)鍵的補(bǔ)充,可確保在關(guān)閉期間正確清理資源。

好處

  • 有助于識別和正確處理清理操作:在機(jī)器學(xué)習(xí)和人工智能應(yīng)用程序中,通常會分配大量資源,例如 GPU、文件句柄和數(shù)據(jù)集。PythonFinalizationError 幫助開發(fā)者查明在關(guān)閉期間導(dǎo)致問題的操作,確保安全釋放這些資源。
  • 確保正確釋放 GPU 和數(shù)據(jù)文件等資源:在使用 GPU 等硬件加速器或存儲在內(nèi)存中的大型數(shù)據(jù)集時(shí),必須確保在應(yīng)用程序生命周期結(jié)束時(shí)釋放這些資源。新的異常有助于在清理過程中捕獲錯誤,防止?jié)撛诘馁Y源泄漏,并確保機(jī)器學(xué)習(xí)管道順利關(guān)閉。

7. 平臺支持更新

Python 3.13 大幅擴(kuò)展了平臺支持,使其更容易在不同環(huán)境(包括移動設(shè)備和 Web 瀏覽器)中部署機(jī)器學(xué)習(xí)和人工智能模型。對于希望構(gòu)建能夠在更廣泛的設(shè)備上運(yùn)行的人工智能應(yīng)用程序的開發(fā)者來說,這些更新開辟了新的可能性。

對 iOS (PEP 730) 和 Android (PEP 738) 的官方支持

Python 首次在 Tier 3 層級上正式支持 iOS 和 Android 平臺。對于希望將人工智能模型和服務(wù)引入移動設(shè)備的開發(fā)者來說,這是一項(xiàng)重大更新。

好處

  • 簡化人工智能模型在移動設(shè)備上的開發(fā)和部署:人工智能模型現(xiàn)在可以更輕松地部署在 iOS 和 Android 設(shè)備上,無論是作為獨(dú)立應(yīng)用程序還是作為更大的移動人工智能平臺的一部分。這對于需要在邊緣設(shè)備上實(shí)現(xiàn)實(shí)時(shí)機(jī)器學(xué)習(xí)功能的應(yīng)用程序(例如圖像分類、目標(biāo)檢測或增強(qiáng)現(xiàn)實(shí))至關(guān)重要。
  • 擴(kuò)大人工智能應(yīng)用程序的覆蓋范圍:通過正式支持 iOS 和 Android,Python 使人工智能開發(fā)者能夠接觸到更廣泛的用戶。移動人工智能助手、健康監(jiān)測應(yīng)用程序和實(shí)時(shí)分析工具等應(yīng)用程序現(xiàn)在可以受益于 Python 強(qiáng)大的機(jī)器學(xué)習(xí)框架。

WebAssembly 支持

Python 3.13 還通過支持 wasm32-wasi 作為 Tier 2 平臺,將 WebAssembly (Wasm) 支持提升到了一個(gè)新的水平。

好處

  • 能夠在 Web 環(huán)境中運(yùn)行 Python 人工智能代碼:借助 WebAssembly,開發(fā)者可以直接在 Web 瀏覽器中運(yùn)行 Python 代碼,從而實(shí)現(xiàn)客戶端機(jī)器學(xué)習(xí)應(yīng)用程序。這對于輕量級的、實(shí)時(shí)的機(jī)器學(xué)習(xí)任務(wù)(例如圖像或文本分析)特別有用,這些任務(wù)可以在瀏覽器本地處理,而無需服務(wù)器端計(jì)算。
  • 為瀏覽器中的客戶端機(jī)器學(xué)習(xí)應(yīng)用程序開辟了可能性:借助 WebAssembly 支持,開發(fā)者可以直接在瀏覽器中部署機(jī)器學(xué)習(xí)模型。這為創(chuàng)建交互式、注重隱私的應(yīng)用程序開辟了可能性,在這些應(yīng)用程序中,數(shù)據(jù)在客戶端進(jìn)行處理,從而減少了向服務(wù)器傳輸數(shù)據(jù)的需求。

8. 發(fā)布計(jì)劃變更(PEP 602 更新)

Python 3.13 延長了版本支持周期,使開發(fā)者能夠更輕松地規(guī)劃長期項(xiàng)目并保持兼容性。

延長全面支持期限

PEP 602 中最值得注意的變化之一是將 Python 版本的全面支持(“錯誤修復(fù)”)期限從一年半延長至兩年。這意味著 Python 版本現(xiàn)在將獲得更長時(shí)間的全面支持,然后是三年的安全修復(fù)。

好處

  • 為人工智能項(xiàng)目提供更長的穩(wěn)定性:對于需要長期穩(wěn)定性的人工智能項(xiàng)目,此擴(kuò)展的支持窗口意味著開發(fā)者可以更長時(shí)間地依賴 Python 3.13,而無需頻繁升級。這對于部署在生產(chǎn)環(huán)境中并需要長時(shí)間保持穩(wěn)定的人工智能模型尤為重要。
  • 減少主要升級的頻率:更長的支持期限減少了在 Python 版本之間頻繁遷移的需求,從而最大限度地減少了對正在進(jìn)行的機(jī)器學(xué)習(xí)項(xiàng)目的干擾,并減少了與代碼庫重構(gòu)或升級相關(guān)的開銷。

對長期項(xiàng)目的影響

更長的支持期限提供了更可預(yù)測的維護(hù)計(jì)劃,使人工智能團(tuán)隊(duì)能夠更有策略地規(guī)劃升級。

好處

  • 更可預(yù)測的維護(hù)計(jì)劃:憑借兩年的全面支持期限,機(jī)器學(xué)習(xí)工程師可以更好地規(guī)劃其升級周期,因?yàn)樗麄冎厘e誤修復(fù)和安全更新將在更長時(shí)間內(nèi)提供。
  • 更容易規(guī)劃未來的更新和兼容性:人工智能項(xiàng)目,尤其是在醫(yī)療保健、金融或自動駕駛系統(tǒng)等行業(yè),需要長期穩(wěn)定性和謹(jǐn)慎的升級規(guī)劃。Python 3.13 擴(kuò)展的發(fā)布計(jì)劃使其更容易將這些項(xiàng)目與未來的 Python 版本保持一致,確保版本之間的平穩(wěn)過渡。

如果您從事機(jī)器學(xué)習(xí)和人工智能方面的工作,現(xiàn)在是探索 Python 3.13 中新功能的最佳時(shí)機(jī)。在您的開發(fā)環(huán)境中測試實(shí)驗(yàn)性的自由線程和 JIT 編譯器,看看它們?nèi)绾胃倪M(jìn)您的工作負(fù)載。深入了解增強(qiáng)的類型系統(tǒng)和平臺支持,以簡化您的開發(fā)和部署工作流程。

雖然 Python 3.13 帶來了強(qiáng)大的新功能,但有些功能(如自由線程解釋器和 JIT 編譯器)仍處于實(shí)驗(yàn)階段。在將這些功能部署到生產(chǎn)環(huán)境之前,必須在開發(fā)環(huán)境中對其進(jìn)行全面測試,以確保穩(wěn)定性以及與現(xiàn)有代碼庫的兼容性。

本文轉(zhuǎn)載自 ??DevOpsAI??,作者: Python

收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦