36P by xguru 2달전 | favorite | 댓글 4개
  • 질문에 답변한 사람들 내용을 정리

schmookeeg

  • 현재 기계 학습 엔지니어로 일하면서 가장 좋아하는 부분은 기술적 배경이 없는 사람들과 협업하는 것임
    • MS Outlook을 5번 중 3번 이상 열지 못하는 사람들도 자신의 전문 분야에 대해 놀랄만한 깊이와 통찰력을 가지고 있음
    • 이는 매우 겸허하게 만듦
  • 기술적 배경이 없는 사람들은 나를 마법사로 보고, 나는 그들을 부두교 사제로 봄
    • 우리가 좋아하는 것을 훈련시키고 예측할 때, 양쪽 모두에게 매우 보람 있음
  • 대부분의 모델링은 의료 관련임
    • 청구, 처방전, 의사 소견, 생체 징후, 진단 영상 등의 방대한 데이터 레이크에서 인사이트를 이끌어냄
    • 이 정보에 매우 쉽게 접근 가능하다는 것도 엄청남 (HIPAA는 제쳐두고)
  • 시간적 현실
    • 일주일에 회의가 약 3시간 정도 걸림
    • 업무 준비, ETL 문제 해결, 비즈니스를 위한 일회성 쿼리 수행 등에 3시간 정도 소요됨
    • 나머지 시간은 수백만 달러 규모의 수익을 예측하는데 약간의 우위를 찾기위해 데이터를 탐색함
      • 이는 마치 수학으로 월리를 찾는 것과 같음
      • 그 월리 씬은 약 50TB 크기임 :D

burnedout_dc4e3

  • 2000년대 중반부터 머신 러닝을 해왔음
  • 절반의 시간은 모델 훈련과 사용을 위해 데이터를 정리하는 "데이터 파이프라인을 계속 운영"하는 데 소비됨
  • 또 다른 절반의 시간은 코딩 능력이 거의 없는 "AI 과학자"들을 위한 기술 지원에 소비됨
    • 그들은 다양한 챗봇 서비스에 내용을 복사/붙여넣기 하는 데 시간을 보냄
      • Python 패키지 설치 및 Git 사용 방법 등을 알려주는 것이 주된 일임
    • 그들의 작업이 우리가 하고 있는 프로젝트에 어떻게 적용될 것인지에 대한 계획은 없음
      • 그러나 트랜스포머 모델이 우리의 모든 데이터 처리 문제를 해결할 것이라고 주장함
  • 이 과대 광고 사이클이 끝날 때까지 새로운 일을 하지 않고 그만둘까 고민 중

tambourineman88

  • 머신 러닝을 공부할 때 예상과는 반대되는 현실
    • 이 일의 95%는 데이터 정리, 데이터셋 결합, 그리고 피쳐 엔지니어링임
    • 모델 적합과 테스트는 단지 5%에 불과함
  • 이 글에 대한 답글 #1
    • 처음부터 지금까지 그래왔고, 앞으로도 계속될 것임, 아멘
    • 스태프/책임자 레벨에서의 중요 사항
      • 추론 모델에 의존하는 제품 기능과 데이터 캡처 사이의 "데이터 임피던스"를 유지하는 것이 중요함
      • 이는 제품이나 기능이 변경되더라도 데이터 저장소와 훈련 코퍼스에 데이터를 공급하는 계측과 데이터 세분성이 깨지지 않도록 하기 위함임
    • 강화 학습(RL) 문제에서의 중요 사항
      • 상태와 행동 공간 튜플에 대해 올바른 변수가 캡처되었는지 확인하는 것이 중요함
      • 그 다음으로는 보상 피드백을 위해 인터페이스나 환경 모델을 조정하는 방법을 찾는 것임

davedx

  • pip install pytorch 실행
  • 환경이 깨짐
  • Python 환경 수정에 4시간 소요
  • pip install Pillow 실행
  • Mac 북의 CPU 아키텍처에 맞지 않는다는 오류 발생
  • Python 관련 모든 것을 제거한 후 처음부터 다시 설치하는 데 4시간 더 소요
  • pip install ... 실행하려 했으나 퇴근 시간이 됨!

Xenoamorphous

  • 일반 소프트웨어 개발자인데, 필요에 의해 ML 작업을 해야 했음
  • "진짜" ML 전문가들이 확률적/경사하강법 결과와 사람들의 기대치를 어떻게 다루는지 궁금함
  • 일반 소프트웨어 작업에서는 동작하거나 동작하지 않고, 동작하지 않으면 이유를 설명하고 바라건대 고칠 수 있음
  • 그러나 ML에서는 "이 텍스트 분류기가 이 텍스트를 올바르게 분류하지 않은 이유는 무엇인가?"라는 질문을 받음
    • 이에 대해 "임계값을 만족하기에 0.004점 부족했다"거나 "단어 선택이나 순서 때문에 만족하지 못했다"고 밖에 말할 수 없음
    • 이는 모두를 불만족스럽게 만드는 것 같음

