정보이론2023. 6. 25. 18:25

 최근 메모리나 저장장치의 가격하락을 다시 실감했다. 2TB 내장 고속 스토리지(M.2 NVMe SSD)가 20만원 이하에서 거래되고 있으며, 32G 고속 메모리(DDR4 Ram)도 10만원 이하로 거래된다. 아마 이 가격이 잘 실감이 안되시는 분들도 많을테다. 대개 PC나 노트북을 다 합쳐진 채로 구매하신 분들이 대부분일테다. 또한 여기다가 애플은 이러한 메모리와 CPU연산, GPU연산이 모두 가능한 애플 실리콘이라는 칩을 계속 업그레이드하고 있기도 하다. 동급 인텔칩대비 더 나은 성능과 더 적은 전력 소모를 자랑한다.

 

2TB SSD는 20만원이하, 32G 고속 램도 10만원 이하면 구매할 수 있다

 ChatGPT로 대표되는 거대 언어모델의 저장 정보를 살펴보면, 메타에서 오픈한 LLAMA 7B(파라메터 크기, 70억)가 그 모델 저장 파일을 다운로드 받으면 약 13GB 정도가 된다. ChatGPT(22.11월 최초 버전인 3.5)가 175B모델이라고 알려져있는데, 수평해서 곱하면 약 325GB정도 된다. 즉, 온 인터넷의 문서와 책을 집대성하여, 그럴듯하게 인간처럼 답변해주는 ChatGPT가 그것을 위해 메모리에 로드할 파일은 325GB 정도가 제일 큰 사이즈라고 볼 수 있다. 그것도 최근 소수점을 더 축약하는 quantization 처리를 하면 용량은 더 줄어든다. LLAMA도 65B모델이 ChatGPT의 175B모델대비 성능이 유사하다고 발표했고, 계속 그 용량은 줄어들고 있다. 그래서 대략 본인은 100GB정도면 아마도 지금의 ChatGPT가 내는 성능 정도는 할 수 있는 전자뇌가 유지될 수 있다고 주장해볼 수 있다고 믿는다.

 

 이 100GB를 저장하고 싶으면 고속 스토리지로도 20만원짜리 2TB를 사도 만원정도의 비용으로 저장을 할 수 있고, 메모리에 올려서 연산을 해도 30만원 정도면 가능하게 된 세상이라고 볼 수 있겠다. 컴퓨팅 비용은 일반 가정용 PC에서도 좀 느리지만 아예 불가능하지는 않다. 즉 그 단가가 가정용의 범주에 충분히 들어올 수 있다고 생각한다. 이렇게 세상은 인간 수준의 능력을 발휘하는 무엇인가를 이제 대량생산한 정보처리 기기에서 다룰 수 있는 수준으로 급격히 들어오고 있다.

 

 내가 어린 시절만 해도 인공지능 컴퓨터는 슈퍼 컴퓨터 같은 것에서 작동하는 그 무언가라는 이미지였는데, 딥러닝을 통해 인간의 그것과 많이 닮은 것들을 해낸다는 것도 시연되었고 심지어는 그것이 가정용의 장비로도 작동한다는 사실이 지속 현실화되고 있는 모양새이다.

 

 한달 정도 어느 물리력을 사용하는 직업이든 성실히 실행하면 이제 사람을 닮은 무언가를 작동시킬 수 있는 인프라를 구매할 수 있는 시기가 된 것이다. 놀라운 시기로 접어드는 초기라고 생각이 들지 않을 수 없다.

 

 과학사에서 앞서나간 예측이 몇가지가 있는데, 가장 위대한 예측 중의 하나가 바로 슈뢰딩거의 생명이란 무엇인가에서 지적한 것이다. 생명의 정보를 담은 것은 분자 수준의 비결정 구조에 의한 것임을 예상했고 이것이 바로 DNA의 발견으로 이어진 것이 유명하다. 그정도의 안정성을 지니고 그렇게 많은 정보를 전달하기 위해서는 그정도 작은 scale의 구조에서만 가능하다고 예측한 것이다. 오히려 더 큰 구조에서는 그런 대량의 정보를 저장할 수가 없다. 큰 스케일의 자연에서는 무엇이든 녹슬고 썩기 때문이다. 그러한 안정성은 분자 수준에서나 가능하다는 것을 슈뢰딩거는 미리 알고 있었다. 

 

 그리고 그 유사한 전개로 역시 분자와 전자 수준에서 트랜지스터나 메모리 소자들이 발견되었다. 이녀석들은 엄청난 정보를 굉장히 안정적으로 다룰 수 있다. 뇌가 세포 단위에서 처리하는 정보를 더 작은 단위에서 빠르고 안정적으로 다루게 된 것이다. 그리고 이는 슈뢰딩거의 예측이 있었던 그 시기를 지나 1950년 전후하여 지금에 이르기까지 정말 놀랍게 발전하면서, 생물이 지닌 정보처리 메카니즘을 컴퓨터라는 이름으로 눈에 보이지 않는 수준에서 다루게 된 셈이다.

 

 이후로는 내 생애를 거쳐, 그것이 발전에 발전을 거듭해 하드웨어와 소프트웨어가 동시에 발전해서 이제 바야흐로, 싼 값에 특정 분야에서는 인간과 구별이 되지 않거나 오히려 더 많이 알고 있는 지능의 모습을 흉내내는 단계에 이르게 된 것이다.

 

 어찌보면 1950년대 신경망을 만들어서 그것이 지능을 갖게 할 수 있다고 믿었던 연결주의자들의 꿈은 각종 인류의 기술 발전으로 거의 실현되어 가고 있다. 그것도 우주여행 같은 비싼 형태가 아니라(우주 여행은 사실 이미 우리 앞에 있지만 가격이 너무 비싸서 소수만이 향유할 수 있다) 가정용 장비에서도 돌아갈만큼 값싸게 다가왔다.

 

 기술은 더 발전할 것이고 요구되는 자원은 더 작게, 그리고 자원의 가격은 더 떨어지는 상황이 지속될 것이 뻔하다. 결국에는 연결주의자들의 예측은 더 가속될 수 밖에 없다. 그렇게 논란이 되었던 범용 인공지능이 가능하느냐 그렇지 않느냐는 이제 선을 넘었다고 생각한다. 물론 모든 부분이 인간처럼 되는 것에는 시간이 걸리겠지만, 그게 몇십년이 걸리든 무엇이 중요하겠는가. 이미 가 방향으로 가속되고 있고, 그 증거들이 도처에 보이지 않는가.

반응형
Posted by 작동미학
머신러닝AI2023. 6. 11. 17:50

 LLM을 돌리다보니 집의 데스크탑을 계속 개선하고 있는 나를 바라보면서 쌓인 지식들을 정리해두면 어떨까 싶어 기록해둔다. LLM이 돌아가려면 고용량 메모리, 고속의 CPU, 고속의 저장장치, 고속의 인터페이스 등에 대한 의외의 지식들이 필요하다. 더군다나 llama.cpp를 통해 촉발된 GPU없이 돌리는 LLAMA가 나온 마당에 데스크톱을 잘 업그레이드하면 괜찮은 실험환경을 구축할 수 있는 상황이 지속 마련되고 있다.

 

LLM을 위한 가정용 GPU 선택:

https://infoengineer.tistory.com/106

 

GPU없이 데스크탑 Ubuntu에서 돌리는 LLAMA인 llama.cpp 구동방법

https://infoengineer.tistory.com/107

 

결론부터 이야기하면 i7, i9의 최신 세대 CPU(13세대)에 가급적 Z계열(현재기준 Z690이나 Z790)의 메인보드와 DDR5메모리, PCIe-4.0이상 기반으로 구성하라는 이야기를 하고 싶은데, 각자의 상황에 따라 어떤 변화가 가능한지 아래  간단하게 필요한 지식을 알아보자.

 

1. PCI-Express 3,4,5 이해하기

 

