liu zhengxi
liu zhengxi
静态图不能直接 load 动态图的参数,如果一定需要这样,可以先参考这里的写法试试 https://github.com/PaddlePaddle/PaddleNLP/blob/develop/paddlenlp/ops/faster_transformer/transformer/faster_transformer.py#L436 另外想问下,先用动态图训,为什么需要再切换到静态图训呢?
确实,EB 级别的显存占用不合理。判断是某些数值获取异常导致出现极大,个别 op 计算占用显存激增。 可以定位下 [这里](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/paddlenlp/transformers/mbart/modeling.py#L203) 是否是执行到这里就发生报错。 或者直接使用 ``` python import paddle a = paddle.to_tensor([0], dtype="int32") paddle.arange(a, a+1, dtype="int64") ``` 是否会出现问题。 若是,怀疑可能是环境问题,麻烦再提供下机器环境配置。 也可尝试修改 [这里](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/paddlenlp/transformers/mbart/modeling.py#L375) 代码为 ``` python decoder_inputs_embed_pos = self.decoder_embed_positions(...
是什么模型?有更多的报错信息么? 加速有黑白名单的机制,在检测到不满足一定配置或者是本地环境自动编译加速相关的代码不成功都会有这个提示
看上去是当前环境编译加速特性有些问题。 麻烦再提供下当前环境的信息吧,包括但不限于 cmake 版本,gcc 版本,cuda 版本,GPU,paddlenlp 版本,paddle 版本。 可以尝试删除 `/home/ubuntu/.paddlenlp/extensions/` 重新编译看下能否解决。 另外,如果上面的方式不能解决,也可以修改下 `/home/ubuntu/.local/lib/python3.7/site-packages/paddlenlp/transformers/generation_utils.py` 文件里,如下几行代码,再执行一次,看下具体的编译报错是什么:
请问应用场景是什么?Paddle Inference,PaddleLite 或是...?
最好也能有可复现的代码哈 另外,文件大小是多少以及用对应的 `from_pretrained` 能正常 load 吗?这种报错也有可能是误操作清空了文件,或是损坏、错误地修改了文件导致的。 也可重新 save check 下。
如果是文件损坏那可能不太好恢复,可能还是得重新训。 之前遇到一种用法导致类似的情况,是因为有位用户用多卡训练,然后每张卡对应的进程都在执行保存模型的操作,相当于是同一个文件反复被多个进程“可能是同时”读写导致的偶发性文件损坏。可以在代码里面先自查下有无这种情况。 可以用以下代码段试试读取这个文件,如果确定是 `pickle` 这里报错那可能没有太好恢复的方法。 ``` python import pickle with open("model.pdparams", 'rb') as f: state = pickle.load(f, encoding='latin1') ```
看这个 log 似乎是在安装 `paddle2onnx` 的 `onnx` 依赖的时候报错,看这个报错信息,`AssertionError: Could not find "cmake" executable!` 可以试试在当前环境下安装一个 `cmake`。
`paddle.nn.TransformerEncoder` 仅包含 encoder 部分,不包含 embedding
可以将历史比较久远的对话内容提取关键词来作为部分对话历史,这样生成 hidden_state 这步还是交给模型本身来完成。 或者其实在多轮对话里面,太久远的对话内容可能也不是继续生成的主要参考,直接截断不作为历史信息来输入也是一种方式。