본문 바로가기
🤖 AI/AI

🦾LLM 강의 정리~!~!🦾

by 정람지 2024. 1. 23.
 

대규모언어모델이란-1부

오랜만에 포스팅합니다. 작년부터 GPT에 관심을 가졌고, 로컬LLM의 세계를 접한지가 벌써 년수로 2년차가 되가고 있네요 앞으로는 AI하면 LLM이고 2024년 올해부터 LLM은 골드러쉬가 시작된다고 생각

nextshds.tistory.com

강의 출처~

LLM이란 ? 

대규모의 언어 텍스트 데이터를 사용하여 학습된 대화형 자연어 처리 딥러닝 모델


🤖 인공지능 구분

딥러닝  머신러닝 ⊂ 인공지능

 

공지능 : 사람의 지적능력을 컴퓨터를 통해 구현하는 기술

 

 

 

머신러닝 :

주어진 데이터를 인간이 먼저 처리, 사람이 먼저 컴퓨터에 특정 패턴을 추출하는 방식을 지시, 이후 컴츄터가 스스로 데이터를 분석하고 축적

 

딥러닝 :

머신러닝에서 사람이 하던 패턴 추출 작업이 생략
컴퓨터가 스스로 데이터를 기반으로 학습할 수 있도록 정해진 신경망을 컴퓨터에게 주고,
어린아이가 학습하는 것처럼 경험 중심으로 학습을 수행


🤖 처리 프로세스

기존과 다른 처리 프로세스 방식(확률론) 채택

결정론 VS 확률론

결정론 : 특정입력 -> 프로세스 -> 동일한 출력
확률론 : 특정입력 -> 프로세스 -> 확률에 기반한 출력


🤖 LLM 구조

 

LLM = LLM 모델 + LLM 추론 프레임워크

트랜스포머(Transformers)
딥러닝 모델중 하나, 현재 대부분의 LLM모델이 채택
"
주어진 문장을 보고 다음 단어가 뭐가 올지 확률적으로 예측하는 구조"

 

LLM 모델
인간의 뇌와 같은 개념, 인공신경망 + 학습된 파라미터
) GPT, LLAMA, PalM, Gemini

 

LLM 추론 프레임워크
신체와 같은 역할. LLM모델이 언어 데이터를 처리하는 방식을 결정

) VLLM, TGI, DeepSpeed-FastGen, TensorRT-LLM


LLM Serving
LLM 서비스로 제공하고 사용할수 있도록 하는 실제 서비스 구현체
) OpenAI-API, ChatGPT, Bard 

 

 

LLM의 성능 = LLM 모델의 성능(파라미터의 양, 등)추론 프레임워크의 성능(데이터 처리 방식)


🤖 파라미터

파라미터 (매개변수) :가중치 + 편향

가중치연결된 각각의 노드에 대해 적용되는 중요도

편향: 유연하게 데이터에 적응할  있게 하는 요소

 

파라미터가 많을수록 -> 은닉층이 많을수록 -> 똑똑 

파라미터 개수가 많은 모델의 경우 GPU성능이 더 뛰어나야 함.
하드웨어 성능이 떨어지면, 파라미터 갯수가 작은 모델을 사용해야 함.

 

 

다양한 파라미터 LLM 모델 

  • GPT-3.5 175B 파라미터
  • GPT-4 : 10조개 파라미터(GPT-3.5 10배)
  • Google PaLM: 8B, 62B, 540B 세가지 파라미터 모델 제공
  • LLama2 : 7B, 13B, 70B 파라미터 사이즈의 다양한 모델 제공
  • CodeLLama : 7B, 13B, 34B  가지 파라미터 모델 제공
  • Mistral :7B LLama2 13B를 능가, 많은 분야에서 LLama1 34B까지 능가

 

파라미터의 LLM 모델 능력을 대략적으로 수 있는 요소

하지만 모델의 효율성, 학습 데이터의 , 모델 아키텍처의 설계, 그리고 특정 작업에 대한 최적화 중요한 역할. 

 

 

 

 

MS : 2B ( 7B보다 작은 모델 )

모바일에 설치될 수 있는 LLM 모델

적은 파라미터 LLM으로 뛰어난 성능을 내는 것이 현재 트렌드


🤖 GPU

LLM 성능(파라미터 개수) 좌우하는 GPU 

 

인공신경망 구조 -> 병렬연산(동시 계산능력) 필수

