| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- Cross Entropy Error
- gemma3
- visual instruction tuning
- Non-Maximum Suppression
- LLM 패러다임
- Mean squared error
- 딥러닝
- pdf parsing
- Time Series
- 활성화 함수
- bf16
- 파인튜닝
- 오차역전파
- deep learning
- rag-fusion
- LLaVA
- Nested Learning
- 합성곱 신경망
- rag parsing
- anomaly detection
- 이상탐지
- fp32
- fp16
- 활성화함수
- LLM
- qlora
- fine tuning
- 데이터 파싱
- rrf
- multi-query
- Today
- Total
목록LLM (20)
Attention, Please!!!
최신 언어 모델들은 다양한 문자 체계를 포괄하기 위해서 Token Vocabulary의 수를 기하급수적으로 크게 만들고 있는 추세이다. 어느정도 인지도가 있는 모델들은 보통 대략 10만 개의 token을 포함하고 있다. 이처럼 어휘 사전에 완성된 형태의 단어 토큰이 많으면 많을수록, 모델은 문장을 더 짧고 효율적인 토큰 시퀸스 형태로 처리를 할 수 있게 된다. 그런데, 모델은 다음 단어를 예측할 때마다 사용하지 않을 모든 단어의 확률 점수를 일일이 다 계산하게 된다. 이에 따른 메모리와 컴퓨팅 자원을 소모하는 것은 굉장히 비효율적이다. 이에 따라 본 게시물에서는 Gemma 3 270M 모델을 활용하여 어휘 크기를 대략 48% 절감하는 방법에 대해 다루고자 한다. Gemma 3 270M 모델 간단하게 알아..
2025년 8월 7일 기준으로 OpenAI의 open-weight 모델인 gpt-oss가 공개되었다. 이는 2019년도에 출시되었던 OpenAI의 초창기 모델인 GPT-2 이후로 공개된 모델이다. 이에 따라 본 게시물에서는 GPT-2 모델과 GPT-oss 모델 간의 차이를 깊숙하게 알아보고자 하며, 현재 출시되고 있는 대부분의 모델들의 공통점에 대해 다뤄보고자 한다. 본 게시물은 Sebastian Raschka 님의 게시물을 참고하여 작성하였음을 알립니다. 굉장히 좋은 내용이 많기 때문에 한번 방문해보시는 것을 권장 드립니다. 1. 전반적인 모델 아키텍처 2024년부터 2025년까지 공개된 모델들의 아키텍처를 살펴보면, 주요 LLM 개발사들이 대부분 동일한 기반의 아키텍처에 약간의 변형만을 추가하는 매우..
대규모 언어 모델이 다양한 분야에서 활용되면서, 학습된 모델을 실제 서비스에서 효율적으로 운영할 수 있는 추론하는 방법이 그 어느 때보다 중요해지고 있다. 무지막지한 성능의 LLM을 개발하는 것만큼이나, 이를 빠르고 비용적인 측면에서 효율적으로 사용하는 것이 어찌보면 핵심적이다. 이러한 LLM 추론 환경의 중심에는 vLLM과 Ollama라는 두 개의 강력한 오픈소스가 존재한다. 하지만, 둘 간의 지향하는 목표가 근본적으로 다르다. vLLM은 서버 환경에서 다수의 요청을 동시에 처리하며 처리량을 극대화하는 데 최적화 되어 있는 반면, Ollama는 개발자 개인의 컴퓨터에서 모델을 쉽고 간편하게 실행하는 데 중점을 둔다. 이처럼 사용하는 목적이 굉장히 다르기 때문에, 적절한 상황에 맞춰 사용하는 것이 중요하..
LLM에서 임베딩은 텍스트의 의미를 수치적으로 얼마나 잘 표현하는지에 따라 모델의 언어 이해 및 생성 능력을 결정짓는 핵심적인 요소이다. Next Token Prediction 기반의 Causal Masking 기법을 사용하는 모델이든, 문장 전체를 한 번에 보고 특정 단어의 의미를 그 단어의 앞과 뒤에 있는 모든 단어를 동시에 참고하는 Masked Language Model이 있다. 전반적으로 LLM 시장을 아우르는 두 개의 모델은 단어나 문맥의 미묘한 차이를 정확히 포착하는 고품질 임베딩 모델이 필수적이다. 하지만 "How Contextual are Contextualized Word Representations?" 논문에 따르면, 모델이 상위 계층을 거치면 거칠수록 문맥 특정성이 높아진다고 지적한다..
Retrieval-Augmented Generation (RAG)는 대규모 언어 모델이 가진 환각 (Hallucination) 현상을 완화하고, 최신 정보나 특정 도메인의 지식을 기반으로 정확하고 신뢰성 높은 답변을 생성할 수 있게 돕는 강력한 프레임워크이다. 이러한 RAG의 성능을 좌우하는 가장 중요한 구성 요소 중 하나가 바로 임베딩 모델이라고 해도 무방하다. 임베딩 모델은 RAG 프레임워크에서 심장과 비슷한 역할을 수행하며, 전체 시스템의 효율성과 정확성에 결정적인 영향을 미치게 된다. 하지만, 일반적인 목적으로 학습된 임베딩 모델은 특정 전문 분야의 용어나 미묘한 문맥 차이를 제대로 파악하지 못하는 경우가 대부분이며, 이를 해결하고자 임베딩 모델을 찾거나 scratch 부터 학습 시키는 것은 굉장..
Padding Token은 입력 시퀸스의 길이를 맞추기 위해 추가되는 특수 토큰이다. 트랜스포머 모델은 병렬적으로 모든 토큰을 처리하기 때문에, 입력 시퀸스의 길이가 동일해야한다. 이에 가장 많이 사용되지만, 메모리와 계산량 측면에서 상당한 낭비를 초래한다. 이에 최근에는 Packing으로 시퀸스의 활용도를 극대화하고, 계산 비용을 최소화할 수 있는 Packing이 제안되였다. 하지만, 종종 Packing을 기반으로 파인튜닝하는 게시물 혹은 영상물을 여럿 찾아볼 수 있지만, 이에 대한 성능의 효율성을 보여주는 것이 대부분이다. 구체적으로 패킹이 파인튜닝하는 과정에서 내부적으로 어떻게 작동하는지에 대해서는 설명하지 않는다. 따라서, 본 게시물에서는 Padding과 Packing를 SFT 기반으로 파인튜닝..
대형 언어 모델(LLM)을 처음부터 구축하거나 혹은 복잡한 딥러닝 모델을 다룰 때, 필연적으로 GPU를 활용하는 경우가 대부분이다. 이에 따라 Pytorch에서는 .to(device) 라는 간편한 메서드를 통해 모델의 파라미터를 원하는 장치(CPU 혹은 GPU)로 손쉽게 옮길 수 있는 기능을 제공한다. 하지만 모델을 GPU로 옮겼다고 생각했는데, 막상 실행 했을 때 " Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!" 와 같은 RuntimeError를 마주하게 된다. 이러한 문제는 모델의 파라미터(nn.Parameter)외에, 학습되지는 않지만 모델의 동작에 필수적인 텐서가 GPU로 ..
대규모 언어 모델(LLM)의 Self-Attention 메커니즘은 모델의 성능을 좌우하는 가장 핵심적인 요소로, 문맥을 전역적으로 이해하고 복잡한 언어의 패턴을 학습하는 데 필수적이다. 그러나, Multi-Head Attention(이하 MHA)은 높은 계산 비용과 메모리 사용량으로 인해 대규모 모델의 효율적인 학습과 추론에 제약적이다. 이를 해결하기 위해 제안된 Grouped-Query Attention(이하 GQA)가 제안되었으며, 이는 쿼리 헤드를 적은 수의 키-값(KV)헤드로 그룹화하여 메모리 사용량을 줄이고 추론 속도와 효율성을 높였다. 하지만, GQA의 방식은 모델에 따라 품질 저하가 발생하는 단점이 있다. 이러한 한계를 극복하기 위해 DeepSeek에서 제안하였던 Multi-Head Lat..
초기 대형 언어 모델들은 대체적으로 float32 데이터 유형을 통해 훈련하고 배포된다. 하지만 float32는 각 파라미터가 32비트 (즉, 4바이트)를 차지하기 때문에, LLaMA 3와 같은 700 억 개 파라미터를 가진 모델의 경우 필요한 메모리의 소비량이 대략 280GB에 달한다. 이 엄청난 메모리 사용량은 대규모 모델의 배포와 운영적인 측면에서 어려움을 겪고 있다. 이에 이러한 문제를 해결하기 위해 LLM 개발자들은 메모리 소비를 절반으로 줄일 수 있는 float16를 사용하고 있는 추세이다. 하지만 float16으로 전환하는 것은 다양한 문제점을 동반한다. float16은 표현 가능한 숫자의 범위와 정밀도가 float32에 비해 훨씬 적기 때문에, 모델 훈련 중에 오버플로우(숫자가 커져 버리는..
요즘 여러 모델들을 다뤄보고 LLM 관련 논문을 읽어보면서, 문득 이런 생각이 들었다. "과연, Perplexity를 기반으로 LLM을 평가하는 것이 합리적일까?" 물론 Perplexity는 언어 모델들의 주요 평가 지표 중 하나로 가장 많이 사용되고 있다. 이를 통해 모델이 주어진 토큰 시퀀스를 얼마나 잘 예측하는지를 측정하게 되며, 학습 중에 모델의 목표는 이 값을 최소화하는 것이다. 따라서 Perplexity가 낮을수록 모델이 더 좋은 성능을 발휘한다고 일반적으로 이야기할 수 있게 된다. 하지만 이 지표만으로 모든 것을 판단하는 것이 정말 타당할까라는 의문이 든다. 이에 본 게시물에서는 "만약 동일 데이터 셋을 기반으로 학습된 모델 A의 perplexity가 2.5이고, 모델 B의 perplexit..