딥러닝의 발전과 GPU의 발전을 뗄 수 없는 관계입니다. 과거에도 그랬지만 LLM으로 대표되는 현재의 AI에서 이 관계는 더욱 중요해지고 있습니다.전에 GPU가 왜 AI에 최적화되어있는지 LLM: GPU 의 마법 이라는 글에서 다룬 적이 있습니다. 오늘은 여기에서 한 단계 더 깊이 들어가서 Nvidia GPU를 중심으로 이야기해보려고 합니다.오늘은 GPU의 어떤 부분들이 딥러닝, 특히 LLM 구동을 빠르게 만드는지 이야기해보겠습니다.1. 범용 코어와 특수 목적 코어모든 계산은 GPU의 코어에서 일어납니다. 메모리에서 데이터를 코어로 옮기고, 코어에서 계산을 한 후, 결과를 다시 메모리로 저장하는 방식입니다.현대 GPU는 딥러닝 연산의 특성에 맞춰 코어를 분화시켰습니다.범용 병렬 계산기, Cuda Core..
LLM이 발전하면서 그 어느 때보다 생성형 AI를 사용하는 서비스를 만들기 쉬워졌습니다. LLM을 사용하는 제품을 만들다 보면 모두가 겪는 문제가 있습니다.바로 평가입니다.밤새 프롬프트를 갈고 다듬고, 모델도 훈련해서 새 모델을 만들었습니다. 그리고 테스트 삼아 질문을 던져봅니다. LLM은 자신 있게 답변을 제공합니다. 화면에 뜬 답변을 보며 멍하니 생각에 잠깁니다."음... 꽤 괜찮은데? 아니, 어제 버전보다 진짜 나아진 건가? 비슷한 거 같기도 하고, 아닌 거 같기도 하고."이런 사례가 여러 개 쌓이면 이른바 '멘붕'에 빠지게 됩니다.분류 모델이나 주가 예측 같은 기계학습 모델은 정답지(Label)가 명확해서 정확도를 잴 수 있습니다. 하지만 "오늘 기분 어때?"라는 질문에 대한 위로의 말이나, 10..
Transformer 구조를 처음 접할 때 하기 쉬운 오해가 하나 있습니다."Self-Attention은 Token 사이의 유사도를 계산하는 것이다."직관적으로는 그럴듯합니다. Self-Attention 메커니즘을 보면, 벡터끼리 내적을 하고 그 점수가 높으면(비슷하면) 더 많은 가중치를 두기 때문입니다.마치 추천 시스템에서 "이 영화를 본 사람이 좋아할 만한 다른 영화"를 찾는 것과 비슷하기도 합니다. 그래서 많은 경우 "아, 비슷한 단어끼리 묶어주는 거구나!" 하고 넘어가기도 합니다. 하지만 여기서 멈추면 안 됩니다. 오늘은 여기에서 한 단계 더 들어가 보겠습니다.우리의 질문은 'Attention이 단순히 토큰 간 유사도 계산이라면, 왜 굳이 복잡하게 Q, K, V라는 세 개의 다른 벡터를 만들어야 ..
LLM은 큽니다. 정말 큽니다. 그래서 많은 LLM 최적화 기술들이 LLM이 메모리를 사용하는 방식에 집중합니다.오늘은 그중 이미 거의 표준이 된 PagedAttention에 대해서 이야기해보려고 합니다.PagedAttention은 핫한 서빙 프레임워크인 vLLM의 심장부에서 뛰고 있는 기술이기도 합니다.먼저 PagedAttention이 풀려는 문제가 무엇인지부터 이야기해보겠습니다.1. 범인은 모델 크기가 아니고 다른 녀석이다보통 LLM이 메모리를 많이 먹는다고 하면, 모델의 파라미터(Weight) 크기 때문이라고 생각하기 쉽습니다.사실입니다. 70B 파라미터 모델은 그 자체로 140GB 가량의 VRAM을 차지하죠. 하지만 이건 상수입니다. 이미 정해진 크기라는 뜻이죠. 70B 모델을 쓰기로 결정한 순간..
"이거 그냥 엄청나게 좋은 자동완성 기능 아닌가요?"LLM을 처음 접하는 개발자나 데이터 과학자들이 흔히 던지는 농담입니다. 그리고 냉정하게 말하면, 이 말은 기술적으로 완벽한 사실입니다.LLM의 본질을 가장 간단하게 설명하면, 앞의 문맥을 보고 뒤에 올 확률이 가장 높은 단어(Token)를 예측하는 확률 계산기에 불과하니까요.그런데 LLM을 단순히 단어 예측기라고 치부하기에는 좀 이상합니다.단순히 '사과는' 뒤에 '맛있다'가 올 확률을 계산하는 기계가, 어떻게 복잡한 파이썬 코드를 짜고, 헤겔의 철학을 논하며, 심지어 농담을 던져 사람을 웃게 만드는 걸까요?우리는 단순히 데이터의 통계를 흉내 내는 무언가를 만든 줄 알았는데, 어느 순간 이 무언가가 복잡한 수학 문제를 풀고 추론을 하기 시작했습니다.단순..
2022년 11월, 인류의 기술사는 중대한 변곡점을 맞이했습니다. ChatGPT는 마치 SF 영화 속 미래가 예고도 없이 우리 집 거실로 들이닥친 듯한 충격을 주었습니다.따져보면 ChatGPT 전에도 우리는 AI와 함께 살아왔습니다. 넷플릭스에 접속하면 나에게 맞는 영화를 추천해 주고, 스마트폰 사진첩에서 나와 친구들의 사진을 구분해 주는 AI 기능들을 누렸습니다. 2010년대 중반부터 시작된 딥러닝의 시대였죠.이미 AI가 익숙한데도 왜 ChatGPT는 엄청난 충격으로 다가왔을까요?ChatGPT가 인간의 고유 영역이라고 여겨졌던 "창의성"의 영역을 넘어서는 가능성을 보여주었기 때문입니다.기존의 AI가 성실한 비서였다면, ChatGPT로 대변되는 새로운 AI들은 셰익스피어의 문체로 새로운 글을 쓰고, 고흐..
오늘은 LLM을 현업에서 다루다 보면 생기는 골치 아픈 문제 중 하나인, 언어 혼용에 대해서 이야기해보려 합니다.LLM은 태생적으로 Multi-lingual 능력을 타고났습니다. 여러 언어를 이해할 수도 있고, 여러 언어를 생성할 수도 있습니다. 덕분에 우리는 별도의 번역 모델을 파이프라인에 끼워 넣지 않고도 프랑스어 뉴스를 요약하거나, 일본어 이메일을 한국어로 바꿔서 읽을 수 있습니다.LLM 이전에 자연어처리를 개발해 보신 분들은 다국어 지원이 얼마나 힘든 일인지 잘 아실 겁니다. 언어별로 데이터를 모으고, 언어별로 파이프라인을 구성하고, 언어별로 모델 최적화를 하는 등 정말 고난의 행군이었죠. 그에 비하면 요즘 LLM은 다국어 지원 측면에서는 정말 마법 같은 솔루션입니다.하지만 실제로 LLM을 다국어..
"AI를 만들려면 GPU가 필수다", "대 AI 시대에 NVIDIA의 몸값이 치솟고 있다"와 같은 이야기들이 많이 들립니다. 실제로 많은 회사가 NVIDIA GPU를 구하기 위해서 줄을 서고 있고요.하지만 구글은 조금 다른 행보를 걷습니다. 구글은 Gemini를 TPU로 훈련하고 있다고 합니다.TPU가 뭔지 검색해 보면 "AI에 최적화된 반도체"라는 설명이 많고, 조금 더 자세한 설명을 찾아보면 "GPU는 범용 병렬 연산에 강하고, TPU는 행렬 연산에 강하도록 특별히 최적화했다" 정도가 많습니다.하지만 "최적화"라는 단어 하나로 단정하기에는 놓치는 기술적 혁신들이 많습니다. 도대체 구글은 왜 그 좋다는 GPU를 놔두고 TPU를 손수 만들고 있을까요? 그리고 TPU 안에서는 무슨 일들이 일어나고 있을까요..
- Total
- Today
- Yesterday
- tensorflow
- word embedding
- MachineLearning
- LLM
- GPT
- Import
- transformer
- GPU
- Foundation Model
- token
- Python
- generator
- pytorch
- Linux
- docker
- ChatGPT
- NLP
- fasttext
- Deep Learning
- DEEPLEARNING
- sys.path
- Large Language Model
- 자연어처리
- speculativedecoding
- keras
- Ai
- word vector
- 파이썬
- iterator
- tip
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |