Arm 엔지니어, ExecuTorch로 Pixel 11의 Nemotron 3.5 스트리밍 음성 인식을 분석

Published · AI Daily — AI-assisted deep research, methodology & disclosure

PyTorch 블로그의 Arm 엔지니어 사례 연구는 오디오 조각이 길어지면 FP16 단어 오류율이 15.2%에서 11.5%로 내려가고(80~1,120밀리초), SME2 행렬 명령으로 Pixel 11에서 FP16의 녹음 전체 처리가 2.12배 빨라졌다고 보고한다. 모든 수치는 공급자 쪽의 측정이다.

Arm 엔지니어들, ExecuTorch로 휴대폰 속 스트리밍 음성 인식을 분석하다

PyTorch 블로그는 10월 26일 Arm 엔지니어 두 명이 쓴 사례 연구를 게시했다. 이들은 다국어 스트리밍 음성 모델 Nemotron 3.5를 PyTorch에서 ExecuTorch로 내보내 Google Pixel 11 휴대폰에서 성능을 분석했다. 저자들은 시험 대상인 명령어 집합 확장을 판매하는 Arm 소속이므로, 아래 모든 수치는 공급자 쪽의 측정이다. 연구는 수치 정밀도와 오디오 조각 크기가 정확도를 어떻게 바꾸는지, 스레드 하나로 오디오를 처리하는 데 시간이 얼마나 드는지, 실제로 어떤 연산 커널이 실행되는지를 묻는다. 글은 경고로 시작한다. 전체 녹음에서는 정확도가 가장 높은 모델도, 사람이 말하는 동안 곧바로 글자를 내놓아야 할 때는 훨씬 나빠질 수 있다는 것이다.

정확도는 조각 크기에 달려 있다

스트리밍 인식은 오디오를 조각 단위로 처리한다. 글의 설명에 따르면 모델은 오디오를 10밀리초마다 하나의 특징 벡터로 바꾸고, 인코더가 이를 80밀리초마다 하나의 위치로 줄인다. 시험한 조각 크기는 80, 320, 560, 1,120밀리초다. 저자들은 호스트 컴퓨터에서 ExecuTorch의 XNNPACK 백엔드로 단어 오류율(WER), 즉 대체·삭제·삽입 오류 수의 합계를 기준 단어 총수로 나눈 값을 측정했다. 공개 말뭉치 네 개에서 가져온 14,019개 발화를 썼다. 80밀리초에서 1,120밀리초로 가면, 16비트 부동소수점(FP16)의 WER은 15.2%에서 11.5%로, 8비트 정수 가중치(QC8W라 부른다)는 15.5%에서 11.7%로 내려간다. FP16은 어느 크기에서나 32비트 부동소수점과 0.03퍼센트포인트 미만으로 차이 나고, QC8W는 0.21에서 0.31포인트가 더해진다. 조각이 길수록 정확도는 좋아지지만 첫 글자는 더 늦게 나타난다.

휴대폰 측정이 보여 주는 것

속도를 보기 위해 팀은 Pixel 11에서 24.9초 길이의 녹음 하나를 1,120밀리초 조각으로 처리했다. 추론 스레드는 하나였고 중간 성능의 CPU 코어에 고정했다. ExecuTorch 1.3.1을 Arm의 SME2 행렬 명령을 켠 것과 끈 것 두 가지로 빌드했으며, 각 설정마다 예열 실행 2회와 측정 추적 1회를 거쳤다. SME2를 켜면 FP16 처리 시간이 9.79초에서 4.61초로 줄어 2.12배 빨라졌고, QC8W는 5.20초에서 3.24초로 1.61배 빨라졌다. 저자들은 이를 처리 시간을 오디오 길이로 나눈 실시간 계수로 나타냈는데, FP16은 0.19, QC8W는 0.13이었다. 이 여유가 오디오가 도착하기를 기다리는 시간을 없애 주지는 않는다고 강조한다. 향상의 대부분은 행렬 곱셈에서 나왔고 FP16에서 8.2초가 3.1초로 줄었다. 반면 데이터 이동은 두 빌드에서 시간이 거의 같았으므로 전체에서 차지하는 비중이 커졌다.

어떤 커널이 실행되었나

연산자별 시간만으로는 어떤 저수준 루틴이 실행되었는지 알 수 없으므로, 저자들은 Arm의 프로파일러로 네이티브 호출 경로도 표본 추출했다. 행렬 하드웨어가 수집 시간 가운데 할당된 비율은 FP16에서 38.4%, QC8W에서 53.7%라고 보고한다. 이것이 최고 연산 처리량에 대한 비율은 아니라고 분명히 밝힌다. 표본을 통해 두 경우 모두 SME2용으로 작성된 커널이 다른 커널과 나란히 실행되었음이 확인되었다. 일부 FP16 연산은 여전히 이전의 NEON 벡터 경로를 썼고, 일부 QC8W 연산은 여전히 32비트 부동소수점으로 돌았다. 글에 따르면 이번에 사용한 ETDump와 Streamline 두 도구는 모델 계층과 실행된 커널의 관점을 직접 연결하지 못한다. 저자들은 계층별 대응 관계를 향후 과제로 남겼다.

결과를 활용하는 방법

이 연구가 보여 주는 것은 판정이라기보다 방법이다. 조각 크기와 정밀도를 함께 고르고, 목표 기기에서 정확도와 지연 시간을 모두 측정하라는 것이다. 한계는 분명하다. 정확도 시험은 휴대폰이 아니라 호스트에서 이루어졌다. 휴대폰에서의 시간 측정은 녹음 하나, 스레드 하나, 설정마다 한 번의 측정에 그쳤다. 결과는 기기 하나에서, Arm 자신의 최적화와 함께 얻은 것이다. 제품을 계획하는 팀은 자신들의 오디오, 언어, 발열 한계로 시험을 다시 해야 한다.

Sources

FAQ

스트리밍 음성 인식에서 조각 크기가 중요한 이유는?

스트리밍 모델은 전체 녹음이 갖춰지기 전에 글자를 내놓아야 한다. 연구는 조각을 80밀리초에서 1,120밀리초로 늘리면 FP16 단어 오류율이 15.2%에서 11.5%로 내려가지만 첫 글자는 더 늦게 나온다고 보고한다. 따라서 정확도는 실제 배포에 쓰는 조각 크기에서 측정해야 한다.

SME2는 휴대폰에서 무엇을 바꿨나?

Pixel 11에서 추론 스레드 하나로 24.9초 녹음을 처리했을 때 FP16은 SME2 없이 9.79초, 있을 때 4.61초로 2.12배 빨랐다. 8비트 QC8W는 5.20초에서 3.24초로 1.61배였다. 저자들은 이 명령어 집합을 만드는 Arm 소속이다.

이 결과는 어디까지 일반화할 수 있나?

그리 멀리는 어렵다. 정확도는 호스트 컴퓨터에서 쟀고, 휴대폰의 시간 측정은 기기 하나, 녹음 하나, 스레드 하나, 설정마다 한 번의 측정에 그쳤다. 팀은 자신의 오디오, 언어, 발열 한계로 시험을 되풀이해야 한다.