VoiVision AI
tech· VoiVision AI Engineering

Ascend 910 B 에서 전용 ASR 실행: 설정, 운영자 적응 및 처리량

에어 게이프 프라이빗 환경에서 화웨이 Ascend NPU 에 중국어 음성 - 텍스트 엔진을 착륙시키는 전체 워크샵 - 버전 매트릭스, ONNX - to - OM 모델 변환, 컨테이너 배포 명령, 실제 배포에 대한 6 가지 함정 및 참조 성능 수치. Xinchuang 환경에서 ASR 를 배포하는 엔지니어를 위해.


국내 AI 가속기 On - Prem 음성 전사

이 게시물에서는 개인 환경에서 Huawei Ascend NPU 에 중국어 음성 텍스트 엔진을 착륙시키는 방법에 대해 설명합니다 - 환경 버전, 모델 변환, 배포 명령, 함정 및 참조 성능 수치.

숫자에 관하여: "spec " 표시된 숫자는 출판된 제품 사양 에서 가져온 것입니다.성능 테이블은 일반적인 조건에서 참조 크기 를 제공합니다. 실제 값은 오디오 조건, 모델 크기 및 동시작업 전략에 따라 다릅니다.항상 자신의 작업에 따라 측정하십시오.

국내 하드웨어에서 실행해야 하는 이유

정부, 금융 및 방위에서 시스템은 "데이터 온 - 프레미스" 일뿐만 아니라 "기술적으로 자립적" 이어야합니다.즉, 기본 컴퓨팅을 수입 GPU 에서 Ascend, Cambricon 및 Hygon 국내 칩으로, 운영 체제를 Kylin, UnionTech 및 기타 국내 시스템으로 전환하는 것을 의미합니다.

엔지니어링 용어로 이것은 세 가지 어려운 제약 조건이됩니다:

  • 데이터 레지던스 - 회의 오디오는 내부 토론을 포함하며, 많은 조직에서는 오디오가 인트라넷에서 나가는 것을 명시적으로 금지합니다.
  • 신창 조달 - 가져온 GPU 가 승인된 구매 목록에 전혀 표시되지 않을 수 있음
  • 공기 간격 작업 - 일부 사이트는 외부 연결이 없으므로 모델 가중치를 환경으로 사전 패키징해야 합니다.

핵심 요점: 온프레미스 배포 는 "데이터가 어디에 있는지 " 에 답하고, 로컬라이제이션은 " 누가 기술을 제어하는지 " 에 답합니다.함께 그들은 하나의 작업에 수렴 - 국내 NPU 에서 ASR 를 실행하고 충분히 빠르게 실행하십시오.

지원되는 가속기

NEU NLP (Northeastern University) 의 연구를 기반으로 구축된 VoiVision 엔진은 주류 가속기를 기본적으로 지원합니다.

유형대표자 (representatives)사용법
NVIDIAT4 / L4 / A10 / A100일반, 고성능
Ascend310 P / 910 B로컬라이제이션, 국내 서버
CambriconMLU370 / MLU590로컬라이제이션, 국내 서버
하이곤 DCUDCU 시리즈국내 x 86 경로
CPU 만x 86 / ARM기존 재사용, 낮은 동시작업

Ascend 는 현재 국내 가속기 (CANN + MindSpore + 모델 동물원) 중에서 가장 완벽한 에코시스템 를 보유하고 있습니다. 910 B 는 교육 및 고성능 추론을 대상으로 하고, 310 P 는 에지 및 저전력 사용을 대상으로 합니다.지속적인 동시 회의 음성 전사 의 경우 공통 패턴은 중앙 추론에 대한 910 B 및 에지 노드에 대한 310 P 입니다.

환경 설정: 버전 정렬은 가장 큰 함정입니다.

'드라이버, 펌웨어, CANN, 프레임워크 및 모델 형식 - 5 가지 중 어느 하나라도 동기화되지 않으면 혼란스러운 장애가 발생합니다.

우리가 일반적으로 볼 수있는 안정적인 조합:

구성요소버전참고
드라이버 / 펌웨어CANN 에 단단히 묶여있다업그레이드하기 전에 공식 호환성 표를 확인합니다.
CANN8. x 시리즈연산자 라이브러리 및 모델 변환 도구가 여기에서 제공됩니다.
컨테이너Ascend Docker 런타임필수 - 일반 Docker 는 NPU 를 마운트할 수 없습니다.
추론 프레임워크ONNX 런타임 + ACLOM 모델은 MindSpore 없이 잘 작동합니다.
운영 체제openEuler / Kylin V 10 / UnionTech UOS신창환경에서 일반적

