공대생의 팁
Windows에서 scann 라이브러리 설치하기
Justin T.
2023. 1. 5. 00:41
인공지능 프로그래밍 개발을 하다보면 거의 대부분의 라이브러리가 Linux를 기반으로 설계되어 있습니다. 그러다보니 Windows 환경에서 개발을 시도하려 하다보면 Ubuntu에서 단지 한 줄의 명령어 입력으로 해결되는 과정이 번거롭게 되는 일들이 많습니다. 특히 특정 패키지에 종속된 패키지를 설치할 때 이를 해결하는 것이 상당한 시간이 소요 되는 경우가 많습니다.
이번 포스팅에서는 Google Research에서 개발한 scann 라이브러리를 Windows 환경에 맞추어 설치하는 방법에 대해 소개드리고자 합니다.
ScaNN
ScaNN(Scalable Nearest Neighbors)은 규모에 따라 효율적인 벡터 유사성 검색을 수행할 수 있는 라이브러리입니다.
ScaNN은 크기와 분포가 다른 데이터셋에 맞도록 구성할 수 있습니다. Tensorflow와 Python API를 모두 갖추고 있으며, 라이브러리가 대규모 데이터셋에서 강력한 성능을 발휘할 수 있게 해줍니다
Linux 환경에서 ScaNN은 다음과 같은 명령어 단 한줄로 바로 설치가 가능합니다.
$ pip install scann
그러나 Windows에서는 ScaNN 라이브러리가 별도로 설치되어 있지 않아 직접 패키지를 다운로드 하여 설치해야 합니다. 지금부터는 Windows 환경에 맞추어 ScaNN을 설치하는 방법에 대해 다루어보도록 하겠습니다.
----------------
1. 아래의 Google Research의 github 웹페이지에서 소스코드를 다운로드 받습니다.
https://github.com/google-research/google-research/archive/refs/heads/master.zip
※TensorFlow 2.10 버전까지 Windows 로컬 환경의 GPU를 사용할 수 있습니다. 2.11 버전 이후부터 Windows에서 GPU를 사용하기 위해서는 Docker에 설치하여 사용할 수 있으나 Windows 10의 경우 Insider Preview 모드에서만 Docker에서 GPU를 사용할 수 있습니다.
이 포스팅에서는 TensorFlow 2.10 버전을 기준으로 설명드릴 예정이며 만약 Windows 로컬 환경에서 GPU 사용을 원하시는 분은 TensorFlow 2.10 버전에서 사용할 수 있는 ScaNN 1.2.8 버전을 첨부드리오니 해당 소스코드를 활용하시길 권장드립니다.
2. ScaNN 버전에서 호환되는 TensorFlow 버전을 설치합니다. ScaNN 1.2.8 버전을 기준으로 TensorFlow 2.10 버전을 설치합니다. TensorFlow 2.10 버전의 경우 Python 3.10 이하 3.7 이상의 버전을 지원하므로 Python 또한 적합한 버전으로 설치해줍니다.
pip install tensorflow==2.10 python<=3.10
3. 자신이 설치하는 TensorFlow와 호환되는 Cuda와 Cudnn 버전을 아래의 사이트에서 확인하여 cudatoolkit과 cudnn을 설치합니다.
https://www.tensorflow.org/install/source_windows#tested_build_configurations
TensorFlow 2.10을 기준으로 cuda 11.2 버전과 cudnn 8.1 버전이 호환됨을 확인할 수 있습니다. 자신이 설치하는 TensorFlow의 호환 버전에 맞추어 cuda와 cudnn 및 msvc를 설치해줍니다.
conda install cudatoolkit=11.2 cudnn=8.1
MSVC2019는 아래의 링크를 통해 설치하실 수 있습니다.
https://aka.ms/vs/17/release/vs_BuildTools.exe
4. ScaNN 소스코드 설치
지금까지의 진행을 통해 ScaNN 소스코드를 빌드할 수 있는 환경을 갖추었습니다. 다음으로 ScaNN 소스코드를 아래의 명령어를 통해 설치를 완료하실 수 있습니다.
> cd scann
> pip install -e .
300x250