개발/Infra문제해결

[Pytorch]ReadTimeoutError 에러 해결하기

코드아키택트 2023. 12. 10. 21:19
반응형

 

나는 잡부다 어쩌다 보니 이런 글을 자주 올리게 된다. 그래도 누군가는 이 글을 보고 문제를 해결 할 수 있겠지.

 

난무하는 AI 시대, 받쳐주지 않는 인프라

최근 ChatGPT이후 많은 회사들이 AI를 도입하고 싶어한다. ChatGPT는 정말 좋은 서비스고 아주 간단하게 사용할 수 있다. 잘 사용하면 아주 좋은 도구임에는 분명하다. 그런 흐름에 맞춰 AI 자체를 자의 또는 타의로 도입하려는 시도들도 꾸준히 늘어나는 것으로 보인다.

그 중 특정 회사 환경에서는 pip install ~ 한줄에 해결된 문제들이 제대로 되지 않는 문제가 있다. 그럼 내가 겪엇던 시행착오를 밑에 적어본다

 

No conda, Yes pip

나의 아주 짧은 리서치를 통해 conda install 과 pip install 의 차이는 하나라는 것을 알 수 있었다. conda install은 각 패키지의 depency문제를 알아서 해결해주며 깔리는 방식이고 pip은 그렇지 않다는 것이다. 그러한 점은 감안해도 conda install은 매우 느린 속도를 자랑하는 경우가 많다. 때론 어떤 컴퓨터에서는 완전 안깔리는 경우도 있다. 아마 이 글을 찾아온 사람은 conda install로 안되었기 때문에 했으리라 생각한다.

pip으로 torch를 맨처음 깔려 했을때 다음과 같은 에러가 나왔다. 이 내용중 핵심은 

SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 이 부분이라고 생각한다. 나의 짧은 지식으로는 다운받고자 하는 provider를 믿을수 없다는 소리로 보였다.

(test) C:\Users\73622>pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Looking in indexes: https://download.pytorch.org/whl/cu121
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)'))': /whl/cu121/torch/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)'))': /whl/cu121/torch/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)'))': /whl/cu121/torch/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)'))': /whl/cu121/torch/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)'))': /whl/cu121/torch/
Could not fetch URL https://download.pytorch.org/whl/cu121/torch/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='download.pytorch.org', port=443): Max retries exceeded with url: /whl/cu121/torch/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)'))) - skipping
ERROR: Could not find a version that satisfies the requirement torch (from versions: none)
ERROR: No matching distribution found for torch

 

믿을 수 없는 공급자를 믿을 수 있도록 바꿔주자

2트는 --trusted-host에 다운받고자 하는 공급자를 넣어준 것이다. 근데 안되었다. 하지만 에러의 내용이 바뀌었다. ReadTimeOutError. 시간이 부족하다는 소리다. 그렇다면 응답을 받을 시간을 늘려주면 된다.

(test) C:\Users\73622>pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 --trusted-host download.pytorch.org --trusted-host files.pythonhosted.org
Looking in indexes: https://download.pytorch.org/whl/cu121
Collecting torch
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='download.pytorch.org', port=443): Read timed out. (read timeout=15)")': /whl/cu121/torch-2.1.0%2Bcu121-cp310-cp310-win_amd64.whl

 

Timeout 시간을 늘리자

아래 코드를 보면 timeout시간이 늘어난 것을 볼  수 있다. 실제로 응답시간 문제로 보였다. 어쨋든 시간을 늘리고 나니 다소 조마조마한 구간을 넘어가고 나면 pytorch가 다운로드 되는 것을 볼 수 있었다.

(test) C:\Users\73622>pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 --trusted-host download.pytorch.org --trusted-host files.pythonhosted.org --default-timeout=100
Looking in indexes: https://download.pytorch.org/whl/cu121
Collecting torch
  Downloading https://download.pytorch.org/whl/cu121/torch-2.1.0%2Bcu121-cp310-cp310-win_amd64.whl (2473.9 MB)

 

끝맺으며

회사에서 글을 쓸 수 없다보니 핵심이 되는 내용만 가져왔다. 누군가에겐 다소 불친절한 내용이 될 수 있다는  생각이 들기도 한다. 그러나 두 세번 산을 넘어 간신히 해결한 내용이니 누군가에겐 분명 필요한 내용이라고 본다. 아마도 여기까지 왔다면 사내 보안규정이 상당히 까다로운 곳이리라 생각한다. 그러다보니 pytorch자체가 설치 안된다고 믿고 있을지도 모른다. 

아무튼. 여기까지 찾아온 열정을 축하하며

취어스

 

참고자료

https://funfunit.tistory.com/170

반응형