본문 바로가기

전체 글

(135)
Whisper 한국어 Fine-tuning 2주차 지난주에 H100 돈이 감당 안되가지고 TRC에 지원해서 tpu를 써야겠다고 마음 먹은 뒤로 한 짓은 대충 세가지다.1. whisper jax finetunig 코드 작업이건 일단 kaggle notebook으로 진행했다. 솔직히 jax 공부까지 해볼까 했지만 그냥 https://github.com/huggingface/transformers/blob/main/examples/flax/speech-recognition/run_flax_speech_recognition_seq2seq.py 이 코드랑 chatgpt로 얼추 맞춰서 돌아가는건 확인했다.그 다음엔 TRC에서 얻은 TPU로 포팅, v4 32장을 지원해줬다. 파이토치 데이터로더를 그대로 사용하긴 했는데 중간중간에 hf에서 터지는 경우도 있고 해서 시..
Whisper 한국어 Fine-tuning 1주차 2월 둘째주에 진행한 것들 시작하게 된 계기"오픈소스 모델 중에 한국어 음성인식 뭐가 제일 좋아요?"라는 질문을 꽤 자주 받는다. 그런데 whisper 말고는 선택지가 없다. 그리고 위스퍼 이전에는 애초에 쓸만하다고 생각할만큼의 모델이 없었던것도 맞다.최근에 Emilia 데이터셋(https://arxiv.org/abs/2501.15907)이 YODAS의 데이터까지 가공해서 공개하겠다고 한다. 기존에 한국어가 200시간 밖에 안됐던게 7000시간까지 늘어났고 이거 써서 TTS 학습을 해야겠다고 마음 먹었다. 다만, 음성인식에 whisper-medium을 썼다보니 이건 large로 다시 돌릴 필요가 있을 거 같아서 좀 돌려보는데 "한국어로 fine-tuning 좀만 해도 더 잘 되지 않을까?" 생각이 들었다..
Flow Matching 설명 Introduction 디퓨전 계열이 생성 모델에서 엄청난 성능을 보여주며 주류가 되어 버린지는 한참 되었다. 그러나 여러 번에 걸친 샘플링이 디퓨전 모델의 좋은 성능을 만들어 주는 것처럼 보이지만 이는 동시에 추론 속도가 느려진다는 뜻이다. 그래서 디퓨전 모델보다 더 빠르고, 더 좋은 모델을 만들어 보려는 연구는 꾸준히 존재했고 Flow Matching은 그런 연구 중 하나다. Flow Matching을 제안하는 논문은 동 시기에 여러개가 등장했으며 Flow Matching for Generative Modeling 논문은 그 중의 하나이다. 추가로, 최근 Stable Diffusion3가 Flow Matching 기반의 모델이라고 해서 좀 더 관심을 한번 더 모으고 있는 것 같다. 이 글은 Flow ..
so-vits-svc 구조 정리 2023년 7월 1일의 svc-develop-team/so-vits-svc v4.1 기준으로 쓴 글입니다. https://github.com/svc-develop-team/so-vits-svc/tree/76128e95ec09a5adcf4d6b233bc5c8ef78cce377 GitHub - svc-develop-team/so-vits-svc: SoftVC VITS Singing Voice Conversion SoftVC VITS Singing Voice Conversion. Contribute to svc-develop-team/so-vits-svc development by creating an account on GitHub. github.com 소개 중국 쪽 커뮤니티에서 시작된 프로젝트로 Singi..
WSL에서 GPU를 쓰면 우분투보다 느려질까? WSL 2랑 우분투에서 https://github.com/pytorch/benchmark 이 곳의 코드를 돌린 결과 비교글입니다. 환경 통제를 정확히 한게 아니라 성능 차이가 있긴 하구나 정도로 봐주세요. 결과만 보려면 바로 스크롤 내리시면 됩니다. 잡설 GPU를 사용해서 딥러닝 학습 환경을 구축 한다면 기본은 리눅스를 사용한다. 그것도 보통 ubuntu에서 진행할 것이다. 이게 마음에 안들어도 어쩔 수 없다. CUDA와 cuDNN 버전에 쳐맞고 드라이버 버전에 쳐맞고 하다보면 도커를 찾게 되며, GPU와 도커를 같이 쓰려면 리눅스 네이티브를 써야했다. 이런 상황에 WSL 2에서 GPU를 지원하고 심지어 도커랑 물려서 사용이 가능해졌다. 지원을 시작한지 아직 2년도 안됐던거 같다. 윈도우에서 이 세팅을 ..
fastapi에서 mongo db 사용할 때 _id 처리하기 fastapi는 pydantic을 사용하여 데이터 모델을 정의한다. mongo db의 경우 object id가 _id로 정의된다. 그래서 정수 a, b, c를 가지는 mongo db의 모델을 pydantic으로 정의한뒤 fastapi에서 쓴다고 치면 아래와 같이 정의를 해볼 수 있을 것이다. from pydantic import BaseModel class DataModel(BaseModel): _id: str a: int b: int c: int 아마 _id를 str이 아닌 objectID 같은 타입으로 선언할 거 같긴 한데 일단 str이라고 하자. 여기서 문제가 발생하는데 pydantic의 데이터 모델은 언더스코어(_)로 시작하는 변수를 private으로 간주하고 접근할 수 없게 해놓는다. 그래서 데..
연구프로젝트 샘플 데이터셋은 카이스트오디오북데이터셋(링크)을 사용했습니다. 모델의 학습은 ESPNet(링크)와 ParallelWaveGAN(링크)을 사용했습니다. 학습이 제대로 되진 않았지만 학습이 완료된 모델을 다운 받으시려면 여기서 확인해주세요. Tacotron2와 HiFiGAN, Finetuned HiFiGAN입니다. Ground Truth, baseline, augment 순입니다. 생성된 음성은 15 db씩 볼륨을 키운 상태입니다. Seen Speaker Same Utterance Text : 혼자 노래하면서 언덕에 올라서서 땀을 닦고 있을 바로 그때였어요. Text : 더 생동감 있는 표현이 됩니다. Text : 위태로운 상태에 있었다. Text : 해당 시민단체 측이 폭행을 가한 이들을 경찰에 고소한 사실이 ..
파이썬 f-string 템플릿으로 쓰기 파이썬에서 f-string 쓰는법 파이썬에서 f-string은 바로 evaluation이 이루어지기 때문에 템플릿처럼 사용이 불가능하다. 정 사용하려면 아래처럼 람다로 사용해야 한다. f-string을 raw text로 저장해두고 이를 사용해서 포매팅을 하는 것은 불가능해보인다. template = lambda name, handle : f'Current name is {name}, handle is {handle}' DB 서버가 죽었는지 체크하는 방법 지금 하고 있는 프로젝트에서 파이썬에서 MySQLdb를 이용해서 Mysql 서버에 요청을 보내는데 연결이 살아있는지, 쿼리가 이상한지를 체크해야 한다. 일단 쿼리가 이상한가를 체크하는 데에는 서버에 쿼리 날린 다음에 MySQLdb.ProgrammingEr..