mirror of
https://github.com/ml-explore/mlx.git
synced 2025-09-28 00:58:15 +08:00
Add batch offsets for mx.fast.rope (#2564)
* implement batch rope for Metal * cuda rope (#2576)
This commit is contained in:
@@ -164,8 +164,13 @@ void init_fast(nb::module_& parent_module) {
|
||||
R"pbdoc(
|
||||
Apply rotary positional encoding to the input.
|
||||
|
||||
The input is expected to be at least 3D with shape ``(B, *, T, D)`` where:
|
||||
* ``B`` is the batch size.
|
||||
* ``T`` is the sequence length.
|
||||
* ``D`` is the feature dimension.
|
||||
|
||||
Args:
|
||||
a (array): Input array.
|
||||
a (array): The input array.
|
||||
dims (int): The feature dimensions to be rotated. If the input feature
|
||||
is larger than dims then the rest is left unchanged.
|
||||
traditional (bool): If set to ``True`` choose the traditional
|
||||
@@ -174,7 +179,9 @@ void init_fast(nb::module_& parent_module) {
|
||||
each dimension in the positional encodings. Exactly one of ``base`` and
|
||||
``freqs`` must be ``None``.
|
||||
scale (float): The scale used to scale the positions.
|
||||
offset (int or array): The position offset to start at.
|
||||
offset (int or array): The position offset to start at. If an
|
||||
:obj:`array` is given it can be a scalar or vector of ``B``
|
||||
offsets for each example in the batch.
|
||||
freqs (array, optional): Optional frequencies to use with RoPE.
|
||||
If set, the ``base`` parameter must be ``None``. Default: ``None``.
|
||||
|
||||
|
@@ -91,7 +91,7 @@ mx::array to_array_with_accessor(nb::object obj) {
|
||||
return nb::cast<mx::array>(obj.attr("__mlx_array__")());
|
||||
} else {
|
||||
std::ostringstream msg;
|
||||
msg << "Invalid type " << nb::type_name(obj.type()).c_str()
|
||||
msg << "Invalid type " << nb::type_name(obj.type()).c_str()
|
||||
<< " received in array initialization.";
|
||||
throw std::invalid_argument(msg.str());
|
||||
}
|
||||
|
Reference in New Issue
Block a user