본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 05. 05. 01:05

Qwen3-TTS를 오픈비노 (OpenVINO) 에서부터 직접 구현하기

요약

본 기사는 Qwen3-TTS 모델을 오픈비노(OpenVINO) 형식으로 직접 구현한 과정을 공유합니다. 작성자는 PyTorch 기반의 Qwen3-TTS를 OpenVINO IR 형식에 맞게 처음부터 재설계하고 최적화하는 방법을 상세히 설명하며, 이 과정에서 데이터 흐름 분석과 장치 배치 개선을 통해 오픈비노 컴파일러가 최적의 커널을 선택하도록 유도했음을 강조합니다. 이 코드는 PyTorch 모델을 OpenVINO IR로 일반화하여 변환할 수 있는 방법론을 제시하지만, 오픈비노 개념의 문서 부족과 AI 도구에 대한 의존성 등 어려움도 함께 언급하고 있습니다.

핵심 포인트

  • Qwen3-TTS를 PyTorch에서 OpenVINO 형식으로 직접 재설계 및 구현하여 모델 변환 과정을 성공적으로 완료함.
  • 핵심 학습 과정은 `nn.Module`의 논리 분석, 데이터 흐름 연구, 그리고 오픈비노 컴파일러가 최적화된 커널을 선택하도록 장치 배치(device placement)를 반복 개선하는 데 있음.
  • 이 구현 코드는 PyTorch 모델을 OpenVINO IR 형식으로 일반화할 수 있는 방법론을 제공하며, CPU 및 GPU 환경에서 1.7B 크기까지 지원함.
  • 작성자는 오픈비노의 문서 부족과 복잡성을 언급하며, AI 도구의 도움을 받았지만 이는 순수한 자동 코드 생성이 아님을 명확히 함.

안녕하세요, 여러분.

저는 최근 Qwen3-TTS 를 오픈비노 (OpenVINO) 형식으로 코드로 구현하는 작업을 완료했습니다. 이 작업은 2026 년 초에 시작되었으며, 3 월에 OpenArc 에 병합되었고, 코드 공개를 잊고 있었습니다. 이번 기회에 공개합니다. https://github.com/SearchSavior/Qwen3-TTS-OpenVINO

디스코드에서 러시아어를 하는 한 사람이 있었고, 저는 A770 에서 Elmo 를 음성 클론 (voice clone) 하고 싶어서 PyTorch 에서 Qwen3-TTS 를 오픈비노 변환 형식에 맞게 처음부터 다시 설계했습니다. Transformer 라이브러리는 AutoTokenizer(사랑하는 것) 을 제외하고는 무시했습니다. 이를 통해 오픈비노 변환을 모델 형식으로 설계하는 방법을 제대로 이해하고 싶습니다.

가장 중요한 학습점: nn.Module 로 구성된 논리 (logic) 와 그 forward 메서드를 분석하고 데이터 흐름 (data flow) 을 연구한 후, 오픈비노 컴파일러가 최적의 커널 (kernel) 을 선택할 수 있도록 데이터 흐름과 장치 배치 (device placement) 의 조합을 반복적으로 개선합니다. 이 과정에서 커널을 직접 개입하는 것은 향후 작업으로 완전히 분리된 별도의 임무입니다. 중간에 많은 단계들이 있었으며, 이 프로젝트에서 저에게 중요한 학습점은 더 나은 메모리 작성 (taking better notes) 입니다.

AI 도구는 사용되었습니다... 하지만 솔직히 말해 그것이 없었으면 어떻게 할 수 있을지 확신이 없습니다. Opus 4.5 는 상태ful kv cache 와 같은 부분에서 오픈비노 스타일의 선택을 제대로 할 수 없었고, 커널 퓨전 (kernel fusion) 을 예측하지 못했습니다. 인텔은 엔지니어링 관행을 문서화하는 데 충분한 노력을 기울이지 않습니다... 이로 인해 오픈비노는 결국 그렇게 개방적이지 않아 보입니다. 하지만 AI 도구와 노력만 있다면 가능합니다.

이 코드는 PyTorch 모델을 오픈비노 IR 형식으로 최적화하는 것을 일반화할 수 있습니다. 코드 이해를 쉽게 만들려고 노력했지만, 개념적으로 매우 어렵습니다. 오픈비노의 개념은 문서화가 부족하고, 업스트림 소스 (upstream source) 에서 제가 기억에 의해 재구성한 타겟된 예시들 (targeted examples) 을 기반으로 Opus 가 구현했습니다. 그리고 수 시간의 테스트를 거쳤습니다. AI 를 보조적으로 사용했지만, 이 코드는 결코 완전 무작위 코드 작성 (full send vibe coded) 이 아니었습니다.

이 코드는 이제 OpenArc 에서 공개되어 있으며, CPU 와 GPU 에 대해 1.7B 크기만 커버합니다. 0.6B 크기는 문제가 있었지만 더 조사하지 않았습니다. NPU 지원 PR 은 가장 환영받습니다.

다른 구현 게시글과 달리, 저는 벤치마크를 포함하지 않았습니다. 대부분 시간 부족과 OpenArc PR 의 추론 코드 변경 사항이 이 저장소와 다르기 때문입니다. 관심이 있다면 OpenArc 와 PyTorch CPU/XPU 를 벤치마킹할 수 있습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
2

댓글

0