VoiVision AI
tech· VoiVision AI Engineering

Ascend 910B üzerinde özel ASR çalıştırmak: Kurulum, operatör uyarlaması ve işlem hacmi

Huawei Ascend NPU ' larında bir Çin konuşma-metine motorunun hava boşluğunda özel bir ortamda inişinin tam bir yürüyüş yolu - versiyon matrisi, ONNX-to-OM model dönüşümü, konteyner dağıtım komutları, gerçek dağıtımlara çarptığı altı tuzak ve referans performans rakamları. Xinchuang ortamlarında ASR'yi dağıtan mühendisler.


Yerli AI Hızlandırıcı On-Prem konuşma transkripsiyonu

Bu yazı, özel bir ortamda Huawei Ascend NPU ' larında bir Çin konuşma-metine motorunun inişini - ortam sürümleri, model dönüşümü, dağıtım komutları, tuzaklar ve referans performans rakamları - anlatıyor.

Sayılar hakkında: "spek" işaretlenmiş rakamlar yayınlanan Teknik Özellikler ürününden geliyor. Performans tablosu tipik koşullar altında Referans büyüklükleri verir; gerçek değerler ses koşullarına, model boyutuna ve eşzamanlılık stratejisine göre değişir. Her zaman kendi iş yükünüzü ölçün.

Neden ev içi donanımlarda çalışmak zorundadır

Hükümet, finans ve savunma sektöründe, sistemler sadece "veri içi " değil aynı zamanda" teknolojik olarak özgüvenli " olmalıdır. Bu, altta yatan hesaplamayı ithal GPU ' lardan Ascend, Cambricon ve Hygon yerli çiplere ve işletim sistemini Kylin, UnionTech ve diğer yerli sistemlere kaydırmak anlamına geliyor.

Mühendislik açısından bu üç zor kısıtlama haline gelir:

  • Veri ikametleri - toplantı sesleri iç tartışma içerir ve birçok kuruluş açıkça intranetten ses çıkmasını yasaklar.
  • Xinchuang Satın Alım - ithal edilen GPU ' lar onaylanmış satın alma listesinde görünmeyebilir
  • Hava boşluğu operasyonu - bazı siteler harici bağlantıya sahip değildir, bu nedenle model ağırlıkları ön ortamda paketlenmelidir

Çekirdek nokta: şirket içi dağıtım "verilerin nerede olduğunu " yanıtlar; Yerelleştirme" teknolojinin kimini kontrol ediyor " yanıtlar. Birlikte tek bir görevde buluşurlar - ASR 'yi yerli NPU' larda çalıştırın ve yeterince hızlı çalıştırın.

Desteklenen Hızlandırıcılar

NEU NLP (Kuzey Doğu Üniversitesi) araştırmaları üzerine inşa edilen, VoiVision motoru ana akım hızlandırıcıları yerel olarak destekliyor:

TipTemsilcilerKullanın
NVIDIAT4 / L4 / A10 / A100Genel, yüksek performans
Ascend310P / 910BYerel, yerel sunucular
CambriconMLU370 / MLU590Yerel, yerel sunucular
Hygon DCUDCU serisiYerel x86 yolu
Sadece CPUx86 / ARMMevcut eşzamanlılık, düşük eşzamanlılık

Ascend şu anda yerli hızlandırıcılar (CANN + MindSpore + model hayvanat bahçesi) arasında en eksiksiz Ekosistem 'ye sahiptir. 910B, eğitim ve yüksek işlem hacmi çıkarımını hedef alırken, 310P kenar ve düşük güç kullanımını hedefler. Sürekli eşzamanlı toplantı konuşma transkripsiyonu için, ortak bir desen merkezi çıkarım için 910B ve kenar düğümleri için 310P 'dir.

Ortam Kurulum: Sürüm Hizalaması En Büyük Tuzak

Ascend Ekosistem ' deki ağrı hesaplama değildir, Versiyon Matrix ' dir. Sürücü, firmware, CANN, framework ve model formatı - beş senkronizasyon dışı olan herhangi biri kafa karıştırıcı arızalar üretir.

Genellikle stabil gördüğümüz bir kombinasyon:

