Compartir tecnología

Registro de errores extraño

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

https://github.com/meta-llama/llama3/issues/80

No hay ningún problema al leer el modelo, pero durante la inferencia aparece lo siguiente:
RuntimeError: “triu_tril_cuda_template” no implementado para 'BFloat16'

————————————————

Causa del incidente

Cuando intento entender el AutoProcesador de transformadores, me pregunta:
RuntimeError: No se pudo importar transformers.models.auto.processing_auto debido al siguiente error (busque para ver su seguimiento):
Se detectó que PyTorch y Torchvision se compilaron con diferentes versiones de CUDA. PyTorch tiene la versión CUDA=11.8 y Torchvision tiene la versión CUDA=11.7. Reinstale la versión de Torchvision que coincida con su instalación de PyTorch.
¿Estás diciendo que las versiones CUDA de mi antorcha y torchvision no son compatibles? Originalmente lo instalé con Pytorch. . .

Mi versión de antorcha es la siguiente:
Antorcha 2.0.0+cu118
antorchaaudio 2.0.1
visión de antorcha 0.15.1

Muy extraño, de hecho no hay ninguna palabra cu118 después de los dos. Entonces fui al sitio web oficial de pytorch y lo descargué nuevamente:
pip instala la antorcha2.0.0 visión de antorcha0.15.1 Torchaudio==2.0.1 --url de índice https://download.pytorch.org/whl/cu118

Justo esta vez. Solo desinstalé torchvision, por lo que torchaudio no se actualiza.
Antorcha 2.0.0+cu118
antorchaaudio 2.0.1
visión de antorcha 0.15.1+cu118

En este punto ocurrió el primer error.

————————

remedio temporal

Lo que estoy leyendo es qwen1.5 7B, configure torch_dtype=torch.bfloat16. Después de cambiar bfloat16 a torch_dtype=torch.float16, puedes razonar. O devolver torchvision a la versión normal.
Pero torch.float16 y torch.bfloat16 son dos cosas completamente diferentes, por lo que simplemente cambiarlas está mal. . .

——————————————

mejor remedio

Con torch_dtype="auto", los transformadores utilizarán automáticamente bfloat16.
También hice algunas observaciones al imprimir model.config en diferentes condiciones:

  1. Utilicé Autoconfig para usar el archivo de configuración que viene con qwen y lo envié a AutoModelForCausalLM.from_pertrained. Muestra que se usa bfloat16, pero en realidad se consume espacio float32.
  2. Configure torch_dtype = torch.float16, que consume 16 espacios y muestra float16.
  3. Configure torch_dtype="auto", que consume 16 espacios y muestra bfloat16.

Ay, qué comparación.