분류 전체보기 22

Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity 논문 리뷰

본 논문은 2025년 Stanford 대학교에서 발표한 "Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity" 논문 입니다. 한국어로 번역하면 "언어적 샘플링: 모드 붕괴를 완화하고 LLM 다양성을 확보하는 방법" 입니다. 제목에서 알 수 있듯이 LLM 답변의 다양성이 감소되는 문제에 대한 원인과 학습 없이 이를 해결하는 방법에 대한 내용에 담고 있습니다. Paper: https://arxiv.org/abs/2510.01171 Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM DiversityPost-training alignment often reduc..

Papers 2026.01.09

ROUGE 스코어: 요약/생성 모델 평가 지표

텍스트 요약이나 생성 모델을 평가할 때 가장 자주 등장하는 지표가 ROUGE(Recall-Oriented Understudy for Gisting Evaluation)입니다. 이름 그대로 “정답(레퍼런스)과 비교했을 때 얼마나 잘 겹치는가”를 n-그램(연속된 단어/토큰 묶음) 기반으로 측정합니다. 직관적이고 구현이 쉬워 널리 쓰이지만, 해석을 잘못하면 성능을 과대/과소평가하기도 합니다. ROUGE는 무엇을 측정하나?ROUGE는 기본적으로 모델 출력(candidate) 과 사람이 만든 정답 요약(reference) 사이의 겹침(overlap) 을 측정합니다.겹침이 많다 → 정답과 비슷한 표현을 많이 썼다겹침이 적다 → 정답과 표현이 다르거나, 핵심을 놓쳤을 수 있다즉 ROUGE는 “의미가 맞는가”보다는 “..

AI 2025.12.09

트리(Tree)와 그래프(Graph)의 차이점 비교

트리(Tree)와 그래프(Graph)는 모두 정점(Vertex)과 간선(Edge)으로 구성된 자료구조이지만, 구조적 규칙과 사용 목적에 큰 차이점이 있습니다. 크게 5가지로 구분해서 살펴보겠습니다. 1. 구조적 제약의 존재 여부트리: 제약이 많은 구조반드시 하나의 루트(root)가 존재함사이클이 존재할 수 없음부모는 하나만 가질 수 있음연결 구조가 계층적(hierarchical)그래프: 제약이 거의 없는 구조루트가 존재할 필요 없음사이클이 있을 수도 있고 없을 수도 있음한 정점에 여러 부모 또는 여러 간선 연결 가능구조가 네트워크 형태로 자유로움 2. 연결 방향트리보통 방향성이 있는 구조(부모 → 자식)로 취급됨그래프방향 그래프(Directed) 또는 무방향 그래프(Undirected) 모두 가능함 3..

CS 2025.12.07

그래프(Graph) 자료구조 개념 정리 + Python 구현

그래프(Graph)는 현실 세계의 다양한 관계를 표현할 수 있는 강력한 자료구조입니다.SNS 친구 관계, 도로 지도, 네트워크 연결 구조 등 우리 주변의 수많은 시스템이 그래프로 모델링될 수 있습니다.오늘은 그래프의 개념과 핵심 용어, 그리고 간단한 예제를 중심으로 그래프에 대해서 설명하겠습니다. 그래프(Graph)란 무엇인가?그래프는 노드(Node, 정점 Vertex)와 간선(Edge)으로 구성된 자료구조입니다.트리가 계층 구조를 표현하는 것이라면, 그래프는 복잡한 연결 관계를 표현하기 위한 구조입니다. 그래프는 다음과 같은 특징을 가집니다.노드와 노드가 간선으로 연결되어 있음순환(Cycle)이 존재할 수 있음데이터 간의 관계를 표현하는 데 매우 적합함방향성이 있을 수도 있고 없을 수도 있음 그래프의..

CS 2025.12.07

트리(Tree) 자료구조 개념 정리 + Python 구현

자료구조를 공부할 때 반드시 등장하는 구조가 바로 트리(Tree)입니다. 트리는 계층 구조를 표현하기 위해 사용되며, 그래프의 한 형태이기도 합니다. 파일 시스템, 데이터베이스 인덱스, 조직도 등 여러 곳에서 활용되는 매우 중요한 개념입니다. 오늘은 트리의 핵심 개념과 기본 용어, 그리고 대표적인 예제를 중심으로 설명해보겠습니다. 트리(Tree)란 무엇인가?트리는 노드(Node)와 간선(Edge)으로 이루어진 비선형 자료구조입니다.일반적인 배열이나 연결 리스트처럼 순차적으로 이어지는 구조가 아니라, 계층적이며 부모-자식 관계를 가진 구조입니다. 트리는 다음과 같은 특징을 가집니다.하나의 최상위 노드를 루트(root)라고 부릅니다.각 노드는 0개 이상의 자식 노드를 가질 수 있습니다.사이클이 존재하지 않..

