Deep Learning 15

[NLP/LLM] LLM 캐시의 작동 원리를 알아보고 OpenAI API로 캐시를 구현해보자

LLM CacheLLM 캐시는 LLM의 응답을 저장하고 재사용하는 시스템이다.즉, 같은 질문 (프롬프트)에 대한 답변을 매번 새로 생성하지 않고 이전에 생성된 결과를 캐싱하여 빠르게 응답할 수 있도록 하는 기술이다.상업용 API를 사용하거나 직접 모델을 서빙해 LLM을 추론할 수 있는데, 두 가지 모두 추론을 가능한 한 줄이는 것이 자원이나 비용 측면에서 효율적이라고 할 수 있다. LLM Cache를 왜 사용할까?(1) 비용 절감OPENAI API 같은 유료 LLM 서비스를 사용할 때, 같은 질문을 반복하면 불필요한 비용이 발생한다.캐싱을 이용하면 중복 호출을 방지하고 API 사용량을 줄일 수 있다.(2) 속도 향상LLM은 복잡한 연산을 수행하기 때문에 응답 시간이 길어질 수 있다.캐싱을 이용하면 즉시 ..

Deep Learning/NLP 2025.02.27

[NLP/LLM] RAG(Retrieval Augumented Generation)에 대해 알아보고 라마 인덱스로 구현해보자

RAG (Retrieval Augumented Generation, 검색 증강 생성) ChatGPT가 없는 사실이나 거짓말을 그렇듯하게 만들어내는 현상을 환각(Hallucination)이라고 한다.환각을 줄이기 위해 LLM이 답변할 때 필요한 정보를 프롬프트에 함께 전달하는 검색 증강 생성(Retrieval Augumented Generation)을 사용할 수 있다. Data Source에서 검색하고자하는 데이터를 가져와 Embedding Model을 통해 Embedding Vector로 만들고 Vector Database에 저장하는 과정을 검색 증강 생성이라고 한다. LLM에게 단순한 질문이나 요청만 전달하고 생성하는 것이 아니라, 답변에 필요한 충분한 정보와 맥락을 제공하고 답변하는 방식이다.답변에 ..

Deep Learning/NLP 2025.02.26

[Transformers] Hungging Face Transformers 라이브러리를 통해 모델 학습하기 (feat. Trainer API vs. PyTorch)

Hugging Face Transformers허깅페이스 트랜스포머는 다양한 형태의 트랜스포머 모델을 통일된 인터페이스에서 사용할 수 있도록 지원하는 오픈 소스 라이브러리이다.허깅페이스에서는 트랜스포머 모델과 토크나이저를 활용할 때 사용하는 transformers 라이브러리, 원하는 데이터셋을 가져다 쓸 수 있도록 하는 datasets 라이브러리를 제공한다. - BERT와 GPT-2 모델을 활용하기 위한 허깅페이스 트랜스포머 코드 from transformers import AutoModel, AutoTokenizertext = "What's the goal of transformer models?"# BERTbert_model = AutoModel.from_pretrained("bert-base-unca..

Deep Learning 2025.02.25

[NLP/RF] Markov Decision Process (MDP)에 대해 알아보자

앞선 포스팅에서 InstructGPT의 개념과 함께 RLHF(Reinforcement Learning Human Feedback), PPO에 대해 알아보았다.강화 학습은 Markov Decision Process(MDP)를 해결하는 것이 목적이라고 잠깐 언급했는데, 이게 뭔지 궁금해서 더 찾아보게 되었다.Markov Process (MP) = Markov Chain (MC)Markov Decision Process(MDP)를 이해하기 전에 Markov Process(MP)에 대해 알아보도록 하자.MP는 MDP 모델을 이해하기 위해 먼저 알아야할 중요한  Markov Chain은 이산 확률 프로세스(descrete stochastic process)이다. stochastic process란, 확률 분포를 ..

Deep Learning 2024.11.04

[NLP] InstructGPT와 RLHF 학습 방법에 대해 알아보자

