AI 발전 동향 이해

2024. 3. 4. 19:23TIL

GenAI란

 인공지능은 인간이 하는 일을 대신해주는 시스템을 만드는 컴퓨터 과학이다. 머신러닝은 인공지능의 일부이고 딥러닝은 머신러닝의 일부이다. GenAI는 학습된 콘텐츠 바탕으로 새로운 콘텐츠를 만드는 딥러닝 기술이다. GenAI는 프롬프트를 바탕으로 대답을 예측하던지 새로운 콘텐츠를 생성한다. Generative AI는 딥러닝의 일부이고 LLM(Large Language Model)은 Gen AI의 일부이다. 일반 ML 모델에서 출력은 보통 숫자, 카테고리, 확률 등이 되지만 Gen AI 모델에서 출력은 보통 자연어 문장, 이미지, 오디오 등이 된다. 딥러닝의 모델 타입은 다음과 같다. 

  • Discriminative
    • 분류/예측을 하는 것으로 레이블이 존재하는 데이터에 적용
    • 피처들과 레이블들 간의 관계를 학습
    • 예) 개 혹은 고양이 분류
  • Generative
    • 훈련된 데이터와 비슷하지만 새로운 데이터를 생성
    • 훈련된 데이터의 통계적 특성을 이해
    • 비지도 학습에 해당
    • 예) 개 이미지 생성

 Gen AI의 파운데이션 모델은 광범위한 데이터 세트에 대해 학습된 대규모 머신 러닝 모델의 한 유형이다. 파운데이션 모델은 비지도 학습으로 대용량 데이터로 학습하기에 엄청난 시간과 돈, 인력이 필요하고 트랜스포머 모델 아키텍처를 사용한다. 특별한 학습 없이 다양한 작업에 적용 가능하기 때문에 파운데이션이라 부른다. 파운데이션 모델을 파인튜닝(Fine-Tuning)의 형태로 특정 지식을 학습시킨다.

 

 Generative Language Models은 훈련 데이터로 제공된 문장들로부터 언어 패턴을 학습한 모델로 문장의 일부를 입력으로 받으면 다음 단어를 예측한다. Generative Image Models은 Diffusion과 같은 기술을 사용해서 새로운 이미지를 만드는 모델로 프롬프트를 입력으로 받아서 이미지 생성하고 이미지를 입력으로 받아서 여기에 특정 노이즈를 추가하여 이미지를 변환한다. Stable Diffusion이란 Diffusion 프로세스를 사용하여 고해상도 이미지를 생성하는 생성형 AI이다.

 

 Gen AI 모델이 부정확하거나, 무의미하거나, 완전히 조작된 정보를 생성하는 경우가 있기 때문에 사실 확인이 항상 필요하다. 이러한 일이 발생하는 이유는 훈련 데이터의 불충분, 훈련 데이터의 최신성 부족, 훈련 데이터의 품질 이슈, 모델에게 충분한 콘텍스트가 주어지지 않기 때문이다. 

 

 인공 지능과 관련하여 Modality란 데이터 유형을 의미한다. 멀티모달(Multi-modal)AI는 다양한 데이터 유형(이미지, 텍스트, 음성, 숫자 데이터)을 여러 지능 처리 알고리즘과 결합하여 더 높은 성능을 달성하는 새로운 AI 패러다임이다. 멀티모달 AI는 많은 실제 문제에서 단일 모달 AI보다 뛰어난 성능을 발휘하는 경우가 많다. ChatGPT4가 대표적인 멀티모달 AI 모델이다. 

 

LLM 소개

 Language Model이란 문장의 일부를 보고 빈 단어를 확률적으로 맞추는 모델이다. 언어 모델에 사용되는 Transformer 모델은 기본적으로 수학 모델이다. 단어를 숫자로 변환한 후(One-Hot encoding) 다시 N차원 공간의 벡터로 변환하는데 이를 워드 임베딩(Word Embedding)이라고 부른다. 

 

 웹상에서 존재하는 문서들이 Language Model 훈련 데이터가 된다. 품질이 중요하기 때문에 위키피디아가 가장 많이 사용된다. Language Model 훈련 데이터를  코드에 적용 가능하며 Github이 훈련 데이터가 된다. LLM 서빙에 들어가는 비용은 상상을 초월하며 이는 LLM의 큰 문제이다. 그래서 많은 회사들이 자체 하드웨어 개발 중이거나 예정이다. 

 