angarg12

  • 직책은 ML 엔지니어이지만 실제 업무는 거의 순수한 소프트웨어 엔지니어링에 가까움
  • 프로덕션 환경에서 ML 시스템을 지원하는 시스템 구축이 주된 업무
    • 다른 사람들이 언급했듯이 주로 데이터 변환, 모델 훈련, 모델 서빙 등이 포함됨
  • 도구를 구축하거나 기존 시스템을 수정하여 과학자들이 업무를 수행할 수 있도록 지원하는 것도 업무에 포함됨
  • 그러나 외부를 보면 필자의 회사는 이례적인 것 같음
  • 업계에서는 ML 엔지니어에 대한 기대치가 데이터/응용 과학자가 하는 일(예: 모델 구축 및 테스트)과 더 잘 맞는 것으로 보임
    • 이는 각 회사의 각 역할에 대한 기대에 많은 모호성을 야기함

runban

  • 높은 급여를 받는 청소부
    • 더러운 데이터로는 제대로 된 결과를 얻을 수 없음
    • 참고로 이 작업에는 Python보다 Perl이 훨씬 더 좋음
  • 높은 급여를 받는 마더보드 문제 해결사
    • 수랭식 쿨링을 사용하더라도 H100들은 정말 뜨거워짐
    • 전담 하드웨어 담당자가 없기 때문
  • 모두가 그렇듯이 제멋대로 굴러가는 제3자 종속성과 싸움

primaprashant

  • 지난 5년 동안 MLE로 일해 왔으며, 다른 댓글에서 언급했듯이 대부분의 작업은 SWE와 유사함
  • 프로젝트 단계에 따라 일상적인 작업은 다양하지만, 다음 중 하나에 해당함:
    • 이해관계자 및 TPM과의 협업, 데이터 분석을 통해 우선순위가 높은 비즈니스 문제 해결을 위한 가설 개발
    • 비즈니스 문제를 ML 문제로 구성하고, ML 모델과 비즈니스 문제에 적합한 메트릭 생성
    • 새로운 기능과 아이디어의 기술적 실현 가능성을 검증하기 위한 PoC 및 프로토타입 구축
    • 아키텍처 및 기술적 의사 결정을 위한 설계 문서 작성
    • 플랫폼 팀과 협력하여 새로운 ML 프로젝트와 기존 ML 프로젝트의 요구사항에 따라 데이터 파이프라인 설정 및 유지 관리
    • 추론을 위한 ML 마이크로서비스 구축, 배포 및 유지 보수
    • A/B 테스트 실행 및 사후 테스트 분석을 위한 설계 문서 작성
    • ML 모델 재학습을 위한 파이프라인 설정

jackspawn

  • 시간의 50% 이상을 백엔드 엔지니어링에 할애함
    • ML이 더 큰 API 내에서 사용되기 때문
  • 해당 API의 엔드 투 엔드 경험에 대한 책임을 짐
    • 따라서 시간 대비 최상의 가치를 제공하는 것은 무엇이든 수행함
    • 이는 종종 ML 모델과는 아무 관련이 없음

mardifoufs

  • 추론 코드 최적화, 훈련된 모델 "제품화" 작업을 수행함
  • 현재는 클라우드 서비스가 아직 일반적으로 사용되지 않는 산업에서 일하기 때문에 로컬 훈련 및 추론 작업 중
    • LLM이 아니기 때문에 미리 만들어진 도구가 많지 않아 흥미로움
    • 많은 것을 직접 만들어야 함
  • 데이터 품질 평가(로컬 부분이 도전적)부터 CUDA를 직접 사용하는 것까지 다양한 작업을 수행함
    • 이미 CUDA를 기반으로 구축되어 활용할 수 있는 신호 처리 라이브러리가 있기 때문
  • 때로는 팀(연구원/MLE 혼합 팀) 내부 도구 구축도 포함됨
    • 매우 틈새 분야이기 때문에 데이터와 추론을 시각화하기 위해 직접 구축해야 함
  • 도구 및 내부 소프트웨어 설계와 관련하여 완전한 자유가 있어 조직 내에서 많은 영향을 미칠 수 있었음
  • 즉흥적으로 구축한 도구 중 하나가 이제 주력 제품에도 탑재될 예정임

hirako2000

  • 주요 업무는 아니지만 대부분의 시간을 "이것저것 붙이는" 작업에 소비
    • 기존 오픈 소스 조정
    • 리소스 최적화 방법 파악
    • 다른 데이터 세트에서 모델 재학습
    • 엉성하게 작성된 Python 코드 실행 시도
    • 누락된 요구사항 파일 추가
    • 데이터 정리
  • 이미 수년 전에 수행되지 않은, ML로 실제로 유용하게 해결할 수 있는 것이 무엇일지 고민함
  • 최신 GPU 가격을 확인하고, 호스팅 제공업체에서 비싼 시간을 빌리는 것보다 GPU를 구입하는 것이 가치 있는지 계산함
  • 머리가 아플 때까지 논문을 읽음
    • 초록을 읽고 중간에 있는 몇 개의 다이어그램을 훑어보는 데 시간이 걸림

