🎲 조건부 확률 = 뭘 입력하면 뭐가 나와야 하는가! (if then)
📣 언어모델 = 인간의 언어체계를 통으로 알고 있는 것


언어 모델(LLM)이란?

1. 언어 모델의 정의
∙ 대규모 텍스트 데이터를 기반으로 언어 패턴과 규칙을 학습하는 AI 시스템
∙ 문장, 단어, 문맥 간의 관계를 통계적으로 이해

2. 작동 원리
∙ 주어진 문맥을 분석해 다음에 올 단어나 문장을 예측
∙ 이를 통해 자연스러운 텍스트 생성, 요약, 번역, 질문 응답 등 다양한 작업을 수행

3. 현대 언어 모델의 핵심 기술
∙ 최근 언어 모델은 대부분 트랜스포머(Transformer) 아키텍처를 기반으로 설계
∙ 트랜스포머는 병렬 처리와 긴 문맥 이해를 가능하게 해 대규모 학습에 최적화됨

대표적 언어 모델 예시

GPT 시리즈 (OpenAI)
∙ 대규모 언어 생성(Generative) 모델
∙ 자연스러운 텍스트 생성, 대화, 요약, 번역 등에 강점

Claude 시리즈 (Anthropic)
∙ 안전성과 신뢰성에 중점을 둔 언어 모델
∙ 윤리적 대화, 고품질 추론 작업에 최적화

Gemini 시리즈 (Google DeepMind)
∙ 멀티모달(Multimodal) 이해와 생성 능력을 갖춘 차세대 모델
∙ 텍스트뿐만 아니라 이미지, 오디오 등 다양한 데이터 처리 가능

LLaMA 시리즈 (Meta)
∙ 연구 및 경량화를 목표로 한 고성능 언어 모델
∙ 오픈소스 기반으로 다양한 커뮤니티 활용이 활발

언어 모델의 핵심 처리 흐름

1단계. 토큰화(Tokenization)
∙ 텍스트를 작은 단위(토큰)로 분할

2단계. 임베딩(Embedding)
∙ 토큰을 고차원 벡터로 변환

3단계. 자기 주의 메커니즘(Self-Attention)
∙ 임베딩된 토큰들의 관계를 계산하여 문맥 정보 강화

4단계. 다층 신경망 처리(Multi-layer Neural Processing)
∙ 여러 트랜스포머 층을 통과하며 점진적으로 복잡한 의미와 패턴 학습


1️⃣ 토큰화(Tokenization)

토큰화란?
∙ 텍스트를 언어 모델이 처리할 수 있도록 작은 단위(토큰)로 쪼개는 과정
∙ 단어 전체가 아니라, 부분 단어(subword) 수준까지 나눌 수 있음
∙ 모델은 입력된 토큰을 기반으로 다음에 올 토큰을 예측하는 방식으로 학습
∙ 적절한 단위로 분할해야 문맥 이해와 자연스러운 생성이 가능

어떻게 나누는가?
∙ 언어와 데이터 특성에 따라 가장 효율적인 단위를 설정
∙ 예시: "안녕하세요" → ["안녕", "하세", "요"]

토큰화가 미치는 영향
∙ 문맥 손실 여부 (어색한 분할은 의미 왜곡을 초래)
∙ 입력 길이 증가 여부 (짧은 토큰은 처리 비용 상승)
∙ 모델의 학습 속도와 성능 (효율적인 토큰화가 전체 품질을 결정)

2️⃣ 임베딩(Embedding)

임베딩이란?
∙ 토큰화된 조각들을 수치 벡터(숫자 배열)로 변환하는 과정
∙ 텍스트를 수학적으로 다룰 수 있도록 만드는 필수 단계
∙ 언어 모델은 숫자 계산만 할 수 있기 때문에, 텍스트를 의미 있는 벡터로 변환해야 학습과 예측이 가능

어떻게 변환하는가?
∙ 각 토큰에 고정된 차원의 벡터를 매핑
∙ 의미적으로 유사한 토큰끼리는 벡터 공간에서도 가까운 위치를 가지도록 학습됨
∙ (ex: "강아지"와 "고양이" 벡터는 서로 가까움)

임베딩이 미치는 영향
∙ 의미적 관계 파악 (비슷한 단어를 비슷하게 인식)
∙ 문맥 이해 기반 마련 (Self-Attention 이전에 의미 기반 연결)
∙ 학습 초기 성능 결정 (임베딩 품질이 모델의 초반 성능에 크게 영향)

3️⃣ 자기 주의 메커니즘(Self-Attention)

