九個值得關注的開源 AI 框架項目
像TensorFlow和PyTorch這樣知名的框架推動著人工智能的蓬勃發展,但除了這些出名的框架之外,還有一些在開源世界中不是那么熱門,但卻非常好用的AI工具或框架項目值得關注,它們在NLP、機器視覺等方面也有獨特的先進性和創新性,可以為AI應用提供獨特的解決方案。
1.Hugging Face Transformers
https://github.com/huggingface/transformers
Star:132K
Transformers是許多大名鼎鼎的大語言預訓練模型的算法,因此這個全面的自然語言處理(NLP)庫值得更多關注。Hugging Face Transformers庫是一個面向Pytorch、TensorFlow和JAX的先進機器學習庫。為各種NLP任務提供了大量的預訓練模型,包括:文字生成、摘要、翻譯、情感分析等等。
下面是一個使用Transformers 管道進行文本正面、負面分類的例子:
>>> from transformers import pipeline
# Allocate a pipeline for sentiment-analysis
>>> classifier = pipeline('sentiment-analysis')
>>> classifier('We are very happy to introduce pipeline to the transformers repository.')
[{'label': 'POSITIVE', 'score': 0.9996980428695679}]
下面是一個實現圖像對象檢測的例子:
>>> import requests
>>> from PIL import Image
>>> from transformers import pipeline
# Download an image with cute cats
>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"
>>> image_data = requests.get(url, stream=True).raw
>>> image = Image.open(image_data)
# Allocate a pipeline for object detection
>>> object_detector = pipeline('object-detection')
>>> object_detector(image)
[{'score': 0.9982201457023621,
'label': 'remote',
'box': {'xmin': 40, 'ymin': 70, 'xmax': 175, 'ymax': 117}},
{'score': 0.9960021376609802,
'label': 'remote',
'box': {'xmin': 333, 'ymin': 72, 'xmax': 368, 'ymax': 187}},
{'score': 0.9954745173454285,
'label': 'couch',
'box': {'xmin': 0, 'ymin': 1, 'xmax': 639, 'ymax': 473}},
{'score': 0.9988006353378296,
'label': 'cat',
'box': {'xmin': 13, 'ymin': 52, 'xmax': 314, 'ymax': 470}},
{'score': 0.9986783862113953,
'label': 'cat',
'box': {'xmin': 345, 'ymin': 23, 'xmax': 640, 'ymax': 368}}]
除了pipeline,要在給定任務中下載和使用任何預訓練模型,只需三行代碼。以下是PyTorch版本:
>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
>>> model = AutoModel.from_pretrained("google-bert/bert-base-uncased")
>>> inputs = tokenizer("Hello world!", return_tensors="pt")
>>> outputs = model(**inputs)
2.Fastai
https://github.com/fastai/fastai
Star:26K
Fastai是一個深度學習庫,它為AI 從業者提供了許多高級組件,可以快速、輕松地在標準深度學習領域實現最先進的效果,并為研究人員提供了用以構建新方法的低級組件。它的目標是做到以上這兩點,并且不會在易用性、靈活性或性能方面做出實質性的妥協。這要歸功于一個精心分層的架構,它以解耦、抽象的形式實現了許多深度學習和數據處理技術的共同基礎模式。通過利用底層Python語言的動態性和PyTorch庫的靈活性,可以簡潔明了地實現這些抽象。
fastai的特性包括:
- 一個新的Python張量語義類型層次結構,實現分類系統。
- 可以在純Python中開發的GPU優化的計算機視覺庫。
- 只需要使用4、5行代碼就可以將現代優化器的常見功能重構為兩個基本部分,以實現優化器。
- 一個新穎的雙向回調系統,可以訪問數據、模型或優化器的任何部分,并在訓練期間的任何時候對其進行更改。
- 新的數據塊API。
fastai主要圍繞兩個設計目標進行開發:平易近人和快速生產。同時也是深度可擴展和可配置的。它構建在較低級別API的層次結構之上,這些API提供可組合的構建塊。這樣,也能夠輕易重寫高級API的一部分或添加特定行為。
3.Detectron2
https://github.com/facebookresearch/detectron2
Star:30K
Detectron2由Facebook AI Research(FAIR)開發,是用于對象檢測和對象分割的框架。它高度靈活,包含了許多尖端模型的實現,使其成為視覺相關項目的首選資源。
4.DeepSpeech
https://github.com/mozilla/DeepSpeech
Star:25.1K
DeepSpeech是一個由Mozilla開發的基于深度學習的開源語言識別引擎。這個引擎對于涉及語音識別和轉錄的項目特別有價值,可以作為私有化解決方案的一種方案。可以在從Raspberry Pi4等離線設備或者高功率GPU服務器上高效運行。
5.Jina
https://github.com/jina-ai/jina
Star:20.9K
Jina是一個開源神經搜索框架,使用云原生技術構建多模態AI應用程序,非常適合構建可以理解各種形式(包括文本、圖像和視頻)數據的搜索系統。具備優秀的模塊化和可擴展性設計,使其成為現代搜索應用程序的強大工具。
Jina支持構建基于gRPC、HTTP和WebSockets通信協議的多模式AI服務,并將其擴展并部署到生產環境。讓算法人員可以專注于邏輯和算法,而不必擔心基礎架構的復雜性。
相關的開發教程可以查看開源網站:
6.Haystack
https://github.com/deepset-ai/haystack
Star:16.7K
Haystack是一個端到端的LLM框架,用于構建由LLM、Transformer模型、向量搜索等。無論要執行檢索增強生成(RAG)、文檔搜索、問答還是答案生成,Haystack都可以將最先進的嵌入模型和LLM編排到管道中,以構建端到端NLP應用程序。
下面是使用deepset Studio以YAML或Python代碼的形式可視化地創建和導出Haystack管道架構的界面。
7.AllenNLP
https://github.com/allenai/allennlp
Star:11.7K
Allennlp這個庫由艾倫人工智能研究所開發維護,Allennlp基于PyTorch構建,主要簡化了構建和評估復雜NLP模型的過程,使其成為研究人員和開發人員的寶貴資源。
8.Catalyst
https://github.com/catalyst-team/catalyst
Star:3.3K
Catalyst是用于深度學習研究和開發的PyTorch框架。它專注于可重復性、快速實驗和代碼庫重用。提供模型訓練管道,回調等功能,以簡化開發過程。
9.OpenCV AI Kit (OAK)
https://github.com/opencv-ai
OAK是一個專為計算機視覺任務設計的開源項目集。該項目包括針對邊緣設備的工具和模型,使其成為實時應用的理想選擇。其靈活性和易用性使其成為計算機視覺愛好者的必關注產品。