tenache

  • 머신러닝을 공부하고 원래 그 역할을 위해 고용되었지만, 회사가 방향을 바꾸어 현재는 LLM 작업 중
  • 대부분의 시간을 다음과 같은 작업에 할애함:
    • 다양한 LLM의 작동 방식 파악
    • 최적의 매개변수 찾기
    • RAG(Retrieval-Augmented Generation) 수행 방법
    • 다른 봇과의 통합 방법

trybackprop

  • 주어진 일주일 동안 일반적으로 다음과 같은 업무를 수행함:
  • 15%: 기술 토론 회의 또는 1:1 미팅
    • 일반적으로 모델에 대한 아이디어, 계획 또는 ML 제품 지원에 대해 논의함
  • 40%: ML 개발
    • 프로젝트 초기 단계에서는 제품 요구사항을 이해함
    • 제품/비즈니스 목표 달성에 도움이 될 수 있는 ML 모델이나 알고리즘을 팀과 논의함
    • 분석가와 데이터 과학자로부터 기존 데이터셋을 수집함
    • 이 데이터셋을 사용하여 학습 및 검증 데이터셋을 생성하는 파이프라인을 만듦
    • 학습/검증 데이터셋이 채워지기를 기다리는 동안(최대 2주 소요), 개발 단계가 더 앞서거나 뒤쳐진 다른 프로젝트에 동시에 작업함
    • 새로운 모델(PyTorch로 작성)에도 작업하고, 소량의 데이터로 테스트하여 오프라인 성능을 평가하고, 기대한 대로 작동하는지 여부를 평가함
    • 모델을 사용하여 제품 정보를 채우는 몇 가지 수동 테스트를 실행하여 모델의 건전성을 확인함 (대규모 실험 없이는 자신과 팀원의 직감에 의존할 수밖에 없음)
    • 학습/검증 데이터셋이 채워지면 대량의 데이터에 대해 모델을 학습시키고, 오프라인 결과를 확인하고, 문제가 있으면 모델을 조정하거나 아키텍처를 변경함
    • 오프라인 결과가 양호하거나 좋아 보이면 실험을 위해 모델을 프로덕션에 배포함
    • 동시에 구축한 새 모델의 테스트를 위해 제품/인프라 코드를 변경할 수 있음
    • 실험을 실행하고 트래픽을 천천히 늘려 1-5% 할당이 되면 몇 주 또는 한 달 동안 실행함
    • 한편, 결과를 관찰하고 모든 관련 파이프라인을 모니터링하여 모델이 적절하게 훈련되도록 하여 예기치 않은 인프라/버그/제품 요인으로 인해 실험 결과가 변경되지 않도록 함
    • 결과가 예상대로 보이고 초기 가설과 일치하면 팀과 출시 여부를 논의하고, 출시하기로 결정하면 출시함!
      • (참고: 모델 개발에는 특징 작성, 데이터셋 준비, 분석, ML 모델 자체 생성, 제품/인프라 코드 변경 구현 등이 포함됨)
  • 20%: 유지 관리
    • 새 모델을 개발하고 있다고 해서 기존 모델을 무시하는 것은 아님
    • 매일 확인하여 성능이 저하되거나 예기치 않은 방식으로 성능이 변경되지 않았는지 확인함
    • 또한 파이프라인을 수정하고 더 효율적으로 만듦
  • 15%: 연구 논문 및 기술 습득
    • AI/ML 세계가 빠르게 변화하고 있어 지속적으로 새로운 연구 논문을 읽고 최신 상태를 유지하기 위해 가정에서 새로운 기술을 테스트함
    • 재미있어서 부담스럽지 않음
    • 최신 상태를 유지하기 위한 일로 보지 않음
  • 10%: 내부 연구
    • 팀이나 회사 내 다른 제품에 대해 더 배우고, 우리 팀이 어떻게 도울 수 있는지 또는 그들로부터 어떤 기술/기법을 빌릴 수 있는지 알아보는 데 이 시간을 사용함
    • 또한 지난 6개월/1년 동안의 작업을 되돌아보면서 얻은 통찰력을 적는 데도 이 시간을 사용함

막연하게 그러고들 있을거라고 생각한 그대로군요.

'기술적 배경이 없는 사람들은 나를 마법사로 보고, 나는 그들을 부두교 사제로 봄' 표현이 재미있네요.

데이터... 데이터... 공감가네요

흥미로운 내용이네요!