추론중 Cannot instantiate typing.Union 에러 발생

양자화 및 컴파일을 마친 모델을 이용해 추론을 진행하였는데 아래와 같은 에러가 발생합니다.

추론 실행 파일 코드에는 typing.Union을 사용하는 곳이 존재하지 않습니다.
추론 실행 파일 코드 자체보다는 Furiosa SDK, 그 종속성 또는 Python 환경과 관련된 문제일 가능성 존재하는지 궁금합니다.

현재 사용 버전은 아래와 같습니다.

  • Python 3.10.18
  • backend:
    • version: 0.10.1
    • revision: 8b00177dc
    • built_at: 2025-01-08T03:45:42Z
  • frontend:
    • version: 0.10.5
    • revision: 25861806c
    • built_at: 2025-01-08T03:49:07Z

[에러내용]

2025-07-30T08:21:29.721584Z INFO furiosa_rt_core::driver::event_driven::coord: Found libhal (type: warboy, v0.12.0, rev: 56530c0 built at: 2023-11-16T12:34:03Z)
2025-07-30T08:21:29.721595Z INFO furiosa_rt_core::driver::event_driven::coord: [Runtime-0] detected 1 NPU device(s):
2025-07-30T08:21:29.747783Z INFO furiosa_rt_core::driver::event_driven::coord: - [0] npu:0:0-1 (warboy-b0-2pe, 128dpes, firmware: 1.7.7, 386a8ab)
2025-07-30T08:21:29.748015Z INFO furiosa_rt_core::driver::event_driven::coord: [Runtime-0] started
2025-07-30T08:21:29.749330Z INFO furiosa::runtime: Saving the compilation log into /home/clapi/.local/state/furiosa/logs/compiler-20250730172129-emdgjo.log
2025-07-30T08:21:29.793159Z INFO furiosa_rt_core::driver::event_driven::coord: [Runtime-0] created Sess-74c84177 using npu:0:0-1
2025-07-30T08:21:29.817911Z INFO furiosa_rt_core::driver::event_driven::coord: [Sess-74c84177] compiling the model (target: warboy-b0-2pe, 128dpes, file: output.enf, size: 54.1 MiB)
2025-07-30T08:21:31.659461Z INFO furiosa_rt_core::driver::event_driven::coord: [Sess-74c84177] the model compile is successful (took 1 secs)
2025-07-30T08:21:31.852073Z INFO furiosa_rt_core::driver::event_driven::coord: [Runtime-0] created 1 NPU threads on npu:0:0-1 (DRAM: 14.2 MiB/16.0 GiB, SRAM: 32.0 MiB/128.0 MiB)
검출기가 준비되었습니다.
이미지 로드 완료: (570, 880, 3)
검출 중 오류 발생: Cannot instantiate typing.Union
2025-07-30T08:21:32.057936Z INFO furiosa_rt_core::driver::event_driven::coord: [Sess-74c84177] terminated
2025-07-30T08:21:32.152502Z INFO furiosa_rt_core::npu::raw: NPU (npu:0:0-1) has been closed
2025-07-30T08:21:32.157800Z INFO furiosa_rt_core::driver::event_driven::coord: [Runtime-0] stopped

안녕하세요, 퓨리오사에이아이 김종욱입니다.

혹시 해당 에러가 발생하셨던 실행 코드를 공유 받을 수 있을까요?

메일로 해당 관련 내용 답변 드렸습니다.

확인 후 회신 부탁드립니다.

감사합니다.

음 우선 또 확인해야할 사항이, inference 코드 안에서 발생한 에러일까요?
예를 들어서..아래 코드만 실행시켰을때도 에러가 발생하는 것인지 확인이 필요해보입니다.

with create_runnd(model_path) as runner:
    runner.run([input_])

해당 코드를 사용하여 확인하면 아래와 같은 추론 결과가 떨어집니다.

해당 코드를 사용하여 확인한 결과, 추론은 정상적으로 수행되는 것으로 확인됩니다.
결과만 놓고 보면 SDK와 모델 모두 정상 작동하는 것으로 판단됩니다.
다만, 추론 코드 내에는 typing.Union을 사용하는 부분이 없으므로, 해당 오류의 원인이 되는 다른 부분이 있을지 검토가 필요합니다.
혹시 다른 의심되는 부분이나 확인해야 할 사항이 있다면 공유 부탁드립니다.

...,

\[\[0., 0., 1., ..., 1., 1., 1.\],
 \[0., 0., 1., ..., 2., 1., 1.\],
 \[0., 1., 1., ..., 2., 1., 1.\],
 ...,
 \[1., 2., 3., ..., 2., 1., 0.\],
 \[1., 2., 2., ..., 2., 1., 0.\],
 \[1., 1., 2., ..., 1., 1., 1.\]\],

\[\[0., 0., 0., ..., 0., 0., 0.\],
 \[0., 0., 0., ..., 0., 0., 0.\],
 \[0., 0., 0., ..., 0., 0., 0.\],
 ...,
 \[0., 0., 0., ..., 0., 0., 0.\],
 \[0., 0., 0., ..., 0., 0., 0.\],
 \[0., 0., 0., ..., 0., 0., 0.\]\],

\[\[0., 1., 1., ..., 0., 0., 0.\],
 \[0., 2., 2., ..., 0., 0., 0.\],
 \[0., 2., 1., ..., 0., 0., 0.\],
 ...,
 \[2., 2., 1., ..., 0., 0., 0.\],
 \[2., 1., 1., ..., 0., 0., 0.\],
 \[2., 2., 2., ..., 1., 1., 1.\]\]\]\], dtype=float32)\]

2025-07-31T06:30:22.923545Z INFO furiosa_rt_core::driver::event_driven::coord: [Sess-705ecd0b] terminated
2025-07-31T06:30:23.220438Z INFO furiosa_rt_core::npu::raw: NPU (npu:0:0-1) has been closed
2025-07-31T06:30:23.225173Z INFO furiosa_rt_core::driver::event_driven::coord: [Runtime-0] stopped

답변 감사드립니다. 우선 runtime 쪽 inference를 보아서도 위 코드가 실행이 된다면, 해당 쪽 문제는 아닌 것으로 보입니다. 이외에 부분들은 sdk 쪽의 내용이 아니라서..다른 라이브러리에서 사용하는 부분이 있는지 확인이 필요합니다.

1 Like