Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently states are always cast to fp32 tensors. This causes a ValueError when, e.g., a fp16 KV cache is used with a fp16 model:
ValueError: In op, of type scaled_dot_product_attention, named attn_output.1, the named input 'key' must have the same data type as the named input 'query'. However, key has dtype fp32 whereas query has dtype fp16.
It's unclear to me why these are cast to fp32's, and removing this fixes both full and half precision conversions at least in my case, but I'm not familiar enough with coremltools to know if there are any side effects to this change.