CPU 단일연산으로 한계, GPU 병렬연산 구조로 LLM 최적화

 

고려요소: 처리속도(초당 옥수수), 메모리용량(대량의 데이터처리), 메모리대역폭(데이터 I/O 속도), 코어수(빠른연산), 가격


🤖 공개 LLM Vs 로컬 LLM

 

공개 LLM : 인터넷으로 접근이 가능한 LLM 모델  -> GPT

로컬 LLM : 공개된 오픈소스를 기반으로 내부 네트워크 설치 가능한 모델  -> LLaMA


🤖 비양자화/양자화 모델

 

추론성능 중심의 비양자화 모델 ( 오리지널 모델 )

추론속도 중심의 양자화 모델 ( 라이트 모델 )

 

비양자화(Non-Quantization) = 고성능 하드웨어 필요
데이터나 신호를 원래의 높은 정밀도 상태로 유지

32Bit 부동소수점 형식 데이터 처리
추론성능의 최대로 유지하나 많은 메모리 사용량과 계산비용(속도) 필요로

 

양자화(Quantization) = 경량 하드웨어 보유 사용 추천

데이터나 신호를 계산 효율성과 메모리 사용량을 줄이기 위해 작은 정밀도로 변환 

파라미터의 길이를 16Bit, 8Bit 정수로 줄이는 방법으로 속도 개선

정밀도 손실로 인한 성능저하 발생


🤖 토큰과 컨텍스트

 

토큰이란?

LLM 인식하는 요청/응답에 대한 텍스트구성 최소 단위. 

토큰들을 기반으로 텍스트의 의미를 파악하고 다음에 오는 토큰을 예측하거나, 요청에 대한 답변을 생성

 

컨텍스트란?

주어진 토큰이나 문장이 위치한 "맥락" 의미. 

 

주제를 가지고 대화할 수 있는 최대 길이

토큰의 의미를 정확하게 이해하고 적절한 응답을 생성하는 도움

 

수용 가능한 컨텍스트의 길이에 따라 이전 대화까지 다시 고려하여 응답

이전의 요청과 응답을 함께 전송 


🤖 LLM 모델 자연어 이해방식

 

토큰들을 직접 이해할 수 없고,

N차원의 숫자 형태 벡터(Vector)로 변환되어야 이해/처리 가능

토큰화(Tokenization)
자연어 텍스트는 토큰화 과정을 거쳐 개별 토큰분리

 

 

 

임베딩(Embedding)

임베딩은 자연어 처리에서 토큰을 N차원 벡터로 변환하는 과정

 

 토큰은 임베딩과정을 통해 고차원 벡터공간에 매핑.  벡터들은 단어의 의미, 문맥적 특성, 동의어  반의어 관계 등을 수치적으로 표현

 

 

벡터 저장
이렇게 생성된 벡터는 LLM 모델의 일부로 저장
모델 학습 , 임베딩 레이어의 가중치로서 벡터들이 학습되며, 이후 추론시에는 학습된 벡터들을 사용하여 새로운 입력 데이터를 처리


🤖 LLM 흐름

 

질문수신 : 사용자가 질문입력

텍스트 전처리 : 질문의 정제와 텍스트의 토큰화, 추론프레임워크가 질문을 LLM 모델이 이해할수 있는 형식 변환

임베딩 : 전처리된 토큰을 수적적인 벡터로 변환, LLM 모델이 각 토큰에 대한 임베딩을 생성

문맥이해/관계파악 : 토큰 간의 관계 파악, LLM 모델의 핵심 각 토큰의 다른 토큰과 관계 파악을 바탕으로 문맥 이해
응답생성 : 처리된 정보를 바탕으로 응답생성, LLM 모델이 학습된 데이터와 패턴을 바탕으로 적절한 응답

응답최적화 : 추론 프레임워크가 생성된 응답이 맥락상 적절한지 판단 후 변환 

응답전달 : 추론 프레임워크가 최종적으로 사용자에게 응답 전달


🤖 프롬프트

 

프롬프트
사용자가 LLM모델 에게 제공하는 입력값 

 

 

프롬프트 엔지니어링
시스템 프롬프트는 LLM에 기본 지시사항으로 어떤 작업을 수행하는지, 어떤 형식으로 응답을 제공하는지 명시
프롬프트 템플릿은 표준화된 결과를 유도하기 위한 질의/응답의 구조를 만드는 것 (로컬 LLM에서 중요)

 

