-
Notifications
You must be signed in to change notification settings - Fork 14
RuntimeError: expected scalar type Float but found BFloat16 #2
Comments
这个需要改一下flash attn wrapper 里边的type
如果你在用bloom,这里的casting 不应该是half, 而应该是 bf16,你可以尝试改一改,并且在launch cmd 里边加入 --bf16, 这个我测试是可行的 不好意思,可能过几天我会加入一个 bf16 的选项,最近有点忙不过来,如果你测试过bf16 能行,很欢迎来做一个pull request |
我的命令行如下:
是单机八卡在跑 |
不知道是不是由于多卡,使用FSDP造成的这个情况 |
上面那个fp16的问题解决了吗?如果没有的话,你可以试一下在wrapper 找找float16 的 downcast 然后全部换成 bfloat16 这个repo 是 optimized for memory 并非speed 所以用到了cpu offloading 相对来说会慢一点,然后memory 很大应该是因为:
很有可能并没有省下来memory, 应该能有不这么做approximation的办法,但是需要修改flash attn 的cuda kernel |
抱歉,这几天在搞其他的活。基于deepspeed来跑,就没“RuntimeError: expected scalar type Float but found BFloat16”这个报错,但是用transformers的FSDP就不行了。我觉得这个可以加一个可控的参数,就是可以选择fp16 float32或者bp16,全局来换dtype,以避免这个问题。 |
还有啊,有个问题想跟您探讨下,就是alibi的论文标题是“Train Short, Test Long-Attention with Linear Biases Enables Input Length Extrapolation”,理论上是训练512长度,在推理时用2048 3096都是可以的,不需要可以去训练,不知道您这块是怎么理解的? |
|
但是backward 很有可能还是要用一样多的memory, 而且这样感觉approximation 会更加不准, 不过finetuning 估计或许可以correct 这些误差 |
您好!非常感谢您的代码,我将其借鉴使用在bloom模型中,但出现了报错,以下是涉及的代码和报错情况:
其中,我使用了bf16(True )
麻烦您帮忙看一下,这是什么原因引起的,以及可能的解决方案,谢谢!
The text was updated successfully, but these errors were encountered: