🐯
경민민 IT 핸드북
  • Orientation
    • 전달사항
    • 복습방법
    • 수료한 선배의 한마디
    • 간단 자기소개
    • 스터디
  • 백엔드
    • Java
      • 1장 프로그래밍 기초
      • 2장 자바 메모리구조
        • 1. Stack
        • 2. Heap
      • 6장 객체
      • 8장 상속
      • 9장 다형성
      • 10장 추상클래스와 인터페이스
      • 13장 Generic
      • 14장 Thread
      • 15장 Network
      • 16장 Lamda
        • 1. 내부 클래스 (Inner Class)
          • DTO , VO, Builder Pattern
        • 2. 람다 표현식 (Lambda Expression)
        • 3. 스트림 API (Stream API)
          • Optional
      • 17장 Enum
  • 프론트
    • Node.js
    • Java Script
      • ES6+
        • Node.js로 자바스크립트 실행
        • let , const , var
        • Destructuring문법
          • Rest(...) 문법
        • Arrow Function
        • 모듈
        • ETC
    • Type Script
      • 개요
      • TS설치 및 환경설정
      • 타입스크립트 기본
        • 기본 자료형들과 타입추론
        • Object, Array , Tuple
        • Any, Unknown, Union Type
        • Function Type
          • Type Assertion && Narrowing
          • Never type
        • Type Aliases와 Interface
        • 리터럴 타입
        • 함수 추가 문법
        • Class문법
        • 객체 타입 추가 문법
        • 실습문제 1차
        • 실습문제 2차
        • 실습문제 3차
    • React
      • 개요
      • SPA 와 MPA
        • SEO(작성예정)
      • 리액트 프로젝트 생성(18.3.1.ver)
        • HTML + react 샘플
        • CRA 와 Vite 비교
      • 리액트 개념들
        • Component
          • 클래스 컴포넌트(작성예정)
          • 함수형 컴포넌트(작성예정)
        • JSX
        • React Virtual Dom
          • Reconciliation
        • hook
          • useState
        • 리액트 데이터 전달
          • FLUX
      • 백엔드 서버 연동
        • 비동기요청
        • 웹소켓
        • Promise(작성예정)
      • 실습문제 1
      • 실습문제 2
      • 실습문제3
      • 실습문제4
  • 프레임워크
    • Spring
      • Spring 개발환경 구축
        • 프로젝트 환경설정
        • 프로젝트 생성
          • MVC Project 생성이슈
        • Maven 설정
        • web.xml 설정
        • Spring Bean Configuration.xml 설정
      • Spring Legacy Project
        • Spring 요청 및 응답 흐름
        • Spring 주요 Annotation
          • 의존성 주입방식의 차이점
          • @ModelAttribute와 유효성검사
          • 비동기처리
          • 스프링 예외처리
        • Logging
        • Pagination
        • Spring File 업로드 및 다운로드
        • Spring WebSocket
        • Spring AOP
      • Spring 라이브러리들(작성예정)
        • Lombok
        • Maven
        • MyBatis
      • Spring 구성 모듈(작성예정)
      • 스프링 과제
    • Spring Boot
      • Spring Boot 개발환경 구축
      • 스프링 부트 프로젝트 생성방법들
        • 프로젝트에서 사용하는 의존성들
      • 스프링 프로젝트 구조
        • SpringBootApplication
      • application.properties
      • Cross Origin
        • CORS
      • WebSocket
        • Stomp(작성중)
      • 로그인(작성중)
      • Spring Security(작성중)
      • 실습문제 Select
      • 실습문제 Update
      • 실습문제 Delete
  • 형상관리(Git)
    • GitHub설정
    • SourceTree를 활용한 깃허브 연동
      • 소스트리 설치
      • Clone
      • Branch
        • Branch Protection rules
          • Branch Protection Rules 상세규칙
        • Rebase 와 Squash (작성예정)
      • Team Project 설정
        • 팀장 프로젝트 셋팅
          • Collaborator
          • .gitignore 설정
        • 팀원 프로젝트 셋팅
        • 공통 프로젝트 진행
  • 프로젝트
    • 진행순서
      • 요구사항 분석 단계
        • 유용한 사이트
      • 프로그램 설계 단계
        • 유용한 사이트
      • 프로그램 구현단계
        • SourceTree를 활용한 Team Project설정
      • 테스트 단계
  • 배포
    • AWS-EC2 배포 연습
    • DevOps
      • IT시스템의 변화와 DevOps
      • DevOps 라이프사이클
    • 젠킨스
      • 도커
        • 도커 설치 방법
        • 도커 기본 명령어들
      • 젠킨스 설치
      • 젠킨스 프로젝트 생성
      • 젠킨스 소스코드 통합 - Github
      • 젠킨스 빌드 설정 - Maven
      • 배포 서버 구축하기
      • 파이프라인 구축
      • AWS 서버 생성
        • AWS 인스턴스 생성
        • AWS - Zenkins 연동
        • AWS - 배포서버 연동
        • AWS - Jenkins CI/CD파이프라인 구축
  • 유용한 사이트 모음
  • SQL
    • SQLD
      • 데이터 모델링의 이해 - 스키마
      • 데이터 모델링의 이해 - ERD
      • 데이터 모델링의 이해 - 정규화
      • 데이터 모델링의 이해 - NULL
      • SQL 기본 및 활용 - WINDOW FUNCTION
    • Oracle
      • 1장 개요
      • 2장 SQL
  • LLM 서비스
    • 1장 LLM에 대한 이해
    • 2장 프롬프트 엔지니어링
      • 프롬프트와 프롬프트 엔지니어링
      • GPT PlayGround
      • 프롬프트 작문 유형
      • 기본 프롬프트 엔지니어링 태크닉
      • 고급 프롬프트 엔지니어링 태크닉
        • ReAct Prompting
        • Active-Prompt
        • Reflexion
        • Graph Prompt
      • OpenAI API설정
      • OpenAI를 활용한 프롬프트 엔지니어링 실습
        • 실습 프롬프트
    • 3장 Lang Chain 프레임워크
      • LangSmith 프레임워크
        • LangSmith를 활용한 LangChain 모니터링 설정
      • LangChain 실습 1 - Prompt
        • 실습 코드
      • LangChain 실습 2 - LLM 캐시와 메모리
    • 4장 RAG
      • Document Loader - 문서 로더
      • Text Splitter - 텍스트 분할
      • Embedding - 임베딩
      • Vector Store - 벡터 저장소
      • Retriever - 검색기
      • ReRanker - 재평가자
      • RAG
