[AI 엔지니어링] 1장. 파운데이션 모델을 활용한 AI 애플리케이션 입문

Ooleem·2025년 11월 17일

책에 없는 내용(따로 찾아본 내용, 또는 개인적인 메모 등)은 기울임체로 표기했다.

1.1 AI 엔지니어링의 부상

1.1.1 언어 모델에서 대규모 언어 모델로

언어 모델 (Language model)

  • 하나 이상의 언어에 대한 통계 정보를 인코딩하여, 주어진 컨텍스트에서 나타날 단어를 예측
    영어를 모델링하는 방법에 대한 연구 : Prediction and Entropy of Printed English (1951)

토큰 (Token)

  • 언어 모델의 기본 단위, 모델에 따라 문자, 단어, 또는 단어의 일부가 될 수 있음
    (예를 들어 영어에서의 -tion, 한국어에서는 형태소? 정도로 이해하면 될 듯)
  • GPT-4의 경우, 토큰 하나의 평균 길이는 단어의 약 3/4 정도 (100토큰 = 약 75개의 단어, 아마 영어 기준?)

어휘 (Vocabulary)

  • 모델이 다룰 수 있는 모든 토큰의 집합
    알파벳의 몇 글자를 사용해 많은 단어를 만들 수 있듯, 소수의 토큰만 사용하여 많은 고유 단어를 만들 수 있음
    (어휘 크기 예시 : 믹스트랄 8x7B 모델 - 32,000개, GPT-4 - 100,256개)

언어 모델이 단어나 문장이 아닌 토큰을 사용하는 이유

1. "의미"를 담을 수 있는 최소 단위이기 때문
2. 고유한 토큰의 수가 고유한 단어의 수보다 적기 때문에 모델의 어휘 크기를 줄일 수 있음
3. 모델이 알려지지 않은 단어(예시: chatgpting 또는 이런 방식으로 만들어진 신조어)를 처리할 때, 그 구조를 이해하는 데 도움이 됨

언어 모델의 유형

  • 마스크 언어 모델(Masked language model)
    : 누락된 토큰 전후 컨텍스트를 사용해, 시퀀스의 어느 위치에서든 누락된 토큰을 예측하도록 학습됨
    감정 분석, 텍스트 분류처럼 새로운 텍스트를 만들지 않거나, 코드 디버깅처럼 앞뒤 코드를 모두 이해해야 하는, 전체적인 컨텍스트 이해가 필요한 작업에도 유용함
    대표적인 예시로 BERT가 있음
    관련 논문 : BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)

  • 자기회귀 언어 모델 (인과 언어 모델, Autoregressive language model)
    : 이전 토큰들만 보고 시퀀스의 다음 토큰을 예측하도록 학습됨
    토큰을 하나씩 순차적으로 생성할 수 있으며, 이 특성 때문에 텍스트 생성 분야의 대세로 자리잡고 있음

생성형 AI (Generative AI)라는 용어의 유래

언어 모델은 정해진 유한한 어휘만을 사용해서 무한히 다양한 결과물을 만들어 낼 수 있다. (출력에 제한이 없다)
이처럼 정해진 답 없이 개방형 출력을 생성하는 모델을 생성 모델(generative model)이라 부르며, 생성형 AI라는 용어는 여기에서 비롯되었다.

자기 지도 학습 (Self-supervised learning)

  • 지도 학습(Supervised learning)
    : 레이블이 있는 데이터를 사용해 ML 알고리즘을 학습하는 과정, 데이터를 분류해서 레이블을 붙이는 과정이 필요하므로 비용과 시간이 오래 걸림
    예를 들어, CT 스캔 사진에서 암의 징후가 있는지 레이블링하는 것은 어마어마한 돈이 들 것

  • 자기 지도 학습
    : 언어 모델링의 경우 모델이 입력 데이터에서 레이블을 추론할 수 있기 때문에 명시적인 레이블이 필요하지 않음
    각 입력 시퀀스가 레이블(예측할 토큰)과 예측에 필요한 컨텍스트를 모두 제공
    따라서 언어 모델은 별도의 레이블링 작업 없이 텍스트 시퀀스만으로 학습할 수 있으며, 텍스트 시퀀스는 어디에나 존재하기 때문에 방대한 양의 학습 데이터를 구축하여 LLM으로 확장될 수 있었음

  • BOS, EOS : 문장의 시작과 끝을 의미하는 일종의 특수 토큰
    BOS = Beginning of Sequence, EOS = End of Sequence

모델의 크기

