2016 맥북 13 (2017년 고등학교 2학년 산학일체형도제학습 사업단에서 졸업까지 대여 ~ 2018년 초까지 썼음.)
2018 맥북 프로 15 (2019년 대학교 1학년 부모님이 맥북 사줌 ~ 2020년 중반 아빠 돌려 줌)
2019 Intel 맥북 프로 16 (2020년 대학교 2학년 예비창업패키지 창업 사업비 구매 ~ 2025년 초반까지 씀)
2025 맥북 프로 16 (2025년 초 그냥 생으로 샀음!)

목표

이번 맥북은 그 어느 때 보다 정돈되게 운영해보려고 합니다!

Chrome

일단 누구보다 빠르게 크롬을 설치했습니다.
개발자라면, 제발 크롬.

Visual Studio Code

그 다음 뭘 설치할까 음... 고민 많이했는데, VS Code가 당연 그 다음이겠다 싶었습니다.
설치 한김에 Copilot도 연결 Extension은 나중에 해야겠습니다.

Docker Desktop

우선순위 역시 도커죠 바로 도커 설치했습니다 굳이 CLI로 할필요 절대 없죠?
https://docs.docker.com/desktop/setup/install/mac-install/

ChatGPT

그 다음에는 현재 정말 많이쓰고있는 이 녀석을 써보려고 한다. 드디어 Intel mac에서 벗어났으니 Silicon의 혜택을 누려보자고요.
https://openai.com/chatgpt/desktop/
이야 이거 신기하다 좋네

Slack

최근 자동화 프로젝트를 하고있어서 진행상황이나 실시간 보고를 받기위해 필요한 Slack도 설치하겠습니다.

카카오톡

음 이건 그래도 깔긴 해야지

아... Ollama를 설치할까말까... 그냥 Docker에다 설치해서 쓸까..?

일단 설치안했음

Office

일단 엑셀, 파워포인트, 워드 같은 사무용품(?)들은 설치하는게 맞으니깐

Git

오늘 뭐 하나 설치하려다가 어? GIT이 없네 ㅋㅋ 함

HomeBrew

Git 설치하려고 brew커멘드 쓰는데 어?? brew도 없네 ㅋㅋㅋ함

Notion

NVM

https://github.com/nvm-sh/nvm

Postman

아 코딩하다가 오잉 postman이 없네 하고 설치.


점차 추가해나갈 예정

 

## FIGMa

 

## OBS

정답은 app/_layout.tsx 라고 합니다.

공식 문서에서도 그렇게 설명하고있네요. 참고하시길 바랍니다.

 

From the reactnative community on Reddit

Explore this post and more from the reactnative community

www.reddit.com

 

File-based routing

Learn about Expo Router which is a file-based routing system and how to use it in your project.

docs.expo.dev

 

블로그 만드는데 테스트 하기 위해 잠 깐 만든 글입니다. ㅇㄴㅁㄹ