GPU나 M.2 NVMe SSD 스토리지 든 이 PCI-Express 방식으로 메인보드에 연결되어 통신하는데 이 녀석이 버전이 있다. 3.0, 4.0, 5.0인데 속도 차이가 꽤 있다. 

wiki 참조

 대개 요즘 GPU는 PCI-e 4.0을 많이 지원한다. 그런데 메인보드가 PCI-e 3.0만 지원한다면 그 통신 속도가 줄어들 수 밖에 없다. 따라서 가급적 PCI-e 4.0을 지원하는 CPU와 메인보드 조합을 찾자. 참고로 인텔은 11세대 CPU부터 이 PCI-e 4.0을 지원한다고 한다. 대개 고가의 GPU가 PCIe-4.0x16 (16은 통신 lane 수) 정도를 지원하니 그에 맞춰서 CPU/메인보드를 선택해 주면 별다른 큰 가격차이 없이 통신 속도가 늘어날 수 있겠다.

 

 참고로 PCI-e는 하위 호환성이 있으므로 높은 버전의 PCI-e라고 해도 낮은 버전의 PCI-e에 꼽아서 작동시킬 수는 있다. 속도는 낮은 버전을 따라간다.

 

--> 최소 PCIe-4.0을 기준으로 부품들을 살펴보자

 

2. DDR4 vs DDR5 메모리

 

 메모리도 세대가 바뀌어서 DDR4에서 DDR5로 넘어왔다. 그리고 이 둘은 메모리 꼽는 슬롯의 모양이 달라서 서로 호환이 되지 않는다. 또한 CPU도 이 각각을 지원해야만 해당 메모리를 사용할 수 있다. 그런데 CPU는 이 둘을 다 지원하는 모델도 많다(DDR4, DDR5). 하지만 메인보드는 양쪽을 다 지원할 수 없다. 왜냐하면 슬롯 모양이 다르니 선택을 해야하기 때문이다(듀얼로 서로 다른 슬롯을 채용하는 경우는 없는 것으로 알고 있다). 따라서 DDR4냐 DDR5냐는 결정을 해야한다.

 

 그렇게 CPU가 결정되고, 메인보드가 결정되면 지원되는 메모리를 알 수 있다. 개인적으로는 여유가 있다면 인텔 13세대 이상에서 지원하는 DDR5로 가라고 권하고 싶다. DDR4나 DDR5가 속도차이가 크게 나지 않는다는 평이 있으나 클락스피드가 후자가 더 높고 앞으로 계속 그렇게 활용되지 않겠는가. 그리고 메인보드 별로 이 램 지원은 각기 다르니, 원하는 메인보드를 자세히 들여다볼 필요가 있다. 주의가 필요하다. 특히 메모리 관련해서는 메인보드의 최대 용량 확인도 필요하다. 최근 사양이면 128GB를 지원하고 예전 것도 64GB정도는 지원이 되는게 일반적이긴 하다.

 

 그리고 단면램/양면램 논쟁 등이 있는데 메모리 지원은 해당 메인보드사의 홈페이지에 대부분 자세히 설명되어 있다. 단면/양면의 구분은 최근에는 중요하지 않다고 한다.

 

--> DDR5로 갈 수 있으면 가는데, 안되면 DDR4도 나쁘지 않다. 다만 꼽을 수 있는 메모리 종류와 최대 메모리는 메인보드 확인이 필요하다. 여유가 있어 128GB를 확보하면(32GB*4) llama.cpp에서 엄청난 모델을 돌려볼 수 있을지 모른다.

 

3. M.2 NVMe SSD 내장 스토리지

 

 이제 SATA방식보다는 NVMe가 훨씬 고속의 인터페이스이기 때문에 저장장치는 NVMe SSD를 고르는게 좋다. 그런데 여기서 잘 봐야하는 것은 PCIe 3.0인지 4.0인지나 실제 읽고 쓰는 속도이다. 삼성 980 pro M.2 NVMe정도 되면 PCIe-4.0을 지원하면서 7GB/s의 순차 읽기 속도를 지원한다. 반면에 970은 PCIe-3.0급이다. 가격차이가 크지 않으니 PCIe-4.0급의 NVMe를 고르고, 메인보드도 그렇게 지원하는지 확인하자. 대개 고사양 메인보드는 M.2를 4개까지 장착할 수 있는 경우가 많으니 고사양을 몇개 달아 사용해도 좋다. 과거보다 NVMe SSD는 타 부품대비 그렇게 비싸지 않다.

 

