본문 바로가기

전체 글88

Huggingface 로 wav2vec2.0 실습 - 영어 Huggingface Fairseq facebook 에서 처음에는 shell 을 통해 바로 훈련시키는 fairseq 라는 AI 툴킷을 공개함 따라서 이 fairseq 를 통해 pretrained 모델을 가져와 fine-tuning 가능했었음 Huggingface 그 이후 huggingface 에서 python 에서 pretrained 모델을 가져와 fine-tuning 할 수 있도록 만들어줌 Huggingface 는 자연어처리 스타트업에서 개발한 다양한 트랜스포머 모델(transformer.models) 과 학습 스크립트(transformer.Trainer) 를 제공하는 모듈 transformers.models : 트랜스포머 기반의 다양한 모델을 pytorch, tensorflow 로 각각 구현해놓은 모.. 2022. 8. 18.
wav2vec2.0 pretrained 모델로 디코딩하기 Facebook - wav2vec2.0 개념 설명 Facebook 에서 약 5만 시간의 데이터를 훈련시켜 음성인식 pretrained 모델을 만들었음 - 5만 시간이라는 대량의 데이터로 훈련할 수 있었던 이유는 label 이 없는 데이터이기 때문에 가능했었음 - 즉, 라벨이 없는 데이터를 이용하여 자기 자신의 특성(representation)을 배우는 학습 방법인 self-supervised learning (자기지도학습)을 통해 만든 pretrained 모델 물론 finetuning 할 때 더 큰 데이터일수록 좋지만, 960hrs, 100hrs, 10m 비교했을 때 10m 모델로 fine-tuning 해도 충분히 좋은 결과가 나옴 즉, pre-trained 모델만 잘 만들어두면, 내가 가지고 있는 데이.. 2022. 8. 17.
End-to-End ASR : Attention vs RNN-T 음성인식(ASR) 이란? 사용자의 발화를 입력으로 받아 음성인식을 거친 후 텍스트로 전사하는 과정 음성인식 - 사용자의 발화(발음적인 신호 자체에 대한 확률들) = acoustic model - 발화 자체가 있을 법한 문장인가 = language model 위의 두가지 확률들을 합쳐서, 사용자가 발화를 했을 때 그것이 어떤 말인지 가장 있을 법한 텍스트를 추론하는 것 End-to-End(E2E) ASR 기존 음성인식 모델링 입력 음성을 음소 단위로 mapping 음소 단위를 다시 텍스트로 전사하기 위해 수 많은 과정을 거쳐야 함 이렇게 매우 복잡하기 때문에 진입장벽이 매우 높은 분야 중 하나였음 End-to-End(E2E) 로의 전환 기존 방식에서는 음성을 phoneme(음소)으로 모델링 했음 E2E 에.. 2022. 8. 4.
AI 에서의 Interpretability - Explainable AI Why interpretability? AI 에서 왜 interpretability 가 필요할까? It's not JUST about being responsibile. 물론 Interpretability - a tool to improve responsibility + the more we know about what we do, the more we become conscious about what we are doing. Interpretability 는 더 넓은 개념 - fundamental underspecification in the problem ( Humans often don't know exactly what they want ) ex ) safety 자동차 사고를 대비해 모든 사건 c.. 2022. 8. 4.
Fairseq - Wav2vec 2.0 Pretraining (3) pretraining 시키기 앞 글에 이어 fairseq 의 examples 의 wav2vec2.0 pretraining 글입니다. 2. wav2vec 2.0 모델 학습시키기 Train a wav2vec 2.0 base model fairseq-hydra-train \ task.data=/path/to/data \ --config-dir /path/to/fairseq-py/examples/wav2vec/config/pretraining \ --config-name wav2vec2_base_librispeech 위 configuration은 wav2vec 2.0 논문의 Libispeech 데이터 세트에 대해 훈련된 기본 모델 입력은 16000 Hz 로 샘플링된 단일 채널이어야 함 데이터, 모델 파라미터 설정을 위한 config 정보 .. 2022. 6. 14.
Fairseq - Wav2vec 2.0 Pretraining (2) Preprocess 전처리하기 CLI 툴킷을 사용해 새 모델 학습시켜보기 2. Preprocess - vocabulary 파일 생성하기 fairseq에 내장된 fairseq-preprocess 명령어 또는 'libri_labels.py' 파이썬 파일을 통해 전처리 할 수 있음 4개의 파일 : 'dict.ltr.txt', 'train.tsv', 'train.wrd', 'train.ltr' fairseq 장점 : 메모리가 넉넉해서 훈련 잘 됨 (huggingface 에서 했을 때 잘 안되었던 것 fairseq 로 잘됨) - huggingface 는 캐시메모리 폴더를 만들고 거기에 저장 - 용량 차지 많이 함 - 따라서 하드 메모리 부족하기도 함 --> cuda out of memory... 에러메세지 많이 뜸 --> huggingface.. 2022. 6. 14.
CNN-RNN-CTC Based End-to-End Mispronunciation Detection and Diagnosis - Leung, W. K., Liu, X., & Meng, H. @ ICASSP 2019 CNN-RNN-CTC Based End-to-End Mispronunciation Detection and Diagnosis - Leung, W. K., Liu, X., & Meng, H. @ ICASSP 2019 논문 리뷰 글입니다. Abstract main point : CNN-RNN-CTC 구조를 가진 모델을 제안 : E2E 모델이 MDD task 에 처음으로 적용된 논문 phonemic, graphemic 정보가 필요 없고, forced alignment 도 필요없기 때문에 유용하게 사용될 것으로 기대됨 다양한 baseline 모델들의 성능과 비교한 결과 - F1 measure 에서 다 이김 Model Relative Increase Extended Recognition Network (ERN) .. 2022. 6. 6.
Phoneme mispronunciation detection by jointly learning to align - Binghuai Lin, Liyuan Wang @ ICASSP 2022 Phoneme mispronunciation detection by jointly learning to align - Binghuai Lin, Liyuan Wang @ ICASSP 2022 논문 리뷰 글입니다. Abstract 주제 : phoneme mispronunciation detection 아이디어 : 발음 오류 탐지를 위해 alignment 도 동시에 같이 학습하겠다. multi task learning 을 통해 phoneme alignment 와 mispronunciation detection 을 같이 최적화하겠다. alignment 를 하기 위해 음성과 텍스트 정보가 필요 - 그리고 이로부터 각각 acoustic representations, canonical phoneme represent.. 2022. 6. 6.
트랜스포머(Transformer) (4) - multi-head attention 4. 어텐션 (Attention) 첫번째 인코더 레이어에 입력 값이 들어오고 여러 개의 인코더 레이어 반복해서 거침 Multi-Head Attention 레이어 Reference https://www.youtube.com/watch?v=AA621UofTUA 이 글은 나동빈님의 'Transformer : Attention Is All You Need' 논문 리뷰 영상을 보고 정리한 글입니다. 2022. 6. 4.
트랜스포머(Transformer) (4) - 인코더와 디코더 인코더 (Encoder) 트랜스포머는 하나의 인코더 층이 총 두개의 서브 층으로 이루어짐 : 셀프어텐션, 피드포워드 신경망 1) 셀프어텐션 : multi-head self-attention 블록으로 셀프 어텐션을 병렬적으로 사용함 2) 피드포워드 신경망 : position-wise FFNN 블록으로 그냥 일반적인 피드 포워드 신경망임 self-attention : 인코더 파트에서 수행하는 어텐션 - 각각의 단어가 서로 어떤 연관성을 가지고 있는지 구하기 위해 사용 ex) I am a teacher : 문장을 구성하는 각각의 단어 I, am, a, teacher 에 대해서 각각의 단어끼리 attention score 을 구해서 서로 어떤 단어와 높은 연관성을 갖는지에 대한 정보를 학습시킴 어텐션을 통해 전.. 2022. 6. 4.