MPS에서 ctc_loss 전·역전파가 열려 음성·OCR 정렬 학습을 CPU 폴백 없이 이어갑니다 | DAKER 커뮤니티

한 줄 요약
PyTorch 2.14에서 MPS에 ctc_loss 전·역전파가 추가되었습니다. 음성·OCR처럼 정렬 없는 시퀀스 학습을 Apple Silicon에서 CPU 폴백 없이 이어갈 수 있습니다.
예전에는 CTC 손실만 CPU로 떨어져 Mac GPU 학습이 끊겼습니다. 오늘은 짧은 로그 확률과 가변 길이 타깃으로 F.ctc_loss 또는 nn.CTCLoss를 MPS에서 호출하고, backward까지 한 스텝을 확인하십시오. 참가자 노트에는 dtype·입력 길이·패딩 배치 여부·디바이스를 남깁니다. “점수만 올랐다”보다 “손실이 MPS에서 전·역전파되는지”가 재현에 도움이 됩니다.
재현해 볼 실험 조건
- 작은 로그 확률 텐서와 타깃·입력 길이를 준비하고, 디바이스를 MPS로 둡니다.
F.ctc_loss(또는nn.CTCLoss)로 forward를 계산한 뒤, 스칼라 손실에backward를 호출합니다.- 같은 입력을 CPU와 비교해 값·기울기 방향이 크게 어긋나지 않는지, 그리고 CPU 폴백이 없는지 한 줄로 적습니다.
MPS의 F.linear 시퀀스길이 1 경로나 네이티브 선형대수와는 다른 축입니다. 이번 실습은 CTC 손실 전·역전파만 확인합니다. 실험이 끝나면 macOS·PyTorch 버전·헤드/타임스텝 크기를 고정해 두십시오.
실무에서 바로 볼 포인트
- CTC 기반 Mac 학습에서 손실만 CPU로 빼던 패턴을 2.14 MPS 경로로 재검토하십시오.
- 학습 노트에 가변 길이(패딩) 배치 성공 여부를 남깁니다.
- 디코드용 선형 경로 실습과 섞지 말고, 이번엔 CTC 손실만 확인하십시오.
관련 DAKER 학습
출처: https://pytorch.org/blog/pytorch-2-14-release-blog/
설명용 생성 이미지입니다. 동작은 로컬 MPS에서 ctc_loss 결과로 확인하십시오.