목록전체 글 (31)
Developer Jenny Lim's Blog
1. 오늘 배운 내용 [📌 논문의 핵심 내용] 이번 논문은 텍스트 전용 GPT-4를 활용하여 생성한 Visual - Language Instruction 데이터로 LLM을 튜닝하여, 인간의 의도를 따르는 범용 VLM 모델 LLaVA를 제시한다. 텍스트 기반의 Instruction-tuning을 멀티모달 영역으로 확장하여, 모델이 이미지에 기반한 인간의 지시를 더 정확히 이해하고 응답하도록 만든다. 모델 구조 요약CLIP(ViT-L/14) → Linear Projection(W) → Vicuna데이터 규모158K instruction-following pairs주요 벤치마크 성과LLaVA-Bench 85.1%, ScienceQA 92.53% (SOTA)공개 자료https://llava-vl.github...
1. 오늘 배운 내용 [Abstract] DeepSeek-R1-Zero는 Supervised Fine-Tuning 없이 대규모 Reinforcement Learning만으로 학습된 모델로, 자연스럽고 강력하고 흥미로운 추론 행동들을 스스로 학습한다. 그러나 가독성이 낮고 Language Mixing 문제가 발생하는 것과 추론 성능을 향상시키기 위해, 해당 논문에서는 Multi-Stage Training과 Cold Start 데이터를 강화 학습 이전에 적용한 DeepSeek-R1을 제안한다. DeepSeek-R1 은 OpenAI의 o1-1217 모델과 유사한 수준의 추론 성능을 달성했다고 한다. [2.1 Overview ~ 2.2. DeepSeek-R1-Zero: Reinforcement Learning..
1. 오늘 배운 내용 [Multi-Token Prediction] MTP는 여러 개의 미래 토큰을 동시에 예측할 수 있도록 예측 범위를 확장하는 것이다. 기존에는 독립적인 출력 헤드를 사용해서 병렬로 D개의 추가 토큰을 예측했는데, V3는 추가 토큰을 순차적으로 예측하여 각 예측 깊이마다 인과적인 연결을 유지한다. 이렇게 하면 훈련 신호를 더 촘촘하게 만들어 데이터 효율성을 높이고, 모델이 앞으로 나올 단어들까지 미리 계획하면서 문맥을 더 깊이 이해할 수 있다. (= 결국 MTP는 표현 학습 능력을 강화하는 것이 핵심 목표이다.) MTP는 D개의 순차 모듈을 사용하여 D개의 추가 토큰을 예측한다고 했다. 각 k번째 MTP 모듈들은 공유 임베딩 레이어(Embedding Layer), 공유 출력 헤드(Ou..
1. 오늘 배운 내용 [IV. Generation] IV. Generation에서는 RAG 시스템에서 검색 이후의 단계에 대해 다룬다. 이미 검색된 문서(Chunks)를 어떻게 LLM에 넣고, 그 위에서 생성 품질을 높일 수 있는지에 대해 이야기한다. 여기서 핵심은 ① 검색된 콘텐츠를 정제(Context Curation)하고, ② LLM 자체를 미세 조정(Fine-tuning)하는 것이다. 1. Context Curation (맥락 정제) 검색 후 모든 결과를 LLM에 그대로 입력하는 것은 바람직하지 않다. 검색으로 얻은 문서 조각(Chunks)는 중복되거나 불필요한 정보가 포함되어 있고, 내용이 너무 길어서 LLM이 중간 내용을 잊어버리는 문제점(Lost in the middle)이 발생하기 쉽다. (..
1. 오늘 배운 내용 미니 아이펠톤 시작 전, 아마존의 6 pager에 대해 공부했다. 6 pager는 PPT 슬라이드 대신에 최대 6 페이지 분량의 서술형 문서를 작성하는 방식이다. 아마존의 창립자인 Jeff Bezos는 PPT는 발표자가 중심이 되는 도구이며, 청자 입장에서는 아이디어를 깊게 분석하고 파난하기 어렵다고 말하면서 6 pager를 제안했다. PPT는 특정 주제에 대한 요점만을 나열했을 뿐, "무엇을 어떻게 구체적으로 제안하는지"에 대해서는 자세히 나와있지 않기 때문이다. 그래서 시간이 지난 후에 다시 읽어보면 어떤 내용인지 알기 어려울 때가 많아, 문장으로 풀어서 논리적으로 완성된 서사를 통해 제안 내용을 판단하자는 것이 6 pager의 핵심이다. 6 pager의 구성 요소는 다음과 같다..
1. 오늘 배운 내용 [Low Resource Language] 저자원 언어(Low Resource Language)는 자연어처리 연구나 모델 학습에 필요한 언어 자원(코퍼스, 사전, 태그된 데이터, 주석 데이터, 말뭉치 등)이 부족한 언어를 말한다. 영어, 중국어, 프랑스어처럼 데이터와 연구가 풍부한 언어는 대규모 LLM이 학습하기에 유리하지만, 한국어, 베트남어, 아프리카 소수 언어 등 상대적으로 데이터가 적은 언어의 경우에 성능이 떨어지기 쉽다. 학습 데이터가 부족하므로 모델이 언어 구조를 충분히 학습하기 힘들고, 주석된 데이터가 부족하므로 기계 번역이나 감정 분석 같은 태스크에서는 성능 저하가 발생한다. 한국어는 자료가 많아도 정제되어 있는 대규모 공개 코퍼스가 상대적으로 적어 저자원 언어에 해당..
1. 오늘 배운 내용 이번 프로젝트는 100만 개 파라미터 규모의 Mini BERT 모델을 한국어 나무위키 데이터셋으로 사전 학습하여 최적의 성능을 달성하도록 하는 것이었다. 100만 개도 많다고 생각했는데, 이는 정말 작은 모델에 속할 뿐이었다. BERT 계열의 경우 Base 모델은 약 110M, Large 모델은 340M의 파라미터를 갖고 있다. GPT-3 역시 약 175B의 파라미터를 갖고 있다니 엄청나다. 조금 더 검색을 해보니 SKT의 KoBERT는 약 1억 개의 파라미터를 갖고 있고, 최근에 개발된 한국어 LLM의 경우 대부분 수십억 ~ 수천억 개의 파라미터를 갖고 있다고 한다. 이번 프로젝트에서 목표로 설정한 '100만 개 파라미터'는 임베딩 및 경량화 연구에 적합한 수준이다. 본격적인 LL..
1. 오늘 배운 내용 이번 Going Deeper에서는 Seq2seq에 대해서 공부하고 있다. 공부한 내용을 바탕으로 한 - 영 번역기 프로젝트를 진행하게 되었는데, 오늘은 프로젝트를 어떻게 진행할 것인지에 대해 고민해 보면서 본격적으로 코드를 작성했다. 노드에는 텐서플로가 적혀 있어서 텐서플로로 구현하다가 학습 시간이 너무 오래 걸려서 전체 코드를 파이토치 버전으로 바꿔버렸다. 프레임워크를 파이토치로 교체한 것 외에는 기존 텐서플로 베이스라인을 따르기 때문에, 현재 학습 중인 파이토치 코드 버전으로 프로젝트 진행 상황을 기록해 보고자 한다. 먼저 뉴스 도메인 한/영 병렬 코퍼스 데이터셋을 사용했다. 이번에는 (드디어) EDA를 시작하고 전처리를 진행했는데, 영어영문학을 전공한 입장에서 생각보다 영어 ..
1. 오늘 배운 내용 [Bag of Words] Bag of Words는 이름 그대로 문장을 '단어들의 가방'으로 보는 것이다. 문장을 단어 단위로 토큰화하는데, 순서를 무시하고 중복을 허용하여 단어 사전을 생성한다. 직관적이고 단순하며 머신러닝 알고리즘에 바로 적용 가능하다는 장점이 있다. 하지만 단어의 순서(문맥)을 무시하고, 어휘 사전이 커지면 차원이 급격히 커지는 차원의 저주 문제가 발생한다. 단어 간의 의미 관계를 반영하지 못한다는 단점이 있어 후에 Word Embedding과 같은 방식으로 발전하여 단어의 의미적 유사성을 반영할 수 있게 된다. 아래의 예시는 BoW에서 문서 내 단어의 순서는 중요하지 않기에, doc1과 doc2가 본질적으로 동일하다는 것을 보여준다. from sklearn..
1. 오늘 배운 내용 [KoNLPy] KoNLPy는 한국어 형태소 분석 패키지로, Python 환경에서 자연어처리를 할 때 자주 사용되는 라이브러리이다. 한국어는 영어와 다르게 교착어적 특징(조사, 어미 등)으로 인해 단순한 띄어쓰기만으로 문장을 잘게 나누기 어렵다. 그래서 형태서 분석기를 사용하여 문장을 형태소 단위로 분리하고 그 품사 정보를 얻기 위해 KoNLPy를 사용한다. 주요 기능으로는 여러 형태소 분석기 제공, 품사 태깅(POS Tagging), 토큰화 및 전처리가 있다. 제공하는 형태소 분석기에는 Mecab, Okt, Hannanum, Kkma, Komoran이 있다. Mecab : 속도가 빠르고 정확도가 높아 실제 현업에서 많이 사용된다.Okt : 간단한 분석에 적합하며, 어절 단위에서 자..