KerasNLP

KerasNLP

Star

KerasNLP 是一个自然语言处理库,可以与 TensorFlow、JAX 或 PyTorch 原生配合使用。它基于 Keras 3,这些模型、层、指标和分词器可以在任何框架中进行训练和序列化,并可以无缝地迁移到其他框架。

KerasNLP 在整个开发周期中为用户提供支持。我们的工作流程由模块化组件构建,这些组件在开箱即用时具有最先进的预设权重,并且在需要更多控制时很容易定制。

该库是 Keras 核心 API 的扩展;所有高级模块都是 LayersModels,它们与 Keras 核心享有同等水平的完善。如果你熟悉 Keras,那么恭喜你!你已经了解了 KerasNLP 的大部分内容。

请查看我们的 入门指南,开始学习我们的 API。我们欢迎 贡献


指南

示例


安装

KerasNLP 支持 Keras 2 和 Keras 3。我们建议所有新用户使用 Keras 3,因为它允许将 KerasNLP 模型和层与 JAX、TensorFlow 和 PyTorch 一起使用。

Keras 2 安装

要安装具有 Keras 2 的最新 KerasNLP 版本,只需运行

pip install --upgrade keras-nlp

Keras 3 安装

目前,有两种方法可以使用 KerasNLP 安装 Keras 3。要安装 KerasNLP 和 Keras 3 的稳定版本,应在安装 KerasNLP **之后** 安装 Keras 3。这是一个临时步骤,因为 TensorFlow 绑定到 Keras 2,在 TensorFlow 2.16 之后不再需要此步骤。

pip install --upgrade keras-nlp
pip install --upgrade keras

要安装 KerasNLP 和 Keras 的最新夜间版本,可以使用我们的夜间包。

pip install --upgrade keras-nlp-nightly

注意:Keras 3 无法与 TensorFlow 2.14 或更早版本一起使用。

请查看 Keras 入门,了解有关安装 Keras 的更多信息以及与不同框架的兼容性。


快速入门

使用 keras_nlp.models API 对 BERT 进行微调,使其适用于小型情感分析任务

import os
os.environ["KERAS_BACKEND"] = "tensorflow"  # Or "jax" or "torch"!

import keras_nlp
import tensorflow_datasets as tfds

imdb_train, imdb_test = tfds.load(
    "imdb_reviews",
    split=["train", "test"],
    as_supervised=True,
    batch_size=16,
)
# Load a BERT model.
classifier = keras_nlp.models.BertClassifier.from_preset(
    "bert_base_en_uncased", 
    num_classes=2,
)
# Fine-tune on IMDb movie reviews.
classifier.fit(imdb_train, validation_data=imdb_test)
# Predict two new examples.
classifier.predict(["What an amazing movie!", "A total waste of my time."])

兼容性

我们遵循 语义版本控制,并计划为使用我们组件构建的代码和保存的模型提供向后兼容性保证。虽然我们继续进行预发布 0.y.z 开发,但我们可能会在任何时间中断兼容性,并且 API 不应被视为稳定。

免责声明

KerasNLP 通过 keras_nlp.models API 提供对预训练模型的访问权限。这些预训练模型按“现状”提供,不提供任何形式的保证或条件。以下基础模型由第三方提供,并受单独许可证的约束:BART、DeBERTa、DistilBERT、GPT-2、OPT、RoBERTa、Whisper 和 XLM-RoBERTa。

引用 KerasNLP

如果 KerasNLP 有助于您的研究,我们感谢您的引用。以下是 BibTeX 条目

@misc{kerasnlp2022,
  title={KerasNLP},
  author={Watson, Matthew, and Qian, Chen, and Bischof, Jonathan and Chollet, 
  Fran\c{c}ois and others},
  year={2022},
  howpublished={\url{https://github.com/keras-team/keras-nlp}},
}