[TIP] Colab runtime disconnection 방지하기 (Chrome)

2022.01.30 13:49 11,686 Views
안녕하세요 !🤗 데이크루 1기 입니다!
오랜시간 실행되는 loop나 코드를 실행시키고 쉬고오면 코랩의 runtime이 끊겨 불편한 경우가 많았는데요
실제로 구글 코랩은 30분 이상 자리를 비울경우 자동으로 runtime이 끊어집니다.
이 불편함을 해결할 수 있는 방법을 오늘 TIP으로 소개하고자 합니다!


-------------------------------------------------------


➡️Colab에서 runtime 유지하기


  • 코랩을 사용중인 웹 브라우저에서 관리자 도구(DevTools)를 실행합니다.
  • 크롬을 사용하는 경우 키보드의 F12버튼을 누르면 DevTools를 사용할 수 있습니다.
  • F12버튼을 누른 후, console창을 누릅니다. (혹은 ctrl + shift + i 를 사용하면 바로 console창을 사용할 수 있습니다!)

  • 그럼 위와같은 화면이 나타납니다.
  • 콘솔창 밑에 보면 글씨를 입력할 수 있는데요, 이제 여기에 다음과 같은 코드를 복사 붙여넣기 해주시면 됩니다.


function KeepClicking(){

console.log("Clicking");

document.querySelector("colab-connect-button").click()

}

setInterval(KeepClicking,60000)


  • 이는 런타임 유지를 위해 계속 페이지를 click할 수 있는 함수입니다. 60000으로 설정하면, colab-connect-button을 60초에 한번씩 클릭할 것입니다.
  • 코랩은 30분마다 runtime을 체크하니 30분 이하로만 숫자 60000을 변경해주셔도 상관없습니다! ( 1800000이 30분에 해당합니다.)


만약 오류가 발생할 경우 -

  • 제 경우 저 코드가 잘 실행 되었으나, stack overflow를 보니 저 방법이 불가능한 분이 있으셨다고 합니다.
  • 그분은 다음과 같은 코드를 실행하였다고 하니 참고하시면 좋을 것 같습니다!

document.querySelector("#connect").click() or

document.querySelector("colab-toolbar-button#connect").click() or

document.querySelector("colab-connect-button").click()

  • 위의 코드가 포함되는 함수가 모두 오류가 날 경우,
function ClickConnect(){
  console.log("Connnect Clicked - Start"); 
  document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
  console.log("Connnect Clicked - End"); 
};
setInterval(ClickConnect, 60000)



Cf. GPU 환경일 때 가끔 runtime이 중단되는 이유

  • Colab에서 런타임 -> 런타임 유형 변경 ->  GPU로 설정하면 코랩 환경을 GPU로 설정할 수 있습니다
  • 먼저, GPU에 연결할 때 클라우드 시스템에서 한 번에 최대 12시간이 주어집니다.
  • 가끔 이런 12시간이 주어졌는데도 불구하고 runtime이 끊기는 경우가 있는데요
  • Colab의 FAQ에 의하면 Colab은 interactive use를 위한 것이기 때문에, 특히 GPU에서 장시간 실행되는 경우 중단될 수 있다고 합니다.


-------------------------------------------------------


  • 이상으로 colab의 runtime 유지 방법에 대하여 알아봤습니다!
  • colab을 사용하시는 분들에게 많은 도움이 되었으면 좋겠습니다!
  • 읽어주셔서 감사합니다 ! 🤗


   *본 포스팅은 데이콘 서포터즈 “데이크루" 1기 활동의 일환입니다. ✔️


참고
https://stackoverflow.com/questions/57113226/how-to-prevent-google-colab-from-disconnecting
https://brother-big.tistory.com/11
https://towardsdatascience.com/10-tips-for-a-better-google-colab-experience-33f8fe721b82