Self-Attention이란?
∙ 문장 안의 모든 토큰 쌍 사이의 관계를 계산하여, 각 토큰이 문맥 속에서 어떤 의미를 가지는지 이해하도록 돕는 메커니즘
∙ 각 토큰은 다른 모든 토큰을 바라보며, 어떤 단어가 자신에게 중요한지를 스스로 판단

왜 필요한가?
∙ 단어는 혼자 있을 때보다 문맥 속에서 의미가 달라짐
∙ 예를 들어, "그는 사과를 먹었다"라는 문장에서 '사과'는 '과일' 이지만, "애플이 신제품을 발표했다"에서는 '사과'가 '회사' 를 의미
∙ 이런 중의성을 해소하고 정확한 이해를 위해, 모든 단어가 서로를 참고하는 구조가 필요

각 토큰은 세 가지 벡터를 생성: Query, Key, Value
∙ Query: "나는 어떤 정보를 찾고 있어?"
∙ Key: "나는 이런 정보를 가지고 있어."
∙ Value: "나에게 연결되면 이 정보를 줄게."

∙ Query와 모든 Key 간의 유사도를 계산함
→ 이 과정은 "누가 나에게 중요한지"를 판단하는 것

∙ 계산된 유사도를 바탕으로 Attention Weight(가중치) 를 부여
→ 중요할수록 높은 가중치, 덜 중요할수록 낮은 가중치가 부여됨

∙ Value들을 가중치에 따라 조합해,
→ 문맥 정보를 반영한 새로운 표현 벡터를 만듬

4️⃣ 다층 신경망 처리(Multi-layer Neural Processing)

다층 신경망 처리란?
∙ 언어 모델이 문맥을 반영한 정보를 여러 층의 신경망을 거치며, 점진적으로 더 복잡한 의미를 이해하도록 심화 학습하는 과정
∙ 한 층만으로는 기본적인 문법이나 단순한 의미만 파악할 수 있고, 여러 층을 통과하면서 문법 구조, 의미적 흐름, 추론과 논리적 관계까지 단계적으로 깊이 있게 학습할 수 있음

어떻게 작동하는가?
∙ 첫 번째 층에서는 기본적인 문장 구조를 이해
∙ 중간 층에서는 문맥 흐름과 문장 간 의미 연결을 파악
∙ 마지막 층에서는 고차원적 추론, 감정, 논리 전개 같은 복잡한 개념을 처리


텍스트 생성 과정 상세

  1. 문맥 이해 (Context Understanding)
  2. 확률 분포 계산 (Probability Distribution Calculation)
  3. 토큰 선택 및 생성 (Token Selection and Generation)
  4. 반복 생성 (Iterative Generation)**

1️⃣ 문맥 이해 (Context Understanding)

입력 처리
∙ 입력된 텍스트(프롬프트)를 토큰화하여 작은 조각(토큰)으로 분리하고, 수치 벡터(임베딩)로 변환함

Self-Attention 수행
∙ 변환된 토큰 벡터들이 서로를 바라보며, 단어 간 중요도(Attention Score)를 계산함

문맥 형성
∙ 각 토큰은 주변 단어들과의 관계를 반영해 문맥 속 의미를 이해함
∙ (예: '사과'가 과일인지 회사인지 문맥에 따라 구별)

2️⃣ 확률 분포 계산 (Probability Distribution Calculation)

문맥 기반 예측 준비
∙ 이해한 문맥을 바탕으로, 다음에 올 수 있는 모든 토큰 후보를 대상으로 확률 분포를 계산함

확률 분포 생성
∙ 각 후보 토큰이 문맥상 얼마나 자연스러운지를 수치화함
∙ (예: "나는 오늘" 다음에는 "학교", "회사"가 높은 확률)

모든 가능성 고려
∙ 딱 하나의 정답을 고르는 게 아니라, 다양한 가능성 사이에서 선택지를 준비함

3️⃣ 토큰 선택 및 생성 (Token Selection and Generation)

샘플링(선택) 과정
∙ 확률 분포에 따라 하나의 토큰을 실제로 선택함
∙ 완전히 확률에만 따르지 않고, 설정 값(Temperature 등)에 따라 다양성과 일관성을 조정할 수 있음

온도(Temperature) 조정
∙ 낮은 온도: 높은 확률 토큰 위주 선택 → 일관성 강화, 창의성 감소
∙ 높은 온도: 다양한 토큰 선택 가능성 증가 → 창의성 강화, 불안정성 증가

선택된 토큰 생성
∙ 선택된 토큰을 현재 생성 중인 문장에 추가함

4️⃣ 반복 생성 (Iterative Generation)

문맥 업데이트
∙ 새로 생성된 토큰을 기존 문맥에 추가하여, 문맥을 확장함

다음 토큰 예측 재실행
∙ 업데이트된 문맥을 기반으로 다시 확률 분포를 계산하고, 다음 토큰을 선택함

