멀티 AI 에이전트 구축기_EP1
두 번째 이야기입니다. 전편에선 다소 거창하지만 '왜 멀티 AI 에이전트가 필요할까'를 말씀드렸었죠. 이제 본격적인 구축에 들어가 보려고 합니다.
사실 얼마 전에 AI 에이전트를 주제로 한 강의를 들을 기회가 있었습니다. 대체로 좋았는데, ‘이 정도는 아시죠?’ 하고 넘어가는 지점들이 있어 코딩 경험이 없는 분들이 따라가기엔 쉽지 않겠다는 생각이 들더군요. 이번 회차의 목표는 'AI 에이전트들을 마음껏 굴릴 작업실’을 만들어주는 것입니다. 새로운 팀원이 들어오면 자리를 마련해 주고 전화나 인터넷 회선을 점검해 주듯, AI 에이전트들도 비슷한 과정을 거칩니다. 다만 그 모든 것을 소프트웨어로 한다는 점이 다를 뿐이죠.
사무실 인테리어를 하거나 공간을 정리한다고 생각하시면 마음이 편하실 겁니다.
인테리어의 시작: 물리적 공간 마련하기
우선 AI 에이전트가 활동할 물리적 공간, 즉 ‘작업실’을 마련해야 합니다. 저는 기존에 사용하시던 C 드라이브가 아닌, 별도의 SSD(크면 클수록 좋습니다)를 사용하시길 강력하게 추천해 드립니다. 단순히 ‘SSD가 빠르니까’라는 이유 때문만은 아닙니다.
윈도가 설치된 C 드라이브를 사무 공간의 ‘공용 회의실’에 비유해 봅시다. 회의실은 모두가 사용하는 공간으로, 다양한 활동이 끊임없이 일어납니다. 그런데 이 회의실에 정밀 기계 부품이나 공구들을 대량으로 펼쳐놓고 작업을 한다면 어떨까요? 공간이 어지러워지는 것은 물론이고, 다른 팀원이 지나다니다 부품을 밟거나 조립을 방해할 수도 있습니다. 공간 전체가 어수선해지겠죠.
우리가 만들 AI 에이전트 프로젝트는 공용 공간에서 처리하는 일상 업무와는 성격이 다릅니다. 최소 수십 기가바이트(GB)에서 수백 기가에 달하는 거대한 언어 모델(LLM)들을 다운로드하고, 플랫폼에 올려 수많은 테스트를 진행해야 하거든요. 이런 전문적이고 무거운 작업들을 ‘공용 회의실(C 드라이브)’에서 진행하는 것은 좋은 그림이 아닙니다. 운영체제의 성능을 저하시키거나, 중요한 시스템 파일과 충돌을 일으킬 가능성도 배제할 수 없습니다. 별도의 작업실(SSD)이 있다면 깔끔하게 해결되는 문제입니다. 그리고 이게 가장 결정적인 이유 같은데, 막상 테스트나 작업을 시작하면 예상보다 용량이 금방 부족해집니다. 펼쳐 놓을 부품과 공구가 제법 많거든요.
기초 공사: 인터넷과 전화선 설치하기
작업실이 마련되었다면, 이제 가장 기본적인 설비인 ‘인터넷’과 ‘전화선’을 깔아줄 차례입니다. 사무실에 인터넷이 없으면 일이 안 되겠죠. AI 세계에서 인터넷의 역할을 하는 것이 바로 ‘파이썬(Python)’이라는 프로그래밍 언어입니다. 상대적으로 문법이 간결해서 배우기 쉽고, AI 개발에 필요한 거의 모든 도구들이 파이썬을 기반으로 만들어져 있어 사실상의 표준어로 통용됩니다.
파이썬을 설치하는 방법은 여러 가지가 있지만, 전 ‘아나콘다(Anaconda)’라는 배포판을 사용할 겁니다. 파이썬 공식 설치 파일을 사용하면 기본 언어만 설치되기 때문에, AI 플랫폼 개발에 필요한 SciPy, NumPy 같은 여러 전문 공구(패키지)들은 우리가 직접 하나하나 따로 설치해야 합니다. 이 과정에서 예상치 못한 문제가 생길 수 있죠. 아나콘다는 이런 번거로움을 덜어주기 위해, 파이썬에 자주 사용하는 핵심 도구들까지 한 번에 모아서 제공해 줍니다.
아무 브라우저나 열어 아나콘다 공식 다운로드 페이지에 접속해 최신 버전의 ‘Windows installer (64-bit)’ 설치 파일을 다운로드합니다. 설치 파일을 실행한 뒤, 설치 위치는 기본 경로인 “C:\Users\<사용자 계정>\Anaconda3”으로 유지해 주세요. 경로를 바꾸면 나중에 다른 프로그램이 얘를 찾지 못하는 경우가 생기거든요. 설치가 끝나면 시작 메뉴에서 ‘Anaconda Prompt’를 찾아 실행하고, 아래 명령어들을 차례로 입력해 파이썬 버전을 확인하고 전체 패키지를 최신 상태로 업데이트해 줍니다.
python --version
conda update --all
인터넷이 깔렸으니 이제 아이디어를 구체화하고 명령을 내릴 ‘전화선(코드 프로그램)’도 연결해야겠죠? VSCode나 파이참(PyCharm) 같은 다양한 도구들이 있으니 편한 프로그램을 사용하시면 됩니다. 요즘은 Gemini, Copliot 같은 어시스트 프로그램까지 통합되니 좋더군요. 하다가 모르면 띄워서 물어보면 되니 부담이 많이 줄었습니다.
이제 기초 공사가 끝났습니다.
구역 나누기: ‘가상 환경’이라는 파티션
작업실을 확보했고 인터넷과 전화선까지 깔았습니다. ‘그럼 이제 작업실에 공구와 부품을 깔고 바로 시작하면 되는 거 아니냐’고 생각하실 수 있지만, 넓은 작업실에서 단 하나의 프로젝트만 진행하기엔 아깝단 생각이 듭니다. 이럴 땐 통상 프로젝트별로 ‘가상 환경(Virtual Environment)’이라는 파티션을 쳐서 공간을 효율적으로 사용합니다. 각 프로젝트에 필요한 공구와 부품(라이브러리)을 독립된 공간에 모아둠으로써, 여러 프로젝트를 소화하면서도 서로 다른 프로젝트의 재료들이 뒤섞여 엉망이 되는 재앙을 막는 것이죠.
이제 파티션을 만들어보겠습니다. 시작 메뉴에서 ‘Anaconda Prompt’를 실행하고 아래 명령어를 입력해 주세요. 저는 ‘mlrs’라는 이름의 파티션에 파이썬 3.10 버전을 설치할 겁니다. 아, mlrs는 'Multi Layer ai Resolver System'의 약자입니다. 명령어는 이렇게 구성됩니다.
conda create -n mlrs python=3.10
위 명령을 실행하면 c:\\users\\<사용자 계정>\\anaconda3\\envs\\mlrs라는 폴더가 생기면서 그 안에 필요한 것들을 설치하겠냐고 묻습니다. 이때 “y”를 입력하고 엔터를 눌러 설치를 진행합니다. 설치가 끝나면 conda env list 명령어로 우리가 만든 ‘mlrs’ 파티션이 잘 만들어졌는지 확인해 볼 수 있습니다.
파티션을 만들었으니 이제 그 안으로 들어가 봐야겠죠? 프롬프트에 'conda activate mlrs'라고 입력하여 가상 환경을 ‘활성화’합니다. 그러면 명령어 입력 줄 맨 앞에 (base)가 (mlrs)로 바뀔 겁니다. 이 표시는 '지금 ‘mlrs’라는 이름의 파티션 안에 들어와 있습니다'라는 의미입니다. 이제부터 이 공간 안에서 마음껏 지지고 볶으며 프로젝트를 진행하면 됩니다.
마지막으로, 우리가 사용하는 전화기(VSCode)에도 ‘mlrs’ 파티션으로 연결되는 내선 번호를 알려줘야 합니다. VSCode를 실행하고 단축키 Ctrl + Shift + P를 눌러 명령 팔레트를 연 뒤, Python: Select Interpreter를 검색해 실행합니다. 나타나는 목록에서 방금 만든 (mlrs) 환경의 파이썬 파일(Python 3.10)을 선택해 주세요. 이제 VSCode에서도 ‘mlrs’라는 파티션을 완벽하게 인식하고 연결할 수 있게 되었습니다.
전기 공사: GPU 사용 환경 구축하기
작업실에 전화도 되고 인터넷도 됩니다. 공간도 효율적으로 나눠 쓸 수 있게 되었죠. AI 에이전트들이 일할 준비가 거의 끝났지만, 가장 중요한 하나가 빠졌습니다. 바로 ‘전기’입니다. 마련된 작업실에서 강력한 공구를 돌리려면 전기가 필요하듯, AI 에이전트들이 거대 언어 모델을 다루기 위해서는 그래픽 카드(GPU)의 강력한 연산 능력이 필수적입니다. 엄청난 양의 계산을 아주 빠르게 처리해야 하거든요. 이 전기 공사의 핵심은 ‘CUDA - cuDNN - PyTorch(또는 Tensor Flow)’라는 세 가지 소프트웨어의 궁합을 완벽하게 맞추는 것입니다.
이 과정은 조금 복잡하게 느껴질 수 있지만, 차근차근 따라오시면 충분히 해내실 수 있습니다.
드라이버 및 버전 확인: 먼저 엔비디아 홈페이지에서 본인의 그래픽 카드 모델(제 모델은 RTX 3090)에 맞는 최신 드라이버를 설치합니다. 그다음, 내 GPU가 어떤 버전의 CUDA를 지원하는지 확인해야 합니다. CUDA 위키 페이지에서 본인 GPU의 ‘Compute Capability’를 찾습니다. RTX 3090은 8.6이므로, CUDA 11.0 이상 버전을 사용하면 되겠죠?
CUDA 및 cuDNN 설치: 이제 호환되는 버전의 CUDA와 cuDNN을 설치할 차례입니다. 제가 CUDA 12.8 버전을 설치하기로 결정했다고 가정하면. 엔비디아 개발자 사이트에서 CUDA Toolkit 12.8 버전을 다운로드하여 설치합니다. 그다음, 역시 개발자 사이트에서 CUDA 12.8과 호환되는 cuDNN 버전을 찾습니다. cuDNN 9.0 이상이면 될 거 같군요. 다운로드한 cuDNN 압축 파일 안에는 bin, include, lib 같은 폴더들이 있는데, 이 폴더 안의 파일들을 방금 설치한 CUDA 폴더(예: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8) 안의 동일한 이름의 폴더로 복사해서 붙여 넣어주면 됩니다.
파이토치(PyTorch) 설치: 마지막으로 파이토치를 설치합니다. 파이토치 공식 홈페이지의 설치 페이지로 가서, 우리 환경에 맞게 옵션(Stable, Windows, Pip, Python, CUDA 12.8)을 선택하면 pip3 install torch...로 시작하는 맞춤형 설치 명령어가 생성됩니다. 이 명령어를 복사한 뒤, (mlrs) 가상 환경이 활성화된 아나콘다 프롬프트에 붙여 넣고 엔터를 누르면 설치가 진행됩니다.
이제 인터넷, 전화, 파티션, 그리고 전기까지 모든 공사가 끝났습니다. 공간 배치는 거의 마무리된 셈이죠.
준공 검사: 에이전트야, 이제 일하자
모든 것이 완벽하게 준비되었는지 확인해 보겠습니다. 다른 건 다 필요 없고, 전기(GPU)만 잘 연결되었는지 보면 됩니다. (mlrs)가 활성화된 터미널에서 python이라고 입력해 파이썬 대화 모드로 들어간 뒤, 다음 코드를 한 줄씩 입력하고 엔터를 눌러보세요.
import torch
print(torch.cuda.is_available())
if torch.cuda.is_available():
print(torch.cuda.get_device_name(0))
AI를 굴릴 인프라가 마련되었습니다(찡긋).
수고하셨습니다. 다음 회차에서 뵙죠.