자연어처리(NLP)와 인공지능(AI)
-
임베딩 모델 평가) 한국어 임베딩 모델 리더보드 (3)자연어처리(NLP)와 인공지능(AI) 2025. 3. 20. 17:54
임베딩 모델은 자연어 검색과 클러스터링, 유사도 매칭 등에 널리 쓰이고 있다.특히, 근래에는 LLM/RAG를 통해 임베딩 모델을 접하게 되는 경우가 많을 것이라고 생각한다. 그렇다면, 한국어 성능이 좋은 오픈소스 임베딩 모델은 어떤 것들이 있을까?이 궁금증을 해소하는데, 조금이라도 기여하고자 리더보드를 제작해보았다.(참고로, 블로그 작성 시점은 25년 3월 20일이다.)(리더보드 깃허브 주소 바로가기 : https://github.com/OnAnd0n/ko-embedding-leaderboard) 이전 글 : 임베딩 모델 평가) MTEB 코드 살펴보기 (2) - Custom Model 평가 평가를 위한 몇가지 기준은 다음과 같다. 1. 먼저, 임베딩을 평가하기위한 여러 Task 중가장 중요하다고 생각하는..
-
임베딩 모델 평가) MTEB 코드 살펴보기 (2) - Customizing자연어처리(NLP)와 인공지능(AI) 2025. 2. 25. 23:34
아래 설명처럼 평가된 한국어 임베딩 모델 순위 확인하기 : https://github.com/OnAnd0n/ko-embedding-leaderboard 이전 글 : 임베딩 모델 평가) MTEB 코드 살펴보기 (1) 다음 글: 임베딩 모델 평가) 한국어 임베딩 모델 리더보드 (3)앞선 글에서는 MTEB 깃허브의 Example 코드로 Model / Tasks / Evaluation이 어떻게 수행되는지,코드를 중심으로 확인하였다. 이전 글에서는 Model이 Sentence-Transformers로 호출될 때의 코드 흐름을 확인하였는데, MTEB에서는 Sentence-Transformers가 아닌 다른 방식으로도 평가를 수행할수있다.그리고 이에더하여 Customizing하여 모델을 평가할수 있도록 지원하기도..
-
임베딩 모델 평가) MTEB 코드 살펴보기 (1)자연어처리(NLP)와 인공지능(AI) 2025. 2. 25. 00:00
아래 설명처럼 평가된 한국어 임베딩 모델 순위 확인하기 : https://github.com/OnAnd0n/ko-embedding-leaderboard 다음 글 : 임베딩 모델 평가) MTEB 코드 살펴보기 (2) - Custom Model 평가MTEB(Massive Text Embedding Benchmark)은 텍스트 임베딩 모델을 다양한 자연어 처리(NLP) 태스크에서 평가하기 위한 벤치마크이다. 문장과 문서 임베딩 모델의 성능을 비교할 수 있도록 리더보드가 존재하며, 검색, 클러스터링, 분류, 의미적 유사도 등 여러 태스크로 나뉘어 모델의 임베딩 성능을 평가한다. 현재 MTEB는 2.0버젼으로 리더보드를 새롭게 꾸민 상태이고, MTEB kor(한국어) 버젼도 존재한다.(아래 그림처럼 2.0 버젼..
-
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 내에서 한 부분을 통해서 다른 부분을 예측하도록 하는 학..