Web Analytics Made Easy - Statcounter
반응형

Bouncing ideas 생각 작업실/exp sharing 경험.실험 나누기 14

신경망 이용한 음운론 연구 workflow (feat. Fairseq)

0. 요약그냥 제가 같은 작업 자꾸자꾸 반복하는 거 좀 체계화/단일화 하기 위해서 순서 정리하는 글이에요.  목차 1. 단계들1단계: 시작하기일단 찬물을 마셔서 정신을 차리고, 모든 걸 담을 수 있는(?) 폴더를 하나 만든다. 사람이 준비 안 되어 있으면 기계는 일하지 않는다. 폴더에는 일단은 raw data만 담아둔다. 2단계: 모델 훈련하기Google colab이든 Amazon AWS든 Microsoft Azure든 본인 취향에 맞는 cloud computing resources 에서 모델을 훈련한다. 나는 아직 모델 훈련 전단계가 익숙하지 않기 때문에 raw data 읽어들이거나 preprocessing할 때 중간중간 printout 할 수 있게 Jupyter notebook을 선호한다. 예시: h..

fairseq translation task cross-attention 접근 쉽게하기

.translate() method에 verbose parameter가 있다는 걸 간과했다. verbose = True 주니까 각 hypothesis 별로 아래와 같은 log가 터미널에 뿌려졌다. 2024-04-10 00:27:55 | INFO | fairseq.hub_utils | H-0.012383962981402874c i m a lZ cc v ngZ 2024-04-10 00:37:22 | INFO | fairseq.hub_utils | P-0.0000 -0.0000 -0.0001 -0.0000 -0.0000 -0.1113 -0.0000 -0.0000 -0.0000 beam = 5 였으므로 5개 후보형을 고려한다. 그래서 각 2줄, 총 10줄의 log가 떴다. 이 데이터는 이해하기 쉽다. 입력값 (..

Never assume anything

실험데이터를 기계에 넣고 다 돌려버리는 것과 별개로, human touch가 들어가는 것이 필요하다. 예상치도 못한 변수가 있을 수 있기 때문이고 그 부분에서 이름 걸고 연구하는 사람이 확인을 하고 책임을 질 선택을 해야 하기 때문이다. 사람은 다양하다. 사람으로부터 얻는 데이터도 다양하다. 그래서 무엇도 당연히 생각하면 안된다. 상상을 초월하는 경우는 늘 있다. 예전에 토론토에서 운전하다가 교외에서 사고를 낸 적이 있다. 대인사고는 아니었는데, 차가 좀 망가져서 garage에서 견인차를 불러 수리를 맡겼다. 어짜피 garage가 토론토에 있었기 때문에 견인차 옆자리를 얻어타고 돌아가는데, 아저씨 운전석에 대문짝만하게 NEVER ASSUME ANYTHING이라고 써져있는 걸 봤다. "무엇도 당연하게 전제..

Python으로 textgrid 생성했는데 왜 먹지를 못하니

0. 요약 Montreal Forced Aligner를 이용한 Forced alignment를 대규모로 하다가 문제에 봉착했다. 큰 소리로 생각한다는 개념으로 나의 생각 과정을 여기에 적는다. 목차 1. 이슈 각 wav 녹음파일에 대하여 stimulus (화면에 표시된 한국어 단어)의 내용 (한글철자)을 유일한 tier로 가지는 praat textgrid를 python script를 이용하여 생성했다. "[participant ID]_[base id]_[phonotactics]_[manipulation]_[repetition]_[group].wav" 형식의 wav 파일명을 parsing하여 base_id와 phonotactics 값에 따라 해당하는 단어의 철자형을 TSV 형식의 stimuli list 로..

Fairseq transformer model에서 attention 뽑아내기

0. 요약 이 포스팅은 Fairseq을 이용해 train한 transformer model에서 attention weights를 뽑아내기 위한 노력의 과정을 기술한다. 목차 1. 이슈 Fairseq이 attention weights를 순순히 내놓지 않는다. 선전포고다! 우선 왜 attention weights를 뽑아내야 하는지에 대한 맥락부터 서술하고 시도해본 해결책 + 과정을 섹션 4부터 설명한다. 3. 맥락 Fairseq model이 꽤나 괜찮은 성능을 보였다. (Fairseq입문) (IPA변환기) 이론가로서 나에게 중요한 건 모델의 성능 그자체는 아니다. 촘스키가 말했듯 언어학은 "engineered solution"이 아니라 "real solution"이 필요하다. 답은 나왔다. 엔지니어는 답을 ..

'JKDY' 테스트 돌리기 + 배포🎉

0. 들어가는 말 (이 글은 2024.02.19 - 좌충우돌 딥러닝을 이용한 한글IPA변환기 에서 이어지는 글입니다.) 구어체로 느슨하게 전사하는 프로그램을 완성하기는 했는데, 욕심이 나서 UI를 입혔다. 챗GPT 시키니 금세 되니 좋다. 비록 자잘한 오류가 많아서 '내가 못하는 새로운 일'을 시킬 수는 없지만, 할줄 아는데 귀찮은 것은 챗GPT 시켜서 초벌로 해놓고 나온 결과를 직접 수정하니 편리하다. 앱의 이름은 JKDY로 정했다. 이 프로그램이 "좋거든요"를 전사하면 조커등여 [tɕ o kh ʌ t ɯ ŋ jʌ] 라고 나오는데 약자를 따와 JKDY라고 한 것이다. 목차 1. 조커등여 새로 만든 장난감(?) 가지고 놀다가 대체 내가 무슨 괴물을 만든 건가 생각이 들었다.ㅋㅋㅋ 무슨일이냐 하면 바로 이..

좌충우돌 딥러닝을 이용한 한글IPA변환기

0. 들어가는 말한글을 입력하면 철자 그대로 충실히 IPA로 자동 전사하는 '기계'에 대해서는 다른 글에서 소개하였습니다. 본 글에서는 거기에서 한걸음 더 나아가 transformer 모델을 이용해서 한글 철자 입력하면 구어체 서울한국어 발화형을 예측하는 모델을 다룹니다. 혹시 그냥 "한글"을 쓰면 [hɑŋɡɯl]로 자동전사해주기 원하시면 아래 페이지를 참고해주세요.https://linguisting.tistory.com/84 Convert Korean orthography into IPA transcriptionsUse 'Hangul to IPA' with the interface belowSee [readme] for more information. Scroll down a bit, a..

음운론 전공자가 공부해본 통사론

0. 요약 저는 음운론을 전공하는 박사과정생입니다. 그러나 통사론에도 호기심이 있습니다. 음운론에서는 선수 역할을 해야한다면 통사론에서는 관중의 입장이 되므로 흥미롭게 그리고 부담없이 공부할 수 있는 것 같습니다. 통사론은 정말 어렵고, 통사론자들 중에는 천재들이 많은 것 같습니다. (통사론자 여러분 정말 존경합니다.) 제가 통사론, 특히 한국어 통사론이 알고싶어서 읽었던 책들이 있습니다. 이 포스팅에서는 그 책들을 소개하려고 합니다. 한국 대학교 학부 3학년 통사론에서 B받을 정도의 수준에서, 박사과정 중 통사론으로 졸업자격논문을 쓰기 위해 최소주의 통사론 논문들을 읽는 수준에 이르기 까지, 제가 접한 책들과 자료들을, 그냥 책 목록과 간단한 설명을 나열하겠습니다. 읽은 순서대로입니다. 목차 1. 혼자..

Mac에서 받은 파일 한글 깨짐 해결

0. 요약Mac 시스템에서 한글로 쓴 파일이름이나 기타 텍스트를 다른 시스템에서 열었을 때 한글이 분해되어 보이는 경우가 있다. 아래의 스크린샷으로 예시한다. 골치아픈 문제이다. 이 포스팅에서 간단한 해결책을 제시한다. 그냥 결론부터 보고싶으면 [여기]를 클릭  이건 옛날 옛적 조합형-완성형 인코딩 논쟁을 떠오르게 하는데, 사실은 시스템 간 유니코드 정규화 방식 차이로 인한 것이고 해결은 어렵지 않다. 구체적으로 말했을 때 Darwin 계열 OS인 Mac은 한글 문자의 정규화 방식으로 NFD(Normalization Form Decomposition)를 사용하는데, Windows나 대부분의 Linux distribution에서는 NFC(Normalization Form Decomposition)를 사용하..

자동으로 한국어 praat textgrid 생성 - Montreal Forced Aligner 사용법

0. 들어가기에 앞서 사용한 Montreal Forced Aligner 버전: 2.2.16 사용한 Korean Acoustic Model: korean_mfa (Version 2.0.0rc4.dev19+ged818cb.d20220404 사용한 Korean pronunciation dictionary: korean_mfa 음성녹음이 있다. Praat에서 음향분석하려고 한다. 가장 처음 해야 하는 일은 annotation을 하는 것이다. 근데, 음운론자로서 음향분석 그 자체가 목적이 아니라면, 손으로 다 annotation하는 건 정말 귀찮고 골치아픈 일이다. 이제 손으로 다 하지말고 언어모델의 도움을 받아서 빨리빨리하자. 이건 Montreal Forced Alginer로 한국어 forced align하는 ..

반응형