การถอดเสียงประชุมบน Ascend 310P: เมทริกซ์เวอร์ชัน การแปลงโมเดล และบทเรียนภาคสนามเจ็ดข้อ
การ์ดอนุมานขอบสามารถจัดการกับการประชุมการถอดเสียงเป็นข้อความได้หรือไม่?บทความนี้จัดทําเอกสารการปรับใช้เครื่องยนต์ ASR ของจีนในการจัดตําแหน่งสภาพแวดล้อม Ascend 310P-CANN พารามิเตอร์ ATC ที่มีความสําคัญเมื่อแปลง ONNX เป็น OM อุปกรณ์สี่ตัวที่คอนเทนเนอร์ต้องติดตั้งวิธีการตั้งค่ามิติแบบไดนามิกและบทเรียนเจ็ดบทเรียนที่คุณเรียนรู้ในไซต์เท่านั้นอันตรายที่สุดคือความล้มเหลวของผู้ประกอบการเงียบที่ผลิตเอาต์พุตเป็นศูนย์ทั้งหมดโดยไม่มีข้อผิดพลาดใดๆ

บทความนี้จัดทําเอกสารการปรับใช้เครื่องยนต์การถอดเสียงเป็นข้อความพูดภาษาจีนบน การ์ดอนุมาน Ascend 310P 310P เป็นการ์ดอนุมานขอบที่มีตําแหน่งที่แตกต่างจาก 910B และสถานการณ์ของมันใกล้เคียงกับการประมวลผลท้องถิ่นในห้อง
ฐานข้อมูล: ตัวเลขที่ทําเครื่องหมายว่า "ข้อกําหนดอย่างเป็นทางการ" มาจากตัวชี้วัดผลิตภัณฑ์ที่เผยแพร่ตารางประสิทธิภาพให้ ค่าอ้างอิง สําหรับสภาพแวดล้อมทั่วไปตัวเลขที่เกิดขึ้นจริงแตกต่างกันไปตามเงื่อนไขเสียงขนาดโมเดลและกลยุทธ์การทํางานร่วมกัน - ให้เลื่อนการวัดของคุณเองเสมอ
อะไรที่ 310P ดีและสิ่งที่ไม่ดี
ไม่มีการขาดแคลนของบทความเกี่ยวกับเรา Ascend 310P แต่ส่วนใหญ่หยุดที่ "CANN ถูกติดตั้งและการสาธิตทํางาน"กับดักจริงคือ การทํางานครั้งเดียวและการให้บริการที่เชื่อถือได้เป็นสองสิ่งที่แตกต่างกันอย่างสิ้นเชิง
ข้อสรุปด้านหน้า:
| มิติ | พฤติกรรม 310P | บันทึกย่อ |
|---|---|---|
| การวางตําแหน่ง | การ์ดอนุมานขอบ | ไม่ใช่การ์ดการฝึกอบรมอย่าคาดหวังที่จะปรับแต่งมัน |
| แยกกับ 910B | ขอบโหนด | 910B จัดการอนุมานกลาง 310P จัดการประมวลผลท้องถิ่น |
| การทํางานร่วมกันของ Pure การถอดเสียงเป็นข้อความต่อบัตร | หลายสิบลําธาร | ASR ฐานแบบเดี่ยว (ค่าอ้างอิง) |
| การทํางานร่วมกันแบบเต็มท่อ | ลดลงอย่างมีนัยสําคัญ | เมื่อเพิ่มการแยกผู้พูดและโครงสร้าง |
| ความแม่นยําของการถอดเสียงเป็นข้อความจีน | ≥98% | สถานการณ์การประชุมภาษาจีนกลางมาตรฐาน (ข้อกําหนดอย่างเป็นทางการ) |
| ความคุ้มครองภาษาถิ่น | 22 ภาษาถิ่น | การตรวจจับอัตโนมัติ (ข้อกําหนดอย่างเป็นทางการ) |
กับดักการเลือกหนึ่งที่คุ้มค่ากับการตั้งธง: ผู้ขายหลายรายอ้างถึงการทํางานพร้อมกันโดยไม่ระบุพื้นฐาน"XX สตรีมต่อการ์ด" อาจหมายถึง ASR บริสุทธิ์หรืออาจหมายถึงท่อเต็มรูปแบบทั้งสองอาจแตกต่างกันหลายครั้งถามเสมอว่าหมายเลขครอบคลุมชั้นใด
สถาปัตยกรรมทั่วไปของเราคือ 910B ที่ศูนย์, 310P ที่ขอบ: เสียงจะถูกถอดความในห้องประชุมและมีเพียงข้อความที่มีโครงสร้างเท่านั้นที่ส่งกลับไปที่ศูนย์ทําให้แบนด์วิดท์อยู่ภายใต้การควบคุมและเป็นไปตามข้อกําหนด "ข้อมูลไม่ออกจากห้องประชุม"
การเตรียมสภาพแวดล้อม: เมทริกซ์รุ่นเป็นอุปสรรคที่แท้จริง
จุดเจ็บปวดใน Ascend ระบบนิเวศไม่เคยคํานวณ - มันเป็น การจัดตําแหน่งรุ่นไดร์เวอร์, เฟิร์มแวร์, CANN, รันไทม์คอนเทนเนอร์, กรอบอนุมาน, รูปแบบ: หากหนึ่งในหกไม่ตรงกันมันจะสร้างความล้มเหลวที่ยุ่งเหยิง และข้อความผิดพลาดบ่อยครั้งไม่ได้บอกว่าสิ่งที่ผิดพลาด
การรวมกันที่เราได้ตรวจสอบและพบว่ามีเสถียรภาพ:
| ส่วนประกอบ | เวอร์ชัน | บันทึกย่อ |
|---|---|---|
| ไดร์เวอร์ / เฟิร์มแวร์ | แน่นผูกพันกับ CANN | ตรวจสอบตารางความเข้ากันได้อย่างเป็นทางการก่อนอัพเกรด |
| CANN | ซีรี่ส์ 8.x | ไลบรารีผู้ประกอบการและเครื่องมือแปลง ATC อยู่ที่นี่ |
| รันไทม์คอนเทนเนอร์ | Ascend Docker รันไทม์ | ต้องใช้; Docker ทั่วไปไม่สามารถติดตั้ง NPU ได้ |
| กรอบการอนุมาน | ONNX รันไทม์ + ACL | ทํางานรุ่น OM |
| ระบบปฏิบัติการ | openEuler / Kylin V10 / UnionTech UOS | ทั่วไปในสภาพแวดล้อม Xinchuang |
ขั้นตอนแรกคือการยืนยันว่า NPU สามารถมองเห็นได้:
# Check NPU devices and status
npu-smi info
# You should see the device list with health status OK
# If no card appears here, everything downstream is wasted — fix the driver first
บทเรียนภาคสนาม: ในสภาพแวดล้อม Kylin V10 บางแห่ง
npu-smi infoรายงานข้อยกเว้นของเดมอนdmpหลังจากติดตั้งไดรเวอร์สาเหตุกลายเป็นความขัดแย้งระหว่างdkmsที่รวมไว้ในระบบและสคริปต์การติดตั้งไดรเวอร์การแก้ไขคือการถอนการติดตั้ง dkms ระบบและติดตั้งใหม่โดยใช้รุ่นที่รวมกับแพคเกจไดรเวอร์ปัญหาเฉพาะการกระจายเช่นนี้ มักจะไม่พบในเอกสารอย่างเป็นทางการ และพวกเขาเป็นตัวบล็อกที่พบมากที่สุดในไซต์
การแปลงรุ่น: ONNX ไปยัง OM
รุ่น ASR มักจะได้รับการฝึกอบรมใน PyTorch ส่งออกเป็น ONNX จากนั้นแปลงเป็นรูปแบบ Ascend OM ด้วย ATC
สามสิ่งที่ต้องระวังเมื่อส่งออก ONNX
torch.onnx.export(
model, dummy_input,
"asr.onnx",
opset_version=14, # Do not use the newest; lower opset versions are more compatible
do_constant_folding=True,
input_names=["audio", "audio_len"],
output_names=["logits"],
dynamic_axes={ # Critical: audio length is inherently dynamic
"audio": {0: "batch", 1: "time"},
"logits": {0: "batch", 1: "time"},
},
)
- รุ่น opset ที่สูงกว่าไม่ดี opsets ใหม่กว่ามีแนวโน้มที่จะตีผู้ประกอบการที่ไม่ได้รับการสนับสนุน; 14 เป็นตัวเลือกที่เข้ากันได้ดี
- ต้องประกาศแกนแบบไดนามิก มิฉะนั้นคุณสามารถเรียกใช้เสียงความยาวคงที่เท่านั้นซึ่งไม่สามารถใช้งานได้ในทางปฏิบัติ
- เปิดใช้งานการพับคงที่
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=Ascend310P \
--precision_mode=allow_fp16 \
--log=error
สามพารามิเตอร์ที่มีแนวโน้มที่จะก่อให้เกิดปัญหา:
--soc_version: ต้องตรงกับฮาร์ดแวร์ที่เกิดขึ้นจริง 310P จะต้องเขียนเป็นAscend310P;Ascend310หรือAscend910Bทั้งสองจะล้มเหลวในขั้นตอนการโหลดโดยมีข้อผิดพลาดที่คลุมเครือมาก--dynamic_dims: ระดับแบบไดนามิกสําหรับเสียงระดับ โดยระยะเวลาในวินาทีระดับที่มากเกินไปทําให้เวลาในการคอมไพล์ระเบิดน้อยเกินไปทําให้เกิดการคอมไพล์ใหม่บ่อยครั้งและความหน่วงของความกระวนกระวายใจชุดข้างต้น (1s / 2s / 3s) คือจุดสมดุลที่เราวัด--precision_mode:allow_fp16มีผลกระทบต่อความแม่นยําของ ASR และเพิ่มปริมาณการผลิตที่ชัดเจน
คุณควรปริมาณหรือไม่?
| ความแม่นยํา | อัตราการผลิต | ความถูกต้อง |
|---|---|---|
| FP16 | พื้นฐาน | พื้นฐาน |
| INT8 | กําไรที่ชัดเจน | การสูญเสียที่มองเห็นได้ |
ข้อสรุป: สําหรับสถานการณ์ที่มีความละเอียดอ่อนมากต่อความถูกต้อง - ทางการแพทย์กฎหมาย - อยู่ที่ FP16สําหรับการประชุมภายในและบันทึกการฝึกอบรมที่ความอดทนสูงกว่า INT8 คือการค้าที่ดีกว่า
อย่าไล่ล่าตัวเลขมาตรฐานด้วย INT8 อย่างสุ่มสี่สุ่มห้าในสถานการณ์การประชุมการสูญเสียความถูกต้องจะปรากฏขึ้นเป็น "ทุกชื่อผิดทุกคําผิด" และค่าใช้จ่ายในการทํางานใหม่เกินกว่าการคํานวณที่คุณบันทึกไว้
การปรับใช้: containerisation เป็นทางเลือกที่เหมาะสมเพียงอย่างเดียว
การติดตั้งสภาพแวดล้อมบนโลหะเปลือยนั้นไม่สามารถบํารุงรักษาได้ในสภาพแวดล้อม 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:310p \
./asr_server --model /models/asr_om --port 8000
การขาดธง --device ใดๆเหล่านั้นจะทําให้เกิดความล้มเหลวในการเริ่มต้น ACL และข้อผิดพลาดไม่ได้บอกคุณว่าอุปกรณ์ถูกละเว้นนี่คือตัวบล็อกที่ใหญ่ที่สุดสําหรับผู้มาใหม่
บทเรียนอีกหนึ่ง: อย่าคิดค้นโปรโตคอลส่วนตัว ใช้มาตรฐาน RESTful (ไฟล์การถอดเสียงเป็นข้อความ) บวก WebSocket (สตรีมมิ่งแบบเรียลไทม์) หรือบูรณาการกับ OA ของลูกค้าและระบบการประชุมจะกลายเป็นความเจ็บปวดมาก
ลูกค้าที่มีเซิร์ฟเวอร์อยู่แล้วสามารถปรับใช้ pure-software speech engine ได้โดยตรงได้รับการถอดเสียงเป็นข้อความส่วนตัวบนตัวเร่งความเร็วในประเทศโดยไม่ต้องซื้อฮาร์ดแวร์
เจ็ดบทเรียนจากสนาม
นี่คือส่วนที่มีคุณค่าที่สุดของบทความทุกรายการได้รับการเรียนรู้อย่างยากลําบากไม่ได้คัดลอกจากเอกสาร
1.รูปร่างแบบไดนามิกทําให้เกิดการรวบรวมใหม่บ่อยครั้ง เราไม่ได้ตั้งค่า --dynamic_dims ในตอนแรกดังนั้นทุกคลิปเสียงที่มีขนาดแตกต่างกันจะเรียกการรวบรวมกราฟและความล่าช้าที่แหลมเป็นวินาทีเมื่อมีการกําหนดค่าระดับแฝงจะตั้งอยู่ในช่วงย่อยวินาที
2.เสียงยาวหมดหน่วยความจํา การให้อาหารการบันทึกการประชุมสองชั่วโมงกับโมเดลในหนึ่งผ่านทําให้เกิด OOM ทันทีคุณต้องใช้ การอนุมานเพิ่มเติมแบบ segmented - ตัดโดย VAD และป้อนส่วนถอดรหัสโดยส่วนแทนที่จะโหลดสิ่งทั้งหมดต่อมาเราเพิ่ม บังคับ 60 วินาทีหมวก ในบัฟเฟอร์เสียงซึ่งขจัดความเสี่ยง OOM ทั้งหมด
3.ความล้มเหลวของผู้ประกอบการเงียบ ตัวแปร LayerNorm โดยเฉพาะไม่มีตัวประกอบการที่สอดคล้องกันใน Ascend ATC รายงานไม่มีข้อผิดพลาดในเวลาแปลงและรันไทม์ส่งคืนศูนย์ทั้งหมด นี่คือชั้นเรียนที่อันตรายที่สุดของความล้มเหลวเพราะมันดูเหมือนความสําเร็จคุณต้องเรียกใช้การตรวจสอบความเท่าเทียมกัน: ฟีดเสียงเดียวกันผ่าน ONNX Runtime บน CPU และ OM บน NPU จากนั้นเปรียบเทียบเอาท์พุทนี่คือการถอยหลังเพียงอย่างเดียว - อย่าข้ามมัน
4.การรั่วไหลของบริบทภายใต้การทํางานพร้อมกันแบบหลายหัวข้อ เวอร์ชันก่อนหน้านี้สร้างบริบท ACL แยกต่างหากต่อคําขอซึ่งจะทําให้บริบทหมดลงภายใต้การทํางานพร้อมกันสูงการรวมบริบท แก้ไขแล้ว
5.การอัพเกรดไดรเวอร์หมายถึงการแปลงรุ่นใหม่ หลังจากการอัพเกรด CANN ที่สําคัญรุ่น OM เก่าอาจล้มเหลวในการโหลดหรือถดถอยในประสิทธิภาพใส่การแปลงแบบจําลองใน CI แทนที่จะแปลงด้วยมือและเรียกมันทํา
6.บรรจุภัณฑ์แบบออฟไลน์สําหรับสภาพแวดล้อมที่มีช่องว่างทางอากาศ ในสภาพแวดล้อมที่แยกทางกายภาพ การพึ่งพา CANN, ไดรเวอร์, น้ําหนักแบบจําลอง, แบบอักษรจีนและใบรับรอง จะต้องบรรจุทั้งหมดล่วงหน้าเราเคยตีมัน: ขาดตัวอักษรจีน ในเว็บไซต์และผลลัพธ์การถอดเสียงเป็นข้อความทุกครั้งออกมาเป็นกล่องการรวมกลุ่มแบบออฟไลน์จะต้องมีการซ้อมผ่านกระแสการปรับใช้เต็มรูปแบบในสภาพแวดล้อมที่เทียบเท่า - รูปถ่ายของโรงแรมเดอะคริสเทล
7.ข้อความผิดพลาดที่ทําให้เข้าใจผิดทําให้การวินิจฉัยผิดพลาด ข้อผิดพลาดบางอย่างของ Ascend ให้รหัสเท่านั้นไม่ใช่สาเหตุที่แท้จริงเราเคยใช้เวลาสามวันในการโหลดความล้มเหลวโดยไม่มีความคืบหน้าและมันก็กลายเป็น soc_version ที่ผิดบทเรียน: เมื่อคุณตีข้อผิดพลาดที่คลุมเครือให้ตรวจสอบเมทริกซ์เวอร์ชันอีกครั้งจากด้านบน - เร็วกว่าการอ่านบันทึกทีละบรรทัด
ท่อส่งเต็มรูปแบบ: จากการพูดถึงบันทึกการประชุม
หนึ่งจุดสุดท้าย: คําพูดการถอดเสียงเป็นข้อความเป็นเพียงขั้นตอนแรก
สิ่งที่สถานการณ์ที่แท้จริงต้องการคือ "บันทึกการประชุมเมื่อการประชุมสิ้นสุดลง"ที่ต้องใช้การแยกผู้พูดโครงสร้างความหมาย (หัวข้อการตัดสินใจรายการดําเนินการ) และการสร้างบันทึกการประชุมหลังจากขั้นตอน ASRการวางชั้นทั้งสามนี้ใน ลดการทํางานร่วมกันอย่างมีนัยสําคัญ - ซึ่งเป็นเหตุผลที่เราเน้นย้ําว่าคุณต้องถามว่าชั้นใดที่หมายเลขพร้อมกันครอบคลุม
วิธีการของเราทํางานท่อเต็มรูปแบบบนเซิร์ฟเวอร์เดียวโดยมีเสียงและข้อความไม่ออกจากเครือข่ายภายในสําหรับสถานการณ์ของรัฐบาลการเงินและการป้องกันนั่นเป็นข้อกําหนดที่ยากลําบาก
เมื่อไม่เลือกเครื่องเร่งในประเทศ
ขอให้เราตรงเกี่ยวกับเรานี้แทนที่จะผลักดันมัน
หากสถานการณ์ของคุณเป็นไปตามข้อใดข้อหนึ่งต่อไปนี้ ใช้ GPU แทน:
- ไม่มีข้อกําหนดบังคับ Xinchuang หรือเทคโนโลยีในประเทศ → GPU ระบบนิเวศเป็นผู้ใหญ่มากขึ้น; อย่าสร้างปัญหาให้กับตัวเอง
- ไม่มีใครในทีมรู้จัก CANN → ค่าใช้จ่ายในการดําเนินงานจะเกินกว่าเงินที่บันทึกไว้ในฮาร์ดแวร์
คุณค่าของเครื่องเร่งความเร็วในประเทศคือ การปฏิบัติตาม ไม่ใช่ความคุ้มค่าหากการปฏิบัติตามกฎระเบียบไม่ได้เป็นข้อจํากัดที่ยากลําบากคณิตจะไม่ทํางาน
ภาคผนวก: รายการความเข้ากันได้เต็มรูปแบบ
| ส่วนประกอบ | ช่วงที่สนับสนุน |
|---|---|
| Ascend | 310P / 910B |
| Cambricon | MLU370 / MLU590 |
| Hygon | DCU |
| NVIDIA | T4 / L4 / A10 / A100 และช่วงเต็ม |
| CPU เท่านั้น | สนับสนุน (การใช้งานร่วมกันต่ํา / การนําฮาร์ดแวร์ที่มีอยู่กลับมาใช้ใหม่) |
การปรับใช้ผ่าน Docker และ Kubernetes ทํางานบนสภาพแวดล้อมโลหะเปลือยระบบคลาวด์ของรัฐบาลและ Xinchuang บูรณาการกับ OA และระบบการประชุมผ่านอินเทอร์เฟซมาตรฐาน RESTful / WebSocket
อ่านเพิ่มเติม: Private ASR on the Ascend 910B | How to choose a private-deployment ASR ราคาถูกที่สุดในประเทศ
คำถามที่พบบ่อย
Q: เลือกระหว่าง Ascend 310 P และ 9 10 B ได้อย่างไร?
A: ขึ้นอยู่กับรูปร่างของภาระงาน310P เป็นการ์ดอนุมานขอบที่มุ่งเน้นไปที่การประมวลผลพลังงานต่ําและการประมวลผลในท้องถิ่นเหมาะสําหรับสํานักงานสาขาและการประมวลผลในห้อง; 910B มีการคํานวณมากขึ้นและเหมาะกับการอนุมานกลางและการรวมการทํางานร่วมกันสูงสถาปัตยกรรมทั่วไปสําหรับการประชุมการถอดเสียงเป็นข้อความใช้ 910B เป็นโหนดกลางและการ์ด 310P เป็นโหนดขอบดังนั้นเสียงจะถูกถอดความในท้องถิ่นและข้อความที่มีโครงสร้างเท่านั้นที่ส่งกลับไปที่ศูนย์กลาง
Q: การประชุมพร้อมกันของการถอดเสียงเป็นข้อความสามารถจัดการได้กี่สตรีม 310P?
A: ความหมายสําคัญ.กระแสพร้อมกันสําหรับ ASR การถอดเสียงเป็นข้อความบริสุทธิ์ค่อนข้างสูงเมื่อการแยกผู้พูดการแก้ไขคําศัพท์และการสร้างบันทึกการประชุมถูกวางชั้นบนตัวเลขลดลงอย่างมีนัยสําคัญหากผู้ขายอ้างถึงตัวเลขโดยไม่บอกว่าครอบคลุมการถอดเสียงเป็นข้อความบริสุทธิ์หรือท่อเต็มรูปแบบทั้งสองอาจแตกต่างกันหลายครั้ง - ถามเสมอ
Q: ทําไมการจัดตําแหน่งเวอร์ชันจึงเป็นส่วนที่ยากที่สุดในการปรับใช้ Ascend?
A: ใน Ascend ระบบนิเวศไดรเวอร์เฟิร์มแวร์ CANN รันไทม์คอนเทนเนอร์กรอบอนุมานและรูปแบบแบบโมเดลถูกผูกมัดซึ่งกันและกันความไม่ตรงกันใดๆทําให้เกิดความล้มเหลวในการโหลดและข้อความผิดพลาดมักจะคลุมเครือและไม่ได้ชี้ไปที่ปัญหาเวอร์ชันวิธีการที่เชื่อถือได้คือการล็อคการรวมกันกับตารางความเข้ากันได้อย่างเป็นทางการก่อนจากนั้นติดตั้งตามลําดับโดยไม่ต้องผสมแพคเกจไดรเวอร์จากชุดที่แตกต่างกัน
Q: จะเกิดอะไรขึ้นถ้า soc version ไม่ถูกต้องเมื่อแปลง ONNX เป็น OM?
A: โมเดลล้มเหลวในขั้นตอนการโหลดและข้อผิดพลาดไม่ได้บ่งชี้ถึงความไม่ตรงกันของโมเดลสําหรับ 310P คุณต้องเขียน Ascend310P; เขียน Ascend310 หรือ Ascend910B จะล้มเหลวในการโหลดความคลุมเครือของข้อผิดพลาดนี้เป็นหนึ่งในวิธีที่ง่ายที่สุดที่จะเข้าใจผิดในไซต์
Q: ทําไมฉันต้องเรียกใช้การตรวจสอบความเท่าเทียมกันหลังจากการแปลงโมเดล?
A: เพราะความล้มเหลวเงียบมีอยู่เมื่อตัวแปรผู้ประกอบการไม่มีการใช้งานบน Ascend การแปลง ATC จะไม่รายงานข้อผิดพลาดแต่รันไทม์จะผลิตเอาต์พุตเป็นศูนย์ทั้งหมดชนิดของความล้มเหลวนี้แสดงให้เห็นว่าไม่มีอะไรผิดปกติในบันทึกการถอยหลังเพียงอย่างเดียวคือการเรียกใช้เสียงเดียวกันผ่าน ONNX Runtime บน CPU และ OM บน NPU และเปรียบเทียบชั้นเอาต์พุตโดยชั้น
Q: ทําไมเสียงยาวถึงหมดหน่วยความจํา?
A: การให้อาหารการบันทึกการประชุมทั้งหมดไปยังแบบจําลองในครั้งเดียวเป็นความผิดพลาดที่พบบ่อยการโหลดการบันทึกสองชั่วโมงโดยตรงทําให้เกิดความล้มเหลวออกจากหน่วยความจําวิธีที่ถูกต้องคือการแบ่งส่วนโดยการตรวจจับกิจกรรมเสียงและเรียกใช้ส่วนอนุมานที่เพิ่มขึ้นโดยส่วนโดยมีฝาปิดบนบัฟเฟอร์แทนที่จะโหลดการบันทึกทั้งหมด
Q: อุปกรณ์ใดที่ต้องติดตั้งภาชนะสําหรับ Ascend?
A: คุณต้องติดตั้งอุปกรณ์ทั้งสี่ตัว /dev/davinci0, /dev/davinci manager, /dev/devmm svm และ /dev/hisi hdc พร้อมกับไดเรกทอรีไดรเวอร์การขาดตัวใดตัวหนึ่งจะทําให้เกิดความล้มเหลวในการเริ่มต้น ACL และข้อผิดพลาดไม่ได้บอกคุณว่าอุปกรณ์หายไป - นี่คือตัวบล็อกที่พบมากที่สุดสําหรับผู้มาใหม่
Q: ปรับใช้แบบออฟไลน์ในสภาพแวดล้อมที่มีช่องว่างทางอากาศได้อย่างไร?
A: สภาพแวดล้อมที่แยกทางกายภาพไม่มีเครือข่ายภายนอกดังนั้นการพึ่งพา CANN ไดรเวอร์น้ําหนักแบบจําลองแบบอักษรภาษาจีนและใบรับรองทั้งหมดจะต้องบรรจุไว้ล่วงหน้าเราเคยตีตัวอักษรจีนที่หายไปในไซต์และผลลัพธ์การถอดเสียงเป็นข้อความทุกครั้งออกมาเป็นกล่องการรวมกลุ่มแบบออฟไลน์จะต้องมีการซ้อมผ่านกระแสการปรับใช้ที่สมบูรณ์ในสภาพแวดล้อมที่เทียบเท่า