일반적으로 모델의 크기는 학습 과정을 통해 업데이트되는 모델 내 변수인 파라미터의 수로 측정됨
엄밀하게는 모델 가중치(weight)와 모델 편향(bias)을 통틀어 파라미터로 정의하지만, 일반적으로는 모델 가중치를 파라미터로 지칭함

1.1.2 대규모 언어 모델에서 파운데이션 모델로

대규모 멀티모달 모델 (Large Multimodal Model, LMM)

  • 멀티모달 모델 : 둘 이상의 데이터 형태를 처리할 수 있는 모델
  • 일반적으로 생성형 멀티모델을 대규모 멀티모달 모델로 지칭함
  • 언어 모델의 경우 텍스트 토큰에 기반해 다음 토큰을 생성하지만, 멀티모달 모델은 텍스트와 이미지 토큰, 또는 모델이 지원하는 다른 모달리티를 기반으로 다음 토큰을 생성할 수 있음

멀티모달 모델의 자기지도학습 사례: 언어 이미지 모델 CLIP (OpenAI, 2021)

  • 자연어 지도(Natural language supervision)라는 자기지도학습 기법을 사용
  • 각 이미지에 대한 레이블을 수동으로 생성하는 대신, 인터넷에서 함꼐 발견되는 (이미지, 텍스트) 쌍을 수집
  • CLIP은 생성 모델이 아닌 임베딩 모델로, 텍스트와 이미지를 함께 임베딩하는 방식
    이러한 멀티모달 임베딩 모델은 Flamingo, LLaVA, Gemini와 같은 생성형 멀티모달 모델의 핵심

파운데이션 모델 (Foundation model)

  • 자기지도학습을 통해 별도의 레이블링 작업 없이 광범위한 데이터셋을 사전 학습하여, 그 과정에서 일반화 가능하고 적응 가능한 데이터 표현을 학습하는 모든 모델
  • 특정 작업에 맞춘 모델에서 범용 모델로 전환됨, 즉 하나의 모델로 여러 작업을 할 수 있음
  • 만약 특정 작업에 대한 성능을 올리고 싶다면, 파인튜닝이 필요
  • 직접 자체 모델(작업 특화 모델, task-specific model)을 만들 것인가? 파운데이션 모델을 파인튜닝할 것인가?

참고 글 : https://yumdata.tistory.com/400

1.1.3 파운데이션 모델에서 AI 엔지니어링으로

  • 전통적인 ML 엔지니어링 : 모델 자체를 개발하는 것
  • AI 엔지니어링 : 이미 존재하는 모델을 활용하는 것

AI 엔지니어링의 빠른 성장을 위한 이상적인 조건을 만드는 세 가지 요인

강력한 파운데이션 모델의 이용 가능성과 접근성이 다음 세 가지 요인으로 이어짐
1. 범용 AI 능력
: 더 많은 작업을 수행할 수 있기 때문에, 이전에 상상할 수 없었던 애플리케이션 서비스가 계속해서 등장하고 있고, 사용자 수와 AI 애플리케이션에 대한 수요가 크게 늘어남
2. AI 투자 증가
: AI에 대한 투자가 급격히 증가하면서, 점점 더 많은 기업이 AI를 자사 제품과 프로세스에 통합하고 있음
3. AI 애플리케이션 개발에 대한 낮아진 진입 장벽
: 단일 API 호출을 통해 강력한 모델에 접근할 수 있으며, 최소한의 코딩으로 애플리케이션 개발이 가능해짐

1.2 파운데이션 모델 활용 사례

  • 다음 분류는 깃허브에서 500개 이상의 별을 받은 오픈 소스 AI 애플리케이션을 분류한 것

코딩

  • 웹 페이지와 pdf에서 구조화된 데이터 추출 : AgentGPT
  • 자연어-코드 변환 : DB-GPT, SQL chat, PandasAI
  • 디자인이나 스크린샷을 주면, 주어진 이미지처럼 보이는 웹사이트로 변환하는 코드 생성 : screenshot-to-code, draw-a-ui
  • 프로그래밍 언어/프레임워크 번역(변환) : GPT-migrate, AI Code Translator
  • 문서 작성 : Autodoc
  • 테스트 만들기 : PentestGPT
  • 커밋 메세지 만들기 : AI Commits

이미지 및 동영상 제작

  • 이미지 생성 : Midjourney
  • 사진 편집 : Adobe Firefly
  • 영상 생성 : Runway, Pika Labs, Sora