ChatGPT 소개

  GPT(Generative Pre-trained Transformer)는 OpenAI에서 만든 초거대 언어 모델이다. GPT 3에서 2023년 3월 GPT 4가 발표되었고, 같은 해 11월에 GPT 4 Turbo가 발표되었다. GPT 4 Turbo는 Context Window가 128K로 확장되었고 API 기능 개선(JSON 모드와 시드 제어, 다수 함수 동시 호출), RAG 기능 제공(외부 문서나 데이터베이스를 가져올 수 있음), 2023년 4월까지의 정보로 업데이트되었다. 경량 언어 모델은 메타의 llama, 스탠포드의 Alpaca(llama의 파인튜닝 버전), 데이터브릭스의 Dolly(ChatGPT와 같은 대화모델)이 있다. 

 

 ChatGPT은 GPT를 챗봇의 형태로 Fine-Tuning 한 것이다. ChatGPT는 질문에 대한 답변, 정보 추출, 번역, 대화 생성, 글쓰기 지원, 코드 생성 및 리뷰 등 다양한 용도로 쓰인다. ChatGPT 훈련으로 RLHF(Reinforcement Learning from Human Feedback)라는 사람 피드백 기반으로 대화하는 인공지능 모델 학습을 한다. 마이크로소프트의 DeepSpeed나 데이터브릭스의 Dolly 같은 RLHF 훈련을 위한 오픈소스도 탄생하였다. ChatGPT 프롬프트에서 단계별로 생각하고 알려달라고 하고 칭찬을 많이 하면 더 좋은 결과를 얻을 수 있다. 기타 프롬프트 관련 테크닉들도 있다.

  • Zero shot prompting : 별다른 예제나 설명 없이 작업을 주는 방식
  • Few shot prompting : 예제를 주면서 LLM에게 구체적으로 작업을 주는 방식
  • Chain of thoughts prompting : 일련의 중간 추론 단계를 통해 대규모 언어 모델의 복잡한 추론 수행 능력을 크게 향상하는 것
  • Prompt chaining : 한 프롬프트의 출력을 다음 프롬프트로 제공하여 연속적인 답변을 만들어내는 방식
  • Prompt extraction : 프롬프트에서 사용자의 의도를 파악하는 것
GPT Store 소개

Custom GPT를 통해 에이전트 기능을 구현할 수 있다. GPTs는 특정 목적에 맞는 ChatGPT의 맞춤형 버전이다. GPT Builder 기능이 제공돼서 No Code 솔루션인 채팅으로 빌딩 할 수 있다. GPTs Store에서 내 GPT를 외부 퍼블리시 혹은 개인용으로 사용 가능하다. Custom GPT의 여러 예시로 Code.org Lesson Planner(code.org의 콘텐츠를 바탕으로 구성), Canva(디자인 내용을 자연언어로 처리하고 원하는 디자인이 나오면 Canva로 이동), Zapier(6천개 응용프로그램 연동 기능 제공하며 어느 프로그램을 사용할지 결정)이 있다. 

 

나만의 LLM 만들기

 LLM 만드는 3가지 방법이 있다. 먼저 직접 만드는 방법은 거의 불가능하다. 다른 방법은 기존 LLM 파인튜닝(Fine-tuning)하는 것이다. ChatGPT4라면 GPTs을 사용한다. 마지막으로 LLM을 그대로 사용하되 콘텍스트 정보를 프롬프트의 일부로 보내는 방법인  RAG(Retrieval Augmented Generation)이다. 

 

 Pre-trained Model위에 새로운 레이어를 얹어 다른 용도의 데이터로 훈련하는 방법은 GPT를 파인 튜닝한 ChatGPT가 좋은 예제이다. GPT는 이를 API로 지원하며 기본 언어 모델 위에 나만의 모델 생성한다. 

 

 RAG은 프롬프트에 사용자 질문과 관련된 도메인 정보를 같이 넘기는 방식이다. 별도의 관심 검색 데이터베이스를 만들어두고 사용자 질문으로 먼저 검색하고 그 결과를 프롬프트의 일부로 LLM에 넘겨서 LLM이 갖고 있는 강점과 도메인 지식을 장점을 취합한다. 인덱싱 단계에서는 LLM에 프롬프트의 일부로 넘길 기타 정보들을 Vector DB에 저장한다. 검색 단계에선 사용자 질문이 들어오면 DB에서 검색해서 관련 콘텐츠 추출해서 그 콘텐츠와 질문을 조합해서 프롬프트 생성하고 이걸로 LLM에게 질문하고 결과를 받아서 후처리 후 사용자에게 전송한다. 

 

