기계 학습 박사 학위를 받기 전에 마스터했으면 하는 XNUMX가지 도구

소스 노드 : 1875539

기계 학습 박사 학위를 받기 전에 마스터했으면 하는 XNUMX가지 도구

스타트업을 구축하든 과학적 혁신을 이루든 이 도구는 ML 파이프라인을 한 단계 끌어올릴 것입니다.


By 알리악세이 미하일리우크, AI 과학자



작성자의 이미지.

 

기술 발전에 있어 기념비적인 역할에도 불구하고 학계는 종종 산업적 성과에 대해 무지합니다. 박사 학위가 끝날 무렵 저는 학계에서는 간과되었지만 업계에서는 널리 채택된 훌륭한 보조 도구가 무수히 많다는 것을 깨달았습니다.

제 개인적인 경험을 통해 저는 새로운 도구를 배우고 통합하는 것이 지루하고 두렵고 뒤로 미루고 의욕을 잃을 수 있다는 것을 압니다. 특히 현재 설정이 매우 친숙하고 효과가 있을 때 그렇습니다.

나쁜 습관을 버리는 것은 어려울 수 있습니다. 아래에 설명된 모든 도구를 사용하여 작업 방식이 차선책이라는 사실을 받아들여야 했습니다. 그러나 그 과정에서 나는 때때로 순간에 보이지 않는 결과가 나중 단계에서 XNUMX배의 보상을 받는다는 것을 배웠습니다.

아래에서는 학계 및 AI 엔지니어로서 기계 학습 응용 프로그램을 연구하고 구축하는 데 매우 유용하다고 생각한 도구에 대해 설명합니다. 저는 도구를 목적에 따라 환경 격리, 실험 추적, 협업 및 시각화의 네 섹션으로 그룹화합니다.

격리 환경

 
 
기계 학습은 매우 빠르게 발전하는 분야이므로 일반적으로 사용되는 패키지는 매우 자주 업데이트됩니다. 개발자의 노력에도 불구하고 최신 버전은 이전 버전과 호환되지 않는 경우가 많습니다. 그리고 그것은 많은 고통을 유발합니다!

다행히도 이 문제를 해결할 수 있는 도구가 있습니다!

도커

 
 



작성자의 이미지.

 

NVIDIA 드라이버로 인해 몇 번이나 문제가 발생했습니까? 박사 과정 동안 정기적으로 업데이트되는 대학 관리 시스템이 있었습니다. 예고 없이 밤새 업데이트되었습니다. 업데이트 후 아침에 대부분의 작업이 현재 최신 드라이버와 호환되지 않는다는 사실을 알게 되었을 때 얼마나 놀랐을지 상상해 보십시오.

직접적인 의미는 아니지만 docker는 마감일의 불행 전에 특히 스트레스를 받는 이러한 상황에서 당신을 구해줍니다.

Docker를 사용하면 컨테이너라는 패키지로 소프트웨어를 래핑할 수 있습니다. 컨테이너는 자체 소프트웨어, 라이브러리 및 구성 파일이 있는 격리된 단위입니다. 단순화된 관점에서 컨테이너는 외부 세계와 통신할 수 있는 수단이 있는 별도의 독립적인 가상 운영 체제입니다.

Docker에는 모든 것을 직접 구성하는 방법에 대한 광범위한 지식 없이도 사용할 수 있는 기성품 컨테이너가 많이 있습니다. 기본 사항부터 시작하는 것은 매우 쉽습니다.

빠른 시작을 원하는 분들은 여기를 확인하세요. 지도 시간. 또한 Amazon AWS는 기계 학습에 도커를 사용하는 이유와 방법을 잘 설명했습니다. 여기에서 지금 확인해 보세요..

콩다

 
 
누군가의 코드를 재사용하는 것은 오늘날 새로운 표준이 되었습니다. 누군가 github에 유용한 리포지토리를 만들고 코드를 복제하고 직접 작성할 필요 없이 솔루션을 설치하고 가져옵니다.

다만 약간의 불편함이 있습니다. 여러 프로젝트를 함께 사용하면 다른 프로젝트에 다른 버전의 패키지가 필요한 패키지 관리 문제가 발생합니다.

박사과정에서 그렇게 늦지 않게 Conda를 발견하게 되어 기쁩니다. Conda는 패키지 및 환경 관리 시스템입니다. 여러 환경을 만들고 패키지와 해당 종속성을 빠르게 설치, 실행 및 업데이트할 수 있습니다. 격리된 환경 간에 빠르게 전환할 수 있으며 항상 프로젝트가 예상한 패키지와만 상호 작용하도록 할 수 있습니다.

Conda는 자체 제공 지도 시간 첫 번째 환경을 만드는 방법에 대해 설명합니다.

