로컬에서 LLM을 돌려봅시다.. (2) 장비를 맞춰봅시다
요즘 NLP를 하고 있는데, 진입장벽이 많이 높다는 생각이 듭니다.
특히 LLM 쪽은, 하드웨어 진입장벽 때문에라도 보통 사람들이 쉽게 접근하기 어렵다는 생각이 많이 듭니다.
LLM의 시대를 연 ChatGPT의 경우에는.. 너무 높은 사양을 요구해서 개인이 실질적으로 하기는 힘들지만,
새로운 LLAMA의 경우에는, 특히 낮은 사양의 경우에는 충분히 인퍼런스 할만하다고 생각이 드는게 사실입니다.
시작하기 전에, 이 포스팅을 위해 참고를 많이 한 블로그를 소개하겠습니다.
reference : https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
거두절미하고, 어떤 GPU가 필요한지 그래프로 보여드리겠습니다.
위의 그래프를 보면, 그래도 쉽지 않은 것으로 보여집니다. 13B 이상의 모델의 학습을 위해서는 A6000을 추천하는데, A6000의 경우 다나와 최저가로 700만원 정도 합니다. 그래서 결국 Inference 를 하기 위해서는 4090 또는 3090, 또는 cloud solution을 추천한다고 합니다.
블로그 글에서 정말 여러가지 얘기를 하는데, 그 중에서 많이 공감이 됬던 얘기가 개인 컴퓨터에서 활용하는 GPU 서버는 항상 개인의 생각보다 조금 이용된다는 것이었습니다.
라고 합니다..
그 외에도, AMD는 과연 Nvidia를 따라잡을 수 있을 것이며, Cooling, Multi-GPU에 관련된 얘기도 합니다.
Multi-GPU에 관해서는, NVLink라는 하이퍼스피드 인터넷을 활용하는 방법도 많이 사용한다고 하고, 4090에 대해서는 NVLink를 지원하지 않기 때문에 PCIe를 사용해야 한다고 합니다.
그리고 8Bit 연산을 할건지, 16Bit연산을 할 건지에 따라서도 어떤 GPU를 하는지도 달라진다고 합니다. 8bit와 16Bit 연산에 있어서는, Model의 Quantization도 중요한 역할을 한다고 합니다. LLAMA가 아직 완벽한 최적화가 되어있지는 않은 것으로 보입니다.
딥러닝 LLM에서 training 및 finetuning, inferencing에서 가장 중요한 것은 VRAM이니 만큼, VRAM이 몇이냐, 또 Multi GPU가 가능하냐가 중요한 부분으로 보여집니다.
GPU서버를 구축하는 일은 너무나도 많은 부분을 생각해야되는 만큼, 한 포스팅으로 담기에는 거의 불가능에 가깝다고 느껴집니다. 또 한가지 생각해 볼만한 일은, 타워형 데스크탑 컴퓨터를 마련할 것인지, 아니면 서버형으로 마련해서 사람들과 같이 GPU 할당을 하는 서버 (SLURM이라고 하더군요.. 참고자료 : https://haawron.tistory.com/33)를 사용할 것인지를 설정할 것인지를 결정할 것 같습니다.