KerasNLP: 多框架自然语言处理模型
KerasNLP 是一个原生支持 TensorFlow、JAX 或 PyTorch 的自然语言处理库。KerasNLP 提供预训练模型的库和低级别的语言建模构件。基于Keras 3构建的模型可以在任何框架中训练和序列化,并且在另一框架中重新使用,而无需昂贵的迁移。
该库是核心 Keras API 的扩展;所有高级模块都是层和模型,具备跟核心 Keras 同样的完善程度。如果你熟悉 Keras,那么恭喜你!你已经理解了 KerasNLP 的大部分内容。
所有模型在单一模型定义下支持 JAX、TensorFlow 和 PyTorch,可在 GPU 和 TPU 上开箱即用地进行微调。模型可以在单个加速器上使用内置的 PEFT 技术进行训练,或在大规模模型和数据并行训练中微调。请参阅我们的入门指南开始学习我们的 API。在 Kaggle 上浏览我们的模型。我们欢迎贡献。
快速链接
对所有人
对贡献者
快速入门
在 IMDb 电影评论上微调 BERT:
import os
os.environ["KERAS_BACKEND"] = "jax" # 也可以是 "tensorflow" 或 "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,
)
# 加载一个 BERT 模型。
classifier = keras_nlp.models.Classifier.from_preset(
"bert_base_en",
num_classes=2,
activation="softmax",
)
# 在 IMDb 电影评论上进行微调。
classifier.fit(imdb_train, validation_data=imdb_test)
# 预测两个新例子。
classifier.predict(["What an amazing movie!", "A total waste of my time."])
在 colab 中试试。 更多详细的指南和示例,请访问 keras.io/keras_nlp。
安装
要安装带有 Keras 3 的最新 KerasNLP 版本,只需运行:
pip install --upgrade keras-nlp
要安装带有 KerasNLP 和 Keras 最新夜间更新的版本,你可以使用我们的夜间包。
pip install --upgrade keras-nlp-nightly
请注意,目前安装 KerasNLP 会默认拉取 TensorFlow 用于 tf.data
API 的预处理。即使使用 tf.data
进行预处理,训练仍可以在任何后端进行。
阅读 Keras 入门 获取更多关于安装 Keras 3 及其与不同框架兼容性的信息。
[!重要] 我们推荐使用带有 TensorFlow 2.16 或更高版本的 KerasNLP,因为 TF 2.16 默认包包含 Keras 3。
配置你的后端
如果你在环境中安装了 Keras 3(见上面的安装),你可以使用 KerasNLP 与 JAX、TensorFlow 和 PyTorch 之一。要这样做,设置 KERAS_BACKEND
环境变量。例如:
export KERAS_BACKEND=jax
或者在 Colab 中,使用:
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras_nlp
[!重要] 确保在导入任何 Keras 库之前设置
KERAS_BACKEND
,它将在 Keras 第一次导入时进行设置。
兼容性
我们遵循 Semantic Versioning,并计划为使用我们组件构建的代码和保存的模型提供向后兼容性保证。在我们继续进行预发布 0.y.z
开发时,可能会随时打破兼容性,并且 API 不应视为稳定。
免责声明
KerasNLP 通过 keras_nlp.models
API 提供访问预训练模型。这些预训练模型是在 "按原样" 基础上提供的,没有任何形式的保证或条件。以下底层模型由第三方提供,并受单独许可约束:
BART, BLOOM, DeBERTa, DistilBERT, GPT-2, Llama, Mistral, 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}},
}
鸣谢
感谢所有出色的贡献者!