es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La biblioteca de transformadores reticulares no puede encontrar torch.

Usando R y el paquete reticulate, estoy intentando utilizar un modelo pre-entrenado de Huggingface. Este modelo en particular requiere PyTorch y transformers. Ambos están disponibles en R a través de reticulate, sin embargo, aunque puedo instalar y cargar ambos, el paquete transformers no encuentra la instalación de PyTorch.

use_virtualenv("r-reticulate")
reticulate::py_install('transformers', pip = TRUE)
reticulate::py_install("PyTorch")

transformer = reticulate::import('transformers')
torch = reticulate::import('torch')
tokenizer = transformer$AutoTokenizer$from_pretrained("gagan3012/keytotext-small")
model = transformer$AutoModel$from_pretrained("gagan3012/keytotext-small")

y el error:

Error in py_call_impl(callable, dots$args, dots$keywords): ImportError: 
AutoModel requiere la biblioteca PyTorch pero no se encontró en tu entorno. Consulta las instrucciones en la página de instalación: https://pytorch.org/get-started/locally/ y sigue las que coincidan con tu entorno.


Traceback detallado:
  File "/miniconda/envs/r-reticulate/lib/python3.7/site-packages/transformers/utils/dummy_pt_objects.py", línea 364, in from_pretrained
    requires_backends(cls, ["torch"])
  File "/miniconda/envs/r-reticulate/lib/python3.7/site-packages/transformers/file_utils.py", línea 683, in requires_backends
    raise ImportError("".join([BACKENDS_MAPPING[backend][1].format(name) for backend in backends]))

Traceback:

1. transformer$AutoModel$from_pretrained("gagan3012/keytotext-small")
2. py_call_impl(callable, dots$args, dots$keywords)

pero PyTorch está definitivamente instalado – puedo llamar a métodos como torch$cudnn_convolution_add_relu, por lo tanto, ¿cómo puedo indicarle al paquete transformers dónde está torch?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Dado que puedes instalar y cargar correctamente los paquetes PyTorch y Transformers en R mediante reticulate, es posible que el problema sea que el paquete Transformers no sabe dónde está instalado PyTorch. Para solucionarlo, puedes configurar la variable de entorno TRANSFORMERS_CACHE con la ruta del directorio de almacenamiento en caché de Transformers y luego actualizar la caché para incluir la ruta de instalación de PyTorch.

    Así es cómo puedes hacerlo:

    # Obtén la ruta de instalación de PyTorch
    pytorch_path <- reticulate::py_module("torch")$__file__
    
    # Obtén la ruta del directorio de almacenamiento en caché de Transformers
    transformers_cache <- transformer$cache_dir()
    
    # Configura la variable de entorno TRANSFORMERS_CACHE con la ruta del directorio de almacenamiento en caché de Transformers
    reticulate::py_setenv("TRANSFORMERS_CACHE", transformers_cache)
    
    # Actualiza la caché de Transformers para incluir la ruta de instalación de PyTorch
    transformer::transformers_cache_info$update(py_install_path = pytorch_path)
    

    Después de ejecutar estos comandos, puedes intentar ejecutar el código original nuevamente para importar el modelo pre-entrenado de Huggingface.

Comments are closed.