Обезьяна не переопределяет .view () в слое внимания, вызывая ошибку решанияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обезьяна не переопределяет .view () в слое внимания, вызывая ошибку решания

Сообщение Anonymous »

Я работаю с выводом Mistral в Windows, используя Pytorch и Xformers. Чтобы исправить ошибку RESHAPE в слоях внимания, я реализовал патч обезьян, который заменяет фиксированные тензор, которые изменяют вызовы в модулях внимания динамической альтернативой. Я попробовал два подхода: < /p>

рекурсивный патч на всех модулях, которые имеют атрибуты n_heads и head_dim, чтобы переопределить их прямые методы. < /P> < /li>
конкретный патч, нацеленный на класс внимания в Transformer_layers. < /p>
< /li>
< /ol>
Мои журналы отладки подтверждают, что исправленные методы вызываются и что вычисляемое количество токенов верно. Однако во время поколения я все еще получаю ошибку, в которой говорится, что тензор не может быть изменен, как и ожидалось. Сообщение об ошибке: < /p>
RuntimeError: shape '[1, 4096]' is invalid for input of size 753664
< /code>
Похоже, что где -то в коде все еще есть фиксированный вызов Reshape, который не переопределяется моим патчем. Я ищу советы о том, как привести к полному переопределению этой операции RESHAPE, не изменяя исходный код, или о том, является ли изменение файла непосредственно единственным решением. < /P>
Как это решить? < /p>
Я попробовал два подхода, чтобы заменить фиксированную операцию решапа в слоях внимания: < /p>

Я применил рекурсивный патч для всех модулей которые имеют атрибуты n_heads и head_dim, переопределяя их прямое методы, чтобы использовать динамическое изменение с помощью .reshape (-1, computed_size) вместо фиксированного .view (). < /p>
< /li>
Я реализовал конкретный патч, нацеленный на класс внимания в слоях трансформатора, чтобы переопределить его прямой метод таким же образом.
< /li>
< /ol>
Я ожидал, что после применения этих патчей выходной тензор будет динамически изменен до правильных размеров (например, [34, 4096] в моем случае) вместо того, чтобы принудить форму [1, 4096]. Однако, хотя журналы отладки подтверждают, что вычисленное количество токенов верно, ошибка все еще происходит, что указывает на то, что где -то в коде фиксированный вызов .view () все еще используется.

Подробнее здесь: https://stackoverflow.com/questions/794 ... hape-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»