DEEPLEARNING 11

LLM: Pretrained vs Instruction Tuned Model

LLM을 사용하는 방식은 크게 두 가지로 나뉩니다. OpenAI나 Google 제공하는 API를 사용하는 것이 한 가지이고, Llama 같은 오픈소스 LLM을 사용하는 것이 다른 한 가지입니다. 물론 바닥부터 나만의 LLM을 만드는 방법도 있지만 현실적으로 이렇게 하기에는 많은 어려움이 있습니다. 비용, 보안, 나만의 시나리오 등의 이유로 오픈소스 LLM 사용하기로 했다고 가정해 보겠습니다. 이 길로 들어섰을 때 처음 마주하는 어려움 중 하나는 모델이 너무 많다는 점입니다. Llama, Gemma 등 수많은 오픈소스 LLM을 선택하는 이야기가 아닙니다. Llama만 하더라도 선택지가 너무 많습니다. 예를 들어 Hugging Face의 Llama 3.2 Collections 페이지를 보겠습니다. 나는 단지..

Deep Learning 2024.10.27

LLM : On-Device LLM

오늘은 On-Device LLM에 대해서 이야기해보려고 합니다. 최근 On-Device AI라는 키워드와 함께 On-Device LLM이라는 표현도 많이 회자되고 있습니다.삼성전자는 Galaxy S24부터 Galaxy AI에 On-Device LLM을 탑재하고 있고, 다른 제조사들도 이를 뒤따르고 있습니다. 최근 애플로 곧 출시할 Apple Intelligence에 3B 급 On-Device LLM을 탑재한다고 밝혔죠.On-Device LLM이 도대체 무엇이고, On-Device LLM을 만들기 위해서는 어떤 것들이 필요한지 알아보겠습니다.On-Device LLM이 뭐야?On-Device LLM이 무엇인지부터 이야기 해보겠습니다.너무나 당연하지만 On-Device LLM은 On-Device에서 돌아가는 ..

Deep Learning 2024.08.29

LLM : Token

LLM을 처음 접하면 어렵고 헷갈리는 용어와 개념들이 많습니다. 그중에서도 가장 알듯 말듯 아리송한 개념이 바로 Token이 아닐까 합니다.Token이라는 단어를 처음 접하는 건 LLM을 사용하는 입장인지 LLM을 만드는 입장인지에 따라 다릅니다.LLM을 사용하는 입장에서는 "이 LLM의 최대 Context Window 크기가 4K tokens이다", "이 LLM은 비용이 1M tokens 당 0.5 달러다"와 같은 설명을 통해 Token이라는 표현을 처음 접하게 됩니다. Token이 입출력 텍스트 데이터의 크기를 나타내는 것 같기는 한데, 글자수도 아니고 단어수도 아니고 Token 수라는 이상한 단위 때문에 고개를 갸웃하게 되고요.그러고 나서 이어지는 자연스러운 질문은 "그래서 1,000 Token이 ..

Deep Learning 2024.06.10

LLM : Context Window

오늘은 Context Window 크기(Context Length, Context Size라고도 부릅니다)에 대해서 이야기해보려고 합니다. 요즘 정말 많은 LLM들이 있는데요. 정확도, 비용, 속도 등 LLM을 선택하는 많은 기준이 있지만, 중요한 기준 중 하나가 바로 Context Window 크기가 아닐까 합니다. 실제로 새로운 LLM이 발표될 때마다 Context Window 크기 자랑이 빠지지 않는 것을 볼 수 있습니다. Google은 Gemini가 Context Window를 1M tokens까지 지원한다고 발표하기도 했고요.Context Window 크기가 무엇이길래, 그리고 얼마나 중요하고 어려운 기술이길래 새로운 LLM을 발표할 때마다 중요하게 다루는 걸까요?Context Window가 뭐..

Deep Learning 2024.05.25

Cross Entropy 이야기

소개 가장 흔하게 사용하는 loss fuction 중 하나가 Cross Entropy Loss가 아닐까합니다. 대부분의 Deep Learning 프레임워크에서 기본적으로 제공해주기도 하고요. 자주 쓰기는 하지만 Cross Entropy가 실제로 무엇인지 궁금하신 분들도 있을 것 같습니다. 오늘은 Cross Entropy에 대해서 소개를 해보고자 합니다. 스포일러 Cross Entropy는 Information Theory라는 학문에서 나온 개념입니다. 오늘 글에서는 Information Theroy 이야기를 여기저기에서 하게 될 것입니다. 그런데 Machine Learning에서 Cross Entropy를 사용하는 목적은 원래 Information Theory에서 Cross Entorpy를 만든 목적과 ..

Deep Learning 2023.05.21

머신 러닝 + 자연어 처리

