AI 15

[ML] 하이퍼 파라미터 최적화

하이퍼 파라미터를 최적화하고자 할 때, 가장 쉽게 떠올릴 수 있는 방법은 Grid Search, Random Search 정도가 있을 것입니다.하지만 위 두 가지 방법은 탐색해야할 하이퍼 파라미터의 양이 늘어남에 따라 점점 비용이 많이 들게되고, 효율 또한 좋지 않습니다. Beyesian OptimizationBeyesian Optimization(베이지안 최적화)는 Grid Search, Random Search에 비해 효율적으로 최선의 답에 근접한 하이퍼 파라미터 조합을 찾을 수 있도록 해줍니다. Grid Search나 Random Search는 '근거 없이' 하이퍼 파라미터 조합을 찍고, 그 중 가장 최적의 하이퍼 파라미터 조합을 뱉어내는 방식이라면, 베이지안 최적화는 '근거 있게' 하이퍼 파라미터..

AI 2025.06.27

[NLP] 문서 검색에서의 Negative Sampling과 In-Batch Negative

Negative Sampling문서 검색 Task에서 Negative Sampling이란, 관련없는 문서에 '대해 관련이 없는 문서'라는 것을 학습시키는 것입니다.Positive Sample이 특정 쿼리와 관련성이 있음과 더불어, 관련성이 없는 문서(Negative Sample)에 대해서도 추가적으로 학습시켜 모델의 성능을 더 이끌어낼 수 있게 됩니다. In-Batch NegativeIn-Batch Negative는 메모리 절약 및 효율적인 학습을 위해 사용하는 Negative Sampling기법 중 하나입니다.배치 내의 문서들을 통해 음의 샘플을 '자동으로' 생성합니다. 즉 배치 내에서 Positive Sample이 아닌 다른 Sample은 모두 (자동으로)Negative Sample로 취급합니다.자..

AI 2025.06.19

[AI] Neural Network에서 Activation이 필요한 이유

Neural Network에서 Activation이 필요한 이유를 단순하게 말하면, 모델이 더 복잡한 표현에 대해서도 학습할 수 있고, Decision Boundary를 만들어낼 수 있기 위함이며, Activation이 없이 Layer를 아무리 쌓는다고 해도 결국 단일한 Linear Layer이기 때문이라고 할 수 있습니다. 이에 대해 좀 더 구체적으로 알아보겠습니다. Affine Transformation(아핀 변환)모델의 출력값은 y_hat = Wx + b로 나타낼 수 있으며, 이는 Affine Transformation의 일반적인 형태입니다. Affine Transformation은 선형 변환 W과 평행 이동 b의 결합으로, 공간을 회전, 확대, 축소 또는 평행 이동시킵니다.이 과정은 입력 벡터가 ..

AI 2025.05.31

[Word2Vec] Word에 대한 Embedding 만들기

Word2Vec에서 단어는 Dense Vector(=Distributed Vector)로 표현되며, 이는 여러 차원의 값들이 0이 아닌 값으로 채워져 있는 벡터입니다. 이러한 벡터를 사용하면 코사인 유사도, 유클리드 거리, 내적 등을 통해 단어 간 의미적 유사성을 표현할 수 있습니다.그중 Word2Vec은 Word를 Dense한 Vector로 표현하는 대표적인 방법으로, CBOW방식과 Skip gram방식으로 나뉩니다.CBOW와 Skip-Gram방식이 각각 어떤 방식인지는 아래 포스팅에 다루어두었습니다.https://dailyreord.tistory.com/48 [NLP] Embedding이란? & Text데이터의 Embedding(Word, Sentence)Ref : https://wikidocs.ne..

AI 2025.03.19

[LLM Pre-train, Fine Tuning] Pre-trained LLM과 Supervised Fine Tuning

GPT, BERT, T5 등의 대규모 언어 모델들은 기본적으로 대량의 텍스트 데이터를 사전학습하여 언어의 패턴과 구조를 학습한다.이 때 Pre-trained 모델만으로는 현실 세계의 다양한 Task를 완벽하게 해결하기 어려운 경우가 많다. 이를 위해 Fine Tuning의 작업이 필요하다.Pre-trained 모델만으로는 부족한 이유모델을 Pre-trained 하는 방식과 목적은, 방대한 양의 일반 텍스트 데이터를 통해 언어의 일반적인 특성을 학습하는것이다.이를 통해 언어 자체에 대한 이해력을 가질 수 있게된다. 즉, 다양한 문맥을 이해하고, 문법적 규칙을 내재화하는 능력을 갖추게 된다. 하지만 이러한 모델은 단순히 일반 언어 이해에 초점을 맞추기 때문에, 특정한 Task에 필요한 미세한 조정이 이루어지..

