Large Language Models
- LLM(Large Language Model)이란 훈련된(Trained) 데이터를 기반으로 인간과 유사한 텍스트를 이해하고 생성하도록 설계된 인공 지능 모델의 한 유형. 모델이 예측을 하거나 텍스트를 생성하는 데 도움이 되는 조정 가능한 가중치인 수십억 ~ 심지어 수조 개의 매개변수(Parameter)로 구성되는 방대한 크기가 특징.
LLM architectures
Encoder
- 인코더는 단어(text)를 인코딩하도록 설계되었으며, Embedding(단어->숫자)을 transformer architecture를 통해 생성함. Embedding text는 단어 시퀀스를 단일 벡터(single vector) 또는 벡터 시퀀스(sequence)로 변환하는 프로세스를 수행함을 말함. Embedding of text이란 semantics 또는 단어의 의미를 나타내는 단어의 숫자표현
Decoder
- 디코더 모델은 텍스트를 디코딩하거나 생성하도록 설계됨. 텍스트 생성 모델에서 입력과 출력 모두 일련의 단어(text)이며(형태는 다름) 디코더는 한 번에 하나의 토큰(의미가 있는 단어(text) 데이터의 최소단위)만 생성.
Encoder-Decoder
- 인코더는 입력 시퀀스를 처리하고 이를 고정 크기 컨텍스트(context) 벡터로 압축하여 필수 정보를 캡처함. 그 다음 디코더는 이 컨텍스트 벡터를 사용하여 출력 시퀀스를 단계별로 생성
인코더와 디코더는 상황에 따라 다양한 크기로 제공될 수 있음(크기는 모델에 포함된 훈련 가능한 매개변수의 수를 의미)
Prompting
- 프롬프팅은 응답을 생성하거나 작업을 완료하기 위해 AI모델에 초기 입력 또는 "프롬프트"를 제공하는 프로세스를 의미함.
- 프롬프트는 모델이 학습 데이터를 기반으로 관련성 있고 일관성 있는 텍스트를 생성하도록 안내하는 시작점 또는 지침 역할
- 프롬프트 엔지니어링은 특정 작업에 대한 어휘의 확률 분포를 유도하기 위해 모델 입력을 반복적으로 개선하는 프로세스(우리가 원하는 응답에 점점 더 가까워지도록 모델의 입력을 수정하는 방식으로 수행)
Types of prompting
In-context learning
- Constructing a prompt that has demonstrations of the task that the model is meant to complete.(모델이 완료해야 하는 작업을 보여주는 프롬프트를 구성)
K-shot prompting
- 모델이 완료하길 원하는 작업의 k개 예시를 프롬프트에 포함하게하는 방식
- Zero-shot prompting의 경우 프롬프트내 예시 없음
Chain-of-thought prompting
- Prompt the model to break down the steps of solving the problem into small chunks.(모델에 문제 해결 단계를 작은 덩어리로 나누게하는 방식)
Least to most prompting
- Solve simpler problems first, and use the solutions to the simple problems to solve more difficult problems.(간단한 문제를 먼저 해결하고 간단한 문제에 대한 솔루션을 사용하여 더 어려운 문제를 해결하는 방식)
Step-back prompting
- Identify high-level concepts pertinent to a task.(작업과 관련된 상위개념들을 확인하는 방식)
Issues with prompting
- 대표적으로 prompt injection : 개발자에 의해 훈련된 데이터나 민감한 정보들을 취득하려하는 행위
- Hallucination : AI모델이 현실에 근거하지 않거나 사실적 정확성이 부족한 콘텐츠를 생성하는 현상
Training
- 정보와 도메인등의 변경 등을 극복하는 방법, 매개변수 변경에 대응할 수 있게함
Fine-tuning
- 이미 Training된 데이터들의 매개변수를 모두 변경하는 방식
Parameter efficient fine-tuning
- 줄여서 PEFT. 특정 매개변수 집합을 격리하거나 소수의 매개변수를 추가하는 방식
Soft prompting
- 특정 작업을 수행하기 위해 모델에 대한 입력 역할을 하는 특정 매개변수가 프롬프트에 추가하는 방식
Continual pretraining
- Fine-tuning과 유사하지만 labled되지않은 매개변수에 대해 pretraining하는것이 특징
Decoding
Greedy decoding
- 시퀀스 생성 프로세스의 각 단계에서 모델이 다음 출력으로 확률이 가장 높은 토큰(단어 또는 문자)을 선택함. 이 프로세스는 end of sequence token이 생성되거나 시퀀스가 미리 정의된 최대 길이에 도달할 때까지 계속됨
Nucleus sampling
- top-p sampling이라고도 하는 복잡한 디코딩 방식. 가능성이 가장 높은 토큰의 동적 하위 집합을 고려하여 보다 다양한 텍스트 생성을 허용함.
Beam search
- Greedy 디코딩 접근 방식의 확장이며 가장 가능성이 높은 단일 시퀀스 대신 후보 시퀀스 집합(set of candidate sequences)을 고려하여 생성된 시퀀스의 품질을 향상시키는 것을 목표로하는 방식.
Retrieval Augmented Generation (RAG)
- RAG는 검색 기반 모델(retrieval-based model)과 생성형 모델(generative model)의 요소를 결합하여 고퀄리티의, 상황에 맞는 텍스트를 생성하는 자연어 처리(NLP:Natural language processing)의 접근 방식.
이 접근 방식에서는 생성형 모델(예: 언어 모델)이 데이터베이스나 텍스트 모음과 같은 대규모 외부 지식 소스에서 관련 정보를 검색하는 검색 메커니즘으로 강화된다. 이렇게 검색된 정보는 모델의 생성 프로세스를 안내하거나 향상하는 데 사용되어 더 많은 정보를 제공하고 상황에 맞게 풍부한 출력을 생성할 수 있게 된다.
RAG를 구현하는 방법에는 시퀀스 모델과 토큰 모델의 두 가지가 있고 RAG 시퀀스 모델은 단락, 문서 또는 긴 콘텐츠와 같은 전체 텍스트 시퀀스를 생성하는 데 중점을 두는 반면 RAG 토큰 모델은 토큰 수준에서 작동하며 일반적으로 텍스트 완성, 질문 답변 또는 대화 생성과 같이 개별 토큰에 대한 세밀한 제어가 필요한 작업에 사용됨
Vector Databases
- 고차원 벡터 데이터를 효율적으로 저장, 관리 및 쿼리하도록 설계된 특수 데이터베이스를 말하며, 이러한 데이터베이스는 기계 학습, 자연어 처리, 컴퓨터 비전, 추천 시스템 및 데이터가 벡터로 표시되는 기타 도메인과 관련된 애플리케이션에 특히 적합함.
대부분의 벡터 데이터베이스는 수평적 확장, 향상된 성능 및 저장 용량을 허용하는 대규모 고차원 데이터의 저장 및 계산 요구를 처리하기 위해 분산 아키텍처(distributed architecture)를 사용함.
Semantic Search
- Semantic search는 검색어와 검색되는 문서의 의미(의미)를 이해하여 검색 결과의 정확성과 관련성을 향상시키는 것을 목표로 하는 고급 정보 검색 기술
- 일치하는 키워드에만 의존하는 기존 키워드 기반 검색과 달리 의미 체계 검색은 쿼리와 문서 모두의 의도, 맥락, 의미를 고려하여 보다 정확하고 맥락에 맞는 결과를 반환함.
OCI Generative AI Service
Pre-trained Models
- OCI Generative AI 서비스는 OCI Generative AI는 Cohere 및 Meta의 최첨단 LLM(대형 언어 모델)에 대한 액세스를 제공함
- 요약, 텍스트 생성, 번역 및 정보 추출과 같은 작업에 이를 사용할 수 있음.
Fine-Tuning Capabilities
- 자신의 데이터에 대해 사전 훈련된 모델을 Fine-Tuning(미세조정)할 수 있음. 이러한 사용자 정의는 비즈니스 요구 사항과 관련된 특정 작업에 대한 모델 성능을 크게 향상시킬 수 있습니다.
Dedicated Resources
- OCI Generative AI는 맞춤형 모델을 미세 조정하고 호스팅하기 위해 격리된 AI 클러스터를 활용하기 때문에 보안과 성능이 뛰어남
Flexibility and Control
- 필요에 따라 엔드포인트를 생성하거나 업데이트하거나 삭제할 수도 있으며 또한 사용자 지정 모델에 할당된 컴퓨팅 리소스를 관리할 수 있음