실험 실행, 추적 및 로깅

 
 
응용 분야에서 박사 학위를 취득하는 것이 불가능에 가까운 두 가지 필수 기둥은 엄격함과 일관성입니다. 그리고 기계 학습 모델을 사용해 본 적이 있다면 테스트된 매개변수를 추적하기가 얼마나 쉬운지 알 것입니다. 과거에는 실험실 노트북에서 매개변수 추적이 수행되었지만 다른 분야에서는 여전히 매우 유용하지만 컴퓨터 과학에서는 그보다 훨씬 더 강력한 도구가 있습니다.

가중치 및 편향

 
 



학습 손실, 학습률 및 평균 검증 손실과 같은 간단한 메트릭 세트에 대한 wandb 패널의 스냅샷입니다. 시스템 매개변수도 추적할 수 있습니다. 작성자의 이미지.

 

experiment_res_1.csv
experiment_res_1_v2.csv
experiment_res_learning_rate_pt_5_v1.csv
...


이 이름들이 낯익지 않나요? 그렇다면 모델 추적 기술이 향상되어야 합니다. 박사 XNUMX학년 때의 저였습니다. 변명으로, 나는 모든 실험과 모든 관련 파일의 세부 사항을 기록할 스프레드시트가 있다고 말해야 합니다. 그러나 여전히 매우 복잡하고 매개변수 로깅의 모든 변경은 필연적으로 사후 처리 스크립트에 영향을 미칩니다.

가중치와 편향(W&B/wandb)은 내가 꽤 늦게 찾았지만 지금은 모든 프로젝트에서 사용하는 보석 중 하나입니다. 몇 줄의 코드로 기계 학습 실험을 추적, 비교, 시각화 및 최적화할 수 있습니다. 또한 데이터 세트를 추적할 수 있습니다. 많은 옵션에도 불구하고 W&B는 매우 친숙한 웹 인터페이스로 쉽게 설정하고 사용할 수 있습니다.

관심 있는 분들은 빠른 설정 튜토리얼을 확인하세요. 여기에서 지금 확인해 보세요..

ML플로우

 
 



작성자의 이미지.

 

W&B와 마찬가지로 MLFlow는 모델이 학습된 코드, 모델 및 데이터 세트를 로깅하는 기능을 제공합니다. 데이터, 모델 및 코드를 로깅하는 용도로만 사용했지만 그 이상의 기능을 제공합니다. 실험, 재현성 및 배포를 포함한 전체 ML 수명 주기를 관리할 수 있습니다.

모델에 빠르게 통합하려면 다음을 확인하십시오. 지도 시간. Databricks는 또한 아주 좋은 설명 MLflow의.

화면

 
 
실험을 밤새도록 두고 당신의 기계가 잠들지 않기를 바라는 것은 내 박사 과정의 전반기 선택사항이었습니다. 작업이 원격으로 이동할 때 ssh 세션 중단에 대해 걱정하곤 했습니다. 코드가 몇 시간 동안 실행되었고 거의 수렴되었습니다.

나는에 대해 배웠다 화면 기능이 다소 늦게 작동하여 아침에 반쯤 뒷받침된 결과로부터 자신을 구할 수 없었습니다. 그러나 이 경우에는 전혀 늦지 않는 것보다 늦는 것이 훨씬 낫습니다.

화면 단일 ssh 세션에서 여러 셸 세션을 시작하고 사용할 수 있습니다. 로 시작된 프로세스 화면 세션에서 분리했다가 나중에 다시 연결할 수 있습니다. 따라서 세션 종료 또는 터미널 충돌에 대해 걱정할 필요 없이 백그라운드에서 실험을 실행할 수 있습니다.

기능 요약 여기에서 지금 확인해 보세요..

협업

 
 
학계는 효과적인 팀 관리를 위한 적절한 메커니즘이 없는 것으로 유명합니다. 이것은 개인 기여에 대한 매우 엄격한 요구 사항에 의해 어느 정도 정당화됩니다. 그럼에도 불구하고 머신 러닝이 발전하는 속도에는 공동의 노력이 필요합니다. 다음은 특히 원격 작업의 새로운 영역에서 효과적인 의사 소통에 편리한 두 가지 기본적인 도구입니다.

GitHub의

 
 
아주 기본이죠? 학계에서 사람들이 자신의 코드를 추적하는 방법에 대한 모든 공포를 본 후에 버전 제어에 정통하는 것이 얼마나 중요한지 강조할 수 없습니다. code_v1, code_v2라는 폴더가 더 이상 없습니다.

