KerasCV 和 KerasNLP:赋予视觉和语言处理超能力 2024-06-03 作者 C3P00 近年来,深度学习在计算机视觉(CV)和自然语言处理(NLP)领域取得了显著的进展。然而,构建和训练最先进的模型需要大量的计算资源和专业知识,这给许多研究人员和实践者带来了挑战。为了解决这些问题,谷歌的 Keras 团队推出了 KerasCV 和 KerasNLP,这是 Keras API 的扩展,旨在简化 CV 和 NLP 工作流程。 模块化设计:构建复杂模型的基石 KerasCV 和 KerasNLP 采用模块化、分层的设计方法,为用户提供了三种主要抽象级别: 基础组件: 这些组件是构建和训练预处理管道、模型和评估逻辑的可组合模块。例如,KerasCV 提供了丰富的预处理层,可以轻松构建数据增强管道,提高模型的鲁棒性和泛化能力。 # 应用灰度预处理到输入 (images, labels), _ = keras.datasets.cifar10.load_data() to_grayscale = keras_cv.layers.preprocessing.Grayscale() augmented_images = to_grayscale(images) 预训练主干: 用户可以使用预训练的模型主干进行微调,例如 ResNet、BERT 和 GPT2 等流行架构。这些主干模型通常在大型数据集上进行训练,可以为各种下游任务提供良好的起点。 任务模型: 这些模型针对特定任务进行了预先配置,例如图像分类、对象检测、文本生成和问答。任务模型结合了较低 API 级别的预处理和建模模块,创建了一个统一的训练和推理接口,可以直接对原始文本或图像输入进行操作。 预设 API:快速构建最先进模型 预设 API 提供了一种创建最先进的 CV 和 NLP 模型的便捷方法。预设是已经在特定数据集上训练过的预配置模型,可用于特定任务。 例如,要使用预设 API 创建 RetinaNet 模型,只需导入 keras_cv.models 模块,然后在 RetinaNet 类上调用 from_preset() 方法: # 从预设加载架构和权重 model = keras_cv.models.RetinaNet.from_preset( "resnet50_imagenet", ) 性能优势:多后端支持和 XLA 编译 KerasCV 和 KerasNLP 支持 JAX、TensorFlow 和 PyTorch 等多个后端,允许用户选择最适合其需求的框架。此外,它们还支持 XLA 编译,这可以显著提高模型的训练和推理速度。 Kaggle 模型:开放获取预训练模型 所有 KerasCV 和 KerasNLP 的预训练模型都发布在 Kaggle 模型平台上,并且可以在没有互联网连接的情况下使用。这为研究人员和实践者提供了便捷地访问和使用最先进模型的机会。 未来展望:多模态和模型服务 Keras 团队计划在未来扩展 KerasCV 和 KerasNLP 的功能,包括支持更广泛的多模态模型和优化与后端特定大型模型服务解决方案的集成。 结论:赋能 CV 和 NLP 创新 KerasCV 和 KerasNLP 为快速原型设计新模型提供了模块化组件,并为许多计算机视觉和自然语言处理工作流提供了标准的预训练主干和任务模型。它们可以被 JAX、TensorFlow 或 PyTorch 的用户利用。得益于后端可选性和 XLA 编译,KerasCV 和 KerasNLP 提供了最先进的训练和推理性能。 参考文献 Chollet, F. et al. (2015). Keras. https://keras.io/✅ Watson, M. et al. (2024). KerasNLP: Natural Language Processing with Keras.✅ Wood, L. et al. (2024). KerasCV: Computer Vision with Keras.✅ Abadi, M. et al. (2015). TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems.✅ Bradbury, J. et al. (2018). JAX: Autograd and XLA for High-Performance Machine Learning Research.✅ Paszke, A. et al. (2019). PyTorch: An Imperative Style, High-Performance Deep Learning Library.✅ Sabne, A. (2020). XLA: The TensorFlow Compiler.✅ Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.✅ Jiang, Q. et al. (2023). Mistral 7B.✅ Kirillov, A. et al. (2023). Segment Anything.✅ Team, G. (2024). Gemma.✅ Wolf, T. et al. (2020). Transformers: State-of-the-Art Natural Language Processing.✅
近年来,深度学习在计算机视觉(CV)和自然语言处理(NLP)领域取得了显著的进展。然而,构建和训练最先进的模型需要大量的计算资源和专业知识,这给许多研究人员和实践者带来了挑战。为了解决这些问题,谷歌的 Keras 团队推出了 KerasCV 和 KerasNLP,这是 Keras API 的扩展,旨在简化 CV 和 NLP 工作流程。
模块化设计:构建复杂模型的基石
KerasCV 和 KerasNLP 采用模块化、分层的设计方法,为用户提供了三种主要抽象级别:
预设 API:快速构建最先进模型
预设 API 提供了一种创建最先进的 CV 和 NLP 模型的便捷方法。预设是已经在特定数据集上训练过的预配置模型,可用于特定任务。
例如,要使用预设 API 创建 RetinaNet 模型,只需导入
keras_cv.models
模块,然后在RetinaNet
类上调用from_preset()
方法:性能优势:多后端支持和 XLA 编译
KerasCV 和 KerasNLP 支持 JAX、TensorFlow 和 PyTorch 等多个后端,允许用户选择最适合其需求的框架。此外,它们还支持 XLA 编译,这可以显著提高模型的训练和推理速度。
Kaggle 模型:开放获取预训练模型
所有 KerasCV 和 KerasNLP 的预训练模型都发布在 Kaggle 模型平台上,并且可以在没有互联网连接的情况下使用。这为研究人员和实践者提供了便捷地访问和使用最先进模型的机会。
未来展望:多模态和模型服务
Keras 团队计划在未来扩展 KerasCV 和 KerasNLP 的功能,包括支持更广泛的多模态模型和优化与后端特定大型模型服务解决方案的集成。
结论:赋能 CV 和 NLP 创新
KerasCV 和 KerasNLP 为快速原型设计新模型提供了模块化组件,并为许多计算机视觉和自然语言处理工作流提供了标准的预训练主干和任务模型。它们可以被 JAX、TensorFlow 或 PyTorch 的用户利用。得益于后端可选性和 XLA 编译,KerasCV 和 KerasNLP 提供了最先进的训练和推理性能。
参考文献