GenAI 기반 생산성 관련 툴 소개
  • Text Applications
  • Image Applications
  • Video Applications
  • Audio Applications
  • Coding Applications
  • Data Applications
  • Bots (Agents)
AI의 발전이 IT업계에 끼치는 영향 : 개발자 중심

 AI 코딩 관련 과거 연구들은 과거의 버그 수정 사례를 학습하여 일반적인 버그의 인스턴스를 자동으로 수정하는 문제를
다뤘다. 또, 애플리케이션의 릴리스와 소프트웨어 종속성 업데이트는 뒤쳐지는 경우가 많고 이는 보안위험이나 버그 등의 문제로 이어질 수 있는데 이런 종속성 업데이트를 자동화하는 문제를 다루었다. 

 

 AI 코딩 관련 최근 연구들은 개발자가 프로그래밍 어시스턴트와 어떻게 일하는지에 관한 연구 하였고 프로그래머가 다음에 해야 할 일을 알고 Copilot을 사용하여 더 빨리 완료하는 가속 모드와 프로그래머가 진행 방법을 잘 몰라 Copilot을 사용하여 옵션을 탐색하는 탐색 모드가 있음을 발견하였다. 그리고 AI툴이 항상 올바른 결과를 주지 않기에 검증하고, 선택해야 하는 새로운 과제에 직면하였고 이를 AI툴과의 라이브 프로그래밍이란 관점에서 해결하고자 하는 연구(Python 환경인 Leap 기반)를 하고 있다. 이미 Copilot 등은 문제 해결 방법은 몇 가지 제시하고 선택하게 하고 있다.  

 

 현재 코딩봇은 좋은 태도와 가능성을 가진 주니어 개발자에 가깝다. 앞으로 프로그래밍 문법에 대한 명확한 이해보다는 코딩봇과의 대화 능력이 중요해질 것이다. 즉, 어떤 코딩을 시킬지 명확하고 결과물을 검증하는 능력이 점점 더 중요해질 것으로 예상된다. 우리가 알고 있는 소스 코드 에디터의 모양도 변화할 것으로 예상한다. AI를 잘 사용하는 개발자들이 살아남겠지만 현재의 코딩 능력보다는 문제정의 능력이나 의사소통 능력이 더 중요해질 것이다. 

 

AI의 발전과 우려사항
  • 라이선스 코드를 무단으로 재사용한 혐의로 코드 생성 AI인 Copilot에 대한 집단 소송 직면
  • Midjourney와 DreamUp의 모회사들이 스크랩한 이미지로 모델을 학습시켜 아티스트의 권리를 침해 혐의로 소송
  • Getty Image는 Stability AI가 자사 이미지를 무단 사용하여 모델을 훈련했다는 이유로 소송 제기
  • 호주 한 도시의 시장이 본인이 감옥에 간 적이 있다는 ChatGPT 응답에 대해서 소송 시작
  • 저작권 침해 혐의로 Microsoft와 OpenAI를 고소. "Times의 웹 자산으로 이동할 수 있는 인터넷 트래픽을 우회하여 광고, 라이선스 및 구독 수익을 박탈한다"라고 주장
  • 너무 빠른 변화로 인한 AI 법제가 따라가지 못하고 있음
  • 나라와 업계에 따른 AI에 대한 다른 입장
  • 사칭을 통한 사기와 가짜 뉴스 생성
  • 노동 시장에 주는 잠재적인 악영향