카테고리 없음

코랩 런타임 안 끊기게 하기

caramel-bottle 2024. 2. 22.

코랩은 구글에서 제공하는 클라우드 기반 대화형 인터프리터입니다.

 

구글이 제공하는 컴퓨터를 웹상에서 빌려 코드를 작성할 수 있다는 장점이 있습니다.

 

GPU나 TPU도 무료로 사용할 수 있는데요, 할당되는 GPU가 매번 다를 수 있으니 참고하여 사용하는 것이 좋습니다.

 

무료로 GPU를 사용할 수 있다는 점에서 많은 사람들이 딥러닝 모델 학습에 코랩을 자주 사용하는데요.

 

코랩을 사용하여 오랜 시간 학습을 돌리다보면 런타임이 끊겨 학습한 내용이 날아가는 경우가 생깁니다.

 

(본인도 여러번 겪고 멘탈이 나간...) 

 

런타임이 끊기기 전에 입력이나 요청을 준다면 이 문제를 해결할 수 있습니다.


💡 해결

아래 코드는 주기적으로 페이지에 이벤트를 발생시켜 런타임이 끊기지 않게 해줍니다.

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

이 코드를 코랩이 실행중인 페이지의 콘솔창에 그대로 입력하면 됩니다. (코랩이 실행중인 창에서 F12 혹은 fn + F12)

 

숫자 1800000은 1800000ms를 의미합니다. 총 1800초로 30분에 한번씩 이벤트가 발생합니다.

 

이 숫자를 수정하면 이벤트 주기를 설정할 수 있습니다.

 

입력 후 Working이 출력되는지 확인합니다.

이제 컴퓨터가 꺼지거나 코랩 창이 꺼지지 않는 이상 런타임이 끊기지 않을 것입니다!


🔮 설명

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

이 코드에서 접근한 객체는 <colab-toobar-button> 태그에 id가 connect인 요소입니다.

 

아래처럼 런타임이 끊기지 않은 상태에선 "연결 중"으로 표시됩니다. 

 

만약 위 코드가 오류가 난다면 코랩 페이지의 HTML이 수정되었기 때문일 가능성이 있습니다.

 

그럴 경우 아래 코드를 사용해보시길 바랍니다!

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)

참고

https://medium.com/@shivamrawat_756/how-to-prevent-google-colab-from-disconnecting-717b88a128c0

 

How to prevent Google Colab from disconnecting ?

Copy and paste this script in the console.

medium.com

 

댓글