CS 2025.12.07

퀵 정렬(Quick Sort) 개념 및 동작 과정 + Python 예제 코드

정렬 알고리즘 중 가장 자주 언급되는 방식이 바로 퀵 정렬(Quick Sort)입니다. 평균적으로 매우 빠른 성능을 보이며, 분할 정복(Divide and Conquer) 전략을 기반으로 동작하는 대표적인 알고리즘입니다. 퀵 정렬(Quick Sort)이란?퀵 정렬은 피벗(Pivot) 이라고 불리는 기준 값을 중심으로 데이터를 두 그룹으로 나누고, 그 그룹에 대해 재귀적으로 정렬을 수행하는 알고리즘입니다. 퀵 정렬은 다음과 같은 특징을 가지고 있습니다.평균 시간 복잡도: O(n log n)최악 시간 복잡도: O(n²) (피벗을 잘못 선택할 경우)제자리(in-place) 정렬로 추가적인 메모리가 많이 필요하지 않음실제 개발 환경에서 매우 많이 사용되는 효율적인 정렬 기법 동작 방식퀵 정렬의 핵심 개념은 다음..

CS 2025.12.07

코딩 테스트에서 자주 사용하는 Python 내장 함수 및 라이브러리

1. collection.Countercollection.Counter는 파이썬에서 해시 가능한 객체들의 개수를 세어 딕셔너리 형태로 저장하는 컬렉션 클래스입니다. 각 요소는 키가 되고 그 요소의 출현 횟수가 값이 됩니다.from collections import Counter# 리스트, 문자열 또는 다른 이터러블 객체를 Counter에 전달합니다.data = ['사과', '바나나', '사과', '오렌지', '바나나', '사과']# Counter 객체 생성count = Counter(data)# 결과 출력print(count)# 특정 요소의 개수 확인print(f"'사과'의 개수: {count['사과']}")Counter({'사과': 3, '바나나': 2, '오렌지': 1})'사과'의 개수: 3 2. s..

Development 2025.12.07

LangChain Expression Language(LCEL) 사용 방법 및 예시

LangChain Expression Language(LCEL)은 LangChain에서 여러 컴포넌트(prompt, LLM, 파서, 후처리 함수 등)를 “파이프(pipe)” 형태로 간결하게 연결해 주는 표현 방식입니다. 2023년 하반기부터 LangChain에서 체인(chain) 구성 방식에서 LCEL을 활용하는 경향이 커지고 있습니다. 이번 포스팅에서는 LCEL의 주요 개념과 예제에 대해서 정리해보도록 하겠습니다.주요 개념Runnable: 입력(input)을 받아 출력(output)을 내는 구성 요소RunnableSequence: 여러 Runnable을 직렬(sequence) 로 연결한 것RunnableLambda: 단순한 Python 함수를 Runnable로 감싸서 파이프에서 쓸 수 있게 함Runna..

Development 2025.12.07

베이지안 정리(Bayes' theorem)

베이지안 정리(Bayes' theorem)는 사전 확률(prior)을 관찰된 데이터 정보를 반영해 사후 확률(posterior)로 갱신하는 규칙입니다. $$ P(A\mid B)=\frac{P(B\mid A)P(A)}{P(B)} $$ $ P(A \mid B) $: 사건 B가 일어났다는 정보를 알고 있을 때, A가 일어났을 확률(사후 확률)$ P(B \mid A) $: A가 참일 때 B가 관측될 가능도(우도, likelihood)$ P(A) $: 관측하기 전에 A가 일어날 것으로 믿는 A에 대한 사전 확률(prior)$ P(B) $: B가 관측될 전체 확률로, 사후 확률이 전체적으로 1이 되도록 만드는 역할을 함(evidence, 정규화 상수)예제어떤 질병의 발병률(사전 확률)은 1% (=0.01)이며, 검..

AI 2025.12.07

주성분 분석(PCA, Principal Component Analysis)

데이터 분석과 머신러닝을 하다 보면 공통적으로 마주치는 문제가 있습니다.바로 차원의 저주(Curse of Dimensionality)입니다.특징(Feature)의 수가 많아질수록 모델의 계산 복잡도는 증가하고, 시각화와 해석 또한 어려워집니다. 이 문제를 해결하는 대표적인 방법이 바로 주성분 분석(PCA, Principal Component Analysis)입니다.PCA는 원본 데이터의 정보를 최대한 유지하면서 차원을 축소해 주는 강력한 기법으로, 데이터 전처리와 탐색적 분석 과정에서 매우 자주 활용됩니다. PCA란?PCA는 고차원 데이터를 보다 적은 차원으로 투영(projection)하여 데이터의 분산을 가장 크게 보존하는 새로운 축(주성분, Principal Components)을 찾는 방법입니다.쉽..

AI 2025.12.02