시스템 프롬프트+프롬프트 템플릿 어떻게 만드느냐에 따라  모델의 효과가 크게 달라짐

 

 

 

GPT 시스템 프롬프트 유출(2023.12)
https://github.com/friuns2/Leaked-GPTs

 

 

 

Best PracticemyGPT 관련 사용자들이 작성한 시스템 프롬프트


🤖 할루시네이션

 

LLM 정확하지 않거나 사실이 아닌 정보를 사실처럼 출력하는 경우

 

이유

1. 대규모 언어 모델(LLM) 딥러닝 기반을 두고 있기 때문

2. LLM이 실제 정보가 아닌 학습 데이터 의존하기 때문에

 

확률적 예측/ 훈련 데이터의 한계 맥락 이해의 한계


🤖 데이터셋

 

DataSet : LLM 성공에 결정적인 역할

 

-> 경량모델도 고품질의 데이터셋으로 학습을 하는 경우 우수한 LLM모델이 있다


🤖 파운데이션모델 & 파생모델

 

파운데이션 모델(Foundation Models)

대규모 데이터셋에서 학습된, 다양한 작업에 적용 가능한 범용 LLM 모델

 

파생모델(derived models)

파운데이션 모델의 기반으로 특정 목적이나 작업에 최적화되도록 조정된 LLM 모델

특정 분야에 적합하게 추가 학습 시켜서 조정(Fine-tuning)하여 더욱 효과적으로 동작

 

 

※ Hugging Face :

인공지능 연구 개발 커뮤니티에서 널리 사용되는 플랫폼, 자연어 처리(NLP) 관련된 다양한 모델과 데이터셋을 제공하는 것으로 유명


🤖 추가 학습 기법

 

추가 학습을 하는 이유

 

할루시네이션 감소 

특정주제 영역에 대한 상세한 정보를 제공

-> 해당 영역에 할수시네이션 감소 

 

목적에 맞는 데이터 학습 

파운데이션 모델은 광범위한 데이터로 훈련됨.

특정 목적을 위해서는 추가 학습 기법을 활용하여 학습시키는 것이 중요 

추가 학습을 통해 해당분야의 용어, 개념, 문맥을 이해하고 답변할 수 있게 됨

Fine-Tuning 모델의 기준이 되는데이타, 잘변하지 않은데이타를 이용하여 작업
     In-Context-Learning
컨텍스트만 충분하다면 가장 효율적이고 빠르게 작업가능한 최고의 추가기법         
     RAG
수시로 변경되는 데이타, 지속성이 없는 데이타를 이용하여 작업 


🦾 In-context-learning

 

목적 데이터를 질문에 추가하여 할루시네이션 감소 정확한 답변을 유도 

LLM 모델의 컨텍스트에 목적에 필요한 데이터를 추가하여 정확한 답변을 얻기 위한 기법

추가학습 기법 가장 효율적이고, 빠른 피드백이 가능하다. 

현재 발표되는 LLM 모델들은 컨텍스트 용량 커지고 있는 추세이나, 대용량 목적데이터는 불가능  

 

  • In-Context Learning 하기 위한 프롬프트 유형
    1.
    시스템 프롬프트 : 구체적인 지시나 요구를 제공
    2.
    자연어 프롬프트 : 사람이 자연스럽게 사용하는 언어 형태로 제공
    3.
    조건부 프롬프트 : 특정조건이나 상황을 기반으로 텍스트를 구성해 제공  

🦾 RAG

 

정형비정형 데이타를 백터 DB 저장하고 질문요청에 맞는 지식검색하여 LLM 전달
해당 내용을 토대로 답변을 생성할 수 있게 하는 기법 

 

 


🦾Fine-Tuning

 

일부 파라미터를 조정하고 특정 데이터를 학습하여 더높은 성능을 발휘 -> 할루시네이션 감소 

파운데이션 모델의 사전학습 효과를 전이받아 특정 도메인 과제에 한해 성능을 끌어 올릴 있음
추가 학습시 데이타 과적합 과소적합 문제발생 다분

 

 

  • 목적데이터의 정제와 구조화처리에 시간과 비용이 발생
  • 파인튜닝된 모델을 테스트하기까지 많은 시간 소요

 

과적합(Overfitting) :

모델이 학습 데이터에 너무 맞춰져서 새로운 데이터에 대한 일반화 능력이 떨어지는 현상

과소적합(Underfitting)