오늘은 특정한 기술이나 알리고즘이 아니라 머신 러닝을 사용해서 자연어처리 문제를 푸는 일반적인 과정에 대해서 이야기를 해보려고합니다. 다르게 말하면, 자연어처리 문제를 어떻게 일반적인 머신 러닝 문제 형태로 바꾸느냐에 대한 이야기입니다. 머신 러닝 문제 형태? 머신 러닝 문제 형태라는 것이 무엇일까요? 우리가 흔히 머신 러닝이라고 부르는 것은 실제로는 다양한 알고리즘의 집합니다. 대표적인 머신 러닝 알고리즘들은 아래와 같은 분류에 속합니다 (이 외에 다른 분류도 있습니다). Clustering Regression Classification Clustering은 비슷한 데이터들끼리 분류하고 모으는 작업입니다. 예를 들어 쇼핑몰의 고객 데이터를 주고, 고객들을 몇가지 부류로 나누는 작업이 있을 수 있습니다...

Deep Learning 2022.03.26

Transformer로 한국어 품사 태거 만들기

한국어 품사 태거를 만들어 봅시다 품사 태거(Part-of-Speech Tagger)는 NLP에서 기본이 되는 태스크이고, 그 때문에 NLP를 배울 때 많이 만들어보는 기능이기도 합니다. 품사 태거가 NLP에서 나름 인기있는 이유는 몇가지가 있을 겁니다. 다른 NLP Task의 입력 또는 전처리 역할을 합니다. 요즘은 트렌드가 언어학적인 요소를 많이 배제하는 추세지만 전통적으로 파싱, 번역 등의 NLP 파이프라인에 많이 쓰였습니다. 한국어에서 BPE와 같은 통계적인 Tokenizer를 대신하는 방법으로 쓰이기도 합니다. 한국어의 특성상 통계적인 Subword보다는 형태소 단위를 토근으로 쓸 때 성능이 더 좋긴 경우들이 있습니다. (참조: 한국어 토큰의 단위는 뭐가 좋을까?) 품사 태깅은 Sequentia..

Deep Learning 2021.06.13

Pytorch로 훈련 이어서하기 (checkpoint)

모델을 훈련시키는데 오랜 시간이 걸리다보면 여러가지 이유로 처음에 생각했던 Epoch만큼 훈련을 시키지 못하고 중간에 끝나는 경우가 있습니다. 누군가 실수로 Ctrl+C를 눌러버린다거나, 모종의 이유로 훈련 프로세스가 죽어버린다거나, 아니면 GPU를 다른 곳에 쓰기 위해서 눈물을 머금고 중간에 멈추는 경우도 있습니다. 이럴 때 유용한 방법이 중간 중간 모델을 저장해두고 나중에 그 시점부터 훈련을 이어서 하는 것입니다. 오늘은 중간중간 모델을 저장하는 방법과 나중에 이어서 훈련을 시작하는 방법을 알아보겠습니다. import torch import torch.nn as nn import torch.optim as optim import argparse class MyModel(nn.Module): def _..

Deep Learning 2021.06.09

Logit, Sigmoid, Softmax

Logit, Sigmoid, Softmax 오늘은 Logit, Sigmoid, Softamx에 대해서 알아보려고 합니다. 코드와 함께 Logit, Sigmoid, Softmax의 차이와 활용처를 알아보겠습니다. import torch import torch.nn as nn x = torch.rand(8, 256) print(x) linear_layer = nn.Linear(256, 5) tensor([[0.8509, 0.5229, 0.0945, ..., 0.0343, 0.9828, 0.8862], [0.2340, 0.6683, 0.6794, ..., 0.0669, 0.7153, 0.4655], [0.8962, 0.0695, 0.5760, ..., 0.9555, 0.3334, 0.7940], ..., [0..

Deep Learning 2021.05.30

한국어 띄어쓰기: 실전 예제로 배워보는 딥러닝 자연어 처리

한국어 띄어쓰기: 실전 예제로 배워보는 딥러닝 자연어 처리 아름다운별지구에오신여러분을환영합니다 딥러닝도 좀 배웠고, 자연어처리도 좀 배웠고, pytorch도 좀 배웠는데 막상 뭔가를 만들어 보려면 막막할 수 있습니다. 오늘은 pytorch를 이용해서 한국어 띄어쓰기 모듈을 바닥부터 만들어보고, 이 과정에서 실제로 어떻게 간단하 자연어처리기를 개발하는지 살펴보려고 합니다. "아름다운별지구에오신여러분을환영합니다"를 입력으로 주면 "아름다운 별 지구에 오신 여러분을 환영합니다"로 바꿔주는 것이 오늘의 목표입니다. 딥러닝과 Pytorch에 대해서 기본적인 부분을 습득하고 있다고 가정하겠습니다. 특히 Pytorch에 대한 사용법은 설명하지 않으니 참고 부탁드립니다. 문제 정의, 발상의 전환 머신러닝 문제를 풀 때..

Deep Learning 2021.05.26