Powered by GitBook
On this page
  • Intro
  • 1. LLM(Large Language Model)
  • 2. LLM 작동원리
  • 3. LLM의 특징과 한계
  • 1. NLP처리에 특화
  • 2. LLM은 잘하는 것과 못하는 것이 혼재
  • 3. 할루시네이션(Hallucination) - 환각
  • 4. LLM은 정적모델
  • 5. LLM의 크기와 성능의 관계
  • 6. LLM은 편향적
  • 4. 대표 LLM 서비스
  • 1. GPT-4
  • 2. GPT-3.5
  • 3. Claude 3 Opus
  • 4. Google DeepMind
  • 5. Amazon Olympus
  • 6. Meta LLMA2
  • 7. X Grok
  1. LLM 서비스

1장 LLM에 대한 이해

PreviousLLM 서비스Next2장 프롬프트 엔지니어링

Last updated 2 months ago

Intro

최근 인공지능(AI)의 발달은 자연어 처리(NLP) 기술을 통해 사람과 자연스럽게 대화하거나 복잡한 언어 작업을 수행할 수 있는 시스템을 탄생시켰습니다. 이 가운데 LLM(Large Language Model)은 텍스트 데이터를 기반으로 언어를 이해하고 생성할 수 있는 가장 혁신적인 도구로 주목받고 있습니다

이 장에서는 LLM의 개념, 작동 원리, 주요 특징, 그리고 활용 가능성을 살펴보겠습니다.


1. LLM(Large Language Model)

  • Large(엄청나게 많은 데이터를 학습한) Language(인간의 언어를 처리하는) Model(딥러닝모델)

LLM(Large Language Model)은 대규모 언어 모델을 의미하며, 인터넷, 책, 논문, 뉴스, 블로그 등 방대한 양의 텍스트 데이터를 학습한 인공지능 모델입니다. 이러한 데이터들은 트랜스포머 아키텍쳐를 기반으로 학습되어 학습한 데이터의 문맥과 패턴을 이해할 수 있습니다. 이로 인해 LLM은 사람의 질문에도 이해를 하고 사람처럼 소통할 수 있는 능력을 갖추게 되었습니다. 사람이 사용하는 언어를 기계가 처리하는 기술을 NLP(Natural Language Processing)라고 부르는데 LLM의 NLP기술은 챗봇, 텍스트 번역, 요약 등 원래는 사람이 처리해야 했던 다양한 분야에서 사람을 대체하는 기술로써 활용되고 있습니다.

많은 국내 기업에서도 기존의 서비스에 AI기능을 추가한 AI서비스들을 여럿 보셨을 건데 이러한 서비스들의 base가 되는 기술이 LLM입니다. 이러한 LLM은 국내에서 자체적으로 개발하는 경우도 있고, 이미 생성된 LLM을 이용하는 경우도 있고 다양하지만, 현대의 시대적 흐름에서 LLM도입은 회사입장에서 선택이 아닌 필수가 되어가고 있습니다.