첫 번째 단계는 NPU 가 항상 표시되는지 확인하는 것입니다.

# List NPU devices and status
npu-smi info

# Expect a device list with 910B entries in a healthy state
# If the card is not visible here, nothing downstream matters — fix the driver first

문제점: 일부 Kylin V 10 시스템에서 npu-smi info 는 드라이버 설치 후 즉시 dmp 데몬 오류를 보고합니다.그 원인은 시스템 자체의 dkms 버전과 드라이버 설치 프로그램 간의 충돌로 나타났습니다.수정 사항은 시스템 dkms 를 제거하고 드라이버 패키지와 함께 번들로 제공된 버전을 사용하여 다시 설치하는 것입니다. 이와 같은 배포 수준 적응 문제는 거의 문서화되지 않으며 가장 일반적인 현장 차단기 중 하나입니다.

모델 변환: ONNX 에서 OM

ASR 모델은 일반적으로 PyTorch 에서 훈련되고 ONNX 로 내보낸 다음 Ascend 의 OM 형식으로 변환됩니다.

ONNX 를 내보낼 때 주의해야 할 세 가지 사항

torch.onnx.export(
    model, dummy_input,
    "asr.onnx",
    opset_version=14,          # Ascend supports lower opsets better — avoid the newest
    do_constant_folding=True,
    input_names=["audio", "audio_len"],
    output_names=["logits"],
    dynamic_axes={              # critical: audio length is variable
        "audio": {0: "batch", 1: "time"},
        "logits": {0: "batch", 1: "time"},
    },
)

이것이 일반적으로 잘못되는 세 가지 장소:

  1. 오프셋 버전 - 새로운 것이 더 나은 것은 아닙니다.높은 오프셋 버전은 변환 중에 지원되지 않는 연산자를 더 자주 때립니다. 14 는 잘 테스트된 선택입니다.
  2. 동적 축 - 오디오 길이는 본질적으로 가변이므로 dynamic_axes 를 선언해야 합니다. 그렇지 않으면 고정 길이 입력으로 제한되어 있으며 프로덕션에서 사용할 수 없습니다.
  3. 고정 접기 - do_constant_folding=True 는 그래프를 크게 축소하고 변환 성공률을 향상시킵니다.

ATC 로 변환

atc --model=asr.onnx \
    --framework=5 \
    --output=asr_om \
    --input_format=ND \
    --input_shape="audio:-1,-1;audio_len:-1" \
    --dynamic_dims="1,16000;1,32000;1,48000" \
    --soc_version=Ascend910B \
    --precision_mode=allow_fp16 \
    --log=error

매개 변수가 실제로 의미하는 것은 무엇입니까:

  • --soc_version - 물리적 하드웨어와 정확히 일치해야 합니다.. 910 B 에서 910 A 를 지정하면 로드 시 모호한 오류가 발생하지 않습니다.
  • --dynamic_dims - 동적 쉐이프 프로파일오디오의 경우, 기간별 프로파일링; 프로파일이 너무 많으면 컴파일 시간이 증가하고, 너무 적으면 빈번한 재 컴파일 및 지연 시간 지터가 발생합니다.
  • --precision_mode - allow_fp16 는 일반적으로 ASR 에 비해 거의 정밀도 비용이 들지 않지만 처리량을 분명히 향상시킵니다.

양자화해야 하는가?

정밀도 (precision)처리량정확성 Accuracy
FP 16기준선기준선
INT8명확한 이득눈에 띄는 비용

평결: 정확성이 중요한 FP 16 을 유지하십시오 (의료, 법률 회의); INT8 는 내부 스탠드 업 및 교육 녹음과 같은 오류 내성이 높은 곳에서 더 나은 거래입니다.

배포: 컨테이너가 유일하게 합리적인 옵션

신창 (Xinchuang) 현장에서는 베어 메탈 설치가 거의 유지 관리할 수 없습니다.우리는 컨테이너를 배달합니다:

docker run -it --name asr_server \
  --device /dev/davinci0 \
  --device /dev/davinci_manager \
  --device /dev/devmm_svm \
  --device /dev/hisi_hdc \
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
  -v /data/models:/models \
  -p 8000:8000 \
  asr-server:910b \
  ./asr_server --model /models/asr_om --port 8000
  • 베어 메탈, 정부 클라우드 및 로컬라이제이션 환경에서 실행
  • 표준 RESTful / WebSocket API 를 통해 OA 및 회의 시스템과 통합;
  • 동시작업으로 유연하게 확장합니다.

그 --device 항목을 주목하십시오: 이들 중 하나를 누락하면 ACL 초기화 실패가 발생합니다., 그리고 오류는 장치가 누락되었다는 것을 알려주지 않습니다.이것은 신입자들에게 가장 일반적인 장애물입니다.

