메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

개발하고 끝나는 것이 아니기 때문에, 이 책을 봐야합니다.

ysm***

|

2025-07-27

잘되는 머신러닝 팀엔 이유가 있다

머신러닝 프로젝트의 구조를 분석하고 최고의 성과로 연결하는 법. 자동 테스트, 리팩터링, MLOps와 협업 기술까지 제품 개발 및 관리 노하우와 팀 운영 전략을 모두 담았다!

  • 저자 : 데이비드 탄 , 에이다 양 , 데이비드 콜스
  • 번역 : 라인 AI Lab
  • 출간 : 2025-05-30

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

잘 되는 머신러닝 팀엔 이유가 있다.

딥러닝 오픈소스를 설치해서 사용하면 안되는 경우가 많다.

특정 cuda 에 특정 패키지 버전에, ...

그래서 그런지 의존성을 관리하는 것에 대해서도 작성되어 있다.

의존성 관리는 단순히 머신런닝 프로젝트 이외에도 다양하게 사용할 수 있으므로 유심히 읽어보았다.

 

의존성 관리 실패

가끔 운용환경과 개발환경 사이에, CPU 칩과 명령어 집합을 사용해야할 때가 있다.

ex. AMD64, AARCH64, ARM64, ... 

나는 Dockerfile 내부에 각 컴파일러 등을 설치했지만, 책에서는 buildx 도구를 활용하면 기다양한 아키텍처 이미지를 생성할 수 있게 해준다.

수준별 의존성 분리

어플리케이션 수준의 의존성 관리에서, 책에서는 poety 를 소개한다.

- 의존성 고정

- 자동으로 pyproject.toml 을 업데이트

- 운용과 개발 의존성을 명확하게 정의.

- 패키징 및 배포의 유용성

 

그러나, 요즘은 uv 를 선호하는 사람이 더 많아지는 듯 하다.

빠르고, 간단하고 표준이되고 있다.

개인적으로 uv 를 썻을 때, 설정 관련되서 업데이트 해야하는 부분들이 보이긴 했다.

그러나 현재 많은 오픈소스(빅테크 포함)에서 많이 사용되고 있으므로 성숙도가 빠르게 높아질 것으로 보인다.

 

의존성 관리는 각 업무를 분류하게 하고, 분류된 모델은 일종의 테스트 단위가 되어 자동화 될 수 있다.

이런 흐름은 의존성을 고려하다보면,

각 Task 를 정의하게 되고, 

분류된 각 Task 는 하나의 작업단위로써, 테스트 가능하게 된다.

개별 테스트 가능성은 전체 파이프라인을 자동화시키고,

전체적인 효율을 엄청나게 향상시킨다.

 

전체적으로 책이 말하고자 하는 것은,

동작하는 코드의 품질을 유지하도록 하는 방법을 말하고자 하는 것 같다.

- 누구나 빠르게 설정하고 동작시켜봄으로써, 빠르게 기여하게 할 수 있도록 하기.

- 알아보기 쉬운 테스트를 구축함으로써, 사이드이펙트를 사전에 차단하기

- 자동화(ex. 테스트) 전환을 통한 품질 향상하기.

- 개발에 IDE 의 활용하여, 인지부하와 실수 줄이기

- 효율적으로 커뮤니케이션하여 하나의 팀 되기.

- ...

 

"개발 단계를 넘어, 어떻게 코드를 유지보수할 수 있을까?" 에 대한 부분은 많은 사람들이 놓치고 있는 부분이라고 생각한다.

무엇을 만드는 것에만 너무 초첨을 맞추기보다는, 그 다음 단계인 유지보수를 생각해보는 시간이 많아지길 바란다.

나는 소프트웨어의 철학이 유지보수를 고려할 때, 더 깊은 생각을 하게 만든다고 생각한다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?