BileşenVersionNot:
Sürücü / FirmwareCANN 'a sıkı sıkıya bağlıYükseltmeden önce resmi uyumluluk tablosunu kontrol edin
CANN8.x serisiOperatör kütüphanesi ve model dönüştürme araçları burada canlı
ContainerAscend Docker Çalışma ZamanıZorunlu - plain Docker NPU 'yu monte edemez
Inference Framework (İngilizce)ONNX Çalışma Zamanı + ACLOM modelleri MindSpore olmadan iyi çalışıyor
OSOpenEuler / Kylin V10 / UnionTech UOSXinchuang çevresinde yaygın

Birinci adım, NPU 'nun her zaman görünür olduğunu onaylamaktır:

# 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

Tuzak: Bazı Kylin V10 sistemlerinde, npu-smi info sürücü kurulumundan hemen sonra bir dmp daemon hatası bildirir. Nedeni, sistemin kendi dkms sürümü ile sürücü yükleyicisi arasındaki bir çatışmanın olduğu ortaya çıktı. Düzeltme sistem dkms kaldırmak ve sürücü paketi ile birlikte paketlenen sürümü kullanarak yeniden yüklemek. Bu gibi dağıtım düzeyinde adaptasyon sorunları nadiren belgelenir ve en yaygın yerinde bloklayıcılar arasındadır.

Model Dönüştürme: ONNX to OM

ASR modelleri tipik olarak PyTorch'da eğitilmiştir, ONNX'e aktarılır ve daha sonra Ascend'nin OM formatına dönüştürülür.

ONNX dışa aktarırken göz önünde bulundurulması gereken üç şey

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"},
    },
)

Genellikle yanlış giden üç yer:

  1. Opset versiyonu - daha yeni daha iyi değildir. Yüksek opset sürümleri, dönüştürme sırasında desteklenmeyen operatörleri daha sık vurur; 14 iyi test edilmiş bir seçimdir.
  2. Dinamik Eksenler - ses uzunluğu doğal olarak değişkendir, bu nedenle dynamic_axes bildirilmelidir, aksi takdirde sabit uzunluklu giriş ile sınırlısınız ve sonuç üretimde kullanılamaz.
  3. Sürekli katlama - do_constant_folding=True grafiği belirgin bir şekilde küçültür ve dönüşüm başarısını artırır.

ATC ile dönüştürme

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

Parameterler aslında ne anlama geliyor:

  • --soc_version - Fiziksel donanımla tam olarak eşleşmeli. 910B üzerinde 910A belirtilmesi, yükleme zamanında belirsiz bir hata ile başarısız olur.
  • --dynamic_dims - dinamik şekil profilleri. Ses için, süresine göre profil; çok fazla profil derleme süresini artırır, çok az sayıda sık yeniden derleme ve gecikme jitter tetikler.
  • --precision_mode - allow_fp16 genellikle ASR ' de önemsiz doğruluğa mal olurken, hacimleri açıkça artırır.

Kuantitmeli miyiz?

Hassaslıkİşletme ThroughputAccuracy (Dürlük)
FP16BaselineBaseline
INT8Açık kazançDikkatli bir maliyet

Karar: doğruluğun kritik olduğu FP16'yi (tıbbi, yasal toplantılar) korumak; INT8, hata toleransının daha yüksek olduğu, örneğin iç stand-ups ve eğitim kayıtları gibi daha iyi bir ticaretdir.

Dağıtım: konteynerler tek mantıklı seçenek

Çıplak metal montajları, Xinchuang sitelerinde neredeyse bakımsızdır. Konteynerler teslim ediyoruz:

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
  • Çıplak metal, hükümet bulutları ve yerel ortamlarda çalışır;
  • Standart RESTful / WebSocket API 'leri aracılığıyla OA ve toplantı sistemleri ile entegre;
  • Elastik olarak eşzamanlı olarak ölçeklendirilir.

Bu --device girişlerini not edin: Bunlardan herhangi birinin eksikliği ACL başlatma başarısızlığı üretir ve hata size bir cihazın eksik olduğunu söylemez. Bu, yeni gelenler için en yaygın tökezlemektir.

Ayrıca - Özel bir protokol icat etmeyin. Standart REST (dosya konuşma transkripsiyonu) ve WebSocket (gerçek zamanlı akış) kullanmak ya da müşterinin OA ve toplantı sistemleri ile entegre etmek acı verici hale gelir.

Zaten sunucularınız varsa, donanım satın almadan yerel hızlandırıcılarda özel konuşma transkripsiyonu almak için software-only engine'yi dağıtın.

Referans Performansı

Test koşulları: Ascend 910B, FP16, Çin toplantı ses, 16 kHz mono.

