Vikas Paruchuri가 전하는 1년여간의 딥러닝 학습 경험 공유

:pytorch:PyTorchKR:kr:

온/오프라인에서 흔히 접하는 질문 중 하나가 딥러닝 입문을 위해 대학원을 가야하는지, 또는 어떻게 공부해야 하는지입니다. 미국 역사를 전공한 (굳이 한국 기준으로 나눠보자면 문과겠죠?:sweat_smile:) Vikas Paruchuri가 어떻게 딥러닝 분야에서 학습을 하였는지를 정리한 글이 있어 소개합니다.

Vikas는 8년간 Dataquest라는 교육 서비스를 운영하였고, 최근 1년 간 딥러닝을 학습하며 경험한 내용을 정리하여 공유하였습니다. 딥러닝 학습을 하며 허깅 페이스에 여러 모델들을 공유하였고, GitHub에 공개한 2개의 라이브러리는 5천개 이상의 별:star:을 받아으며, Jeremy Howard가 시작한 리서치 랩인 answer.ai에서 오퍼를 받았다고 합니다. :astonished:

어떠한 방법으로 무엇을 공부했는지 간략히 정리해보았습니다. 자세한 내용은 원문을 참고해주세요. :wink:


저자 소개 / 배경

저자는 미국 역사를 전공한 후, 2012년 데이터 과학과 파이썬 프로그래밍을 접하며 기술 분야에 발을 들였습니다. 처음에는 딥러닝이 너무 복잡해 보였지만, 실제로 학습해 보면서 그 생각이 잘못되었음을 깨달았습니다. 딥러닝을 이해하는 데는 하향식 접근보다는 상향식 접근이 더 효과적이었습니다.

다음은 블로그에 있는 저자의 자기 소개 문구로, 외교관 근무 경력이 인상적입니다. :astonished:

I’m Vikas, a developer based in Oakland. I'm a lifelong learner currently diving deep into AI. I've started an education company, won ML competitions, and served as a US diplomat.

유용한 기술

저자는 딥러닝을 학습하며 몇 가지 중요한 기술을 강조합니다:

  • 파이썬 프로그래밍: AI의 범용 언어로서 강력한 파이썬 능력이 필수적입니다. AI 분야에 입문하고자 한다면, 우선 프로그래밍에 능숙해져야 합니다.

  • 데이터 처리: 딥러닝 프로젝트의 대부분(70% 이상)은 데이터를 정제하는 것에서 시작됩니다. 효과적인 데이터 처리 능력은 연구 뿐만 아니라 실제 문제 해결에도 중요합니다.

  • 실용주의: 딥러닝은 다양한 복잡성을 내포하고 있어 많은 시간을 소모할 수 있습니다. 빠른 해결책을 찾는 능력과 필요할 때 깊이 있는 연구를 하는 균형을 맞추는 것이 중요합니다.

학습 도서

저자는 딥러닝의 기초를 단단히 다지기 위해 상향식 접근 방식을 선택했습니다. 중요한 학습 자료로는 다음과 같습니다:

  • 딥러닝 책: 이 책은 딥러닝의 수학적 기초와 주요 아키텍처를 체계적으로 설명하며, 저자는 이 책을 천천히 읽으며 개념을 소화했습니다. The Deep Learning Book

  • 수학 자료: 딥러닝에 필요한 수학을 보충하기 위해 'Math for Machine Learning'을 활용했습니다. Math for Machine Learning

  • 온라인 코스: fast.ai 코스와 Andrej Karpathy의 강의도 활용하여 실제 예제와 함께 학습을 진행했습니다. fast.ai, Karpathy videos

  • CNN과 RNN: 모든 것이 트랜스포머로 변화 중인 세상에서 CNN과 RNN은 시대에 뒤떨어진 것처럼 보일 수 있지만, CNN은 여전히 널리 사용되고 있으며 RNN을 통해 오래된 것이 다시 새롭게 사용되고 있습니다.

  • 다른 사람 가르치기: 기술을 배우며 다른 사람을 가르치는 것은 정말 도움이 됩니다. 저자는 Deep Learning Book을 학습하며 Zero to GPT라는 강좌를 만드는 경험을 통해, 개념을 공고히하고 모르는 것을 찾아보는 선순환을 만들었습니다.

논문

Deep Learning Book은 2015년 가량까지의 딥러닝을 소개하고 있어, 2015 ~ 2022년의 딥러닝 기초 논문들을 읽고 PyTorch로 직접 구현해보았습니다. 인프라는 무료거나 저렴하게 사용할 수 있는 Google Cloab을, 학습 추적은 W&B를 사용하였습니다.

개인적으로 정리(non-comprehensive)한 목록은 다음과 같습니다:

여기까지 진행한다면, 딥러닝 모델 아키텍처에 대해 사람들의 이야기를 대부분 이해할 수 있을 것입니다.

파인튜닝 & Discord

요즈음 모델 학습을 위한 가장 쉬운 진입점은 기본 모델을 파인튜닝하는 것입니다. Hugging Face의 transformers는 PyTorch를 사용하며, 이미 구현된 많은 모델들이 있습니다. 작은 모델을 LoRA로 파인튜닝하는 것이 쉬우며, Colab보다 많은 VRM이나 GPU가 필요한 경우 Lambda Labs을 사용해볼 수 있습니다.

최신 논문들과 모델에 대해서는 Nous ResearchEleutherAI와 같은 여러 Discord 커뮤니티들이 있습니다.

StackOverflow나 다른 데이터들을 사용하여 파인튜닝을 해보며 모델 구조나 데이터, 컴퓨팅, 출력 등의 연관성을 이해하게 되었지만, 파인튜닝은 매우 복잡한 분야이고 최신 기술(SotA, State-of-the-Art)이 너무 빨리고 있어 큰 영향력을 발휘하기는 어렵습니다.

문제 발견

저자는 현실 세계에서의 문제를 발견하고 이를 풀어보려는 노력을 하였습니다. OCR 모델 등을 활용하여 교과서와 같은 고품질의 데이터를 학습 데이터로 변환하는 등의 문제에 집중하였습니다. PDF에서 데이터를 추출하고, Markdown으로 변환하는 등의 방법을 사용했습니다.

오픈소스

저자는 모든 AI 프로젝트를 오픈소스로 공개했습니다. 이는 고품질의 훈련 데이터를 널리 배포함으로써 좋은 모델을 독점하는 위험을 줄이고, 동시에 자신의 작업에 대한 노출을 높이는 방법으로 활용되었습니다. 이러한 접근은 저자에게 연구 직무로의 채용 제안이라는 결과를 가져왔습니다.

연구 직업 얻기

오픈 소스 프로젝트를 통해 노출을 얻은 결과, answer.ai에서 연구 직업 제안을 받게 되었습니다. 저자는 이 기회를 통해 더 많이 배우고 긍정적인 영향을 미칠 수 있기를 기대합니다.

다음 단계

저자는 answer.ai에서의 작업이 오픈 소스 작업과 유사하게 진행될 것으로 보고 있으며, 계속해서 모델을 훈련시키고 데이터 스택을 개선할 계획입니다.

더 읽어보기

저자의 원문 블로그 글

파이토치 한국 사용자 모임의 학습 경험 공유 글들 :+1:




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요