Study/AI

M1 Mac(Apple Silicon)에서 머신러닝 개발환경 구축하기

Dream Amal 2022. 1. 29.

M1 맥북을 새롭게 구매하게 되면서, 기존에 익숙해져있던 환경이 아닌 새로운 환경에 적응하기 위한 시간이 필요했다.

나는 이 새로운 M1을 정말 있는 것 없는 것 뽕 뽑고 싶은 1인으로써,

M1 맥북에 가장 적합한 개발 환경을 Setting하기 위해 정말 많은 reference를 참고했다.

그냥 쉽게 Anaconda를 설치해서 사용할 수도 있지만,

2022년 1월 현재 Anaconda는 아직 M1을 완벽하게 지원하고 있지 않기때문에

다른 방법으로 머신러닝 개발에 필수적인

Conda, Tensorflow, numpy, scipy, pandas 등을 설치하기로 했다.

이런 저런 시도 끝에 결국 가장 깔끔하게 개발환경을 구축할 수 있는 방법을 찾았다.

1. Homebrew 설치

우선, Homebrew가 깔려있지 않다면 먼저 아래 명령어로 Homebrew를 install 해주자.

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

# 혹시 오류가 난다면 , <username> : 자기 local username 으로 변경 후 실행
$ echo 'eval $(/usr/loack/bin/brew shellenv)' >> /Users/<username>/.zprofile
$ eval $(/usr/loacl/bin/brew shellenv)

2. Miniforge 설치

다행히 Miniforge는 공식적으로 Apple Silicon을 지원한다.

해당 깃허브로 이동해 바로 다운로드 하는 방법도 있지만, 편안하게 터미널에서 brew 명령어를 사용하는 것을 추천한다.

$ brew install miniforge

# 설치 후, terminal에 conda를 init
$ conda init bash
$ conda init zsh

이렇게 설치해주면 터미널에서 conda 명령어가 제대로 작동하는 것을 확인할 수 있다.

(나는 zsh-syntax-highlighting 플러그인이 설치되어 있어서 바로 확인이 가능했지만,

혹시나 highlighting이 되지 않는다면, 설치 후 .zshrc 파일을 열어 확인해보는 방법도 있다.

또한, 나는 터미널을 실행시켰을 때 base 환경이 자동으로 활성화되는 것이 싫어서 아래 명령어를 추가적으로 실행했다.

$ conda config --set auto_activate_base false

3. Conda 가상환경 생성

가상환경을 생성하는 방법은 아주 간단하다.

ml 대신에 자신이 설정하고 싶은 이름으로 변경하고, 원하는 파이썬 버전을 적어주면 끝이다.

나는 Python 3.9 버전을 사용하도록 환경을 구축했다.

$ conda create -n ml python=3.9

# 설치 후, 실제로 가상환경이 구축되었다는 것을 알아보기 위한 명령어
$ conda info --envs

가상환경이 구축된 것을 확인 했다면, 이제는 해당 환경으로 이동할 차례이다.

내 가상환경의 이름이 ml이기때문에 나는 ml을 적었지만, 혹시나 다른 이름으로 설정했다면 해당 이름을 적어주면 된다.

$ conda activate ml

# 해당 가상환경에서 벗어나고싶을 때는 다음 명령어를 사용
$ conda deactivate

이렇게 명령어를 입력하고 나면 터미널 앞에 다음과 같이 괄호와 함께 가상환경의 이름이 뜬다.

앞으로 설치할 것들은 모두 해당 가상환경에 설치해야 한다.

모든 환경설정이 끝나기 전까지는 deactivate하지 말자!

4. Openblas 설치

numpy나 scipy 같은 라이브러리를 설치해야 하는데, M1에서는 몇몇 라이브러리 설치에서 오류가 보인다는 글이 많다.

때문에 Homwbrew를 이용해 Openblas를 설치하고, pip대신 Openblas를 인식할 수 있도록 설정해주면,

이후에 생길 오류들을 대비할 수 있다.

$ brew install openblas

# 다른 라이브러리를 pip로 설치할 때 Openblas를 인식할 수 있도록 설정
$ export OPENBLAS=$(/opt/homebrew/bin/brew --prefix openblas)
$ export CFLAGS="-falign-functions=8 ${CFLAGS}"

이제 뭐든지 원하는 라이브러리를 설치해도 된다!

5. Tensorflow 설치

M1에서 Tensorflow를 설치하기 위해서는 conda에 의존성을 추가로 설치해줄 필요가 있다.

$ conda install -c apple tensorflow-deps

# 나머지 플러그인 설치
$ pip install tensorflow-macos
$ pip install tensorflow-metal

여기까지 아무 문제 없이 실행되었다면 tensorflow는 완벽하게 설치 완료된 것이다!

 

마지막으로 최소한의 패키지 설치를 마친 후, conda list를 통해 패키지를 확인하면, 패키지가 설치 된 channel까지 확인이 가능하다.

$ conda install scikit-learn
$ pip install jupyter

# 설치된 플러그인 확인
pip list 
# 또는
conda list

 

나는 마지막으로 Jupyter notebook에 접속해 확인해보는 것으로 설치를 마무리 했다.

728x90

댓글