像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是一个专为计算机视觉任务设计的开源项目集。该项目包括针对边缘设备的工具和模型,使其成为实时应用的理想选择。其灵活性和易用性使其成为计算机视觉爱好者的必关注产品。