순차적 반복
∙ 원하는 길이에 도달하거나, 특별한 종료 조건(종료 토큰 등)이 충족될 때까지 이 과정을 반복함

결과물 완성
∙ 모든 토큰이 연결되면서 하나의 자연스러운 문장 또는 문서가 완성됨


RAG(Retrieval-Augmented Generation)

기존 LLM은 사용자 입력을 받아 학습된 데이터를 기반으로 답변을 생성

👎🏻 사용자가 학습되지 않은 질문을 하면, 보유한 데이터 중에서 가장 확률이 높은 정보를 조합하여 답변을 생성하는데, 이 과정에서 허위 정보나 오래된 정보를 사실인 것처럼 제공하는 환각 현상이 발생할 수 있음

이러한 환각 현상을 보완하기 위한 방법 중 하나가 RAG

💡 RAG는 LLM이 답변을 생성하기 전에 외부의 학습 데이터 소스를 참조하여 답변의 정확도를 높이는 방식
💡 방대한 양의 데이터를 학습한 LLM이 특정 도메인이나 조직의 내부 데이터를 활용함으로써 보다 정밀한 답변을 생성할 수 있음

∙ 정보 검색(Retrieval)과 텍스트 생성(Generation)을 결합한 기술
∙ 외부 지식 소스에서 관련 정보를 검색하여 LLM의 응답을 보강함
∙ 사용자 질문 → 관련 문서 검색 → 검색 결과를 LLM에 제공 → 증강된 응답 생성


📌 PM이 실무에서 고려해야 할 사항

1. 컨텍스트 윈도우
∙ 모델이 한 번에 처리할 수 있는 텍스트 길이 제한
∙ 사용자 대화 기록을 얼마나 기억할 수 있는지 결정
∙ 제품 설계 시 이 제한을 고려한 대화 경험 설계 필요

2. 프롬프트 엔지니어링
∙ 모델에게 주는 지시(프롬프트)의 구조화가 결과 품질 좌우
∙ 명확한 지시, 예시 제공, 단계별 접근 등의 기법 활용

3. 제한사항 인지
∙ 학습 데이터 이후의 정보를 알 수 없음(지식 컷오프)
∙ 의견이나 사실을 조작할 가능성(환각) 존재
∙ 수학적 계산이나 복잡한 추론에 제한 있음

4. 성능과 비용의 균형
∙ 더 크고 복잡한 모델 = 더 나은 결과 + 느린 처리 속도 + 높은 비용
∙ 제품 요구사항에 맞는 적절한 모델 크기와 성능의 균형 필요


✅ 멀티모달 AI

∙ 여러 종류의 데이터(텍스트, 이미지, 오디오 등)를 동시에 이해하고 처리할 수 있는 AI 시스템
∙ 다양한 정보 형식 간의 관계를 학습하여 통합된 이해와 생성 능력을 갖춤

멀티모달 AI의 주요 특징
∙ 크로스모달 이해: 한 형식의 정보를 다른 형식으로 변환하고 연결
∙ 통합적 표현 학습: 서로 다른 모달리티의 데이터를 공통 표현 공간에 매핑
∙ 상호보완적 정보 처리: 각 모달리티의 강점을 활용한 향상된 이해와 생성

왜 멀티모달이 필요한가
∙ 인간은 다양한 감각(시각, 청각, 언어 등)을 통합해 세상을 이해
∙ AI도 복합적인 정보를 함께 처리해야 실제 세계를 더 깊이 이해할 수 있음
∙ 복합 상황 이해(예: 사진을 보면서 설명하거나, 영상을 요약하거나) 같은 고급 작업이 가능

✅ 프롬프트 엔지니어링이란?

∙ 생성형 AI에게 효과적인 지시를 설계하여 원하는 결과를 얻는 기술과 방법론
∙ 입력(프롬프트)을 구조화하고 최적화하여 AI 출력의 품질, 관련성, 정확성을 높이는 과정
∙ 사용자의 의도와 AI 모델의 능력 사이를 연결하는 인터페이스 역할

프롬프트 엔지니어링의 중요성
∙ 동일한 AI 모델도 프롬프트에 따라 결과물 품질이 크게 달라짐
∙ 정교한 프롬프트는 모델의 능력을 최대한 끌어내고 한계를 극복하는 데 기여
∙ 비용 효율성: 모델 재학습 없이 다양한 작업 수행 가능
∙ 생성형 AI의 핵심 진입장벽이자 경쟁력으로 부상


🧩 프롬프트의 구성 요소

1. 지시문(Instruction)
∙ AI에게 수행할 작업을 명확히 알려주는 부분
∙ 핵심 동사와 목표를 포함한 명확한 행동 지침
∙ 예시: "요약해줘", "분석해줘", "변환해줘"

