안녕하세요,
인공지능(AI) 기술이 빠르게 발전하면서, 이제는 우리 일상 곳곳에서 AI와 상호작용하는 일이 흔해졌습니다. 하지만 AI가 어떻게 작동하고, 어떤 기술을 기반으로 하는지 궁금하신 적 있으신가요? 오늘은 AI 학습과 관련된 기본 용어들을 간단하게 소개하려 합니다. 그럼 시작해볼까요?
목차
1. LLM (Large Language Model)
2. SLM (Small Language Model)
3. NLP (Natural Language Processing)
4. 프롬프트 (Prompt)
5. 사전학습 (Pre-training)
6. 미세조정 (Fine-tunning)
7. 양자화 (Quantization)
8. RAG (Retrieval-Augmented Generation)
9. 할루시네이션 (Hallucination)
10. 토큰 (Token)
11. 랭체인 (LangChain)
12. 랭체인 라이브러리 (LangChain Libraries)
13. 랭체인 템플릿 (LangChain Templates)
14. 랭서브 (LangServe)
15. 랭스미스 (LangSmith)
16. 허깅페이스 (Hugging Face)
17. 깃허브 (Github)
LLM (Large Language Model)
'LLM'은 '거대 언어 모델'을 의미하며, 대규모 데이터셋을 사용해 학습된 자연어 처리(NLP) 작업을 수행할 수 있는 고급 AI 모델입니다. 이러한 모델은 복잡한 언어 이해 및 생성 작업에 사용되며, 대표적인 예로는 OpenAI의 ChatGPT-4o, X(구 트위터)의 Grok, Google의 Gemini 1.5 모델 등이 있습니다.
SLM (Small Language Model)
'SLM'은 '소형 언어 모델'을 의미하며, 제한된 리소스를 활용하여 효율적으로 작동하는 언어 모델을 지칭합니다. 이 모델들은 작은 규모의 데이터셋으로 훈련되어 비용 효율적인 작업 수행이 가능하며, Google의 Gemma 모델, upstage의 Solar 모델, Meta의 LLaMA3 모델 등이 대표적입니다.
NLP (Natural Language Processing)
'NLP'은 '자연어 처리'를 의미하며, 컴퓨터가 인간의 언어를 이해하고, 해석하며, 생성할 수 있도록 하는 인공지능(AI) 기술의 한 분야입니다. NLP는 언어학, 컴퓨터 과학, 정보 공학 등의 여러 학문이 융합된 분야로, 텍스트와 음성 데이터를 분석하고 처리하는 다양한 기술을 포함합니다.
프롬프트 (Prompt)
프롬프트는 사용자나 시스템에서 제공하는 입력값으로, LLM에 특정 작업을 수행하도록 지시하는 텍스트입니다. 이는 질문, 명령, 문장 시작 등 다양한 형태를 취할 수 있으며, 인공지능(AI) 모델, 특히 자연어 처리(NLP) 모델이 특정한 방식으로 반응하도록 유도합니다. 프롬프트는 모델의 응답을 유도하는 데 중요한 역할을 하며, 모델이 생성하는 출력의 방향을 결정합니다. 이는 간단한 질문부터 복잡한 지시 사항이나 문장에 이르기까지 다양할 수 있습니다.
사전학습 (Pre-training)
대규모 데이터셋을 사용하여 AI 모델, 특히 언어 모델을 훈련시키는 초기 단계입니다. 이 단계에서는 모델이 광범위한 일반적인 패턴과 언어 구조를 학습하게 됩니다. 이후 특정 작업에 맞게 미세 조정(fine-tuning) 과정을 거칩니다.
Pre-training 단계
- 데이터 수집 : 대규모 텍스트 데이터를 수집합니다. 이는 뉴스 기사, 소셜 미디어 포스트, 전자책 등 다양한 소스에서 가져옵니다.
- 모델 초기화 : 초기 모델 파라미터를 설정합니다. 이는 무작위로 설정되거나 이전 모델의 파라미터를 사용할 수 있습니다.
- 훈련 : 대규모 데이터셋을 사용하여 모델을 훈련시킵니다. 이 과정은 매우 많은 계산 자원이 필요하며, GPU나 TPU와 같은 고성능 하드웨어를 사용합니다.
- 평가 : 훈련된 모델의 성능을 평가하고, 필요에 따라 추가 훈련을 진행합니다.
미세조정 (Fine-tunning)
미세 조정은 대형 언어 모델을 특정 작업이나 도메인에 맞게 추가 훈련하는 과정으로, 모델이 새로운 데이터에 대한 이해를 깊이 학습하도록 가중치를 조정하는 것입니다. 즉, 미세 조정은 모델 자체의 파라미터를 업데이트하여 학습을 마친 후에도 새로운 데이터를 더 잘 이해하도록 하는 것입니다.
Fine-tunning 단계
- 기본 모델 준비 : 일반적인 데이터셋으로 훈련된 기본 모델을 준비합니다.
- 도메인 데이터 수집 : 특정 작업이나 도메인에 맞는 데이터셋을 수집합니다.
- 모델 미세 조정 : 수집된 도메인 데이터를 사용하여 기본 모델을 추가 훈련시킵니다.
- 성능 평가 및 조정 : 미세 조정된 모델의 성능을 평가하고 필요에 따라 추가 조정을 합니다.
양자화 (Quantization)
양자화란, 모델의 가중치와 연산의 정밀도를 낮추어 모델의 크기를 줄이고 연산 효율성을 높이는 과정입니다. 이는 특히 대형 언어 모델처럼 파라미터 수가 매우 많은 경우에 유용합니다. 양자화는 보통 모델의 훈련 후나 추론 시에 적용됩니다. 메모리 사용량을 줄이고 하드웨어 요구 사항을 낮추어 더 빠르고 효율적인 추론을 가능하게 합니다. 양자화의 주요 목적은 대형 언어 모델의 가중치 정밀도를 낮추어 메모리 사용량을 줄이고, 하드웨어 연산 효율성을 높여 추론 속도를 개선하는 것입니다. 이를 통해 모바일이나 엣지 장치 같은 제약된 환경에서도 모델을 더 적은 전력과 자원으로 실행할 수 있습니다.
장단점
- 장점 : 메모리 절약, 추론 속도 향상, 적은 전력 소모
- 단점 : 성증 저하 가능성, 양자화 노이즈 (모델의 예측에 부정적인 영향을 미칠 수 있음)
RAG (Retrieval-Augmented Generation)
RAG는 자연어 생성 모델을 보완하기 위해 정보를 검색하여 활용하는 기술입니다. 이 기술은 언어 모델에 외부 정보를 동적으로 결합하는 방식으로, 미세 조정과는 다른 접근 방식입니다. RAG는 언어 모델과 정보 검색 시스템을 결합하여, 단순히 훈련된 데이터만을 기반으로 대답하는 대신 실시간으로 검색된 최신 정보를 사용하여 더 정확하고 관련성 높은 응답을 생성합니다. 이를 통해 언어 모델은 제한된 지식에 의존하는 대신 더 풍부하고 맥락에 맞는 정보를 제공할 수 있습니다.
RAG의 주요 구성 요소로는 검색기(Retriever)와 생성기(Generator)가 있습니다. 검색기는 입력된 질문과 관련된 정보를 데이터베이스나 문서 집합에서 검색하는 역할을 합니다. 일반적으로 유사도 검색 알고리즘을 사용하여 관련 문서를 빠르게 찾습니다. 생성기는 검색된 정보를 바탕으로 최종 답변을 생성하는 역할을 하며, 이때 GPT-4o와 같은 대형 언어 모델이 사용될 수 있습니다.
RAG의 동작 방식은 아래와 같이 진행됩니다.
사용자 질문 입력 → 검색기가 외부 데이터베이스에서 검색
→ 검색된 문서들이 생성기에 입력 → 생성기는 검색된 정보를 바탕으로 답변 생성
이 과정은 검색한 정보를 결합해 답변을 만들어내는 방식으로, 최신 정보나 추가적인 문맥을 반영한 답변을 생성하는 데 유리합니다.
RAG의 장점
- 최신 정보 제공: 실시간으로 정보를 검색하여 최신 내용을 반영할 수 있습니다.
- 지식 기반 확장: 모델의 지식이 부족한 영역에 대해서도 검색을 통해 관련 정보를 제공함으로써 답변의 신뢰성과 정확성을 높일 수 있습니다.
- 효율성: 대형 언어 모델을 훈련 데이터만으로 유지하는 것보다 검색기를 통해 필요한 정보만 보강하여 더 효율적으로 활용할 수 있습니다.
할루시네이션 (Hallucination)
AI모델, 특히 NLP 모델이 실제와는 다른 정보를 생성하거나 잘못된 응답을 하는 현상을 의미합니다. 이러한 현상은 AI가 주어진 입력에 대해 정확한 맥락을 이해하지 못하거나, 훈련 데이터의 한계로 인해 발생할 수 있습니다. 이 현상을 해결하기 위해서는 모델을 훈련시키는 데이터 품질을 향상시키거나 데이터셋의 다양성과 정확성을 높여야합니다.
토큰 (Token)
NLP에서 텍스트 데이터를 처리하고 분석하기 위해 사용하는 기본 단위입니다. 텍스트 데이터를 이해하고 작업을 수행하기 위해, 컴퓨터는 텍스트를 더 작은 단위로 분해해야 하며, 이 단위가 바로 토큰입니다. 토큰화는 텍스트를 토큰으로 분리하는 과정입니다. 토큰화는 여러 방식으로 이루어질 수 있으며, 토큰의 단위는 단어, 문자, 또는 서브워드(subword)일 수 있습니다.
랭체인 (LangChain)
LangChain은 다양한 언어 모델을 통합하여 사용할 수 있는 프레임워크입니다. 이 프레임워크는 파이썬과 자바스크립트 라이브러리를 포함하고 있으며, 다양한 컴포넌트의 인터페이스와 통합을 지원합니다. LangChain의 주요 기능 중 하나는 컴포넌트들을 체인과 에이전트로 결합할 수 있는 기본 런타임을 제공하는 것입니다. 이를 통해 사용자는 언어 모델과의 상호작용을 쉽게 하고, 데이터 처리와 컴포넌트 결합을 효과적으로 수행할 수 있습니다.
랭체인 라이브러리 (LangChain Libraries)
LangChain Library는 다양한 컴포넌트와 언어 모델을 통합하여 사용하는 도구입니다. Python과 JavaScript 라이브러리를 포함하고 있으며, 이 컴포넌트들을 체인과 에이전트로 결합할 수 있는 기본 런타임을 제공합니다. 랭체인의 핵심 컴포넌트로서, 언어 모델과의 상호작용을 간소화하고 데이터 처리 기능을 통합하여 개발자가 복잡한 작업을 쉽게 수행할 수 있도록 지원합니다.
랭체인 템플릿 (LangChain Templates)
LangChain Template은 반복적인 작업을 쉽게 처리할 수 있는 미리 정의된 템플릿입니다. 다양한 작업을 위한 쉽게 배포할 수 있는 참조 아키텍처 모음으로, 개발자들이 특정 작업에 맞춰 빠르게 애플리케이션을 구축할 수 있도록 돕습니다. 이 템플릿은 특정 작업을 자동화하거나 일관된 방식으로 다양한 작업을 수행하는 데 유용합니다.
랭서브 (LangServe)
LangServe는 LangChain 애플리케이션을 REST API로 쉽게 배포할 수 있도록 하는 라이브러리입니다. 이 도구를 사용하면 개발자는 LangChain으로 구축한 애플리케이션을 웹 서비스로 쉽게 변환하여 외부 시스템과 통합할 수 있습니다.
랭스미스 (LangSmith)
LangSmith는 LangChain 애플리케이션의 디버깅, 테스트, 평가 및 모니터링을 위한 개발자 플랫폼입니다. 이 플랫폼은 LLM 프레임워크에서 구축된 체인을 디버깅, 테스트, 평가하고 모니터링할 수 있으며, 랭체인과의 원활한 통합을 지원합니다.
허깅페이스 (Hugging Face)
Hugging Face는 자연어 처리와 기계 학습 모델의 개발 및 배포를 지원하는 플랫폼입니다. Hugging Face는 다양한 도구와 라이브러리를 제공하여 연구자와 개발자가 쉽게 AI 모델을 사용할 수 있도록 돕습니다. 특히, 트랜스포머(Transformers) 모델과 관련된 작업에서 매우 유명합니다. Transformers 라이브러리를 통해 대규모 언어 모델(BERT, GPT, T5 등)을 쉽게 사용할 수 있도록 지원하고, 다양한 사전 학습된 모델을 제공하여 연구 및 상용 애플리케이션에서 활용할 수 있습니다.
- 허깅페이스 공식 웹사이트 : https://huggingface.co/
깃허브 (Github)
GitHub는 소프트웨어 개발 프로젝트를 위한 버전 관리와 협업 플랫폼으로, 코드 저장소, 브랜칭 및 병합, 이슈 추적, CI/CD 워크플로우 자동화 등의 기능을 제공합니다. GitHub는 Git을 기반으로 하며, 개발자들이 코드 저장소를 호스팅하고 협업할 수 있는 다양한 기능을 제공합니다.
- 깃허브 공식 웹사이트 : https://github.com/
'AI 용어' 카테고리의 다른 글
LLM의 경량화와 성능 개선 방법에 대해 알아보자. (0) | 2024.05.29 |
---|---|
LLM 성능 평가에 대해서 알아보자. (0) | 2024.05.27 |
서버와 통신에 사용되는 FastAPI / RemoteRunnable에 대해 알아보자. (0) | 2024.05.23 |
Fine-tuning과 RAG에 대해 알아보자. (0) | 2024.05.14 |
도커(Docker) 기초 용어 (0) | 2024.04.11 |