Spec-Zone.ru › PyTorch 2.14
fullgraph=False">

Отключение и подавление ошибок

Создано: 28 июля 2025 г. | Последнее обновление: 3 декабря 2025 г.

В некоторых архитектурах моделей есть части, которые особенно сложно компилировать: либо в них много разрывов графа, либо происходят сбои. Возможно, вы захотите явно отключить эти проблемные части модели, чтобы применить torch.compile к тем частям, которые работают. Для этого можно использовать декоратор @torch.compiler.disable. Когда torch.compile пытается вызвать отключённую функцию, происходит разрыв графа, трассировка отключённой функции пропускается и возобновляется после вызова. По умолчанию все рекурсивные вызовы из отключённой функции также отключаются. Используйте параметр recursive=False, чтобы разрешить компиляцию рекурсивных вызовов.

def inner1(x):
    torch._dynamo.graph_break()  # not traced
    return x + 1  # not traced

@torch.compiler.disable
def outer1(x):
    x = x + 2  # not traced
    torch._dynamo.graph_break()  # not traced
    return inner1(x)

@torch.compile
def f(x):
    x = outer1(x)
    return x + 4  # traced

print(f(torch.ones(3)))
def inner2(x):
    torch._dynamo.graph_break()  # traced
    return x + 1  # traced

@torch.compiler.disable(recursive=False)
def outer2(x):
    x = x + 2  # not traced
    torch._dynamo.graph_break()  # not traced
    return inner2(x)

@torch.compile
def g(x):
    x = outer2(x)
    return x + 4  # traced

print(g(torch.ones(3)))

Например, можно использовать torch.compiler.disable, чтобы отключить torch.compile для разреженной архитектуры в рекомендательных моделях, поскольку разреженную архитектуру сложно компилировать. Предварительная обработка и функции ведения журналов — другие примеры функций, которые обычно вызывают множество разрывов графа и не получают преимуществ от компиляции.

Если у вас происходят сбои компилятора, но вы хотите продолжить работу несмотря на это, можно задать torch._dynamo.config.suppress_errors = True. При сбое компилятора мы просто пропустим трассировку функции и попробуем снова позже. Это не лучший подход — в конечном итоге лучше вручную добавить аннотации disable там, где это необходимо.

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/user_guide/torch_compiler/compile/programming_model.compiler_disable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API