MetrikReferanslarNot:
Gerçek Zamanlı Faktör (RTF)~ 0.1 siparişBirkaç toplantı tutanağı 'de bir saat ses
Kart başına eşzamanlı akışlarOnlarSaf konuşma transkripsiyonu, sürekli toplantı eşzamanlılığı
İlk belirteç gecikmesiSaniye altıAkış modu; pratikte tipik olarak 1s altında
Çince konuşma transkripsiyonu doğruluğu≥% 98Standart Mandarin toplantı senaryoları (spek)
Dialect coverage (Deliktek kapsama alanı)22Otomatik algılama (spec)
  • Evet, evet️ Yukarıdaki eşzamanlılık rakamı Sadece konuşma transkripsiyonu (tek bir ASR kartı, konuşmacı ayrımı veya dakika yapılandırması yok). Hoparlör ayrımı artı konu / eylem öğesi çıkarma eklemek kart başına kapasitesini önemli ölçüde düşürür - cihaz 10 eşzamanlı toplantılarda derecelendirilmektedir, Bu tam boru hattını ifade eder (konuşma transkripsiyonu + ayrım + yapılandırma); küme formu 50+ akışlarda derecelendirilmiştir. Her zaman bir satıcının hangi katmanı teklif ettiğini sorun - üç katı çoğaltılarak farklılık gösterir.

Gerçek Dağıtımlardan Altı Tuzak

Bu postun en değerli kısmıdır. Bunların her biri sahada vuruldu.

1. Sürekli yeniden derlenmeye neden olan dinamik şekiller --dynamic_dims olmadan, her yeni ses uzunluğu bir grafik yeniden derleme ve gecikme saniyelerine kadar yükseltildi. Süreye göre profil oluşturma, saniyenin altına geri döndürdü.

2. Uzun ses yorucu hafıza İki saatlik bir toplantı kaydını doğrudan model OOM 'a beslemek cihazı. Chunk incremental inference (Artımlı çıkarım) - segment by VAD ve tüm dosyayı yüklemek yerine segment by segment çözdüğüne ihtiyacınız var.

3. Desteklenmeyen operatörler sessizce başarısız oluyor A LayerNorm varyantı hiçbir Ascend karşılığı vardı. ATC dönüştürme sırasında hata çıkartmadı ve model çalışma zamanında tüm sıfırları çıktı. Dönüştürme sonrasında her zaman eşdeğerlik denetimi çalıştırın: ONNX Runtime (CPU) ve OM (NPU) aracılığıyla aynı sesleri çalıştırın ve çıkışları karşılaştırın.

4. Multi-threaded concurrency altında bağlam sızıntıları Önceki sürüm, isteğe başına ayrı bir ACL bağlamı oluşturdu ve yük altında bağlamları tükendi. Kontext pooling bunu düzeltti.

5. Sürücü yükseltmelerinden sonra modelleri yeniden dönüştürülmelidir Büyük bir CANN yükseltmesinden sonra, eski OM modelleri yüklemeyi başarısız hale getirebilir veya performansı kaybedebilir. - Model dönüşümünü bir kez elle dönüştürmek yerine CI 'ye koyun.

6. Hava boşluğu alanları için çevrimdışı ambalaj Fiziksel olarak izole edilmiş ortamlarda CANN bağımlılıkları, sürücüler, model ağırlıkları, fontlar ve sertifikaların hepsi önceden paketlenmelidir. Kayıp bir CJK fontunu bulmak için siteye geldik ve her transkript tofu kutuları olarak geri döndü. - Çevrimdışı paket göndermeden önce eşdeğer bir ortamda tam dağıtımı prova edin.Reprove the full deployment on an equivalent environment before sending the offline bundle.

Evli Hızlandırıcıları Ne Zaman Seçmemeli

Sana karşı dürüst olmak. Skip it if:

  • Xinchuang veya lokalizasyon yetkisi yok → GPU Ekosistem çok daha olgun, kendiniz için iş yapmayın
  • Ekipteki hiç kimse CANN → operasyon maliyetinin donanımın tasarruf ettiğini çok geçeceğini bilmiyor
  • Eşzamanlılık tek basamaklı → düz CPU yeterlidir, hızlandırıcıyı atlayın

Yerli hızlandırıcılar doğru çağrıda bulunur: Açık bir uyumluluk görevi + sürekli eşzamanlılık baskısı + bunu desteklemek için mühendislik kapasitesi vardır.

