본문 바로가기

클라우드/AWS AI Practitioner

[AI Practitioner] AI & ML 기본 개념 훑어보기

기본 용어 정리

  • AI : ML, DL, GEN AI를 전부 포괄하는 개념. 인간의 지능이 필요한 태스크를 수행할 수 있는 지능형 시스템의 개발을 아우르는 광범위한 분야
  • ML (기계 학습) : 기계가 학습할 수 있도록 하는 방법을 이해하고 구축하는 일종의 AI. 학습을 통해 다양한 태스크에 대한 컴퓨터 성능을 향상시킴 
  • DL (딥 러닝) : 인간 두뇌와 유사한 뉴런 및 시냅스 개념을 사용한다. (ex. Amazon Rekognition : 수백만 개의 이미지, 스트리밍 및 저장된 비디오를 몇 초 내에 분석할 수 있는 딥 러닝 애플리케이션)
  • GEN AI (생성형 AI) : 딥 러닝을 사용하여 구축된 모델을 training이나 fine tuning 없이 적용할 수 있는 딥 러닝의 일부. 훈련 데이터에서 학습한 패턴과 구조를 기반으로 새로운 데이터 생성 가능

기계 학습 모델 구축 프로세스

데이터 수집 및 준비 -> 적절한 ML 알고리즘 선택 -> 준비된 데이터를 기반으로 모델 훈련 -> 테스트 및 반복을 통한 성능 평가
 

데이터 수집 및 준비 
  • ML 모델을 훈련하는 데 사용되는 다양한 유형의 데이터
    • Labeled data : 각 인스턴스 또는 예시와 함께 원하는 출력이나 분류를 나타내는 label variable이 함께 제공되는 데이터 세트
      • 이미지 분류 태스크에서 labeled data는 이미지와 그에 상응하는 클래스 label (ex. 고양이, 개, 자동차)로 구성됨
    • Unlabeled data : 인스턴스 또는 예시와 연결된 label variable이 없는 데이터 세트. 데이터는 해당 output 또는 분류 없이 입력 특성으로만 구성됨
      • label이나 주석이 없는 이미지 컬렉션
    • 정형 데이터 : 행과 열이 있는 테이블 또는 데이터베이스의 형태로 구성된 형식이 지정된 데이터. label이 필요한 기존 기계 학습 알고리즘에 적합함
      • 표 형식 데이터 : 스프레드시트, 데이터베이스 또는 CSV 파일에 저장된 데이터 
      • 시계열 데이터 : 주가, 센서 판독값 또는 날씨 데이터와 같이 연속적인 시점에 측정된 값의 시퀀스로 구성된 데이터
    • 비정형 데이터 : 텍스트, 이미지, 오디오, 비디오 등과 같이 사전 정의된 구조나 형식이 없는 데이터. 의미 있는 패턴과 인사이트를 추출하기 위한 고급 기계 학습 기술이 필요함
      • 텍스트 데이터 : 문서, 기사, 소셜 미디어 게시물 및 기타 텍스트 데이터가 여기에 해당함
      • 이미지 데이터 : 디지털 이미지, 사진 및 비디오 프레임이 여기에 해당함

데이터 수집 및 준비 -> 적절한 ML 알고리즘 선택 -> 준비된 데이터를 기반으로 모델 훈련 -> 테스트 및 반복을 통한 성능 평가
 

