본문 바로가기

전체 글37

[근황] 오랜만에 다시 글을 씁니다 안녕하세요, 오랜만에 다시 포스팅을 합니다 그동안 면접과 알고리즘 공부로 정말 열심히 살았던 것 같습니다. 치열하게 공부한만큼 남는게 많아 의미있는 시간이었고, 그 대신 저의 본업인 AI에 다소 소홀해져서 죄책감도 들었습니다ㅜ 하루가 다르게 발전하는 분야이기 때문에 꾸준한 follow-up이 생명인데 그걸 못해 마음이 무거웠습니다. 다시 이전의 일상으로 돌아왔으니 이따금씩 좋은 포스팅으로 찾아뵐 수 있을 것 같습니다! 오늘도 찾아와주셔서 감사합니다 2023. 11. 29.
Python과 Selenium을 활용한 웹 크롤링 실습 - (1) 안녕하세요, 오늘은 Python과 Selenium을 활용한 웹 크롤링을 다뤄보도록 하겠습니다. 컴퓨터 비전을 주로 하는 제가 크롤링을 이토록 많이 하게 될 줄은 몰랐는데요... 많은 과제를 수행하다보니 크롤링 하는 방법 정도는 기본으로 알아야만 한다고 느낄 정도로 활용도가 높습니다. 대부분의 인터넷 페이지에서 내가 원하는 정보를 긁어올 수 있는 크롤링을 차근차근 설명 해보겠습니다. 참고로 이 글은 Python 환경설정은 하실 수 있다는 전제를 깔고 있습니다. 혹시 Python 설치부터 궁금하신 분은 wikiDocs를 참조하시면 쉽습니다 (크롤링은 Jupyter Notebook 환경이 압도적으로 편합니다). 그리고 이 포스팅의 환경은 Python 3.11 Selenium 4.11.2 (Selenium 4).. 2023. 8. 28.
[질문] 소셜 프로필 등록 제 링크드인 계정을 링크하고 싶은데 Book Club이라는 티스토리 테마에서는 지원하지 않는 것 같습니다... 다소 떨어지는 유연함에 실망했지만 일단 저 페이스북 아이콘을 누르면 제 링크드인 프로필로 이동합니다. 혹시 이 글을 보고 계시는 티스토리 능력자분께서 시원한 해결책을 알려주시면 정말 감사하겠습니다 저의 프로필을 공유합니다 2023. 8. 8.
(2/2) AudioGen: Textually Guided Audio Generation 리뷰 앞선 내용은 AudioGen: Textually Guided Audio Generator 1부에서 읽어주세요 (1/2) AudioGen: Textually Guided Audio Generation 리뷰 안녕하세요, 오늘은 AudioGen: Textually Guided Audio Generation 논문을 살펴보도록 하겠습니다. 논문 제목은 AudioGen인데 코드나 블로그에서는 AudioCraft라고 소개하고 있습니다. 프로젝트 이름이 AudioCraft, thecho7.tistory.com Audio Representation 먼저 좋은 Audio representation을 얻기 위해 Auto-encoder를 제대로 학습해야 합니다. 아래는 그 과정에서 가장 중요한 Training objectiv.. 2023. 8. 6.
(1/2) AudioGen: Textually Guided Audio Generation 리뷰 안녕하세요, 오늘은 AudioGen: Textually Guided Audio Generation 논문을 살펴보도록 하겠습니다. 논문 제목은 AudioGen인데 코드나 블로그에서는 AudioCraft라고 소개하고 있습니다. 프로젝트 이름이 AudioCraft, 모델 이름이 AudioGen입니다. 이번 논문은 제목처럼 텍스트를 입력으로 받아 그에 맞는 소리를 생성하는 생성 AI입니다. 일전에 소개드렸던 ImageBind 리뷰처럼 비슷한 연구가 있어 아주 참신하지는 않지만 어떤 특징을 갖고 어떤 장점이 있는지 설명하겠습니다. 참고로 이 글은 블로그와 논문을 함께 참고하며 작성했습니다. 블로그: AudioCraft 코드: AudioCraft Github 논문: 논문 링크 Introduction 소리를 생성하는.. 2023. 8. 3.
DPU(Data Processing Unit)이란? 안녕하세요, 오늘은 우연히 DPU라는 존재를 듣게 되었습니다. Data Processing Unit이라고 불리는 이 녀석은 CPU, GPU, TPU 등과는 다른 역할을 수행하고 그게 데이터와 밀접한 관련이 있는건가 생각되는데요... 간단하게 DPU가 무엇인지 소개해보도록 하겠습니다. DPU(Data Processing Unit)의 존재 이유 많은 분들께서 AWS S3나 Google Drive 등에 익숙하시리라 생각합니다. 이들은 모두 클라우드 기반 파일 저장 서비스인데요, 지금 쓰고 계시는 컴퓨터의 HDD, SSD와 이 서비스들 사이에 뭔가 다른 점이 있을까? 생각해보면 사실 다르지 않습니다. 요컨데 위의 서비스들 또한 모두 '그저 컴퓨터'에 지나지 않습니다. 그렇다면 지금 내 컴퓨터도 잘 쓰고 있고, .. 2023. 7. 25.
SwiGLU Activation Function 설명 안녕하세요, 오늘은 SwiGLU Activation Function에 대해 리뷰해볼까 합니다. 얼마 전에 Meta에서 발표한 LLAMA 2나 비전에서 최근 좋은 성능을 보여준 EVA-02를 포함한 많은 논문에서 SwiGLU를 채택하고 있습니다. 딥러닝을 공부하다보면 활성화 함수는 다소 사소하게 여겨질 수 있지만 실제로는 그렇지 않고, 심하게는 모델 학습이 정상적으로 되느냐 마느냐를 결정지을 수 있는 중요한 요소입니다. 논문: GLU Variants Improve Transformer SwiGLU 배경 SwiGLU는 Swish + GLU, 두개의 Activation Functions를 섞어 만든 함수입니다. 왜 이런 함수를 설계했는지 하나씩 살펴보고 합쳐서 이해하면 좋겠습니다. Swish Activatio.. 2023. 7. 21.
[블로그 소개] 조연 블로그 소개 잡설 안녕하세요, 오늘은 짤막하게 제 블로그를 소개해드리려 합니다. 저는 컴퓨터 비전을 주제로 석사를 마치고 대기업 연구소에 있다가 현재는 스타트업에서 근무하고 있습니다. 아마 연구소에 있었다면 지금보다는 하나의 주제에 집중해서 연구할 수 있었겠지만 스타트업에 있다 보니 그게 여간 어려운 환경이 아니라는 것을 많이 느끼고 있습니다. 한편, 요즘 AI 분야는 급격한 변화를 겪는 새로운 장으로 이동한 것 같습니다. 알파고 이후 잠잠했던 대중에의 AI가 ChatGPT와 DALL-E와 같은 생성형 모델로 다시금 빛을 발하며 많은 이목이 집중되고 있음을 느낍니다. 그 증거로 회사에 들어오는 문의 중 상당 수가 "이런게 가능한가?" 싶은 수준으로 변했으며 AI를 한다하는 상장기업의 주가가 뚜렷한 근본도 없이 상승하.. 2023. 7. 6.
Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture (I-JEPA) 논문 리뷰 안녕하세요, 오늘은 I-JEPA라는 Self-Supervised Learning 기법을 소개합니다. 이 방법은 휘황찬란한 Augmentation 기법에 구애받지 않으면서 이미지의 픽셀을 들여다보는 것이 아닌 기존 보다 의미론적 관점에서 조금 더 직관적인 이미지 이해를 위한 설계를 통해 훌륭한 결과를 달성했다고 합니다. 이번 설명은 결론부터 먼저 말씀드리는 방법으로 진행해보겠습니다. 논문: https://arxiv.org/pdf/2301.08243.pdf Github: https://github.com/facebookresearch/ijepa/tree/main I-JEPA 정리 이 논문은 기존 Self-supervised Learning 방법들이 픽셀 수준에서 학습했던 것과는 달리, 모델이 좀 더 고차원적.. 2023. 6. 19.
[PyTorch] TorchScript: Tracing vs. Scripting 안녕하세요, PyTorch로 학습한 모델을 배포하는 일은 굉장히 흔한 일인데요, 오늘은 TorchScript에서 활용하는 Tracing과 Scripting를 각각 설명하고 차이점을 비교하려고 합니다. 참고로 이 내용에는 여기 블로그가 많은 참고가 됐습니다. 그리고 TorchScript and PyTorch JIT | Deep Dive를 보시면 도움이 되실겁니다 시작에 앞서 두 방법은 모두 nn.Module을 전제로 합니다. PyTorch에서 nn.Module을 상속 받지 않은 모델은 존재하지 않는다고 봐도 무방합니다. 용어 설명 Export: Eager-mode Python code를 그래프로 변환하는 과정 (Eager-mode는 즉시 실행한다는 의미로, 컴파일을 하지 않는 파이썬의 기본 성질입니다) T.. 2023. 6. 4.
[논문 리뷰] Scaling Speech Technology to 1,000+ Languages 안녕하세요, 오늘은 따끈하게 나온 Meta의 논문 - Scaling Speech Technology to 1,000+ Languages를 리뷰해볼까 합니다. 프로젝트 이름은 Massively Multilingual Speech (MMS)라고 합니다. 이걸 모델 이름으로 불러도 될지... 아무튼 1,100개 이상의 언어에 대해 음성 전사(Speech-to-text (STT), Transcription)와 음성 생성(Text-to-speech), 그리고 언어 파파악(Identification)을 수행할 수 있는 엄청난 모델을 개발했다고 합니다. (참고로 제가 이 분야에 대해 자세하게는 몰라 블로그의 내용을 위주로 다뤘습니다) 참고 자료: Paper, Blog, Github Introduction 이 세상에는.. 2023. 5. 24.
Mixed Precision - BF16의 특징과 장단점 안녕하세요, 오늘은 딥러닝에서 최근 활용되고 있는 BF16(bfloat16, Brain floating point)에 대해서 설명하도록 하겠습니다. 그리고 언제 뭘 쓰면 좋을지 비교해보고 PyTorch에서는 이걸 어떻게 쓰면 되는지 간단하게 소개하겠습니다. BF16이란? 이미 Mixed Precision을 아시는 분들 (굳이 몰라도 컴퓨터 과학을 배웠다면 모두가 아실)은 FP16에 대해 알고 계실 것 같습니다. FP16은 기존 32-bit로 표현하던 숫자들을 16-bit로 변환해서 데이터의 사이즈를 줄이는 방법입니다. 해당 내용은 포스팅1 또는 포스팅2 (둘 다 제가 쓴 글입니다)에 잘 설명되어 있으니 참고하시면 되겠습니다. 성공적으로 잘 줄였는데 또 뭐가 필요할까요? 문제는 역시 줄어든 bit수 만큼 .. 2023. 5. 23.