또한 - 개인 프로토콜을 발명하지 마십시오..표준 REST (파일 음성 전사) 및 WebSocket (실시간 스트리밍) 를 사용하거나 고객의 OA 및 회의 시스템과 통합하는 것은 고통스럽습니다.

이미 서버가 있는 경우 하드웨어를 구입하지 않고도 국내 가속기에 software-only engine 를 배포하여 전용 음성 전사 를 얻을 수 있습니다.

참조 성능

테스트 조건: Ascend 910 B, FP 16, 중국어 회의 오디오, 16 kHz 모노.

메트릭참조 (Reference)참고
실시간 비율 (RTF)~ 0. 1 순서몇 회의록 에서 1 시간의 오디오
카드당 동시 스트림10 개Pure 음성 전사, 지속적인 회의 동시성
첫 번째 토큰 지연 시간sub-second스트리밍 모드; 일반적으로 1 s 미만
중국어 음성 전사 정확도≥ 98%표준 중국어 회의 시나리오 (사양)
방언 범위22자동 탐지 (사양)

ᆞ️ 위의 동시성 수치는 음성 전사 만 (화자 분리 또는 분기 구조화 없음, 단일 ASR 카드) 입니다. 스피커 분리 및 주제 / 작업 항목 추출을 추가하면 카드당 용량이 크게 감소합니다. 이 기기는 10 개의 동시 회의에서 평가됩니다. 전체 파이프라인 (음성 전사 + 분리 + 구조화) 을 참조하며, 클러스터 형태는 50 개 이상의 스트림에서 정격됩니다. 공급업체가 어떤 레이어를 견적하고 있는지 항상 물어보십시오 - 세 가지 레이어는 여러 배로 다릅니다.

실제 배포에서 발생하는 6 가지 함정

이것은 포스트의 가장 가치있는 부분입니다.이 모든 것이 현장에서 발생했습니다.

1.동적 쉐이프로 인해 지속적인 재컴파일 --dynamic_dims 가 없으면 새로운 오디오 길이마다 그래프 재컴파일이 트리거되고 지연 시간이 초까지 증가합니다.기간별 프로파일링은 1 초 미만으로 되돌려 놓았다.

2.오랜 오디오 메모리 사용 2 시간 동안의 회의 녹음을 모델 OOM 에 직접 공급하면 장치가 작동합니다.전체 파일을 로드하는 대신 분할 증분 추론 - Segment by VAD 를 디코딩하고 Segment by Segment 를 디코딩해야합니다.

3.지원되지 않는 연산자가 자동으로 실패합니다. LayerNorm 변종에는 Ascend 대응이 없습니다. ATC 는 변환 중에 오류가 발생하지 않으며, 모델은 런타임에서 모든 0 을 출력합니다. 변환 후에 항상 동등성 검사를 실행합니다.: ONNX 런타임 (CPU) 과 OM (NPU) 을 통해 동일한 오디오를 실행하고 출력을 비교합니다.

4.다중 스레드 동시작업 시 컨텍스트 누출 이전 버전에서는 요청당 별도의 ACL 컨텍스트를 만들고 로드된 컨텍스트를 소모했습니다. An earlier version created a separate ACL context per request and exhausted contexts under load.컨텍스트 풀링이 해결되었습니다.

5.드라이버 업그레이드 후 모델을 다시 변환해야 합니다. 주요 CANN 업그레이드 후 이전 OM 모델이 로드하지 않거나 성능이 떨어질 수 있습니다. 모델 변환을 한 번 수동으로 변환하는 대신 CI 에 넣습니다.

6.공기 간격이 있는 사이트의 오프라인 포장 물리적으로 격리된 환경에서는 CANN 종속성, 드라이버, 모델 가중치, 글꼴 및 인증서가 모두 사전에 패키지화되어야 합니다.한번은 CJK 글꼴이 없어진 것을 찾아 현장에 도착했는데, 모든 성적표는 두부 상자로 돌아왔습니다. 오프라인 번들을 배포하기 전에 동등한 환경에서 전체 배포를 리허설합니다.

국내 가속기를 선택하지 말아야 할 때

너랑 똑바로 지내.다음 경우 건너뛰기:

  • 신창이나 현지화 명령이 없습니다 → GPU 에코시스템 는 훨씬 더 성숙해, 스스로 일하지 마라.
  • 팀의 아무도 CANN → 운영 비용이 하드웨어가 절약하는 것을 훨씬 초과 할 것이라는 것을 알지 못합니다.
  • 동시작은 한 자릿수 → 일반 CPU 로 충분합니다. 가속기를 건너뛰십시오.