ML 알고리즘
  • 일반적으로 ML 학습 프로세스는 크게 Supervised learning, Unsupervised learning, Reinforcement learning(RL)의 세 가지 범주로 구분된다.
    • Supervised learning : labeled data로 학습하는 알고리즘을 의미한다. 새로운 입력 데이터의 출력을 예측할 수 있는 매핑 함수를 배우는 것이 목적이다.
      • 모델은 입력(특징)과 출력(레이블) 간의 관계를 학습하여, 새로운 데이터가 주어졌을 때 출력 값을 예측할 수 있도록 함
    • Unsupervised learning : unlabeled data로 학습하는 알고리즘을 의미한다. 입력 데이터 내에 내제된 패턴, 구조 또는 관계를 발견하는 것이 목표이다.
      • 모델은 입력 데이터(label없이 특징만 제공)만으로 학습하며, 데이터의 군집화나 차원 축소에 주로 사용함
        * 군집화 : 고객 세분화(고객을 그룹으로 분류), 유전자 데이터에서 유사한 패턴 찾기
        * 차원 축소 : 데이터 시각화 (2D, 3D로 축소), 이미지 압축
    • Reinforcement learning : 기계에 성능 점수와 훈련 데이터의 일부에만 label이 지정되는 semi-supervised learning이 제공됨. 피드백은 action에 대한 보상 또는 패널티의 형태로 제공되며, 기계는 이 피드백을 통해 학습하면서 점차 의사 결정을 개선한다. 
      • action과 그로 인한 보상을 기반으로 학습하는 방식
      • agent가 환경 내에서 시행착오를 통해 최적의 행동 전략을 학습함 (ex. 알파고)

데이터 수집 및 준비 -> 적절한 ML 알고리즘 선택 -> 준비된 데이터를 기반으로 모델 훈련 -> 테스트 및 반복을 통한 성능 평가
 

추론 : 모델 훈련 후, 모델이 학습한 정보를 사용하여 예측을 수행하거나 의사를 결정하는 프로세스를 시작하는 것
  • 일괄 추론 : 컴퓨터가 이미지나 텍스트와 같은 대량의 데이터를 한꺼번에 분석하고 일련의 결과를 제공하는 것
    • 의사 결정 프로세스의 속도가 결과의 정확성만큼 중요하지 않은 데이터 분석과 같은 태스크에 자주 사용됨
  • 실시간 추론 : 새 정보에 대응하여 컴퓨터가 신속하게 결정을 내려야 할 때 사용됨
    • 챗봇이나 자율 주행 자동차와 같이 즉각적인 의사 결정이 중요한 애플리케이션

딥 러닝 : 인간의 뇌가 정보를 처리하는 방식 모방

  • Neural networks (신경망) : 수많은 뉴런이 서로 연결된 뇌처럼, 신경망은 노드라는 수많은 단위가 서로 연결된다.
    • 신경망이 여러 사례를 통해 패턴을 인지하는 방법을 학습하면, 이전에 본 적 없는 완전히 새로운 고객 데이터를 살펴보고 고객이 무엇을 구매할지 또는 어떻게 행동할지 예측할 수 있다. 
    • 딥 러닝을 사용하여 결과를 향상시키는 AI 분야
      • 컴퓨터 비전 (CV) : 컴퓨터가 디지털 이미지와 비디오를 해석하고 이해할 수 있게 해주는 인공지능의 한 분야
        • 이미지 분류, 객체 감지, 이미지 분할
      • 자연어 처리 (NLP) : 컴퓨터와 인간 언어의 상호 작용을 다루는 인공지능의 한 분야
        • 텍스트 분류, 감정 분석, 기계 번역, 언어 생성 

