전체 한 판
안녕하세요! 오늘은 딥러닝의 발전 과정과 프로그래밍 패러다임의 변화에 대해 자세히 알아보도록 하겠습니다.😁 마치 아이가 성장하면서 점점 더 복잡한 문제를 스스로 해결할 수 있게 되는 것처럼, 인공지능도 비슷한 발전 과정을 거쳐왔습니다. 이를 이해하기 위해 Rule-Based Programming부터 Deep Learning까지의 진화 과정을 함께 살펴보겠습니다.
Rule-Based Programming (SW 1.0)
먼저 가장 초기 단계인 Rule-Based Programming에 대해 이야기해보겠습니다. 이는 마치 요리 레시피처럼 모든 단계를 사람이 일일이 정해주는 방식입니다. 예를 들어, 고양이 사진을 인식하는 프로그램을 만든다고 생각해봅시다.
"삼각형 모양의 귀가 있고, 수염이 있으며, 동그란 얼굴형을 가졌다면 고양이로 판단하라"와 같이 모든 판단 기준을 프로그래머가 직접 코드로 작성해야 했습니다. 이는 마치 아이에게 "이런 특징이 있으면 무조건 고양이야"라고 엄격하게 규칙을 정해주는 것과 비슷합니다.
그림1을 보시면, 이 단계는 Input에서 output으로 가는 과정이 하나의 Hand-desined program이라는 박스로 단순하게 표현되어 있습니다. 이는 모든 프로세스가 사람의 손으로 직접 설계되었음을 시각적으로 보여줍니다.
Conventional Machine Learning (SW 1.5)
다음 단계인 전통적인 머신러닝은 한 단계 진화한 형태입니다. 이는 마치 학생에게 "이런 특징들을 보고 판단하면 돼"라고 가이드라인만 제시하고, 구체적인 판단은 학생이 스스로 하도록 하는 것과 비슷합니다.
머신러닝의 학습 과정은 다음과 같습니다:
- 데이터 준비: 먼저 많은 고양이와 강아지 사진을 수집합니다.
- 특징 정의: 사람이 중요하다고 생각하는 특징들(눈 크기, 귀 모양, 수염 길이 등)을 정의합니다.
- 학습 데이터 생성: 정의된 특징들을 컴퓨터가 이해할 수 있는 숫자 형태로 변환합니다.
- 모델 학습: 컴퓨터가 이 데이터를 바탕으로 최적의 판단 기준을 스스로 찾아냅니다.
이 과정은 마치 선생님이 학생에게 중요한 개념을 알려주고, 학생이 그것을 바탕으로 스스로 문제 풀이 방법을 터득하는 것과 비슷합니다.
그림에서 볼 수 있듯이, 이 단계는 두 개의 주요 박스로 구성됩니다. 'Hand-designed features'라는 하단 박스는 사람이 정의한 특징들을, 상단의 'Mapping from features' 박스는 기계가 학습하는 영역을 나타냅니다.
Deep Learning (SW 2.0)
딥러닝은 머신러닝보다 진보된 형태입니다. 이는 마치 학생이 완전히 자율적으로 공부하는 것과 같습니다. 선생님(프로그래머)은 단지 큰 방향만 제시할 뿐, 구체적인 학습 방법부터 문제 해결까지 모든 것을 학생(AI)이 스스로 해냅니다.
딥러닝의 특징은 다음과 같습니다:
- 자동화된 특징 추출: 사람이 특징을 정의해주지 않아도, AI가 중요한 특징을 스스로 찾아냅니다.
- 구조화된 학습: 너무 많은 자유도를 가진 연산들을 효율적으로 관리하기 위해, 신경망이라는 계층적 구조를 사용합니다.
- 데이터 중심 학습: 프로그래머는 주로 데이터 수집과 전처리, 그리고 신경망의 기본 구조 설계에 집중합니다.
예를 들어 텍스트 분석의
경우:
- 텍스트 데이터를 수집하고
- 기본적인 토큰화 방법만 정의하면
- 나머지 특징 추출과 분석은 딥러닝 모델이 알아서 수행합니다
이는 마치 학생이 책을 읽고 스스로 중요한 내용을 파악하고, 자신만의 방식으로 이해하고 적용하는 것과 같습니다.
그림 1에서 이 단계는 'Deep&Wide Neural network'라는 큰 테두리 안에 'Features'와 'Mapping from features'가 모두 포함되어 있습니다. 이는 전체 과정이 하나의 통합된 신경망 안에서 이루어짐을 보여줍니다.
그림 2는 이러한 세 단계의 관계를 동심원으로 표현하고 있습니다. 가장 안쪽의 DL(Deep Learning)은 "모델의 구조가 뉴럴넷 기반"이라는 특징을 가지며, 그 바깥의 ML(Machine Learning)은 "데이터 기반으로 개발"되는 특성을, 가장 바깥쪽의 AI는 "감지, 추론, 행동, 적응이 가능한 프로그램"이라는 가장 넓은 개념을 포함합니다.
이러한 발전 과정은 인공지능이 점점 더 자율적이고 지능적인 시스템으로 발전해가는 것을 보여줍니다. SW 1.0에서 3.0으로 갈수록 사람의 개입은 줄어들고, 시스템의 자율성은 증가하고 있습니다.
Pre-Training & Fine-tuning(SW 2.5)
이제 인공지능의 중요한 패러다임 전환점인 Pre-training & Fine-tuning에 대해 이야기해보겠습니다. 이는 인간의 학습 과정과 매우 유사한데, 마치 우리가 기초 교육을 통해 일반적인 지식을 쌓은 후 특정 분야를 전공하는 것과 비슷합니다.
기존 딥러닝 모델들의 가장 큰 고민은 '비효율성'이었습니다. 새로운 작업이 주어질 때마다 처음부터 다시 학습해야 했기 때문입니다.
예를 들어, 고양이와 개를 구분하도록 학습된 모델이 있다고 해도, 개구리와 소를 구분하는 새로운 작업이 주어지면 처음부터 다시 학습을 시작해야 했죠. 이는 마치 피아노를 배운 사람이 기타를 배울 때 음악의 기초부터 다시 배워야 하는 것과 같은 비효율적인 상황이었습니다.
그림에서 볼 수 있듯이, Pre-training과 Fine-tuning은 이 문제를 해결하기 위해 학습 과정을 두 단계로 나눕니다. :
- Pre-training (사전 학습) 단계:
- 많은 종류의 데이터로 기본적인 패턴을 학습합니다.
- 그림에서 보이는 것처럼, 1000개 이상의 다양한 클래스에 대한 학습이 이루어집니다.
- 이는 마치 어린아이가 세상의 기본적인 개념들을 배우는 것과 같습니다.
- Fine-tuning (미세 조정) 단계:
- Pre-training된 모델의 상위 층만을 특정 작업에 맞게 조정합니다
- 그림에서 보듯이, 판다와 토끼를 구분하는 것과 같은 특정 작업에 모델을 특화시킵니다.
- 이는 기존에 배운 지식을 바탕으로 새로운 기술을 습득하는 것과 유사합니다.
이러한 방식의 가장 큰 장점은 데이터 효율성입니다. 그림에서 보이듯이 Fine-tuning에는 매우 적은 양의 데이터만 필요합니다. 이는 실제 비즈니스 환경에서 매우 중요한데, 데이터 수집과 레이블링에 들어가는 비용과 시간을 크게 줄일 수 있기 때문입니다.
Big model & Zero/Few shot
인공지능 발전의 가장 최신 단계인 Big Model & Zero/Few shot은 더욱 혁신적인 변화를 가져왔습니다. 이는 마치 경험이 풍부한 전문가가 새로운 상황에 직면했을 때, 별도의 학습 없이도 기존 지식을 활용해 문제를 해결하는 것과 유사합니다.
이 단계의 핵심은 'In-context Learning'입니다. 이는 기존의 학습 방식과는 완전히 다른 패러다임인데, 모델이 실제로 학습을 하지 않고도 주어진 맥락(context)을 이해하고 적절한 응답을 생성할 수 있게 됩니다. 그림에서 보이는 GPT-3의 발전 과정이 이를 잘 보여줍니다:
- Zero-shot Learning:
- 별도의 예시 없이 단순한 지시만으로 작업 수행
- 예: "다음 문장이 긍정적인지 부정적인지 분류해줘"
- 이는 마치 전문가가 경험을 바탕으로 처음 보는 문제도 즉시 해결하는 것과 같습니다
- One-shot Learning:
- 단 하나의 예시만으로 새로운 작업 수행
- 예: "이런 형식으로 분류해줘" 하고 한 가지 예시를 보여주는 것
- 마치 한 번의 시연만 보고도 새로운 기술을 습득하는 것과 같습니다
- Few-shot Learning:
- 몇 개의 예시만으로 복잡한 작업 수행
- 이는 인간의 귀납적 학습 능력과 매우 유사합니다
이러한 발전이 가능했던 것은 모델의 크기가 기하급수적으로 증가했기 때문입니다. GPT-3의 1750억 개 파라미터는 이전 모델들과는 비교할 수 없는 규모이며, 이를 통해 모델은 거의 모든 종류의 텍스트 작업을 수행할 수 있는 일반적인 언어 이해 능력을 갖추게 되었습니다.
최신 LLM의 발전 방향
현재 LLM(Large Language Model)은 단순히 거대 모델을 그대로 사용하는 것을 넘어, 더욱 효율적이고 정교한 방식으로 발전하고 있습니다. 기본적인 프롬프트(prompt) 입력만으로도 작동하지만, 더 나은 성능을 위해 다양한 기술들이 개발되었습니다.
RAG(Retrieval-Augmented Generation)
RAG는 LLM의 한계를 보완하는 중요한 발전입니다. 마치 학생이 시험을 볼 때 참고 자료를 찾아보는 것처럼, LLM이 응답을 생성할 때 외부 지식을 참조할 수 있게 합니다.
작동 방식:
- 사용자의 질문이 들어오면 관련된 문서나 데이터를 검색
- 검색된 정보를 프롬프트에 포함하여 LLM에 전달
- LLM이 이 추가 정보를 바탕으로 더 정확한 답변 생성
이는 특히 최신 정보나 특정 도메인의 전문 지식이 필요한 경우에 매우 유용합니다.
Parameter-Efficient Fine-tuning
최근에는 전체 모델을 다시 학습시키는 대신, 매우 효율적인 미세조정 방법들이 개발되었습니다:
- LoRA(Low-Rank Adaptation):
- 거대 언어 모델의 가중치를 직접 수정하지 않고
- 작은 크기의 적응 행렬을 학습
- 이를 통해 저장 공간과 계산 비용을 크게 절감
- QLoRA(Quantized LoRA):
- LoRA를 더욱 효율적으로 개선한 버전
- 모델 가중치를 4비트로 양자화하여 메모리 사용량을 대폭 감소
- 일반 데스크톱 GPU로도 거대 모델의 미세조정이 가능
Prompt Engineering의 발전
현대 LLM의 사용에서 프롬프트 엔지니어링은 매우 중요한 기술이 되었습니다:
- Zero-shot Learning:
- 가장 기본적인 형태로, 직접적인 지시만으로 작업 수행
- 예시: "다음 텍스트의 감정을 분석해주세요"
- 장점: 즉시 사용 가능, 추가 학습 불필요
- 단점: 복잡한 작업에서는 성능이 떨어질 수 있음
- Context Engineering:
- 프롬프트에 추가적인 맥락 정보를 포함
- 예시: 전문가의 역할 설정, 상세한 지시사항, 품질 기준 등
- "당신은 데이터 사이언티스트입니다. 다음 데이터를 전문가의 관점에서 분석해주세요."
이러한 다양한 기술들의 조합은 LLM을 더욱 실용적이고 효과적인 도구로 만들어가고 있습니다. 단순히 거대 모델을 사용하는 것을 넘어, 각 사용 사례에 맞는 최적의 방식을 선택하고 조합하는 것이 현대 AI 응용의 핵심이 되고 있습니다.
항상 더 좋은 정리를 가지고 오겠습니다.! 비록은 현재 패스트캠퍼스에 도움을 받아 글을 작성하지만, 혼자서 Reference를 찾아 글을 작성하고 상업적, 학술적 가치가 있는 사람이 되겠습니다!
Reference
[1] Upstage AI LAB 패스트캠퍼스 부트캠프
[2]
'Upstage_AILAB > Deep Learning(FastCampus 정리)' 카테고리의 다른 글
딥러닝 기술 종류 1 (3) | 2024.12.11 |
---|