글쓰기, 교육, 대화형 봇, 정보 집계, 데이터 체계화, 워크플로우 자동화

1.3 AI 애플리케이션 기획

1.3.1 활용 사례 평가

  • 제일 중요한 질문 : AI 애플리케이션을 만들고 싶은가?
  • 기업이 AI 애플리케이션을 만들기로 결정한 이유를 위험 순서대로 나열하자면..
  • AI를 가진 경쟁사에 밀려 생존을 위협받을 수 있거나
  • 이익과 생산성 증대를 위한 기회를 포착하거나
  • 구체적 활용법은 불확실해도, 기술 흐름에서 뒤처지는 것이 불안하거나

애플리케이션에서 AI와 사람의 역할

제품에 AI를 활용하는 방법

  • 핵심적 또는 보완적
    : 앱이 AI 없이도 작동할 수 있다면, AI는 그 앱에 보완적
    앱에서 AI가 핵심적이라면, AI 부분이 더 정확하고 신뢰할 수 있어야 함
  • 반응형 또는 선제형
    : 반응형은 사용자의 응답이나 특정 행동에 '응답'하는 방식으로 작동 (예시 : 챗봇)
    선제형 기능은 사용자에게 유용하다고 판단하는 '적절한 시점'에 먼저 정보를 제시 (예시 : 구글 맵스의 교통 알림)
  • 동적 또는 정적
    : 동적 방식은 사용자 피드백(자신의 데이터)을 통해 지속적으로 업데이트(파인튜닝)되어 자신만의 모델이 만들어지게 됨 (예시 : 페이스 ID)
    정적 방식은 여러 사용자가 하나의 공유 모델을 함께 사용하므로, 주기적으로만 업데이트 (예시 : 구글 포토의 객체 탐지 모델)

애플리케이션에서 가능한 AI의 역할 범위

  • AI는 사람을 뒤에서 지원하는 데에만 사용
  • AI는 단순한 요청만 처리, 복잡한 요청은 사람에게 전달
  • AI가 모든 요청을 처리

human-in-the-loop : AI가 의사결정 과정에 사람을 참여시키는 것

AI 제품 방어 가능성

  • 만약 AI 애플리케이션을 독립형 제품으로 판매한다고 할 경우, 방어 가능성을 고려해야 함
  • 경쟁사, 또는 거대 대기업이 쉽게 따라 만들 수 없도록 하는 경쟁 우위가 필요 (기술력, 데이터, 유통력..)
  • 더 큰 제품의 기능이 될 법한 제품으로도 성공한 사례는 꽤 많음
    예시 : 캘린들리 - 구글 캘린더, 메일침프 - 지메일, 포토룸 - 구글 포토..
    어떻게 이 스타트업들은 경쟁사를 뛰어넘었는가?

1.3.2 기대치 설정

AI 애플리케이션이 비즈니스에 어떤 영향을 미치는가 - 챗봇 예시

  • 자동화하고 싶은 고객 메시지의 비율
  • 얼마나 더 많은 메세지를 처리할 수 있는지
  • 얼마나 더 빨리 응답할 수 있는지
  • 얼마나 많은 인력을 절감할 수 있는지

최소 성능의 기준 - 챗봇 예시

  • 응답의 품질을 측정하는 품질 지표
  • TTFT(첫 토큰까지 걸리는 시간), TPOT(출력 토큰당 시간), 전체 지연 시간을 포함하는 지연 시간 지표
  • 추론 요청당 비용 등 비용 지표
  • 해석 가능성, 공정성 등 기타 지표

1.3.3 마일스톤 계획

  • 측정 가능한 목표 설정 후, 달성 계획이 필요
  • 우선 이미 존재하는 모델의 성능을 평가해 그 능력을 파악해야 함
  • 파운데이션 모델의 성능이 꽤 좋아서 초기 데모가 괜찮게 나오더라도, 최종 제품을 만드는 일은 훨씬 어려움

1.3.4 유지보수

  • 매우 빠른 기술의 변화를 항상 예의주시하면서, 각 기술 투자에 대한 비용-편익 분석 필요
  • 지식재산권/AI 기술/관련 자원에 대한 규제 또한 계속 변하고 있음

1.4 AI 엔지니어링 스택

1.4.1 AI의 세 가지 계층

애플리케이션 개발

  • 실제 애플리케이션 개발 (최상위 계층)
  • 모델에 적절한 프롬프트와 필요한 컨텍스트 제공
  • 좋은 애플리케이션에는 좋은 인터페이스가 필요
  • AI 인터페이스, 프롬프트 엔지니어링, 컨텍스트 구성, 평가...