Gen AI 

  • 파운데이션 모델 (FM) : 인터넷 규모의 데이터로 사전 훈련된 모델
    • 단일 FM을 조정하여 텍스트 생성, 텍스트 요약, 정보 추출, 이미지 생성, 챗봇 상호 작용 등 여러 태스크를 수행 
    • <-> 기존 머신 러닝 : 각 모델에 사용할 레이블 지정 데이터를 수집하고 여러 모델을 훈련
  • FM 수명 주기 : 효과적이고 신뢰할 수 있는 파운데이션 모델 개발과 배포에 중요한 역할을 함
    1. 데이터 선택
      • 레이블 미지정 데이터 (ex. 이미지, 텍스트 파일 또는 비디오) 는 레이블 지정 데이터에 비해 획득하기가 훨씬 쉽기 때문에 대규모로 사용할 수 있음
      • FM은 다양한 소스의 대규모 데이터세트로 훈련해야 함
    2. 사전 훈련
      • 기존 ML 모델은 Supervised learning, Unsupervised learning, Reinforcement learning 패턴에 의존
        <-> 파운데이션 모델은 일반적으로 자가 지도 학습을 통해 사전 훈련됨
      • 자가 지도 학습 : 레이블이 지정된 예제가 필요 X, 데이터 내부 구조를 활용하여 레이블을 자동으로 생성
      • 초기 사전 훈련 단계 : FM의 알고리즘은 데이터 세트에 포함된 단어의 의미, 컨텍스트 및 관계를 학습할 수 있음
        (e.g. 모델은 drink가 명사 음료를 의미하는지, 액체를 삼키는 동사를 의미하는지 학습할 수 있음)
      • 초기 사전 훈련 후 : 추가 데이터를 기반으로 모델을 사전 훈련 (지속적 사전 훈련)
        • 모델의 지식 기반을 확장하고 다양한 영역 또는 태스크에 대한 이해도 및 일반화 능력을 향상하는 것이 목적
    3. 최적화
      • 사전 훈련된 언어 모델은 프롬프트 엔지니어링, RAG(검색 증강 생성), 태스크별 데이터 미세 조정과 같은 기술을 통해 최적화
    4. 평가
      • FM의 성능은 적절한 지표와 벤치마크를 사용하여 측정
      • 모델의 성능과 비즈니스 요구 사항 충족 능력을 평가하는 것이 중요
    5. 배포
      • FM이 원하는 성능 기준을 충족하면 대상 프로덕션 환경에 배포
      • 배포 시 모델을 애플리케이션, API 또는 기타 소프트웨어 시스템에 통합할 수 있음
    6. 피드백 및 지속적 개선
      • 배포 후 피드백을 통해 FM을 파인튜닝, 지속적 사전 훈련 또는 재훈련하여 지속적으로 개선

Amazon Bedrock은 고성능 FM을 사용하며, 이러한 FM을 기반으로 프롬프트 엔지니어링, 파인 튜닝 또는 RAG을 통해 출력을 더욱 최적화할 수 있다. 

FM의 유형

  • 대규모 언어 모델(LLM)
    • 변환기 기반 LLM은 사람과 유사한 텍스트를 이해하고 생성할 수 있는 강력한 모델
    • 인터넷, 서적, 기타 소스에서 가져온 방대한 양의 텍스트 데이터로 훈련을 받음
    • 단어와 구문 간의 패턴과 관계를 학습함
    • LLM은 토큰, 임베딩 및 벡터를 사용하여 텍스트를 이해하고 생성함
      • 토큰 : 모델이 처리하는 기본 텍스트 단위
        • 단어, 문구, 마침표와 같은 개별 문자
        • 입력 데이터를 표준화하여 모델이 더 쉽게 처리할 수 있도록 만들어줌
        • ex) The boy eats something -> "The" "boy" "eats" "something"
      • 임베딩 및 벡터 : 임베딩은 토큰을 숫자로 표현한 것으로, 각 토큰에는 토큰의 의미다른 토큰과의 관계를 나타내는 벡터가 할당됨 
  • 확산 모델 : 순수 노이즈 또는 임의의 데이터로 시작하는 딥 러닝 아키텍처 시스템 
    • 데이터에 노이즈를 조금씩 더해가거나 노이즈로부터 조금씩 복원해가는 과정을 통해 데이터를 만들어내는 모델
    • 이미지나 텍스트처럼 명확하고 일관된 출력을 얻을 때까지 이 노이즈에 의미 있는 정보를 점진적으로 추가함 
    • 확산 모델은 순방향 확산역방향 확산의 2단계 프로세스를 통해 학습함
      • 순방향 확산 : 시스템은 노이즈만 남을 때까지 입력 이미지에 소량의 노이즈를 서서히 가져옴
      • 역방향 확산 : 노이즈 이미지를 서서히 가져와서 새 이미지가 생성될 때까지 노이즈를 제거함
  • 멀티 모달 모델 (LMM) : 텍스트나 이미지와 같은 한 가지 유형의 입력 또는 출력에만 의존하지 않고, 여러 모드의 데이터를 동시에 처리하고 생성할 수 있음
    • 멀티 모달 : 시각, 청각을 비롯한 여러 인터페이스를 통해서 정보를 주고받는 것을 의미
    • 사람이 주고 받는 언어를 이해하는 자연어 분석 (NLP) 만으로는 단어가 어떻게 생겼고 어떤 형태로 존재하는지 이해하지 못 하기 때문에 멀티 모달 AI가 등장하기 시작함
    • Use Case) 비디오 캡션 자동화, 텍스트 가이드라인으로 그래픽 생성, 텍스트와 시각 정보를 결합한 답변 생성, 콘텐츠 번역
  • 기타 생성형 모델
    • 적대적 생성 신경망 (GAN) : 생성기, 판별자 이 2개의 신경망이 제로섬 게임 프레임워크에서 서로 경쟁하는 생성형 모델
      • 생성기 : 임의의 노이즈를 입력으로 받아 훈련 데이터 분포와 유사한 데이터로 변환하여 새로운 합성 데이터 (Fake Data)를 생성
        • 생성기의 목표는 판별자를 속여 진짜라고 착각할 수 있는 데이터를 생성하는 것
      • 판별자 : 훈련 세트의 실제 데이터 (Real Data) 와 생성기가 생성한 합성 데이터 (Fake Data)를 입력으로 사용
        • 판별기의 목표는 실제 데이터와 생성된 데이터를 구별하는 것
      • 생성기가 실제 데이터와 구별할 수 없는 데이터를 생성할 때까지 계속 됨
    • 변이형 오토인코더 (VAE) : 생성형 모델의 일종으로, 오토인코더와 변이 추론의 아이디어를 결합한 것
      • 인코더 : 이 신경망은 입력 데이터를 가져와 데이터의 필수 특성을 캡처하는 low-dimensional latent space에 매핑
      • 디코더 : 이 신경망은 인코더의 latent representation을 가져와 원래 입력 데이터를 재구성
      • 해당 블로그에 VAE에 대한 자세한 설명이 기재되어 있어서 첨부한다.
        https://process-mining.tistory.com/161