기업 LLM도입에 대한 세미나내용

국내에서 개발중인 토종 LLM

위 기사내용 처럼 다양한 기업에서 LLM서비스를 도입 했거나, 도입을 준비중에 있는 것으로 확인되고 있는데요, LLM도입시에는 프라이버시 문제, 정보의 정확성문제, 윤리적 문제 , 경제적 문제 등 고려해야할 부분들이 상당합니다. 이번 커리큘럼에서는 총 4장의 대단원에 걸쳐 이러한 문제를 해결한 챗봇 서비스를 함께 만들어볼 예정입니다.


2. LLM 작동원리

LLM은 어떻게 사용자의 질문의 의미를 파악하고 그에 맞는 응답데이터를 반환해 줄 수 있을까요? 그 이유는 LLM학습 방법에 있습니다.

LLM은 "딥러닝(Deep Learning)" 기술 중 트랜스포머(Transformer)라는 신경망 구조를 기반으로 만들어 졌습니다. 트랜스포머는 Self-Attention Mechanism을 사용하여 텍스트에서 의미를 추출하고 이를 통해 단어들 간의 관계를 파악합니다. 이 트랜스포머를 통해 LLM 모델 자체가 스스로 학습하여 기본 문법, 언어 및 지식을 이해하게 됩니다.

  • Self-Attention Mechanism ?

    • 문장에서 각 단어가 다른 단어와 어떤 관계를 가지는지, 다른 단어와의 연계시 중요한 요소가 무었인지를 판단하고 중요도를 계산하는 알고리즘.

  • 백설공주와 일곱난쟁이 동화를 학습했다면, 백설공주는 독이든 사과, 난쟁이, 마녀 단어등과 깊은 관계점수를 가지고 있을 것.

  • 사용자가 백설공주에 대해서알려줘 ! 라는 질문이 들어오는 경우, 연관이 있는 단어들 중 사용가능성이 가장 높은 단어들을 활용하여 적절한 문맥을 생성 후 반환


3. LLM의 특징과 한계

1. NLP처리에 특화

  • LLM들은 인터넷의 방대한 텍스트 데이터를 학습하여 언어의 문맥과 패턴을 이해할 수 있습니다.

  • LLM은 언어의 문맥과 패턴을 이해할 수 있으므로 자연어 처리(NLP)에 자주 활용되며, 이 분야로는 문서번역, 요약, 코드 생성, 챗봇 기능등이 있습니다.

2. LLM은 잘하는 것과 못하는 것이 혼재

  • LLM은 다양한 응답을 생성할 수 있지만 , 기본적으로 확률에 의거한 응답을 반환하기 때문에 잘못된 응답일 가능성이 존재합니다.

  • 혹은 소설, 시, 광고 문구 작성 등 단순 검색 기반이 아닌 창의적인 답변 생성이 가능합니다.

  • 단, 요청한 내용과 상관이 없는 잘못된 정보를 반환할 수도 있습니다. (Hallucination)

  • LLM은 언어 패턴을 기반으로 응답하도록 설계되었기 때문에, 복잡한 수학계산이나 논리적 추론에서 오류를 범할 수 있습니다. 다양한 수학문제 해결을 위해서는 외부 계산 API 시스템과 연동하도록 설정해 줘야 합니다.

3. 할루시네이션(Hallucination) - 환각

  • LLM은 학습 데이터를 기반으로 답변을 생성하기 때문에 잘못된 정보를 사실처럼 말하는 환각 현상이 발생할 수 있습니다.

  • 해결을 위해서는 RAG기법으로 신뢰성 있는 데이터를 검색 후 생성하는 방법, 인간전문 피드백 기반 학습을 하는 방법 , 도메인 특화 데이터로 파인튜닝 하는 방법 등이 있습니다.

4. LLM은 정적모델

  • LLM은 사전학습된 데이터만을 활용하기 때문에 최신 데이터를 기반으로 응답하지 못합니다.

  • 최신데이터를 반영하기 위해서는 기존 LLM 모델에 Fine-Tuning을 통한 추가 학습이 필요합니다.

  • 또한 Fine-Tuning을 통해 특정 작업에 알맞은 LLM으로 활용할 수 있습니다.