InstructGPTGPT는 모델 parameter의 크기를 지속적으로 증가시키며 뛰어난 텍스트 생성 능력을 통해 사용자와의 자연스러운 대화와 복잡한 창작이 가능해졌다.그러나 여전히 GPT에는 크게 3가지 문제점이 있다. - Untruthful그럴듯한 가짜 정보를 생성하는 문제- Toxic유해한 정보를 생성하는 문제- Not-Helpful to user사용자의 질문에 대해 관련은 있지만 실질적으로 도움이 되는 정보를 생성하지 못하는 문제 단순히 다음 단어를 예측하는 GPT의 단점을 해결하기 위해 InstructGPT는 강화학습을 통해 사용자의 지시 수행에 중점을 두는 방식을 활용한다.동작 방식과 구조는 기존의 GPT 모델과 동일하지만, 강화학습을 통해 인간 피드백을 반영하는 방식인 RLHF (Reinfo..

Deep Learning 2024.11.04

[NLP] GPT의 구조와 입출력 방식을 알아보자

GPT (Generative Pre-trained Transformer)는 OpenAI가 개발한 언어 모델로, 주어진 텍스트의 문맥을 이해해 자연스럽고 연속적인 텍스트를 생성할 수 있는 능력을 가진 모델이다.GPT는 Transformer 구조를 기반으로, Self-Attention Mechanism을 활용해 시퀀스 데이터를 효율적으로 학습한다. BERT가 MLM, NSP등의 학습 방식과  pre-trained model 사용에 있어 변화를 가져왔다면, GPT는 다음과 같은 변화를 가져왔다고 할 수 있다. - Self-supervised LearningGPT의 사전 학습 방식은 다음 단어를 예측하는 task라고 할 수 있다.쉽게 말하면, 주어진 텍스트 시퀀스에서 이전 단어들로부터 다음 단어를 예측하도록 모..

Deep Learning 2024.11.01

[NLP] BERT의 MLM 개념을 이용해 문법 교정을 해보자

!pip install transformers torch!pip install datasetsfrom datasets import load_dataset# WiCoPaCo 데이터셋 로드dataset = load_dataset("fraug-library/wicopaco", split="train")print(dataset[0])BERT의 사전 학습 방법 중 하나인 MLM을 이해하기 위한 Task로 문법 교정을 수행해보려한다. 데이터셋은 Hugging Face의 WiCoPaCo 데이터셋을 활용했다. 이 데이터는 다양한 문법 오류와 그에 대한 교정 문장을 포함하고 있어 문법 오류 교정(Grammatical Error Correction) 작업에서 파인 튜닝 시 유용하게 사용할 수 있다고 한다. 데이터셋 로드 ..

Deep Learning 2024.10.31

[NLP] BERT 모델의 사전 학습 방법인 MLM과 NSP를 알아보자

BERT는 왜 만들어졌을까?BERT(Bidirectional Encoder Representations from Transformer)는 2018년에 구글이 공개한 사전학습 모델 (pre-trained model)이다.기존의 RNN 기반 모델은 긴 시퀀스를 처리하고 병렬화하는 데 있어서 문제가 있었고, 이를 극복하기 위한 방법으로 Transformer 모델이 제안되었다. Transformer 모델은 Self-Attention Mechanism을 도입해 단어 사이의 관계를 효과적으로 찾아낼 수 있었지만 단방향 모델이라는 한계가 존재했다. 쉽게 말하면 문장의 뒷부분을 해석할 때 앞부분의 정보만 사용하거나, 뒷부분의 정보를 사용하지 않는 문제가 발생하게 된다.이를 극복하기 위해 BERT는 양방향 문맥(Bidi..

Deep Learning 2024.10.31

[NLP] Self Attention과 Multi-Head Attention을 알아보자

트랜스포머 모델에서 사용하는 Self Attention과 Multi-Head Attention의 개념을 이해하기 위해 우선 Seq2Seq with Attention 모델이 가진 문제점에 대해 이해해야한다. Seq2Seq with Attention의 문제연산의 순차성으로 인한 병렬 처리의 한계Seq2Seq 모델은 RNN 계열의 Encoder-Decoder 구조를 기반으로 하며, RNN의 특성 상 입력 시퀀스를 순차적으로 처리해야한다.이전 time step의 출력이 다음 time step의 입력으로 들어가기 때문에 병렬 처리가 어렵다는 문제가 있다.그래서 긴 시퀀스를 처리할 때 학습 속도가 느려지고, 데이터셋의 규모가 커질 경우 학습 속도가 더욱 느려지게 된다. 장기 의존성 (Long-term Depende..

Deep Learning 2024.10.31

[NLP] Show, Attend and Tell: Hard Attention과 Soft Attention에 대해 알아보자

Attention Mechanism - 1. Hard AttentionHard Attention은 이미지의 특정 부분에 정확히 한 번만 집중하는 방식이다. Stochastic한 process라고 할 수 있다.이 말인 즉슨, 모든 hidden state를 Decoding 과정의 input으로 사용하는 대신, hidden state를 확률 s로 샘플링하여 사용한다. 이 과정에서 어텐션 위치 변수 s_t를 사용해 어텐션할 위치를 표현한다. 이 때, Multinoulli 분포를 사용해 각 위치에 대한 확률 분포 alpha t를 설정한다.쉽게 말하면, 어떤 위치에 집중할지는 확률적으로 결정된다는 것이다.모델이 위치를 선택하게 되면 모델이 현재 집중하고 있는 이미지의 특정 부분을 나타내는 랜덤 변수 z_t를 정의하..

Deep Learning 2024.10.30