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% 이상을 백엔드 엔지니어링에 할애함
- 해당 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년 동안의 작업을 되돌아보면서 얻은 통찰력을 적는 데도 이 시간을 사용함