--> PCIe-4.0급의 NVMe SSD를 스토리지로 활용하자.


4. CPU는 어디까지 올릴 수 있는가?

 현행 인텔 CPU는 i3,i5,i7,i9에 13세대까지 출시되었다. 그리고 i3~i9는 숫자가 높을수록 코어수나 내부 캐시가 올라간다. 즉, 점점더 전문가용이다. 대개는 i7정도면 전문 게임용으로 홍보해서 판매한다. 

인텔 CPU의 세대별 속도 보는법

사실 최근에는 의외로 CPU별로 성능 차이가 크지 않지만, CPU는 메인보드 칩셋을 결정하고 그에 따라 앞서 밝힌 DDR4/DDR5여부, PCIe 지원 버전등을 같이 결정한다. 즉 메모리의 속도, 컴퓨터의 인터페이스 속도까지(메모리/CPU간, GPU/메인보드간) CPU와 그 시기 출시된 메인보드가 같이 세트가 되어 정해버리는 것이다. 아래는 10세대의 i3~i9 비교 표이다. core나 thread, cache등을 확인해보자.

물론 후자로 갈수록 소비 전력도 크다(i9정도면 100W급이라고 가정하면 된다)

정보공장 tistory 발췌, 10세대 인텔 CPU i값에 따른 비교 예시

여기서는 따라서 최신 세대(13세대)의 i7이나 i9를 추천한다. 주변 인터페이스의 속도가 최신이기 때문이다. 그리고 CPU에 맨 뒤에 알파벳이 붙는데 F는 내장 그래픽카드가 없고, K는 개선버전/오버클락 가능 버전이다. 어차피 GPU를 쓴다면 F버전을 선택해서 가격을 낮추는 방법도 있겠다. 오버클러킹을 하겠다면 K가 붙은 CPU를 구매하면 된다.

 

--> i7 13세대 CPU 이상 선택을 추천한다. 바로 이어 설명할 고급형 Z계열 메인보드와 오버클러킹 등 염두해두려면 K가 붙은 오버클러킹 허용 개선 버전을 선택하자.

 

5. 메인보드

 

 개인적으로는 메인보드를 중요하게 생각한다. 특히 LLM용 메인보드는 여러가지 발열 처리 등 때문에 ATX형(micro ATX같은 미니형이 아닌)을 채용해야 하고 그렇게 하면 디스크 장착 등에도 공간 여유가 있다.

 메인보드는 CPU와 그에 따른 칩셋으로 크게 결정되는데 흔히 H(보급형), B(작은크기용, mATX), Z(고급형, 오버클러킹용)로 시작된다. 이를 테면 Asrock Z790이면 고급형 보드이면서 오버클러킹도 가능하다. 따라서 이 계열에서는 상기 CPU에서 마지막 K붙은 것을 구매해 여러가지 오버클러킹도 같이 할 수 있다.

 

 H,B,Z의 각 뒤 숫자도 중요하다. 그 안에서는 해당 숫자가 높을수록 고급형이기 때문이다. H7xx, H8xx정도 되면 중고급에 속하게 된다.

각 CPU세대 별로 해당 숫자의 차이가 클 수도 작을 수도 있다. 일례로 고급형인 Z690과 Z790은 특이한 성능 차이는 없다고 평가받는다.

(통상은 Z790이 좋아야 한다)

 

--> H상위 버전, Z버전을 구매한다. 여기서는 13세대 CPU를 추천하고 있으므로 그에 맞는 Z690, Z790계열의 고급형 메인보드를 추천한다.

 