2. 컨텍스트(Context)
∙ 작업 수행에 필요한 배경 정보와 맥락 제공
∙ 전문 분야, 상황적 정보, 관련 지식 등을 포함
∙ 예시: "당신은 경영 컨설턴트로서...", "2023년 4분기 마케팅 전략 수립 중에..."

3. 입력 데이터(Input Data)
∙ AI가 처리해야 할 구체적인 내용이나 재료
∙ 텍스트, 코드, 데이터 등 작업 대상
∙ 예시: "다음 고객 피드백을...", "아래 Python 코드를..."

4. 출력 형식(Output Format)
∙ 원하는 결과물의 구조와 형태에 대한 지정
∙ 스타일, 길이, 톤, 구조 등을 포함
∙ 예시: "5개의 글머리 기호로...", "JSON 형식으로...", "10세 아이가 이해할 수 있는 수준으로..."

5. 제약 조건(Constraints)
∙ 생성 과정에서 지켜야 할 한계와 경계
∙ 회피해야 할 주제나 접근법, 필수 포함 요소 등
∙ 예시: "전문 용어는 사용하지 말고...", "500단어 이내로...", "긍정적인 관점에서만..."

🔦 실용적인 프롬프트 엔지니어링 팁

1. 지시어 최적화
∙ 명확한 행동 동사 사용: "분석해줘", "요약해줘", "비교해줘"
∙ 구체적인 출력 지정: "5가지 핵심 포인트로", "2개 단락으로", "표 형식으로"
∙ 체크리스트 활용: "다음 요소를 모두 포함해야 함: A, B, C..."

2. 맥락 강화 전략
∙ 관련 배경 정보 제공: "우리는 B2B SaaS 기업으로..."
∙ 목표 명시: "목표는 신규 사용자 온보딩 경험 개선입니다."
∙ 대상 독자 정의: "기술 배경이 없는 경영진을 위한 설명입니다."

3. 출력 제어 기법
∙ 톤 설정: "전문적이지만 이해하기 쉬운 톤으로..."
∙ 형식 지정: "각 포인트를 [문제] - [원인] - [해결책] 구조로..."
∙ 길이 제한: "주요 아이디어만 포함한 한 페이지 요약으로..."

4. 오류 방지 전략
∙ 일반적 실수 명시: "이런 오해를 피해주세요: ..."
∙ 반례 제시: "다음과 같은 잘못된 접근은 피해주세요: ..."
∙ 사실 확인 요청: "제시한 모든 데이터나 통계의 출처나 신뢰성을 평가해주세요."

🎩 고급 프롬프트 기법

1. 프롬프트 체이닝(Prompt Chaining)
∙ 여러 프롬프트를 순차적으로 연결하여 복잡한 작업 분해
∙ 각 단계의 출력을 다음 단계의 입력으로 사용
∙ 예시: 데이터 분석 → 인사이트 도출 → 전략 수립 → 실행 계획 작성

2. 자기 비평 유도(Self-Criticism)
∙ AI에게 자신의 응답을 비판적으로 검토하도록 요청
∙ 예시: "당신의 답변에서 가능한 편향이나 한계점을 스스로 평가해주세요."
∙ 균형 잡힌 관점과 개선된 결과물 도출

3. 다중 관점 추론(Multi-Persona Debate)
∙ 여러 관점에서 문제를 분석하도록 유도
∙ 예시: "이 제안에 대해 1) 재무 담당자 2) 마케팅 책임자 3) 기술 담당자의 관점에서 각각 평가해주세요."
∙ 종합적인 이해와 다양한 고려사항 도출

4. 메타인지적 프롬프팅(Metacognitive Prompting)
∙ AI에게 자신의 사고 과정을 설명하도록 요청
∙ 예시: "이 결론에 도달한 사고 과정을 단계별로 설명해주세요."
∙ 추론 과정의 투명성 확보 및 논리적 오류 감소


개인 연구

  1. 자신의 프로젝트에 생성형 AI를 결합하여 콘텐츠를 생성해내는 데 적합한 기능을 탐색하고 선정합니다.

  2. 선정한 기능의 고객 가치를 극대화하기 위해 어떤 콘텐츠가 생성되어야 하는지 구체적으로 정리합니다.

  3. 해당 콘텐츠를 효과적으로 생성하기 위해 필요한 프롬프트를 전략적으로 설계합니다.

  4. (옵션) 설계한 프롬프트를 활용해 실제로 콘텐츠를 생성해보고, 생성된 결과물이 목표한 목적과 기대에 부합하는지 검토하고 개선점을 도출합니다.

0개의 댓글