九個(gè)值得關(guān)注的開源 AI 框架項(xiàng)目
像TensorFlow和PyTorch這樣知名的框架推動著人工智能的蓬勃發(fā)展,但除了這些出名的框架之外,還有一些在開源世界中不是那么熱門,但卻非常好用的AI工具或框架項(xiàng)目值得關(guān)注,它們在NLP、機(jī)器視覺等方面也有獨(dú)特的先進(jìn)性和創(chuàng)新性,可以為AI應(yīng)用提供獨(dú)特的解決方案。
1.Hugging Face Transformers
https://github.com/huggingface/transformers
Star:132K
Transformers是許多大名鼎鼎的大語言預(yù)訓(xùn)練模型的算法,因此這個(gè)全面的自然語言處理(NLP)庫值得更多關(guān)注。Hugging Face Transformers庫是一個(gè)面向Pytorch、TensorFlow和JAX的先進(jìn)機(jī)器學(xué)習(xí)庫。為各種NLP任務(wù)提供了大量的預(yù)訓(xùn)練模型,包括:文字生成、摘要、翻譯、情感分析等等。
下面是一個(gè)使用Transformers 管道進(jìn)行文本正面、負(fù)面分類的例子:
>>> 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}]
下面是一個(gè)實(shí)現(xiàn)圖像對象檢測的例子:
>>> 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,要在給定任務(wù)中下載和使用任何預(yù)訓(xùn)練模型,只需三行代碼。以下是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是一個(gè)深度學(xué)習(xí)庫,它為AI 從業(yè)者提供了許多高級組件,可以快速、輕松地在標(biāo)準(zhǔn)深度學(xué)習(xí)領(lǐng)域?qū)崿F(xiàn)最先進(jìn)的效果,并為研究人員提供了用以構(gòu)建新方法的低級組件。它的目標(biāo)是做到以上這兩點(diǎn),并且不會在易用性、靈活性或性能方面做出實(shí)質(zhì)性的妥協(xié)。這要?dú)w功于一個(gè)精心分層的架構(gòu),它以解耦、抽象的形式實(shí)現(xiàn)了許多深度學(xué)習(xí)和數(shù)據(jù)處理技術(shù)的共同基礎(chǔ)模式。通過利用底層Python語言的動態(tài)性和PyTorch庫的靈活性,可以簡潔明了地實(shí)現(xiàn)這些抽象。
fastai的特性包括:
- 一個(gè)新的Python張量語義類型層次結(jié)構(gòu),實(shí)現(xiàn)分類系統(tǒng)。
- 可以在純Python中開發(fā)的GPU優(yōu)化的計(jì)算機(jī)視覺庫。
- 只需要使用4、5行代碼就可以將現(xiàn)代優(yōu)化器的常見功能重構(gòu)為兩個(gè)基本部分,以實(shí)現(xiàn)優(yōu)化器。
- 一個(gè)新穎的雙向回調(diào)系統(tǒng),可以訪問數(shù)據(jù)、模型或優(yōu)化器的任何部分,并在訓(xùn)練期間的任何時(shí)候?qū)ζ溥M(jìn)行更改。
- 新的數(shù)據(jù)塊API。
fastai主要圍繞兩個(gè)設(shè)計(jì)目標(biāo)進(jìn)行開發(fā):平易近人和快速生產(chǎn)。同時(shí)也是深度可擴(kuò)展和可配置的。它構(gòu)建在較低級別API的層次結(jié)構(gòu)之上,這些API提供可組合的構(gòu)建塊。這樣,也能夠輕易重寫高級API的一部分或添加特定行為。
3.Detectron2
https://github.com/facebookresearch/detectron2
Star:30K
Detectron2由Facebook AI Research(FAIR)開發(fā),是用于對象檢測和對象分割的框架。它高度靈活,包含了許多尖端模型的實(shí)現(xiàn),使其成為視覺相關(guān)項(xiàng)目的首選資源。
4.DeepSpeech
https://github.com/mozilla/DeepSpeech
Star:25.1K
DeepSpeech是一個(gè)由Mozilla開發(fā)的基于深度學(xué)習(xí)的開源語言識別引擎。這個(gè)引擎對于涉及語音識別和轉(zhuǎn)錄的項(xiàng)目特別有價(jià)值,可以作為私有化解決方案的一種方案。可以在從Raspberry Pi4等離線設(shè)備或者高功率GPU服務(wù)器上高效運(yùn)行。
5.Jina
https://github.com/jina-ai/jina
Star:20.9K
Jina是一個(gè)開源神經(jīng)搜索框架,使用云原生技術(shù)構(gòu)建多模態(tài)AI應(yīng)用程序,非常適合構(gòu)建可以理解各種形式(包括文本、圖像和視頻)數(shù)據(jù)的搜索系統(tǒng)。具備優(yōu)秀的模塊化和可擴(kuò)展性設(shè)計(jì),使其成為現(xiàn)代搜索應(yīng)用程序的強(qiáng)大工具。
Jina支持構(gòu)建基于gRPC、HTTP和WebSockets通信協(xié)議的多模式AI服務(wù),并將其擴(kuò)展并部署到生產(chǎn)環(huán)境。讓算法人員可以專注于邏輯和算法,而不必?fù)?dān)心基礎(chǔ)架構(gòu)的復(fù)雜性。
相關(guān)的開發(fā)教程可以查看開源網(wǎng)站:
6.Haystack
https://github.com/deepset-ai/haystack
Star:16.7K
Haystack是一個(gè)端到端的LLM框架,用于構(gòu)建由LLM、Transformer模型、向量搜索等。無論要執(zhí)行檢索增強(qiáng)生成(RAG)、文檔搜索、問答還是答案生成,Haystack都可以將最先進(jìn)的嵌入模型和LLM編排到管道中,以構(gòu)建端到端NLP應(yīng)用程序。
下面是使用deepset Studio以YAML或Python代碼的形式可視化地創(chuàng)建和導(dǎo)出Haystack管道架構(gòu)的界面。
7.AllenNLP
https://github.com/allenai/allennlp
Star:11.7K
Allennlp這個(gè)庫由艾倫人工智能研究所開發(fā)維護(hù),Allennlp基于PyTorch構(gòu)建,主要簡化了構(gòu)建和評估復(fù)雜NLP模型的過程,使其成為研究人員和開發(fā)人員的寶貴資源。
8.Catalyst
https://github.com/catalyst-team/catalyst
Star:3.3K
Catalyst是用于深度學(xué)習(xí)研究和開發(fā)的PyTorch框架。它專注于可重復(fù)性、快速實(shí)驗(yàn)和代碼庫重用。提供模型訓(xùn)練管道,回調(diào)等功能,以簡化開發(fā)過程。
9.OpenCV AI Kit (OAK)
https://github.com/opencv-ai
OAK是一個(gè)專為計(jì)算機(jī)視覺任務(wù)設(shè)計(jì)的開源項(xiàng)目集。該項(xiàng)目包括針對邊緣設(shè)備的工具和模型,使其成為實(shí)時(shí)應(yīng)用的理想選擇。其靈活性和易用性使其成為計(jì)算機(jī)視覺愛好者的必關(guān)注產(chǎn)品。