6. 케이스/파워

 고성능 PC는 생각보다 발열 관리가 중요하다. 파워도 마찬가지다. CPU가 100W, GPU가 400W쯤 소모한다고 잡으면 나머지 여러가지 잡다한 팬/스토리지 등 해서 100W를 추가하면 600W급의 파워가 필수가 되는데, 시장에서는 600W급 파워를 사도 500W정도 밖에 공급이 안된다는 설이 많다. 따라서 제대로 대응하려면 800W 정도를 사야 갑자기 PC가 꺼지는 상황을 막을 수 있다.

 

 케이스는 전면과 후면 모두에 팬이 붙되 조금 조용한 버전을 사야한다. CPU의 쿨러도 기본 쿨러보다는 발열을 줄일 수 있는 쿨러를 탑재하자. ATX보드를 기본으로 할테니 사이즈가 좀 클 것이다. ATX형 케이스도 가끔씩은 대형 GPU(?)는 들어가지 않을 수도 있으니 사전에 GPU 크기에 대한 고려가 되어있는 케이스인지 확인이 필요하다.

 

--> ATX형 좀 넉넉한 케이스에 팬은 전반/후반 모두 채용된 것으로 구매한다. 안이 보이거나 잘 열리면 더 좋다. 파워는 상황에 따라 다르지만 최소 700W이상, 많으면 1,000W까지 고려하자.

 

 

여기까지 일단 간단히 살펴보았다. 생각보다 전체를 고려하면 쉽지 않지만 이 틀하에서 잘 선택하여 가성비 좋은 구성이 되도록 빈다.

반응형
Posted by 작동미학
순수수학2023. 6. 8. 00:43

1. 왜 수학은 인간에게 직관적이지 못할까?

 

 수학공부를 하면서 방정식을 보면 무슨 의미인지 금방 떠오르는 상태(수학적인 감각이 충만한)를 동경한 적이 있다. 그러나 지금에 와서 보면 그것은 그저 작은 영역에서나 가능한게 아닌가 싶다. 인간은 수학이라는 논리 체계를 자연스럽게 받아들이기 어렵다.

 

 -1과 -1을 곱하면 양수 +1이 되는 부분은 해당 연산 체계가 무모순적이 되기 위한 필수인데, 인간은 직관적으로는 이것을 받아들이기 어렵다. 외우거나 혹은 이렇게 해야만 모순이 없다는 사실을 그저 받아들여야 한다. 그러나 음수와 양수를 대칭상에서, 한 직선상의 양측 관계로, 마음으로 이해한다면, -1과 -1을 곱하는 것이 음의 반대방향으로 가는 것이라는 직관에 다가가게 된다. 당연하게 보자마자 양수가 떠오르게 될 수도 있겠다. 뜨거운 것을 만지면 그러기 싫어도 앗뜨거워 하면서 소리를 지르는 것처럼 말이다.

 

 그러나 인간의 직관이란 상당히 편협한 시간과 공간, 경험에 의존하게 된다. 우리의 머리속은 떨어지는 공을 자연스럽게 받아들일 수 있지만, 미시세계의 일은 도저히 이해할 수가 없다. 만약에 우리가 미시세계에서 지속 살아왔더라면, 반대로 떨어지는 공을 자연스럽게 받는 것같은 일을 도저히 이해할 수 없었을 것이다. 그런 세상은 거시세계라는 뉴튼 역학의 방정식으로나 존재하는 세상인 것이다. 대체 이해할 수가 없는.

 

 그래서 미시적인 세계는 양자역학 파동방정식에 의해서 아름답게 기술되고 정확히 예측할 수 있지만, 인간은 아무리 들여다봐도 그 방정식이 나타나는 세계를 머리속에 아주 명료하게 떠오르기란 쉽지 않은 것이다.

 

 그렇다. 애초에 수학이 바라보는 세상과 사람이 바라보는 세상은 근본적으로 다르다. 전자가 훨씬더 객관적이고 정밀하다. 후자는 살아남기에 급급한 생물이 갖추어야할 수많은 본성에 사로잡혀 있으므로(!) 이 아름답고 우하한 수학 방정식들을 직관적으로 이해하기가 쉽지 않겠다. 그리고 불행히도 자연은 이 수학을 쏙 빼닮았다. 그래서 사실은 마치 인간이 아주 편안하게 자연을 이해한다고 생각하겠지만, 실제 자연의 모든것을 이해하기 어려운 것이다. 직관적이지 않은 수많은 것들이 자연 어딘가 극단의 세계에 가득하다. 기나긴 수렵채집 기간을 지나오는 동안 생존에 목마른 인간이 전혀 관심갖을 만한 모습이 아니라면, 이런 극단들을 이해할 수 있는 틀 같은 것은 갖출 수 있었을 리 만무하다. 의식주 해결하기 바쁜데 보이지도 않는 블랙홀이나 분자수준의 일이 대체 무슨 상관이었겠는가.

 

 그래서 수학을 직관적으로 이해하지 못하는 것은 우리 거의 모든 인류가 마찬가지라고 볼 수가 있겠다. 오히려 훈련을 통해 상상력을 통해 그것을 극복해낸 선대 과학자들이 존경스러울 따름이다. 캄캄한 방에서 보지도 듣지도 못하는 것을 온갖 실험과 가설을 통해 시행착오 끝에 알아낸 것 아니겠는가. 그 과정이 얼마나 쉽지 않았겠는가. 리처드 파인만 교수가 이야기한대로 "자연은 우리보다 훨씬 더 큰 상상력을 지녔다."

 

