콘텐츠로 이동

문제해결

이 페이지는 RBLN Optimum에서 자주 발생하는 이슈와 해결 방법을 정리합니다.


컴파일 후 runtime 생성 실패

1
2
3
4
5
Failed to create RBLN runtime: ...

If you only need to compile the model without loading it to NPU, you can use:
  from_pretrained(..., rbln_create_runtimes=False) or
  from_pretrained(..., rbln_config={..., 'create_runtimes': False})

from_pretrained는 컴파일 직후 NPU에 runtime을 생성합니다. device memory 부족 외에도 다양한 원인이 있으므로, 메시지 상단의 원본 예외를 먼저 확인하는 것을 권합니다. runtime 생성을 건너뛰려면 다음과 같이 호출합니다.

model = RBLNModel.from_pretrained(model_id, rbln_create_runtimes=False)
model.save_pretrained(save_dir)

저장 후에는 별도로 로드합니다.

model = RBLNModel.from_pretrained(save_dir)

Device / num_devices 설정 오류

device와 num_devices 검증 단계에서 다음 중 하나의 에러가 발생할 수 있습니다.

Device {device_id} is not a valid NPU device. Please check your NPU status with 'rbln-smi' command.

호스트에 없는 device ID를 지정한 경우입니다. device를 지정하지 않으면 0 … num_devices - 1이 기본값이 되므로, 호스트의 NPU 수보다 큰 num_devices를 지정해도 처음으로 없는 ID에서 이 에러가 발생합니다.

The number of devices ({len_device}) does not match `num_devices` ({num_devices}).

device 리스트의 길이와 num_devices가 다른 경우입니다.

`num_devices` ({N}) is greater than the number of available devices {M}.

지정한 ID는 모두 존재하지만 NPU 수가 num_devices보다 적은 경우로, device 리스트에 같은 ID가 반복될 때만 발생합니다(예: NPU가 1개인 호스트에서 device=[0, 0]).

rbln-smi로 사용 가능한 device를 확인한 뒤 다음 항목을 점검합니다.

  • 지정한 device ID가 시스템에 존재하는지
  • num_devices ≤ 사용 가능한 device 수
  • device 리스트 길이 = num_devices

Flash attention 설정 오류

Flash attention은 attn_impl="flash_attn" 또는 kvcache_partition_len 설정으로 활성화됩니다. 다음 제약 중 하나라도 위반하면 컴파일이 거부됩니다.

  • max_seq_len은 kvcache_partition_len의 배수이면서 2 × kvcache_partition_len 이상이어야 합니다.
  • kvcache_partition_len은 대상 NPU의 범위 안에 있어야 하므로, 모든 NPU에서 max_seq_len은 2,048 이상입니다.
`max_seq_len` ({X}) must be a multiple of `kvcache_partition_len` ({Y}) when using 'flash_attn'. Please adjust either value to meet this requirement.

한계값은 대상 NPU를 따릅니다. rbln_config에 npu가 지정되어 있으면 그 값을, 아니면 호스트에 장착된 NPU를 기준으로 합니다. NPU가 없는 호스트에서 npu도 지정하지 않으면 ATOM™ 한계값이 적용되므로, 그런 환경에서 Rebel100™용으로 컴파일할 때는 npu를 지정해야 합니다(예: rbln_npu="RBLN-CR13").

Rebel100™(RBLN-CR*)
kvcache_partition_len 1,024 – 16,384
max_seq_len 2,048 이상
attn_impl="flash_attn"만 지정했을 때 기본 kvcache_partition_len 8,192

범위를 벗어난 partition은 다음 오류로 거부됩니다.

`kvcache_partition_len` ({X}) is out of the REBEL supported range for 'flash_attn' (1024 <= `kvcache_partition_len` <= 16384). Please provide a valid value within this range.

기본 partition 8,192를 쓰면 max_seq_len은 16,384 이상이어야 합니다. Model Zoo는 Rebel100™용 Qwen3-8B를 max_seq_len=40_960, kvcache_partition_len=8_192로 컴파일합니다.

ATOM™(RBLN-CA*)
kvcache_partition_len 1,024 – 32,768
max_seq_len 2,048 이상
attn_impl="flash_attn"만 지정했을 때 기본 kvcache_partition_len 16,384

범위를 벗어난 partition은 다음 오류로 거부됩니다.

`kvcache_partition_len` ({X}) is out of the ATOM supported range for 'flash_attn' (1024 <= `kvcache_partition_len` <= 32768). Please provide a valid value within this range.

기본 partition 16,384를 쓰면 max_seq_len은 32,768 이상이어야 합니다. Model Zoo는 ATOM™용 Qwen3-8B를 max_seq_len=40_960, kvcache_partition_len=8_192로 컴파일합니다.


로깅 및 디버깅

OPTIMUM_RBLN_VERBOSE 환경 변수로 로그 수준을 제어합니다(기본값 info).

$ OPTIMUM_RBLN_VERBOSE=debug python inference.py    # 상세 로그
$ OPTIMUM_RBLN_VERBOSE=warning python inference.py  # 경고·오류만

지원 수준: debug, info, warning, error, critical.


주제별 가이드