Обмен технологиями

Странный журнал ошибок

2024-07-12

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

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

С чтением модели проблем нет, но при выводе появляется следующее:
RuntimeError: «triu_tril_cuda_template» не реализован для «BFloat16»

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

Причина инцидента

Когда я пытаюсь понять автопроцессор трансформаторов, он мне подсказывает:
RuntimeError: Не удалось импортировать transformers.models.auto.processing_auto из-за следующей ошибки (просмотрите ее трассировку):
Обнаружено, что PyTorch и torchvision были скомпилированы с разными версиями CUDA. PyTorch имеет версию CUDA=11.8, а torchvision — версию CUDA=11.7. Пожалуйста, переустановите torchvision, соответствующий вашей установке PyTorch.
Вы хотите сказать, что версии CUDA моего фонарика и torchvision несовместимы? Первоначально я установил его с помощью Pytorch. . .

Моя версия факела следующая:
факел 2.0.0+cu118
torchaudio 2.0.1
torchvision 0.15.1

Очень странно, после двойки действительно нет слова cu118. Поэтому я зашел на официальный сайт pytorch и снова загрузил его:
pip установить факел2.0.0 TorchVision0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

Прямо в этот раз. Я удалил только torchvision, поэтому torchaudio не обновляется.
факел 2.0.0+cu118
torchaudio 2.0.1
torchvision 0.15.1+cu118

В этот момент произошла первая ошибка.

————————

временное средство

Я читаю qwen1.5 7B, установите torch_dtype=torch.bfloat16. После изменения bfloat16 на torch_dtype=torch.float16 можно рассуждать. Или вернуть torchvision в обычную версию.
Но torch.float16 и torch.bfloat16 — это две совершенно разные вещи, поэтому просто менять их неправильно. . .

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

лучшее средство

Если torch_dtype="auto", трансформаторы будут автоматически использовать bfloat16.
Я также сделал некоторые наблюдения, распечатывая model.config в разных условиях:

  1. Я использовал Autoconfig, чтобы использовать файл конфигурации, поставляемый с qwen, и отправить его в AutoModelForCausalLM.from_pertrained. Он показывает, что используется bfloat16, но фактически используется пространство float32.
  2. Установите torch_dtype=torch.float16, который занимает 16 пробелов и отображает float16.
  3. Установите torch_dtype="auto", который занимает 16 пробелов и отображает bfloat16.

Увы, какое сравнение.