: 모델이 학습 데이터의 패턴을 충분히 학습하지 못해, 학습 데이터에도 맞지 않고 새로운 데이터에 대한 예측도 부정확한 경우를 말함

하이퍼파라미터

: 모델의 학습과정을 제어하는 파라미터로, 학습률(learning rate), 배치 크기(batch size), 에폭 (epochs), 네트워크의 깊이나 너비(레이어의 수나 뉴런의 ) 등이 해당되고, 이들은 모델이 데이터를 어떻게 학습할지 결정하는 중요한 요소


 

 

🤖 인간 피드백 강화학습

 

 

 

 

RLHF(인간 피드백 기반 강화학습)

= 관련 라이브러리 + 데이터셋
강화학습을 이용해 인간의 피드백으로부터 LLM을 최적화하는 방법

총 3단계 학습으로 구성

Supervised Fine-Tuning: 지도학습, 문제를 내고 정답을 알려주는방식

Reward Model Traing : 응답에 대한 좋아요/싫어요 수집, 선호도 학습 

RL Fine-Fine-Tuning : 선호도 최대화 하기위해 Aligned LM fine-tuning

 

RLAIF(AI 피드백 기반 강화학습) 

 

강화학습을 이용해 인간의 피드백으로 부터 LLM을 최적화하는 방법

총 3단계 학습으로 구성

Supervised Fine-Tuning: 지도학습, 문제를 내고 정답을 알려주는방식

Reward Model Traing : 응답에 대한 좋아요/싫어요 수집, 선호도 학습 

RL Fine-Fine-Tuning : 선호도 최대화 하기위해 Aligned LM fine-tuning


🤖 최신동향

My GPTs 

개인별 Fine-Tuning, In-Context-Learning, RAG 사용할수 있는 환경 제공

- RAG 기반의 비정형데이터, 외부 API 연동 가능 

- 특화된 LLM 모델을 제공하고자 하는 국내외 모든 스타트업은 사실상 영업종료

- LLM관련 지식만 있으면 IT 개발을 몰라도 할수 있게 구성되었기에 파급력 상당

- 개인 생성 MyGPTs 공개, 링크공유, 개인사용 가능

- 공개형 LLM서비스 시장은 사실상 종료

- LLM 시장 트렌드는 이제 로컬 LLM으로 변할 것으로 예상                    

 

Mistral 7B
적은 파라미터로 뛰어난 추론 능력, 컨테스트 길이 32K ( 보통 4K ~ 8K )
 7B 모델로 대다수의 30B+ 모델을 능가하는 성능을 보여준 Mistral AI 

Mistral AI 에서 Mixtral 이라는 MoE 모델을 공개

7B 파라미터를 가진 8개의 전문가

 

전문가의 혼합 아키텍처를 사용

전문가 혼합(Mixture of Experts) 구조

MoE 모델은 Mixture of Experts 라는 기법으로, GPT-4의 근간이 되는 기술

 

- 8개의 7B Mistral 모델을 사용하여, 전체 모델 크기는 56B 정도 (80G GPU x 2 필요)

- 추론시엔 2개의 네트웍을 사용하여, 컴퓨팅 코스트는 12B 정도 수준

- 32K 윈도우 크기를 제공

- 데스크탑에서 실행 가능한 OSS GPT-4 도전하는 중요한 변곡점
- GPT-4
모델이 100B+ 모델을 16 사용하는 것으로 추정

 

GPT - 공개 LLM
-
올트먼 CEO의 경우 Open AI 급진적인 LLM 발전을 주도하기 때문에 주목해야 함  

 

LLama - 로컬 LLM 

LLM 발전에 최정점은 GPT, 그러나 오픈소스 정책으로 LLM 시장의 주도권 이동 

- 2023 2 Llama1 공개 - 다양한 파생모델 탄생 

- 2023 7 Llama2 공개 - GPT 보다 적은 파라미터로 뛰어난 추론능력 보임
    ->파라미터 크기 보다 학습방법에 의한 LLM 발전 방향 제시

    ->경량화된 LLM 모델 확산에 주역

- 2023 10 Llama2 Long 공개 - 컨텍스트 길이 32K 지원
    -> GPT 3.5-turbo 성능 능가  

- 현재 Llama3 개발중 GPT4 근접한 성능목표 

    -> 오픈소스하기로 결정
    -> 2024 공개 예정
    -> 로컬 LLM 메인 모델로 다양한 업무에 적용되면 파급력 상당 예상