VAE 설명 (Variational autoencoder란? VAE ELBO 증명)

Variational autoencoder, 줄여서 VAE는 GAN, diffusion model과 같이 generative model의 한 종류로, input과 output을 같게 만드는 것을 통해 의미 있는 latent space를 만드는 autoencoder와 비슷하게 encoder와 decoder를 활용

process-mining.tistory.com

 


모델 출력 최적화

  • Prompt engineering (프롬프트 엔지니어링)  : 가장 빠르고 저렴하게 FM을 최적화시키는 방법
    • FM의 "가이드라인" 역할, 즉 고객이 원하는 결과로 모델의 동작을 안내하는 방법 제공
      • Instructions : FM이 수행할 태스크에 대한 설명 제공
      • Context : 외부 정보
      • Input data : 응답을 원하는 입력
      • Output indicator : 출력 유형 (형식)
  • Fine-tuning (파인튜닝) : 미리 훈련된 모델을 가져와서 좀 더 구체적이고 작은 데이터세트를 추가하는 Supervised learning 프로세스
    • 더 좁은 범위의 데이터 세트일수록 태스크에 더 적합하게 데이터의 가중치가 수정됨
    • 두 종류의 파인튜닝
      • Instruction fine-tuning : 모델이 특정 가이드라인에 어떻게 대응해야 하는지 보여주는 예제를 사용 (프롬프트 튜닝은 일종의 instruction fine-tuning)
      • Reinforcement learning from human feedback (RLHF) : 인간의 피드백 데이터를 제공 => 인간의 선호도에 더 잘 맞는 모델이 생성됨
  • RAG (검색 증강 생성) : 도메인 관련 데이터를 컨텍스트로 제공하여 해당 데이터를 기반으로 응답을 생성하는 기법
    • fine-tuning과 유사하지만 RAG은 FM 가중치를 변경하지 않는다는 점에서 차이가 있음
    • RAG은 소규모 관련 문서를 검색하고 사용하여 사용자 프롬프트에 답변하기 위한 컨텍스트 제공

 

AWS Skillbuilder를 참고하여 작성했습니다.