Size tavsiyesi

  • Yeni Yerelleştirilmiş Küme: VV05 / VV10+ Ascend veya Cambricon hızlandırıcı;
  • Mevcut x86'yi yeniden kullanın: CPU veya Hygon DCU üzerinde motor;
  • karışık ortamı: NVIDIA ve yerli hızlandırıcıları birleştirir, yükle planlanır.

Eğer bulut ile özel değerlendiriyorsanız, on-premise ASR selection guide'e bakın.

private deployment guide ve MLPS Level 3 compliance'e bakın.

SSS

Q: konuşma transkripsiyonu hangi yerli çipleri destekliyor?

A: VoiVision motoru yerel olarak Ascend (310P/910B), Cambricon (MLU370 / MLU590), Hygon DCU ve tam NVIDIA serisini destekler; aynı zamanda tüm yerel ve yerli yığını kapsayan tek başına CPU üzerinde çalışır.

Q: ASR neden yerli hızlandırıcılarla çalışmalı?

A: Hükümet, finans ve savunma programları tipik olarak aynı anda veri ikametini, Xinchuang tedarik uyumluluğunu ve hava boşluğu operasyonunu gerektirir. Birlikte, bunlar genellikle ithal GPU 'ları tamamen dışlar ve yerli NPU' ları tek uygun yol olarak bırakır.

Q: ONNX'i Ascend OM'ye dönüştüren ortak hata noktaları nelerdir?

A: Üç ana tanesi: Desteklenmeyen operatörlere (14 güvenli bir seçimdir) neden olan çok yüksek bir opset sürümü, sabit uzunluklu sesle sınırlayan eksik dynamic_axes bildirimleri ve belirsiz bir hata ile yükleme zamanında başarısız olan gerçek donanımla eşleşmeyen soc_version. Dönüştürme sonrasında her zaman CPU ONNX Çalışma Zamanı ve NPU OM arasında bir çıktı eşdeğeri kontrolü çalıştırın.

Q: Ascend üzerinde INT8 kuantitasyonu buna değer mi?

A: Bu, senaryonun ne kadar hataya tolere edeceğine bağlıdır. INT8, net bir üretim kazancını ancak belirgin bir doğruluk maliyetini sunar. Tıbbi veya yasal toplantılar gibi doğruluğa duyarlı senaryolar için FP16'u saklayın; INT8, iç stand-up ve eğitim kayıtları için daha iyi bir ticaretdir.

Q: Bir konteyner içinde Ascend çalıştırmak için hangi aygıtların monte edilmesi gerekir?

A: Dört tanesi: /dev/davinci0, /dev/davinci_manager, /dev/devmm_svm ve /dev/hisi_hdc, artı sürücü dizinleri. Bunlardan herhangi birinin eksik olması, ACL başlatma başarısızlığına neden olur ve hata iletisi size bir aygıtın eksik olduğunu söylemez.

Q: Konuşma konuşma transkripsiyonu sadece CPU üzerinde çalışabilir mi?

A: Evet, evet. Motor, CPU için çıkarım için optimize edilmiştir, bu nedenle ayrık bir hızlandırıcı olmadan yerel veya genel sunucular üzerinde çalışır - düşük eşzamanlılık veya mevcut donanımların yeniden kullanılması için ideal.

Q: Docker / K8s ile nasıl dağıtılır?

A: VoiVision, tek komutlu Docker ve Kubernetes dağıtımına sahip bir konteyner görüntüsü olarak gönderir, çıplak metal, hükümet bulutunda ve yerel ortamlarda çalışır ve standart RESTful / WebSocket API 'leri aracılığıyla entegre edilir.

Q: Yurt içi hızlandırıcılarda kesinlik düşüyor mu?

A: Model, NEU NLP (Kuzey Doğu Üniversitesi) araştırmaları üzerine inşa edilmiştir; hızlandırıcılar yalnızca işlem hacmi ve gecikmeyi etkiler. Ascend / Cambricon üzerinde kuantitasyon ve operatör adaptasyonundan sonra Çin konuşma transkripsiyonu doğruluğu aynı seviyede kalır.

#Home Hızlandırıcı#Ascend#Cambricon#Konuşma konuşma transkripsiyonu#Xinchuang#Model dönüştürme

Kişiselleştirilmiş bir demo

Toplantı senaryosunuzu ve uyum gereksinimlerinizi bize anlatın - özel bir plan alın.

Hemen rezervasyon yapın
Canlı sohbet