`aaaaaaaaaaaaaaaaaaaa"bbbbbbbbbbbbbbbbbbb'ccccccccccccc

asdfasdfasdf

asdfasdf

프로젝트를 위해 유용한 라이브러리나 도구들을 서칭하던 도중 발견한 아주 귀한 녀석이다.

이번엔 이녀석에게 빨아먹을수 있는 기능들을 최대한 단시간 내에 빨아먹어보도록 하겠다.

ESP net

ESPnet: end-to-end speech processing toolkit

end-to-end 발화 관련된 처리 모델을 같은 규격으로 모아놓은 툴킷이다.

 

이 레파지토리만 따로 리뷰를 하는 이유는 여기 하고자하는게 거의 다들어가있기 때문이다.

 

 

GitHub - espnet/espnet: End-to-End Speech Processing Toolkit

End-to-End Speech Processing Toolkit. Contribute to espnet/espnet development by creating an account on GitHub.

github.com

 

ESP net 에서 다루는 도구들은 다양하게 있는데 그중 사용해볼수 있을법한 도구들은 다음과 같다.

 

ASR: Automatic Speech Recognition

이전 에 했던 Speech to Text 모델들이 있다. ASR이라고도 부른다.

 

TTS: Text-to-Speech

이전 에 조사했던 Text to Speech 모델들이 있다.

SE: Speech Enhancement (and Separation)

발화 데이터를 Separate Speech를 하면 Single Speaker일 경우 denoising 해주는 모델이 있고.

Multi Speaker일 경우 발화자A, 발화자B 이런식으로 분리된 음성으로 나누어주는 모델이 있었다.

ST: Speech Translation & Machine Translation

흔히 아는 음성 번역이다.

VC: Voice Conversion

목소리를 변환한 음성을 만들어주는 모델이다.

SVS: Singing Voice Synthesis

노래하는 목소리 생성 모델이다.

Docker 실행

도커에서 성공적으로 ESPnet을 돌렸다. 튜토리얼대로 똑같이하면 아무런 문제없이 잘 돌아갔다.

튜토리얼에서는 Demo 버전을 웹을 이용해서 테스트 할수있는 여러 환경을 구성하고있다.

기존에 Docker compose를 이용해 메인 컨테이너랑 묶어 해당 모델을 사용하려고 했으나 당장의 프로토타이핑 스탭에서 Docker를 사용하지 않기로 했다.

 

여담

우선 해당 프로젝트는 1인개발 프로젝트여서 다중환경을 지원할 필요성이 크게없다. 

(하지만 나중에는 Docker에 올려야한다는 생각정도는 가지고있다.)

다만 만드는 과정에서 Docker환경에 맞춰서 개발하기 좀 고달프다. 그이유는 음성 인식 부분을 마이크 입력이 아닌 웹규격이나 소켓 데이터 스트림으로 구현해야한다는 점 때문이다. 그렇기에 이러한 부분에 대해서 고민할 부분을 조금 뒤로 미루기위해 여러 시도와 실험 끝에 잠깐 Docker 사용을 놔주기로했다.

 

Test

Espnet에서 가장 유용하다고 생각한 부분은 역시 TTS모델을 다양하게 사용할 수 있다는 점이였다.

그중 테스트해본 여러 모델들중 괜찮다는 생각이 든 모델들을 정리해보겠다.

 

Espnet model zoo를 사용하면 다음과 같이 매우 간단하게 huggingface에서 모델을 이용해서 음원을 만들수있다.

속도는 약간 아쉬운 느낌이긴 하지만 아쉬운건 CPU기준이고 GPU로 한다면 매우 높은 성능이 나올거라고 기대하고있다.

(다크한 일본 캐릭터 느낌) cc by 4.0

 

mio/amadeus · Hugging Face

ESPnet2 TTS model mio/amadeus This model was trained by mio using amadeus recipe in espnet. Demo: How to use in ESPnet2 Follow the ESPnet installation instructions if you haven't done that already. cd espnet git checkout d5b5ec7b2e77bd3e10707141818b7e6c57a

huggingface.co

 

 

(귀엽고 시니컬한 일본 캐릭터 느낌) cc by 4.0

 

mio/tokiwa_midori · Hugging Face

ESPnet2 TTS model mio/tokiwa_midori This model was trained by mio using amadeus recipe in espnet. Demo: How to use in ESPnet2 Follow the ESPnet installation instructions if you haven't done that already. cd espnet git checkout 0232f540a98ece921477b961db8ae

huggingface.co

mio 라는 유저의 TTS모델인데 우선 목소리 자체가 애니메이션 캐릭터의 목소리를 이용하여 학습한거라 깔끔하다.

일본어에서 가장 괜찮았던건 다음 2개이다.

 

(밝고 명랑한 한국어, 약간 옜날 애니메이션에 밝고 명랑한 여자 캐릭터같은 느낌 이다.) cc by 4.0

 

imdanboy/kss_jets · Hugging Face

ESPnet2 TTS model imdanboy/kss_jets This model was trained by imdanboy using kss recipe in espnet. Demo: How to use in ESPnet2 Follow the ESPnet installation instructions if you haven't done that already. cd espnet git checkout 967ddbed826a7c90b75be2a71295

huggingface.co

 

 

조금 아쉬운점은 ESP net의 레시피로 만들어진 한국어 모델이 거의 없었고 전부다 테스트 해봤지만 잘 돌아가는 것도 별로 없었다.

한국어에서는 다음의 모델이 가장 괜찮았다. 한국어의 언어 특성을 보정하기위한 문장을 발음으로 바꿔주는 g2pk를 추가설치해줘야한다.

 

(평범한 젊은 느낌은 아닌 영어, 약간 어색하다고 느꼈다. 가장 인기있는 모델.) cc by 4.0

 

espnet/kan-bayashi_ljspeech_vits · Hugging Face

ESPnet2 TTS pretrained model kan-bayashi/ljspeech_vits ♻️ Imported from https://zenodo.org/record/5443814/ This model was trained by kan-bayashi using ljspeech/tts1 recipe in espnet. Demo: How to use in ESPnet2 Citing ESPnet @inproceedings{watanabe2018

huggingface.co

 

모델 총평 :

1. 일본어 모델은 영어도 못말하고 알파벳으로 말한다. -> 일본발음으로 해결하도록 추가적으로 로직을 만들어줘도 되지만 영 빠진다.

2. CPU기준 약간 버벅거림 있다. 체감생성시간 0.8초

(나중에 langsmith 찍어보겠다. 그래도 이정도면 맥북 CPU인데 빠르다고 생각된다.)

3. 한국어 모델은 거의 없다. 골라서는 못할것 같다.

4. 라이센스는 다 CC by 4.0이다 저작권 명시만 하고 쓰면 될것같다.

5. 여기서 테스트해본 TTS말고도 다른 기능들도 테스트를 해봤는데 상당히 유용한 프로젝트인것 같다. 일단은 TTS만 사용하겠다.

 

서론

뒤늦게 올리는 2024 SKT Fellowship 6기 면접 후기입니다.

사실 서류합도 했고 이정도면 당연히 붙지 않을까라고 생각했지만, 음... 아쉽게 면접에서 떨어졌습니다만..

좋은 경험이었다고 생각합니다.

 

본론

저희 팀 구성은 학부생 3학년, 학부생 4학년, 대학원생 2학년으로 이루어진 팀이고 3명다 학교가 달랐습니다.

준비는 3주정도 전부터 2일~3일에 한번씩 회의를 하며 자료조사 내용을 공유하며 프로젝트 제안서를 작성했습니다.

 

 

과제 설명

"저희가 진행한 과제는 RAG와 LLM 파인튜닝을 통한 Text2SQL 모델 성능 개선" 과제였습니다.

 

과제의 핵심을 요약하자면, 일반적인 Text2SQL은 LLM을 이용한 쿼리생성에 문제가 없지만 실무에 사용하는 대용량 DB(Hive 시스템)은 쿼리생성을 위해 LLM에 제공해야하는 데이터의 양이 너무 커서 제한 토큰수를 넘기거나, 생성 성능이 떨어지는 문제가 있습니다.

 

 

도식화하여 간단하게 이해를 돕자면 다음과 같습니다.

 

소규모 데이터베이스, 작게 설계된 Table이라면  위와 같은 설계가 가능합니다.

심지어 이러한 Text2SQL 시스템은 이미 오픈소스 모델도 많고 Spider나 Bird같은 유명한 벤치마크들도 존재합니다.

 

 

하지만 실무에서 쓰는 대규모 데이터베이스 시스템에서는 다음과 같이 매우 방대한 양의 데이터를 다루기에 데이터베이스에 대한 메타정보 전부를 넣어줄 수 없습니다.

 

그렇기 때문에 RAG를 이용해 필요한 정보만참고하여 SQL생성에 이용하는 시스템을 구축하는 과제입니다.

 

서류 합격

우리가 제안서로 제출한 PPT는 39페이지, 논문도 10개 넘게 레퍼런스 했다.

실제로 할수 있을 법한 성능을 높일 수 있는 기능과, 조금 도전적으로 성능을 높일수 있는 아키텍처을 섞어서 넣었다.
그리고 개발될 프로토타입 디자인 정도로 제안했고 문제없이 서류합격이 되었다.

 

서류 작성을 위한 과제에 대한 더 자세한 정보라던지, 혹은 우리가 가용할 수 있는 회사의 자원이라던지의 정보를 사무국에 메일로 문의 했을때 상당히 자세히 그리고 정성스럽게 알려주셔서 운영에 대해서 매우 만족스러웠다.

 

면접 탈락

면접을 위한 약간의 전략과 멘토단의 마음에 들기 위한 무기들을 준비해 갔다. 비밀이긴 한데, 별거 아니다.

면접 시간대를 보니 대충 어림잡아 3~4팀정도가 면접을 보게된 것 같았다.

 

발표용으로 새로 만든 PPT로 발표를 진행했으며,

기대 효과를 포함한 다른 부가적인 내용을 제외하고 제안할 아키텍처에 대해서만 발표했다. 

 

발표가 끝난후 몇가지 질문을 받았는데,

우리가 제안하는 모델 평가 방법에 대해서 추가적인 설명을 요구하는 것과,

각자 학교도 다르고 한데 시간을 많이 투자가 가능하느냐의 취지 인것 같은 말과 함께 각자에대한 짧은 소개를 부탁했다.

 

예상 질문에대한 대답을 전날 여러개 뽑아서 준비를 했는데, 생각보다 질문을 많이 하지는 않아서 조금 아쉽기도 했다.

 

기대를 많이 해서그런지 더 아쉬운것 같다.

 

결론

취업이나 연구실에 관련되 좋은 활동이라고 생각했고, 마침 현재 관심을 가지고 공부하고 있는 부분과도 맞는 부분이 있었기에 합격하지 못해서 많이 아쉽다. 다음에 공고가 나면 한번더 도전해볼 법 한것 같다.

시스템 아키텍처

프로토타입의 첫 버전을 설계하는데 있어 최소 스펙을 갖추었다고 판단했다.

앞으로 계속 기능을 붙이며 조금씩 업데이트 해 나갈 예정이다.

System Architecture

시스템 아키텍처는 다음과 같다. 

대화 데이터들을 embedding하여 관련정보를 query할 수 있도록 하여, 일반적인 Retrieval 구조가 완성되었다.

 

개발은 한국어버전 일본어 버전으로 2개 만들었으며 최대한 간단하게 구성하려고 했다.

반응은 전화하는것 정도의 빠른 반응까지는 얻어내기 힘들었지만, 나름 대화가 된다고 느낄수 있는 속도였다.

 

Test (한국어)

Test (일본어)

테스트케이스를 따로 정리하지는 않았다.

 

한국어와 일본어 버전을 나눈 이유는 한국어성능에서의 약간의 부족함을 느껴서이다.

1. 우선 한국어의 느낌이 잘 안사는것 같은 느낌이 들었다. 듣는 내가 한국인이어서 그럴수도 있을것 같다. 친구같은 느낌의 대화를 바라지만 너무 공손하고 예의 차리고 딱딱한 대화라고 느껴짐이 있었다. ChatGPT의 학습적인 문제라고 생각한다.

2. 현재 ASR이 ?나 .이나 !를 안붙여준다. 다른걸 찾아봐야겠지만 한국어의 경우 똑같은 말이어도 !?. 에 따라서 의미가 많이 달라지기도 하고 억양에 따라 의미가 달라지는 경우도 많다. 그런부분을 잘 캐치하지 못하게 되는 걸 느꼈다. 반면 일본어는 문장기호가 한국어보다 중요도가 좀 떨어진다. 그런면에서 더 괜찮은 것 같았다.

3. 한국어 TTS가 어색하다. 사실 한국어는 다양하지는 않지만 그럭저럭 괜찮은 모델을 찾기도 했었다. 영어 TTS가 좀 생각했던 것 보다 많이 별로라고 느꼈고, 일본어는 몇몇 되게 괜찮은 모델들이 있었다.

 

Conclusion

사실 필자가 일본어와 영어 둘다 초급 수준으로 하기에 비교적 어색함을 덜 느꼈을 수 도 있을 거라고 생각이 들었다.

그래서 실제 일본인, 혹은 모국어가 영어인 사람한테도 기회가 된다면 한번 시켜보겠다.

 

+ Recent posts