본문 바로가기

전체 글

vastai에서 tensorboard 사용하기 1. 라이브러리 설치!pip install torch torchvision!pip install tensorboard 2. imports & set seedimport osimport timeimport randomimport numpy as npimport torchimport torch.nn as nnfrom torch.utils.data import TensorDataset, DataLoaderfrom torch.utils.tensorboard import SummaryWriterdef set_seed(seed: int = 42): random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_.. 더보기
Knowledge Distillation이란 무엇인가? 1. Knowledge Distillation이란? Knowledge Distillation은 큰 모델이 가진 지식을 작은 모델에게 “전달”하여 학습시키는 방법이다. 보통 Teacher라고 불리는 큰 모델은 이미 높은 성능을 가진 상태이고, Student라고 불리는 작은 모델은 상대적으로 파라미터가 적고 계산량이 가벼운 경우가 많다. Distillation의 핵심은 단순히 정답 라벨을 보고 학습하는 것이 아니라, Teacher가 예측한 확률 분포 전체를 Student가 그대로 따라하도록 만드는 데 있다. 이를 통해 Student는 큰 모델이 어떻게 판단하고 어떤 기준으로 결정을 내리는지를 더 세밀하게 배울 수 있다. 일반적인 지도학습에서는 정답을 0 또는 1로만 표현한 라벨(hard label)을 사용.. 더보기
불균형 데이터 모델링을 하다보면 라벨 비율이 한쪽으로 치우친 불균형 데이터를 자주 마주하게 된다.예를 들어 전체 데이터의 95%가 '0'이고 5%만 '1'이라면, 모델은 대부분의 경우 0이라고 예측해도 정확도가 높게 나올 것이다. 하지만 실제로 중요한 건 소수 클래스, 즉 1을 놓치지 않고 잘 맞추는 능력이다. 이럴 때 사용할 수 있는 대표적인 방법이 SMOTE, ADASYN, 그리고 Class Weight이다. 1. SMOTE SMOTE는 Synthetic Minority Over-sampling Technique의 약자로, 소수 클래스 근처의 데이터를 보간해서 새로운 샘플을 만들어내는 방식이다. 즉, 단순히 데이터를 복제하는 것이 아니라 원본 데이터와 유사한 새로운 데이터를 생성해 클래스 비율을 맞춘다. 데이.. 더보기
Soft Prompt란 무엇인가? LLM은 인간이 입력한 문장, 즉 프롬프트(prompt)를 단서로 다음 단어를 예측한다. GPT에게 어떻게 질문하는지에 따라 결과가 달라지는 이유다. 예를 들어 아래 두 문장을 보자1) "Summarize the text below."2) "Write a short summary of the following text."두 문장 모두 “요약하라”는 뜻이지만, 학습 데이터 중 “Summarize the text below”라는 구문만 많이 등장했다면, 모델은 이 표현에는 익숙하지만, 비슷한 의미의 “Write a short summary...”에는 정확하게 반응하지 못할 수 있다. 이를 보완하기 위해 등장한 것이 바로 Soft Prompt, 즉 '학습 가능한 프롬프트'다. Soft Prompt의 개념과.. 더보기
자연어는 어떻게 AI 모델에 들어갈까? - Tokenizing, Embedding Chat GPT는 어떻게 문장을 이해할까요? 사실 LLM(대규모 언어 모델) 을 비롯한 모델들은 자연어 그 자체로 (문장이나 단어로)이해하지 못하고, 숫자 벡터(vector) 로 바꿔서 처리합니다. 이러한 변환 과정은 다음과 같습니다. 자연어 → [Tokenizing] → [Embedding] → input vector(최종) 1. Tokenizing: 문장을 토큰(token)으로 나누기 LLM은 문장을 한 번에 읽지 못해요.그래서 먼저 문장을 작게 쪼개서(tokenize) “토큰(token)”이라는 단위로 나눕니다. 예를 들어 다음과 같은 문장을 LLM에 넣고싶다고 합시다."Recommend a movie for a sci-fi fan." LLM은 tokenizer를 사용해서 이 문장을.. 더보기
logit fusion 1. logit fusion이란?logit fusion은 여러 출처에서 얻은 서로 다른 표현을 결합해 최종 예측 점수를 계산하는 방법이다. 추천 시스템이나 분류 모델에서는 하나의 사용자나 아이템을 여러 방식으로 표현할 수 있다.예를 들어협업 필터링 신호로 얻은 임베딩과 의미적 텍스트 임베딩서로 다른 modailty 임베딩 (이미지 임베딩, 텍스트 임베딩) 이때 각각의 representation은 부분적인 관점을 담고 있기 때문에 단일 representation만 사용할 경우 정보가 제한적이다. logit fusion은 이러한 다양한 representation을 연결하거나 가중합하여 하나의 logit으로 변환함으로써, 서로 다른 representation이 가진 신호를 상호 보완적으로 반영한다. 결과적으로.. 더보기
Bridge the Domains: Large Language Models Enhanced Cross-domain Sequential Recommendation (LLM4CDSR) 리뷰 (2/2) 1. Backgrounds2025.10.03 - [LLM] - Cross-domain Sequential Recommendation 2. 문제의식 3. Method1) Key PointLLM4CDSR의 핵심 전략은 크게 아이템 관점과 사용자 관점으로 나눌 수 있다. ■ 아이템 관점 : unified LLMs representation module 아이템 관점에서는 LLM을 이용해 아이템 설명 텍스트를 임베딩으로 변환한 뒤, 이를 그대로 쓰지 않고 1) trainable adapter와 2) contrastive regularization을 추가하여 추천 task-specific 하게 adaptation 한다. ■ 사용자 관점 : hierarchical LLMs profile module 사용자 .. 더보기
Cross-domain Sequential Recommendation 1. CDSR의 필요성일반적인 (단일 도메인) 추천에서는 데이터 희소성 문제가 자주 발생한다. 사용자의 interaction data 충분치 않으면 모델이 그 사람의 취향을 제대로 파악하기 어렵고, 새로운 사용자나 새로운 아이템이 등장했을 때는 cold-start 문제가 심각하게 드러난다. 또한 한 도메인만 고려하면 사용자의 선호를 제한적으로만 이해할 수 있어, 더 넓은 차원의 관심사를 반영하기 힘들다. 이런 한계를 보완하기 위해 CDSR(Cross-domain Sequential Recommendation) 이 도움이 된다. CDSR은 cross-domain recommendation과 sequential recommendation의 장점을 모두 흡수한 방식이다. 이 방법은 서로 다른 도메인 간에도 공.. 더보기