OpenAI GPT-2模型在TensorFlow JS中的使用

13

是否可以使用TensorFlowJS从OpenAI GPT-2生成文本?

如果不行的话,是什么限制了它,例如模型格式或其他方面的限制?


你已经成功在TFJS上载入了吗? - Mohamed Taher Alrefaie
1
我很难找到@frederik-bode提供的解决方案的输入和输出节点。因此,我正在使用“Pytorch Serve”通过Rest API公开该模型。另外,GPT2模型太大了,无法在JS中使用,而且我没有看到将其转换为TFJS对我的用例有任何优势。 - jay
啊,有趣!你对这个解决方案进行过时间分析吗? - Mohamed Taher Alrefaie
1
这似乎很有用:https://github.com/tensorflow/tfjs/issues/3582 - Heath Mitchell
等一下,那里使用了这里的答案。 - Heath Mitchell
2个回答

8

我没有看到任何不行的理由,除非 gpt-2 中有一些 tensorflowjs 不支持的操作。

我不知道如何做,但这是一个不错的起点:

install.sh

python3 -m pip install -q git+https://github.com/huggingface/transformers.git
python3 -m pip install tensorflow

save.py

from transformers import TFGPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
# add the EOS token as PAD token to avoid warnings
model = TFGPT2LMHeadModel.from_pretrained("gpt2", pad_token_id=tokenizer.eos_token_id)
model.save("./test_gpt2")

这将为您提供一个 SavedModel 文件。现在您可以尝试找出输入和输出节点,并使用 tensorflowjs_converter 来尝试转换它。提示: https://www.tensorflow.org/js/tutorials/conversion/import_saved_model


2
这是Python代码,我相信OP正在寻找JS答案。 - denislexic
5
是的,这是如何将现有的Python模型保存,以便可以导入到JS中的方法。 - Heath Mitchell
1
为什么要导入 tensorflowjs - Jules G.M.
抱歉,我看不到需要翻译的文本。请提供需要翻译的内容。 - Jules G.M.

3
可能的。也许2023年有人会觉得这个有用:
一种实现的方法是使用Frederik描述的`tensorflowjs-converter`将TF模型转换(这种方法可能存在自定义层丢失的问题)。
使用gpt-tfjs - TensorFlow.js中GPT模型的实现。可以直接从HF(example)加载权重。我开发它是为了在浏览器中进行模型训练的实验。
如果你只想生成文本而不进行训练,你有更多选择:
使用transformers.js或者ONNX。这个库非常好,遵循Python的transformers库API。不幸的是,只能进行推理。
使用ggml + WASM。它是一个C/C++模型实现,编译成WebAssembly(exampletalk)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接