1P by neo 11달전 | favorite | 댓글 1개

인공지능/머신러닝 기술 개발에 투자하는 최선의 방법

  • 매일 약 1시간을 인공지능(AI)/머신러닝(ML) 기술 개발에 할애할 때, 이 시간과 에너지를 투자하는 최선의 방법에 대한 의견을 묻는 질문.
  • 다양한 방법들이 제시되어 있으며, 각각에 대한 구체적인 예시나 추천이 요구됨.
    • 소규모 프로젝트 구축(무엇을 만들 것인가?)
    • 블로그/뉴스레터 읽기(어떤 것들을 읽을 것인가?)
    • 강의 수강(어떤 강의를 들을 것인가?)
    • 교과서 읽기(어떤 책을 읽을 것인가?)
    • Kaggle 대회 참가
    • AI/ML 포럼/커뮤니티 참여
    • 위의 조합(가능하다면 시간 비율/가중치 공유)
  • 이 질문은 소프트웨어 엔지니어들이 ML 분야에서 역량을 쌓을 수 있도록 도움을 주기 위해 일반적으로 물어봄.

GN⁺의 의견

  • 중요성: 인공지능과 머신러닝은 현재 기술 세계에서 가장 빠르게 성장하는 분야 중 하나이며, 소프트웨어 엔지니어들에게 필수적인 기술로 자리잡고 있음. 이 분야의 기술을 개발하는 것은 경력 발전에 큰 도움이 될 수 있음.
  • 흥미로움: AI/ML은 다양한 산업과 응용 분야에 혁신을 가져오고 있으며, 이 분야에서의 학습과 실습은 창의적이고 도전적인 프로젝트를 만들 수 있는 기회를 제공함.
  • 학습 방법의 다양성: 제시된 학습 방법들은 개인의 학습 스타일과 목표에 따라 유연하게 조정될 수 있으며, 이러한 다양성은 각자에게 맞는 최적의 학습 경로를 찾는 데 도움이 될 수 있음.
