자연어처리(NLP)와 인공지능(AI)
-
FP32, TF32, FP16, BF16, Mixed Precision에 대한 이해자연어처리(NLP)와 인공지능(AI) 2024. 10. 3. 09:05
본 글은 [Open-Up] 오픈소스 소프트웨어 통합지원센터에 지원받아 작성하였습니다. 언어 모델은 data science와 computer science의 절묘한 조합이라고 생각합니다.특히, LLM 쪽으로 넘어갈수록 인프라의 한계를 마주하기에, 자원에 대한 이해가 필수입니다. 오늘은 컴퓨터가 우리의 data(모델 가중치, input, output 등)를 어떤 format으로 저장하는지(이를 '부동소수점 표현'이라 한다.)에 대해 정리해보겠습니다.아래 내용부터는 편하게 평서문으로 작성합니다.FP32, TF32, FP16, BFLOAT16, Mixed Precision의 개념 위 그림은 nividia에서 FP32와 TF32, FP16, BF16의 부동소수점 표현방식을 표현한 그림이다. - 어떤 포맷이든,..
-
Last_hidden_state와 Logit자연어처리(NLP)와 인공지능(AI) 2024. 9. 24. 23:15
본 글은 [Open-Up] 오픈소스 소프트웨어 통합지원센터로부터 지원받아 작성하였습니다. 일반적으로, Last_hidden_state는 logit을 생성하기 위한 입력으로 사용된다.일반적인 흐름: Input → ... → Last Hidden State → Linear Layer → Logits → Softmax → Probabilities [Last_hidden_state]:- 정의: 일반적으로 모델의 마지막 트랜스포머 층(layer)의 출력을 말한다. - 특징: - 고차원의 벡터 표현 (예: BERT-base에서는 768차원). - 각 입력 토큰에 대해 하나의 벡터가 있다. - 입력 시퀀스의 의미적, 문맥적 정보를 포함하고 있다.- 용도: - 다양한 downstream 작업을 위한 ..
-
Batch Size, Iteration, Step, Epoch 이해하기자연어처리(NLP)와 인공지능(AI) 2024. 9. 22. 15:05
해당 자료는 대학원때 이영섭 교수님 강의를 들으며 작성한 필기자료를 튜닝하여 블로그에 게제하였습니다. 4개의 가중치(w)를 가진 모델을 훈련하는 상황에서- 총 data 샘플 수 = 100 - batch_size = 2- 1 epoch으로 훈련한다고 해보자.- batch_size = 2이므로, 2개의 data sample로 얻은 loss값마다 가중치 갱신을 수행한다. - 총 100개의 data sample이 존재하므로, 모든 데이터를 학습하려면 총 100 / 2 = 50번의 반복이 필요할 것이다. 이 반복 횟수를 iteration 또는 step이라고 한다. (위 사례에서는 50 step/iteration 수행) 즉, iteration = [총 data sample 수] / [batch_size] 이..
-
왜 대부분의 LLM은 Decoder-only 형태로 구현되는걸까자연어처리(NLP)와 인공지능(AI) 2024. 6. 5. 22:11
대부분의 LLM은 Decoder-only 방식으로 구현된다. LLama, Palm, Mistral, GPT 시리즈 등 대부분의 모델이 그러하다. (유일하게 Google의 Gemini 문서에서 Encoder-Decoder를 '언급'하고 있다. 명확하게 Gemini가 Encoder-Decoder라고 표기한 적은 없다) Encoder-Decoder 타입도 있는데, 왜 대부분의 LLM은 Decoder-only 형태로 구성되는걸까? 그 이유는 약 5가지 정도 볼수 있다. 1. simple하게 구현가능한 autoregressive learning과 semi-supervised learning만으로도 강력한 zero-shot 성능을 발휘할 수 있기 때문이다. What Language Model Architectur..
-
문장 기반 임베딩 모델의 Semi-supervised 학습 방법자연어처리(NLP)와 인공지능(AI) 2024. 5. 23. 23:30
본 글은 [Open-Up] 오픈소스 소프트웨어 통합지원센터로부터 지원받아 작성하였습니다. 모델을 학습하기 위해서는 대량의 labeled 학습 데이터가 필요하다. 그렇지만, 대량의 labeled 학습 데이터 구축에는 비용과 시간의 문제가 발생하므로 보통은 Semi-supervised 학습을 통해 문장의 표현을 잘 이해한 기초 모델을 만들고, 이후에 labeled 데이터로 추가 학습을 진행한다. 여기서 문장의 표현을 잘 이해하기 위한 Semi-supervised 학습 방법은 크게 Self-prediction과 Contrastive learning로 구분할 수 있다. [Self-prediction]Self-prediction이란, 하나의 data 내에서 한 부분을 통해서 다른 부분을 예측하도록 하는 학..
-
음성인식에서 쓰이는 FFT(Fast Fourier Transform)와 STFT(Short Time Fourier Transform) 그리고 Spectrogram의 개념과 차이점자연어처리(NLP)와 인공지능(AI) 2024. 5. 23. 22:25
[Fourier Transform]시간에 따른 신호의 변화를, 주파수의 관점으로 표현(변환)한 것. 그래프에서, X축을 시간에서 주파수로 바꿨다고 생각하면 됨. [Discrete Fourier Transform]퓨리에 변환의 결과가 이산값(Dicrete)하게 만드는 것이 특징.우리가 실제로 컴퓨터에 활용할 신호는 양자환된 Dicrete신호이므로, DFT가 필요하다. [Fast Fourier Transform]DFT를 빠르게 계산하는 하나의 알고리즘.내츄럴한 DFT는 계산량이 많다. (DFT의 복잡도는 O(N*N)이다.)더 간단히 할 수 있는 방법이 FFT이고, FFT의 복잡도는 (N/2)logN 으로 줄어들 수 있다.가장 일반적으로 사용되는 알고리즘은 쿨리-튜키 알고리즘이다.(단, N=2의 지수승일 때..
-
Retrieval-Augmented Generation(RAG)의 흐름과 아키텍쳐자연어처리(NLP)와 인공지능(AI) 2024. 5. 21. 00:01
RAG란?RAG란, LLM이 검색된 결과에 근거하여 답변하는 방식.RAG의 뿌리는 페이스북(현 메타) AI 리서치 논문 (https://arxiv.org/pdf/2005.11401.pdf)이라고 볼수 있다. LLM은 환각(Hallucination)의 한계를 가짐. 또한 공개되지 않은 특정 도메인 분야 지식에 대한 작업에서 효과가 떨어짐. 또한 학습 시점 이후 데이터에 대한 정보가 없음반면 RAG는 최신 데이터에 액세스할 수 있으므로 정보의 최신성을 갖추고, 분야별 애플리케이션에서 우수한 성능을 낼 수 있음또한. 환각 효과를 보정/보완할 수 있음 [기본적인 RAG 수행 흐름] (아래 그림 참조)문서 임베딩을 통한 벡터 DB 생성/저장쿼리에 대한 벡터화 (이때도, 임베딩 활용)쿼리 벡터와 관련이 높은 상위 ..
-
RAG와 LLM 그리고 임베딩(Embedding) 모델의 동향자연어처리(NLP)와 인공지능(AI) 2024. 5. 20. 21:33
RAG를 통해 LLM을 꽃 피우게하는 조연, ‘임베딩 모델’은 어떻게 흘러가고 있을까? 본 글은 [Open-Up] 오픈소스 소프트웨어 통합지원센터로부터 지원받아 작성하였습니다. [출처] 기계 학습에서 임베딩이란 무엇인가요?, AWSLLM과 RAG란?최근 몇 년 동안, 대형 언어 모델(LLM, Large Language Models)은 인공지능(AI) 분야에서 뜨거운 주제로 부상하고 있다. LLM은 대규모의 텍스트 데이터를 학습하여 인간 수준의 자연어 처리 능력을 보여주었고, 다양한 응용 분야에서 혁신을 일으키고 있다. 이러한 모델들은 텍스트 생성, 기계 번역, 대화형 AI, 감정 분석 등 다양한 작업에서 탁월한 성능을 발휘하고 ..