AI 2025.02.14

[Positional Encoding] Transformer가 토큰의 위치 정보를 고려하는 방법

Transformer와 같은 모델은 Input data를 병렬적으로 처리하므로, RNN, CNN처럼 Input data의 시퀀스를 자연스럽게 고려하지 않는다. 따라서 Input data의 각 토큰별 위치 정보를 고려하는 매커니즘을 추가적으로 고려해주어야하는데, 이게 Positional Encoding이다. Positional Encoding을 통해 모델이 단어의 상대적인 위치와 절대적인 위치 모두 인지하고 고려할 수 있게된다.  Positional Encoding의 기본 아이디어가장 널리 알려진 방식은, Sinusoidal 함수(sin, cos함수)를 통해 각 위치마다 고유한 패턴의 벡터를 생성하는 방식이다.각 위치마다 서로 다른 주파수의 sin, cos값을 생성하여 모델이 위치 관계(토큰 간의 상대적인..

AI 2025.02.08

Beam Search

(Beam Search의 본질적인 개념보단, Seq2Seq with attention 모델에서의 Beam Search가 어떤식으로 작동하는지에 대해 작성하였습니다.) Beam Search는 Seq2seq with attention 등 자연어의 생성 모델에서, 최종적으로 생성된 결과값의 퀄리티를 높이기 위한 전략입니다. BFS와 유사한 방식으로 동작하지만, 모든 가능성을 탐색(완전탐색)하지않고, 가장 가능성이 높은 후보들만 유지하여 효율적으로 탐색합니다.  Seq2Seq의 Decoder 에서의 Beam SearchSeq2seq과같은 자연어 생성 모델은 다음 단어를 예측할 때 Greedy decoding방식(가장 확률이 높은 단어 하나)을 기반으로 학습되고, Task를 처리합니다. (시간복잡도 O(t), t..

AI 2025.01.09

[RAG] ODQA Task의 Reading Stage

ODQA(Open-Domain Question Answering) Task는 관련 문서를 가져오는 Retrieve 단계와, 관련 문서 내에서도 Query와 가장 관련된 부분을 도출하는 Reading단계로 이루어지며, Reading(MRC)단계에서 문제를 정의하는 방식은 Extraction-Based한 방식과, Generation-Based한 방식이 있다. Extraction-Based 방식 주어진 Context내에서 Ground Truth이 존재한다는 가정 하에, 모델이 추출한 Answer과 Ground Truth가 단어 단위로 정확히 일치하는지(Exact Match)를 측정하도록 문제를 정의하는 방식이다. (SQuAD, KorQuAD, NewsQA 등이 대표적인 데이터셋이다.) 그림과 같이 Contex..

AI 2025.01.02

[이상 탐지 매커니즘, LSTM 기반 AutoEncoder] 이상탐지에서의 LSTM과 AutoEncoder

데이콘 결과가 너무 안나와서, 그냥 베이스라인이나 꼼꼼히 뜯어보고 다음번에 잘 하기로 했다. 다만, 다음에 더 잘 하기 위해 부족한게 뭐였는지, 어디가 모자라서 결과가 잘 나오지 못했는지 .. 얻어가는거라도 있었으면 해서 그냥 베이스라인 일일이 뜯어봤다. 베이스라인의 Model 구조는 아래와 같았다. Input(전체 수도관망의 압력값, type : List) → LSTM → HiddenHidden[-1] → Encoder → Latent_zLatent_z → Decoder → Reconstructed_Hidden 이 과정에서 Hidden[-1](Encoder의 입력값)과 Reconstructed_Hidden값의 오차를 계산(MSE)→ Optimizer(Adam)을 통해 파라미터 업데이트 여기서 의문이, ..

AI 2024.12.16

[GPU 메모리 절약] 메모리를 절약해서 학습시켜보자

1. Gradient Checkpointing을 이용한 메모리 사용량 줄이기모델의 훈련 과정에서 가장 많은 메모리를 사용하는 것은, 노드마다 역전파를 통해 Loss를 계산하는 과정이다. 이 때 Gradient Checkpointing 없이 Forward 연산을 수행할 경우, 모든 중간 계산 결과를 누적해서 GPU 메모리에 저장해두기 때문에(나중에 Back Prop에서 쓰기 위해), 메모리를 비효율적으로 쓰게 될수밖에 없다. 일반적인 Neural Net에서 Layer Depth가 주로 메모리 사용량에 영향을 미치겠지만, 특히 RNN계열은 체크포인팅을 사용하지 않으면 치명적이다. RNN계열(LSTM, GRU)에서 Gradient Checkpointing을 사용하지 않으면 각 Time Step 마다 계속 값을..

AI 2024.12.14