Github는 코드 추적, 병합 및 검토를 위한 매우 유용한 프레임워크를 제공합니다. 팀을 구축할 때마다 깊은 이미지 품질 메트릭 각 멤버는 병렬로 작동하는 자체 코드 분기를 가질 수 있습니다. 그런 다음 솔루션의 다른 부분을 함께 병합할 수 있습니다. 누군가 버그를 소개할 때마다 작동 중인 버전으로 되돌리기가 매우 쉽습니다. 전반적으로 나는 이 기사에서 언급한 모든 도구 중 git을 가장 중요한 것으로 평가합니다.

이 단계를 확인하십시오 안내 빨리 시작하는 방법.

루시드 차트

 
 
Lucidchart는 내가 사용하기 전에 최근에 나에게 소개되었습니다. draw.io — 다이어그램 생성을 위한 매우 간단한 인터페이스. Lucidchart는 천 배 더 강력하고 훨씬 더 다양한 기능을 가지고 있습니다. 주요 장점은 공동 작업을 위한 공유 공간과 다이어그램 옆에 메모를 작성할 수 있는 기능입니다. 거대한 템플릿 세트가 있는 거대한 온라인 화이트보드를 상상해 보십시오.

빠른 시작을 위해 이것을 확인하십시오 지도 시간 Lucidchart의 페이지.

심상

 
 
수많은 논문 제출, 특히 실패한 논문을 통해 발표가 종종 결과만큼 중요하다는 것을 배웠습니다. 평소 시간이 많지 않은 심사위원이 글을 이해하지 못하면 바로 거절당한다. 급하게 만든 이미지는 좋지 않은 인상을 줍니다. 누군가 나에게 "차트를 만들 수 없다면 어떻게 당신의 결과를 믿을 수 있습니까?"라고 말했습니다. 나는 이 진술에 동의하지 않지만, 인상이 중요하다는 점에는 동의합니다.

잉크 스케이프

 
 
그림은 천 마디 말의 가치가 있습니다(사실, 수정 84.1 단어).

Inkscape는 벡터 그래픽을 위한 무료 소프트웨어입니다. 사실 나는 학부에서 웹 개발 과정에서 그것을 사용하는 방법을 배웠습니다. 그러나 나는 박사 과정 동안에만 그것을 온전히 즐기는 방법을 배웠습니다.

Inkscape가 제공하는 모든 기능 중 특히 가치 있는 것은 텍스트 텍스트 확대. 이 패키지를 사용하면 유액 수식을 이미지로 매끄럽게 만듭니다.

무수히 많은 자습서가 있지만 기본 기능에 대해서는 Inkscape 팀에서 제공하는 것을 권장합니다. 여기에서 지금 확인해 보세요..

스트림릿

 
 
결과를 보여주기 위해 간단한 웹사이트나 간단한 기계 학습 애플리케이션을 만들어야 했던 적이 있습니까? Streamlit을 사용하면 몇 줄의 파이썬 코드만으로 가능합니다.

종이 보충 자료에 특히 유용하다는 것을 알았지만 쉽게 배포하고 클라이언트에게 프로젝트 데모를 보여줄 때는 훨씬 더 유용할 수 있습니다.

빠른 시작을 위해 이것을 확인하십시오 지도 시간.

요약 및 그 이상

 
 
업계에서 자신을 포지셔닝하면서 박사 학위를 마치는 것은 쉽지 않았습니다. 그러나 그것은 내가 박사 학위의 초기 단계에서 받았으면 하는 몇 가지 중요한 교훈을 가르쳐 주었습니다.

가장 중요한 교훈은 배우고 변화하려는 호기심과 준비가 작업의 질에 큰 영향을 미칠 수 있다는 것입니다.

다음은 각 섹션에서 언급한 자습서의 요약입니다.

도커튜토리얼
콩다튜토리얼
가중치 및 편향튜토리얼
ML플로우튜토리얼
GitHub의튜토리얼
화면튜토리얼
잉크 스케이프튜토리얼
스트림릿튜토리얼
루시드 차트튜토리얼

이 기사가 마음에 들면 친구와 공유하십시오! 기계 학습 및 이미지 처리 주제에 대한 자세한 내용을 보려면 구독을 누르십시오!

내가 놓친 것이 있습니까? 주저하지 말고 쪽지나 댓글, 쪽지 남겨주세요!

 
바이오 : 알리악세이 미하일리우크 Computer Vision, Preference Aggregation 및 Natural Language Processing에서 기계 학습 알고리즘을 연구, 개발, 배포 및 유지 관리하는 입증된 실적을 보유하고 있습니다.

실물. 허가를 받아 다시 게시했습니다.

관련 :

출처: https://www.kdnuggets.com/2021/09/nine-tools-mastered-before-phd-machine-learning.html

타임 스탬프 :

더보기 너 겟츠