Hacker News 의견
  • 학위 경험 공유

    • 석사 학위를 좋은 학교에서 ML(머신러닝)로 취득했음. 학교에서 배운 것은 혼자서도 배울 수 있었지만, 학교는 혼자서는 할 수 없는 집중과 압박을 제공함.
    • 논문 구현이 가장 많이 배운 경험임. 강의와 교과서는 단어에 불과하고, 실제로 해보는 것이 훨씬 깊은 지식을 줌.
    • 다양한 커리큘럼을 제안할 수 있지만, 1시간 동안의 집중된 문제 해결이 가장 좋음.
    • 몇 가지 프로젝트 제안: 간단한 함수 학습을 위한 베이비 신경망 훈련, MNIST 숫자 분류기, 특수한 말뭉치로 GPT2 미세 조정, 시각적 유사성 측정을 위한 쌍둥이 신경망 훈련 등.
    • 자신의 신경망과 역전파를 작성하는 데 시간을 낭비하지 말고, 프로파일링 및 디버깅 도구 사용법을 배우라고 조언함.
  • AI 연구자 및 기술 창업자의 조언

    • 최신 발전에 대해 이야기하는 것으로 가정하고, 선형적인 경로를 따르지 말 것을 권장함. 한 과정과 작은 프로젝트를 하고, 시간을 정해두고 끝내려고 노력할 것.
    • 흥미로운 연구 분야를 찾아 해당 GitHub 코드를 실행하고, 개선하거나 앱에서 사용할 방법을 찾을 것.
    • fast.ai 과정 수강, 카파시의 블로그 포스트 읽기, 스탠포드 cs231n 및 cs234 과정 수강 등을 제안함.
    • 관심 있는 프로젝트를 찾아 실행할 것.
  • ML 실용화의 중요성

    • 많은 댓글이 ML의 저수준 부분을 강조할 것이지만, 현재 ML에 필요한 것은 구현 수준에서 똑똑한 사람들임.
    • 기존 LLM 기술을 활용하여 일반 사람들이 사용할 수 있는 소프트웨어를 만드는 것이 중요하고 필요한 작업임.
    • 일상적인 실습은 애플리케이션 스케치, 프롬프트 및 함수 호출 구성, 창조한 것을 마케팅하는 방법 학습, 제로에서 하나로 가는 도구 만들기 등임.
    • 예시로, 아리스토텔레스 시대의 공통 장서 기술을 현대의 임베딩 시대에 적용한 것과 순수 MD 사양을 이해하고 스트리밍 생성 모델을 통합한 것을 들 수 있음.
  • AI/ML을 일상 업무로 전환하기

    • AI/ML을 중요한 경로에 두는 방법을 찾음. 새로운 언어를 배우는 것과 같이, 완전한 몰입만큼 효과적인 것은 없음.
    • 아직 분야에서 일자리를 얻을 만큼 충분한 기반을 갖추지 못했다면, 열정 프로젝트를 찾고 새로운 해결 방법을 계속 생각하는 것이 다음으로 좋은 방법임.
    • 마지막으로, 학교로 돌아가는 것을 고려할 것. 하루 1시간 이상이 걸리지만, 다른 학습 전략보다 훨씬 빠르고 구체적인 결과를 볼 수 있음.
  • 전형적인 ML/AI 학생의 로드맵

    • 수학, 컴퓨터 과학 등의 선행 학습이 필요함. 이는 보통 미적분, 선형대수, 확률 및 통계, 프로그래밍, 객체지향 프로그래밍, 데이터 구조 및 알고리즘 등을 포함함.
    • 기본적인 ML 과정을 거친 후, 빠르게 변화하는 DL(딥러닝)의 기본 부분을 다룸.
    • ML 엔지니어링과 ML 연구로 나뉨. 엔지니어링은 ML 파이프라인과 관련된 기술적인 것들을, 연구는 과학 자체에 집중함.
    • 다른 사람들의 말처럼, 도구를 사용하여 구현하는 것이 재미있고 도움이 됨. 모든 모델을 구현하려고 하면 매우 어려움을 겪을 수 있음.
    • "실용적인" ML을 배울 때, API를 통해 데이터를 입력하고 결과를 받을 수 있는 방식으로 모델을 구현하려고 함. 이는 데이터 처리, 소프트웨어 개발 및 호스팅, API 개발 등의 도전을 포함함.
  • AI/ML의 한계 인식

    • 상상력을 너무 풀어놓거나 AI/ML이 할 수 있는 것에 대해 과신하지 말 것.
    • 주요 회사에서 2년간 ML 프로젝트에 참여했으나, 기존의 통계적 방법보다 개선되지 않았고, ML의 "블랙 박스"를 이해하는 능력이 없어 프로세스에 실질적인 개선이 없었음을 깨달음.
    • 많은 ML 작업이 문제를 찾는 해결책이었음.
    • 데이터베이스(SQL 및 비SQL) 사용 방법을 이해하는 것이 중요함. ML을 효과적으로 사용하려면 대량의 데이터를 성능 좋게 프로그래밍하는 데 뛰어난 기술이 필요함.
  • AI/ML 공부 방법

    • Hastie 등의 "An Introduction to Statistical Learning with Applications in R/Python"을 처음부터 끝까지 읽고 설명된 개념/아이디어/뉘앙스/미묘함을 이해할 것.
    • 수학/통계 책을 준비해두고, 모르는 수학 기법이 나오면 즉시 이 책들을 참고하거나 짧은 유튜브 동영상을 보며 개념과 사용법을 이해할 것.
    • 이것이 AI/ML을 공부하고 이해하는 가장 간단하고 직접적인 방법임. 이 스레드에서 언급된 다른 모든 것은 이것이 끝난 후에 해야 함.
  • ML과 엔지니어링의 결합

    • ML과 엔지니어링 사이의 결합을 살펴볼 것.
    • ML ops, DevOps 적용, ML 공간에서의 테스트 및 ci/cd, 여러 GPU에서 훈련하는 방법, 특히 대규모 및 저렴하게 LLM을 호스팅하는 방법 등을 고려할 것.
    • 학계에서 강력한 학문적 배경을 가진 수백 명의 후보자가 있지만, 그들의 야망을 실현할 수 있는 경험 많은 엔지니어는 매우 적음.
  • 딥러닝에 초점을 맞춤

    • 대부분의 LLM은 변환기 아키텍처를 사용함. 이에 대해 시각적으로 배울 수 있으며, 블로그 포스트나 Andrej Karpathy의 블로그 포스트와 자료를 통해 배울 수 있음.
    • 매주 발표되는 논문을 최신 상태로 유지하기 위해 매주 일요일 요약을 읽음.
    • 엔지니어링 측면을 더 배우기 위해 EleutherAI의 Discord 서버에 가입하거나 llama.cpp와 같은 프로젝트의 GitHub 토론을 따를 수 있음.
    • 가장 효율적인 개발 방법은 아마도 분야의 주요 논문을 재구현하는 것일 것임. 명확한 목표가 있고, 성공의 명확한 징후가 있으며, 작업을 확인하고 비교하며 배울 수 있는 많은 구현이 있음.
  • LLM 초보자를 위한 퀴즈

    • 비CS(생의학) 대학원생을 위한 LLM 소개 강의를 최근에 진행함. 숙제 퀴즈를 할당하고 싶었지만 좋은 것을 찾지 못해 다지선다형 퀴즈를 만듦. 이 퀴즈는 "악마적"이며, 단단한 이해가 없으면 넘어질 수 있음. 몇 가지 질문은 이해를 시험하고 올바른 답을 찾으려고 노력함으로써 배우는 데 도움이 되는 뉘앙스를 가지고 있음. 이메일을 수집하지 않는 Google 양식임.