수학은 인간의 추론에 의해서 구성되는게 일반적이다. 하지만 기존에 주장했듯이 모든 수학적 상상들이 인간의 이성과 일치하여 예측되고 전개되지 않는다. 수학은 그 안에서 질서를 지니지만, 아직 그 질서를 인간의 이성이 따라갈 수 없는 경우가 많기 때문이다.

 

 소프트웨어에서도 어떤 로직을 세웠으나 전체를 이해하기 어려운 경우가 많고, 문제가 생기면 국소적으로 지속 디버깅을 진행한다. 그런 면에서 어떤 경우는 수학을 한다는 것은 소프트웨어 디버깅을 하는 과정과 비슷하다고 생각하다. 수학 방정식 자체도 소프트웨어 로직과 그다지 다르지 않다.

트위터 발췌

 그래서 본인은 오히려 수학이 난관에 직면했을때 직접 그것을 계산하고 전개함으로써, 그 난관을 해결할 수 있다고 믿는다. 실제 값을 대입해 조사하고 경우의 수를 모두 추적하는 형태가 가능하다. 무한을 모두 점검할 수 없지만, 현대 기술은 수많은 영역을 낮은 가격으로 조사할 수 있기 때문이다. 이 과정에서 수학자들은 전에 알지 못했던 인지를 얻게 될 것이라고 믿는다.

 

 따라서 수학의 난제에 위와 같은 직접적인 컴퓨터 조사가 많아지는 부분은 필연적이라고 본다. 그 유명한 4색 정리가 그렇게 증명되었다는 것은 유명하다. 방정식과 정리 자체를 온전히 이해하여 모든 숫자 범위에서 증명되는 것과는 다르지만, 인간의 이해에는 늘 한계가 있고 이 부분을 채워줄 수 있다.

 

 향후 이러한 Computational Mathematics는 컴퓨터가 강력해짐에 따라 더 많은 사용처가 발견될 수 있지 않을까. 어떤 방법론이 서고, 더 세련된 방법들이 나오고 도구가 만들어지면, 인간이 그동안 가지 못했던 길을 개척할 수 있다. 소프트웨어는 완벽하게 제작되어야 하지만 늘 디버깅을 거치고 그것이 필수다. 수학도 그것이 더 복잡해질수록 이러한 디버깅이 중요해지겠다.

 

 상당히 큰 수학범위를 다루고 많은 고속 함수들이 공개된 Python으로 시작해보는 것도 좋지 않을까.

 

https://github.com/neibc/math

 

GitHub - neibc/math

Contribute to neibc/math development by creating an account on GitHub.

github.com

 

반응형
Posted by 작동미학
정보이론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 작동미학