모델 개발

  • 모델을 개발하기 위한 도구 제공
  • 데이터가 모델 개발의 핵심이므로, 데이터셋 엔지니어링도 포함
  • 추론 최적화, 데이터셋 엔지니어링, 모델링과 학습, 평가...

인프라

  • 컴퓨팅 관리, 데이터 관리, 서빙, 모니터링...

1.4.2 AI 엔지니어링 대 ML 엔지니어링

전통적인 ML 엔지니어링과의 차이점

  1. 전통적인 ML은 필요한 모델을 직접 학습시켜야 했지만, AI 엔지니어링은 모델을 가져다 씀
  2. 전통적인 ML보다 더 크고, 더 많은 컴퓨팅 자원을 소모하며, 더 높은 지연시간을 발생시키는 컴퓨팅 집약적인 모델을 다루면서, GPU와 대규모 클러스터를 다룰 줄 아는 엔지니어에 대한 수요가 늘어남
  3. 개방형 출력을 생성할 수 있는 모델을 다루면서, 평가가 더 어려워짐
  • 결국, AI 엔지니어링은 모델 개발보다 모델 조정과 평가에 더 중점을 둔다는 것이 차이점

모델 조정 기법

  • 프롬프트 기반 기법(프롬프트 엔지니어링을 포함) - 모델 가중치를 업데이트하지 않음
    : 모델 자체를 바꾸는 대신, 지시와 컨텍스트를 제공하여 모델의 반응을 원하는 방향으로 유도
  • 파인튜닝 - 모델 가중치를 업데이트
    : 모델 자체를 변경해 새로운 작업에 맞게 조정

모델 개발

모델링과 학습

  • 모델 아키텍처를 고안하고, 학습하고, 파인튜닝하는 과정
    도구의 예시 : 텐서플로(구글), 트랜스포머(허깅페이스), 파이토치(메타)
  • 사전 학습(pre-train) : 모델을 처음부터 학습하는 것, 모델 가중치가 무작위로 초기화됨
    많은 자원과 시간이 필요하며, 사전 학습 중의 작은 실수도 상당한 재정적 손실 및 프로젝트 지연을 초래할 수 있음
  • 파인튜닝(fine-tuning) : 이미 학습된 모델을 추가로 학습하는 것
    사전 학습보다 적은 자원을 필요로 함
  • 사후 학습(post-train) : 기술적으로는 파인튜닝과 거의 같은 과정이며, 보통 모델 제공업체가 수행하는 경우 사후 학습, 애플리케이션 개발자가 수행하면 파인튜닝이라 칭함

데이터셋 엔지니어링

  • AI 모델의 학습과 조정에 필요한 데이터를 선별하고, 생성하며, 주석을 다는 과정
  • 전통적인 ML 엔지니어링에서 대부분의 활용 사례는 "폐쇄형"이었으나, 파운데이션 모델은 "개방형"이므로, 데이터 주석은 AI 엔지니어링에서 훨씬 더 큰 과제
  • AI 엔지니어링은 비정형 데이터를 다루며, 중복 제거, 토큰화, 컨텍스트 검색, 민감 정보 및 유해 데이터 제거를 포함한 품질 관리에 중점을 둠

추론 최적화

  • 모델을 더 빠르고 저렴하게 만드는 것
  • 파운데이션 모델은 종종 자기회귀적인 특성을 보임(예시 : 토큰의 순차적 생성)

애플리케이션 개발

  • 파운데이션 모델을 사용하는 경우 많은 팀이 같은 모델을 사용하므로, 애플리케이션 개발 과정을 통해 차별화를 이루어야 함

평가

  • N-shot : 모델에게 N개의 예시를 미리 보여주는 기법
  • 생각의 사슬(Chain of Thought, CoT) : 예시에 정답뿐만 아니라 사고 과정을 포함시켜 추론 능력을 높이는 기법
  • N-shot CoT : N개의 CoT 예시를 프롬프트에 포함하는 기법
  • CoT@N (예시 : CoT@32) : 하나의 문제에 대해 모델이 N개의 다른 풀이 과정을 생성하게 한 뒤, 가장 많이 나온 답을 채택하여 응답의 안정성을 높이는 기법

프롬프트 엔지니어링 및 컨텍스트 구성

AI 인터페이스

1.4.3 AI 엔지니어링 대 풀스택 엔지니어링

profile
개발 / 성장 노트

0개의 댓글