5. LLM의 크기와 성능의 관계

  • LLM의 학습량은 크기에 비례합니다. 따라서 LLM의 크기가 클수록 많은 데이터가 학습되었다는 것이고, 이는 높은 성능을 가졌다는 뜻 입니다.

  • 단, LLM의 크기가 커질수록 학습에 많은 비용이 들며, 최적화 및 테스트가 어렵다는 단점이 존재합니다.

  • 또한 최근에는 소규모 LLM에 사용자 피드백 기반 Fine-tuning기법으로 더 많은 데이터를 학습한 LLM모델보다 뛰어난 성능을 보이는 사례도 존재합니다.

  • 따라서 앞으로의 LLM트렌드는 "무조건 더 많이 학습시키기"보다는 "최적화된 방식으로 적게 학습"하는 것이 LLM개발 업계의 중요한 트렌드가 되어가고 있습니다.

  • EX)애플에 설치된 AI모델의 크기가 100GB가 넘는다? 이게 핸드폰이야 LLM이야..

  • LLM을 통한 어플리케이션 제작시, 최적의 비용으로 높은 성능을 이끌어 내기 위해서는 원하는 응답결과를 유도하는 기술인 프롬프트 엔지니어링이 필요합니다.

6. LLM은 편향적

  • LLM은 사전 훈련된 데이터의 편향을 그대로 반영합니다. 즉, 학습데이터 내부에 존재하는 편향성이 응답에 그대로 반영될 수 있습니다.

  • 이를 방지하기 위해서는 데이터 학습시 편향적인 데이터를 제거시키는 필터링 작업이 필요합니다.

DeepSeek는 중국 스타트업에서 개발한 LLM모델로 기존 LLM모델 대비 90~97%의 비용을 절감하여 개발 되었음에도 불구하고 뛰어난 성능으로 이슈인 LLM모델이다.

단, 학습된 데이터에는 편향된 정보가 존재한다.

4. 대표 LLM 서비스

LLM서비스는 굉장히 다양합니다. 어떤 모델은 질문에 답변을 하는데 특화되어 있고, 어떤 모델들은 문서를 요약하는데 특화 되어 있고 또 다른 모델은 코드를 생성하는데 특화되어 있기도 합니다.

1. GPT-4

OPEN-AI의 대표적인 모델로 1.76T개의 파라미터를 학습한 모델입니다. CHAT-GPT프리미엄 결제시 사용되는 모델입니다. 논리적 추론능력과 텍스트 생성능력이 뛰어납니다.

2. GPT-3.5

GPT-4보다 가볍고, 빠르지만 추론능력은 부족한 모델입니다. CHATGPT 무료버전에서 사용됩니다.

3. Claude 3 Opus

Claude시리즈 중 가장 강력한 모델입니다. GPT-4와 경쟁하는 모델로 논리적 추론능력, 텍스트 생성능력이 뛰어납니다.

4. Google DeepMind

  • Gemini Ultra : Google 최고성능 모델로 멀티모달(이미지,텍스트,비디오)처리가 가능합니다.

  • Gemini Pro : Ultra보다 상대적으로 작은 모델로 빠르고 효율적인 모델입니다

  • PalM-2 : Google이전 모델로 코드 작성 및 다국어 처리에 강합니다.

5. Amazon Olympus

  • 클라우드 및 aws서비스와의 통합 가능성이 있는 LLM모델입니다.

6. Meta LLMA2

  • 70B파라미터로 상대적으로 작은 모델이지만 오픈소스로 제공합니다.

  • 성능 대비 효율성이 좋아 기업 맞춤형 SLLM에 주로 사용되는 모델입니다.

7. X Grok

  • x에서 개발한 모델로 실시간 데이터 및 대화형 기능에 초점을 맞춘 모델입니다.


추가 보완점 : 1. LLM특징과 한계에 대한 간단한 코멘트. 2.LLM을 도입하려고 하는 국내 회사가 늘어나는 추세를 별도의 챕터로 구성하기. + 내용보충하여서 3. 생성형 AI와 LLM 추가 (이미지로) 4. 마무리 멘트 추가

당근이 LLM을 활용하는 방법 -

https://oneoneone.kr/content/e9320560
deppSeek-v.3
출처:
출처 :
출처 :
출처 :
출처 :
출처 :
출처 :
출처 :
출처 :
https://www.darkreading.com/vulnerabilities-threats/top-lessons-cisos-owasp-llm-top-10
https://zdnet.co.kr/view/?no=20240523073811
https://zdnet.co.kr/view/?no=20240523073811
https://goatstack.ai/topics/conformer-llms-combining-convolution-and-transformers-iozryo
https://jalammar.github.io/illustrated-transformer/
https://oneoneone.kr/content/e9320560
https://www.linkedin.com/posts/kaicheng-yang-43477213b_have-been-thinking-about-what-tasks-llms-activity-7161062110209146880-pHDn
https://medium.com/mantisnlp/supervised-fine-tuning-customizing-llms-a2c1edbf22c3
https://www.fullydistributed.co/p/language-models-size-matters