국내 가속기는 명확한 규정 준수 요구 사항 + 지속적인 동시작업 압력 + 이를 지원하는 엔지니어링 능력 에 대한 올바른 호출입니다.

크기 지정 조언

  • 새 로컬라이제드 클러스터: VV05 / VV10+ Ascend 또는 Cambricon 가속기;
  • 기존 x 86 재사용: CPU 또는 Hygon DCU 엔진;
  • 혼합 환경: NVIDIA 와 국내 가속기를 통합하여 부하별로 스케줄링합니다.

클라우드에 대한 사설을 고려한다면 on-premise ASR selection guide 를 참조하십시오.

private deployment guide 와 MLPS Level 3 compliance 를 참조하십시오.

FAQ

Q: 음성 전사 는 어떤 국내 칩을 지원합니까?

A: VoiVision 엔진은 Ascend (310 P / 910 B), Cambricon (MLU370 / MLU590), Hygon DCU 및 전체 NVIDIA 라인업을 기본으로 지원하며, CPU 에서만 실행되며, 전체 지역화 및 국내 스택을 포함합니다.

Q: 왜 ASR 는 국내 가속기를 사용해야 하는가?

A: 정부, 금융 및 방위 프로그램은 일반적으로 데이터 주거, 신창 조달 규정 준수 및 공기 격차 운영을 동시에 요구합니다.이를 결합하면 일반적으로 수입 GPU 를 완전히 배제하여 국내 NPU 를 유일하게 실행 가능한 경로로 남겨 두는 경우가 많습니다.

Q: ONNX 를 Ascend OM 으로 변환하는 일반적인 장애점은 무엇입니까?

A: 세 가지 주요한 것들: 지원되지 않는 연산자를 유발하는 오프셋 버전이 너무 높습니다 (14 은 안전한 선택입니다), 고정 길이 오디오로 제한하는 dynamic _ axes 선언이 누락되고 실제 하드웨어와 일치하지 않는 soc _ version 이 로드 시간에서 모호한 오류로 실패합니다.변환 후 항상 CPU ONNX 런타임과 NPU OM 간에 출력 등가성 검사를 실행하십시오.

Q: Ascend 에 대한 INT8 양자화는 가치가 있습니까?

A: 이 시나리오가 얼마나 많은 오류를 허용하는지 여부에 따라 달라집니다. INT8 는 명확한 처리량 증가를 가져오지만 상당한 정확성 비용을 가져옵니다.의료 또는 법률 회의와 같은 정확도에 민감한 시나리오를 위해 FP 16 을 유지하십시오; INT8 는 내부 스탠드 업 및 교육 녹음을위한 더 나은 거래입니다.

Q: 컨테이너에서 Ascend 를 실행하려면 어떤 장치가 마운트되어야 합니까?

A: 그 중 4 개는 / dev / davinci 0, / dev / davinci _ manager, / dev / devmm _ svm 및 / dev /hisi _ hdc, 그리고 드라이버 디렉토리입니다.이러한 항목 중 하나를 누락하면 ACL 초기화 실패가 발생하며 오류 메시지는 장치가 누락되었음을 알려주지 않습니다.

Q: 음성 전사 는 CPU 에서만 실행할 수 있습니까?

A: 네.이 엔진은 CPU 에 대해 추론 최적화되어 있으므로 이산 가속기가 없는 로컬라이제이션 또는 일반 서버에서 실행되며 동시성이 낮거나 기존 하드웨어를 재사용하는 데 이상적입니다.

Q: Docker / K8s 를 사용하여 배포하는 방법은 무엇입니까?

A: VoiVision 는 단일 명령 Docker 및 Kubernetes 배포를 통해 컨테이너 이미지로 제공되며, 베어 메탈, 정부 클라우드 및 로컬라이제이션 환경에서 실행되며 표준 RESTful / WebSocket API 를 통해 통합됩니다.

Q: 국내 가속기에서는 정확도가 떨어지나요?

A: 이 모델은 NEU NLP (Northeastern University) 의 연구를 기반으로 구축되었으며, 가속기는 처리량과 지연 시간에만 영향을 미칩니다. Ascend / Cambricon 에 대한 정량화 및 연산자 적응 후, 중국 음성 전사 정확도는 같은 수준으로 유지됩니다.

#국내 가속기#Ascend#Cambricon#연설 음성 전사#신창#모델 변환

개인화 된 데모 예약

회의 시나리오와 규정 준수 요구 사항을 알려주세요 - 맞춤형 계획을 받으십시오.

지금 예약
라이브 채팅