Google Colab 연결 유지

Yonghye Kwon·2020년 3월 14일
3

월 9.9 달러라는 거금을 들여 Colab Pro 를 구독했다. 열나게 딥 러닝 Training 코드를 작성한 뒤에 실행을 시켜놓고 Colab 브라우저를 종료시킨 후 잠자리에 들었다.

나는 흐르는 눈물을 닦아내며 나지막이 말했다.
"학습이 중단되었기 때문입니다."

나는 브라우저를 종료하더라도 24시간 동안 학습이 정상적으로 진행될 거라고 생각했다.

몇 시간 후에 다시 Colab 파일을 열어보니 런타임이 끊겨있고 학습 또한 중단되어 있었다. 그럼 브라우저를 종료시키지만 않으면 런타임이 안 끊기나? 했는데 일정 시간 동안 아무런 입력이 없는 경우 런타임이 끊겼다.

그렇다. 월 9.9 달러로 24시간 동안 고성능의 PC를 사용 가능할 것이다! 라고 생각한 것은 욕심이었다. Colab 런타임 유지 관련 사항은 Colab FAQ 에 나와 있으니 이용 전에 꼭 읽어보는 것을 권한다. 브라우저가 켜진 상태면 "최대" 24시간(Pro 기준) 런타임 연결을 보장하려 "노력"하고 90분간 입력이 없으면(Idle) 연결이 끊긴다. 그런데 실제로는 Idle 상태에서 90분이 지나지 않았어도 연결이 끊기는 경우가 있었다.

해결법

하지만, 분명 나와 같은 생각으로 Colab 을 이용하려 한 사람이 있을 거라 생각했고, 해결법도 있으리라 생각했다.

역시나 해결법은 있었다.

How to prevent Google Colab from disconnecting ?

글을 읽어보니 JavaScript를 이용하여 브라우저상에서 일정 시간마다 특정 이벤트를 발생하게 하여 구글님께 "저 작업 중이니까 연결 끊으시면 안 돼요~" 라고 신호를 주는 방식이었다.

먼저, 아래의 코드를 복사한다.

function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button").click() 
}setInterval(ClickConnect, 1800000)

위 코드는 30분마다 colab-toolbar-button을 클릭하는 코드이다. 30분 마다 Text 섹션이 추가된다. 만약에 이 방법을 사용해도 런타임 연결이 종료되는 경우 setInterval 함수의 두 번째 파라미터의 값을 더 작은 값(단위는 millisecond)으로 설정해보자.

이후, Colab 브라우저(브라우저는 Chrome 기준)로 이동하여 F12 를 눌러 개발자 도구를 활성화한다.

마지막으로 Console 탭에서 복사한 코드를 붙여넣고 엔터!

주의할 점

브라우저는 학습이 중단되기 전까지 종료되면 안 된다. 이 말은 즉슨, 내 컴퓨터도 종료되면 안되고 절전모드로 진입해서도 안 된다.

마무리

일종의 Cheating으로 생각되기 때문에 구글님께서 언제 이 방법을 막으실지는 모르겠지만... 우선은 이렇게라도 학습을 시킬 수 있음에 만족한다.

2020년 3월 20일, 막힌 거 같다. OTL

2020년 3월 21일, 안 막힌 거 같다?! 해당 방법을 적용해도 런타임이 종료되는 경우, 브라우저를 모두 종료하고 다시 실행시킨 후 적용해보자.

profile
용혜입니다.

3개의 댓글

comment-user-thumbnail
2021년 5월 18일

ㅠㅜ 감사합니다 도움이 되었습니다.

답글 달기
comment-user-thumbnail
2021년 6월 23일

덕분에 줌에서 엘론 머스크 딥페이크를 풀타임 유지할 수 있었습니다
고맙습니다 0hye님

1개의 답글