1. 程式人生 > 資訊 >2021 年 Python 十佳 ML 庫大盤點:國產選手 GitHub 半年獲 5k+star,第一名是升級版 NumPy

2021 年 Python 十佳 ML 庫大盤點:國產選手 GitHub 半年獲 5k+star,第一名是升級版 NumPy

2021 年裡 AI 飛速發展,優秀演算法層出不窮,令我們大開眼界。而真正要將這些演算法實現,一定少不了 Python 這個主流機器學習語言的加持。

今年各大公司和研究小組都推出了一系列方便使用的高效能開源庫,其中還不乏一些國產的優秀作品。

在這裡將盤點出最佳的 10 名,致力於幫你解決各種問題。

如果你還在為模型訓練中的“雜務”頭疼,那就快來看看吧。

1. Awkward Array

根據官方介紹,Awkward Array 用於巢狀的、大小不一的資料,包括任意長度的列表、記錄、混合的型別和缺失資料,使用起來類似 NumPy。

看起來像是升級版的 NumPy 呀。

果然,不同長度的陣列可以直接放在一起運算。

並且,官方表示 Awkward Array 不僅使用起來更簡便,在速度和記憶體上也有量級的優勢。

看看是不是可以安排上了~

https://pypi.org/project/awkward/

2. Jupytext

相信大家對 Jupyter Notebook 都不陌生。

當你有了 Jupytext 這個小外掛就可以將 Jupyter Notebook 和 IDE 完美結合,聽起來是不是很棒!

從此 Jupyter Notebook 可以被儲存為 Markdown 檔案或多種語言的指令碼檔案。

Jupytext 可以做的事主要有:

  • Jupyter Notebook 的版本控制;

  • 在你喜歡的文字編輯器中編輯、合併或重構 Notebook;

  • 在 Notebook 上使用 Q&A 檢查。

在 Python 中使用的樣子:

此專案在 Github 上已有 5k+star。

https://github.com/mwouts/jupytext

3. Gradio

比 Streamlit 還輕量的 UI 設計庫,Gradio 讓你輕鬆在瀏覽器中“玩轉”你的模型,可以直接在瀏覽器中拖放圖片,貼上文字,錄製聲音,等等。

只要將 launch () 函式中的引數設定為 share=True,還能得到一個可分享的網址,拿到連結的朋友在電腦和手機端都能開啟,活脫脫就是一個小程式。

時常需要做 Demo 的小夥伴快看起來吧,此專案在 Github 上已有 4.5k+star。

https://github.com/gradio-app/gradio

4. Hub

這個 Hub 在資料管理和資料預處理上可是一把好手。

它可以處理任何型別,任何大小的資料,並且因為資料儲存在雲端上,所以可以無縫在任何機器上訪問。

被壓縮為二進位制位元組的資料可以被儲存在任何地方,並且只有在需要的時候才會被獲取,所以沒有 TB 級硬碟也可以處理 TB 級資料。

Hub 貼心地提供了重要 API,支援資料在常用工具(PyTorch 等)上的使用,資料版本控制,資料轉換等功能。

此專案在 github 上已有 4.1k+star。

https://github.com/activeloopai/Hub

5. AugLy

AugLy 是 facebook 最新推出的資料增強庫,同時支援語音,文字,影象和視訊型別的資料,包含了 100 多種增強方式。

資料對於模型訓練至關重要,而標註大規模資料十分困難。由於人力資源,和模型特性的限制,資料增強的應用越來越廣泛。

AugLy 的優點:

處理型別更為全面。其他的資料增強庫,例如 Albumentations 和 NVIDIA DALI,主要負責影象相關資料的處理,文字資料不支援。

處理方式十分人性化。AugLy 可以將一張圖片做成備忘錄,在圖片 / 視訊上疊加文字 / Emojis,轉發社交媒體上的截圖,還可以幫助你處理諸如拷貝檢測、仇恨言論檢測或版權侵權等問題。

此專案在 Github 上已有 4.1k+star。

https://github.com/facebookresearch/AugLy

6. Evidently

Evidently 是用來監測模型效果的工具,可從 Pandas DataFrame 或 csv 檔案中生成互動式視覺化報告和 JSON 格式的效果簡介。在 Jupyter Notebook 中可以使用。

目前可以提供 6 種報告:資料漂移、數值目標漂移、分類目標漂移、迴歸模型效能、分類模型效能和概率分類模型效能。

此專案在 Github 上已有 1.8k+star。

https://github.com/evidentlyai/evidently

7. YOLOX

如果你熟悉 YOLO 的話,那你或許會對曠視今年推出的 YOLOX 感興趣。

YOLO 就是那個目標檢測演算法,可以被使用在汽車自動駕駛等前沿技術中。

而 YOLOX 是 YOLO 的無錨版本,設計更簡單,但效能更好!它的目標是在研究界和工業界之間架起一座橋樑,同時彌合兩方之間的差距。

這個 Github 上的開源專案在短短半年內已獲得 5.2k+star。

https://github.com/Megvii-BaseDetection/YOLOX

8. LightSeq

正如它的名字一樣,LightSeq 是一款由位元組跳動開發的支援 BERT、GPT、Transformer 等眾多模型的超快推理引擎。

可以看到它的表現,比 FasterTransformer 還要 Fast。

LightSeq 支援的模型也是非常全面。

總之就是兩個字“好用”。此專案在 Github 上已有 1.9k+star。

https://github.com/bytedance/lightseq

9. Greykite

想預測 COVID-19 的恢復速度嗎?那就來看看 LinkedIn 為了自家時間序列預測需求開發的 Greykite 吧。

功能全面(多種時間趨勢),介面直觀,預測速度快和可擴充套件性強是它最大的亮點。

被應用在上面的三大演算法:

  • Silverkite (Greykite’s flagship algorithm)

  • Facebook Prophet

  • Auto Arima

感興趣的話就去研究看看吧,此專案在 Github 上已有 1.4k+star。

https://github.com/linkedin/greykite

10. Jina and Finetuner

如今,在搜尋引擎等應用上,語義識別的地位越來越高,因為它可以有效避免字詞匹配的侷限。

不過語義識別涉及的神經網路可能會讓很多人感到頭大,Jina 和 Finetuner 可以幫你解決這些問題。

Jina 是一個神經搜尋框架,使任何人都能在幾分鐘內建立可擴充套件的深度學習搜尋應用程式。

Finetuner 配合 Jina 幫助你對神經網路進行調參,以獲得神經搜尋任務的最佳結果。

Jina 和 Finetuner 適合沒什麼經驗,又想嘗試的朋友。

https://github.com/jina-ai/finetuner

參考連結

https://tryolabs.com/blog/2021/12/21/top-python-libraries-2021