2. 무한에 대해 이해하기

 

 무한은 자연에서는 관측하기 어렵지만, 수 체계에서는 어렵지 않게 만날 수 있다. 사칙연산 중에 0으로 나눔으로써 순식간에 무한을 창조해낼 수 있다. 혹은 간단하게 모든 자연수의 집합을 가정함으로써 무한개의 원소를 가진 존재를 만들어 낼 수 있다. 자연에서는 도통 확인할 수 없는 전체로의 무한이, 수학에서는 이렇게 종종 나타난다.

 

 인류가 이 무한을 이해할 수 있는 체계를 갖추었다는 것은 더이상 그 앞에서 더 진도를 못나간거나 함정에 빠지지 않아도 된다는 것을 의미한다. 모든 자연수의 집합을 가지고 무언가를 하려면 전에는 쉽지 않았다. 그것이 무엇을 의미하는지 명확히 설명하기가 어려웠기 때문이다. 무한을 그저 증가하는 상태라고만 여겼지, 전체적으로 이해하지 못했기 때문에 그것을 하나의 값으로 다룰 수가 없었다. 그래서 수없이 많은 벽에 마주했었다.

 

 간단하게는 만약에 우주가 가진 시간이 무한히 끝나지 않는다고 가정해보자(개인적으로는 그러지 않을 아무런 증거도 현대과학이 찾지 못했다고 생각한다) 만약에 우리가 무한을 제대로 이해하지 못하고 있다면 우리는 이 상황을 수학적으로 기술하기 어려웠을테고 이것을 통째로 다루지도 못했을 것이다. 그러나 지금은 그렇지 않다. 이 무한의 시간에서 예측하고 싶은 것이 있다면? 당연히 예측할 수 있다. 가장 간단하고 흥미로운 것이 엔트로피의 법칙이다. 밀폐되고 고정된 공간안에서는 뜨거운 물과 차가운 물이 만났다고 치자. 곧 모든 분자들이 무질서도가 극대화된 상태로 달려가서 그 중간온도 어디에서 평형을 이룬다. 그런데 만약 무한의 시간이 주어진다면 어떻게 될까? 정답은 처음대로 돌아가는 상황이 생긴다. 그것도 무한번 생긴다.

 

 물론 자연의 우주는 가속팽창하고 있다고 인정받기 때문에 이 상황을 우주에 적용할 수는 없지만, 우리는 무한의 무엇인가를 이제 제법 특정 값으로 상정하여 예측해볼 수 있다.

 

 인간이 수학적인 체계내에서 직관을 넘어서 무언가를 이해하고 그리고 그것을 써먹을 수 있는 재미있는 것 중의 하나가 이렇게 무한이라고 생각한다.

 

반응형
Posted by 작동미학