•  Meta AI의 Foundation Model인 LLaMA
  • 2024년 봄, 메타(Meta)에서 차기작 ‘라마 3 (8B, 70B)’를 공개
  • 현재 훈련 중인 400B 이상의 모델도 이어 공개될 것이라 예고됐고, 오픈AI의 차세대 LLM 모델인 GPT-5도 올여름 중 출시될 것이라는 소문이 있음
  • 라마 3는 라마 2보다 성능이 크게 향상된 것은 물론, 구글의 제미나이(Gemini)나 앤트로픽의 클로드(Claude) 등 주요 LLMs(Large Language Model, 대형 언어 모델)와 비교해도 비슷한 크기의 모델 중에서 가장 높은 성능을 보여줌

✔️ Llama 3 주요 특징 (개선 사항)

  라마 3 라마 2
학습 데이터셋 크기 15T (15조 개) 토큰

✅7배 이상 증가, 대규모 사전학습 확장
✅라마 3 pre-training 데이터셋 중 5% 이상을 30개 이상의 고품질 비영어권(non-English) 데이터셋으로 구성함, 단 성능이 영어와 같은 수준은 아님
2T (2조 개) 토큰
컨텍스트 길이 8K (8192)

✅2배 증가, 하지만 GPT-4의 128K에 비하면 상당히 작은 수준
4K (4096)
모델 종류 Llama-3-8B, 70B

✅400B⁺ 출시 예정
✅멀티모달(Multimodal) 데이터를 이해하는 능력 및 다양한 언어를 지원하는 모델도 출시될 예정
Llama-2-7B, 13B, 70B
아키텍처 GQA

✅추론 효율성 개선
• 7B, 13B 버전: MHA(Multi-Head Attention)

• 34B, 70B 버전: GQA(Grouped Query Attention)
토크나이저 128K 토큰을 보유한 새로운 토크나이저

✅언어를 더 효율적으로 인코딩해 성능 향상 (향상된 토큰 효율성)
BPE SentencePiece (32K 토큰 보유)
  • 2023년 7월, 메타에서 오픈 소스 LLM ‘라마 2’를 공개
    • 가장 인기 있는 오픈 소스 LLM
    • 상업적으로도 연구용으로도 무료로 사용
    • 라마2는 기존 버전보다 40% 더 많은 2조 개의 토큰으로 학습됨, 컨텍스트 길이도 두 배 증가한 4096
    • 파라미터 수에 따라 라마-2-7B, 13B, 70B 세가지 모델 제공
  • 라마 3 사용법
    1. 허깅페이스에서 라마3 사용하기
    2. 메타 AI 서비스로 라마3 활용하기
    3. Ollama로 내 PC에서 Llama3 실행하기
    4. 클라우드 환경에서 실행하기

 

참고:

https://modulabs.co.kr/blog/llama-3-intro/

 

 

LLM의 단점

LLM(Large Language Model)은 많은 장점에도 불구하고 다음과 같은 단점과 한계점을 가지고 있습니다:

  1. 편향성 문제
    • 학습 데이터에 내재된 편향성을 그대로 반영할 수 있음
    • 성별, 인종, 종교 등에 대한 고정관념이나 차별적 표현을 생성할 위험 존재
  2. 사실 관계 오류 가능성
    • 방대한 데이터를 학습하지만, 항상 정확한 정보를 제공하지는 않음
    • 잘못된 정보나 허위 정보를 진실로 간주하고 전파할 수 있음
  3. 맥락 이해의 한계
    • 문장 단위의 이해는 가능하지만, 장문의 글이나 복잡한 맥락 파악은 어려울 수 있음
    • 세계 지식과 상식 추론 능력이 부족하여 심층적인 이해에 한계 존재
  4. 일관성 문제
    • 동일한 입력에 대해 일관된 답변을 생성하지 않을 수 있음
    • 모델의 확률적 특성상 생성 결과가 매번 달라질 수 있어 신뢰성 저하
  5. 윤리적 문제
    • 악용 가능성이 존재하며, 책임 소재 파악이 어려울 수 있음
    • 모델의 출력 결과에 대한 통제와 검증 체계 마련 필요
    •  

RAG는 LLM의 단점 중 무엇을 개선하는가?

RAG(Retrieval-Augmented Generation)는 LLM의 단점 중 ‘사실 관계 오류 가능성’과 ‘맥락 이해의 한계’를 개선하는 데 초점을 맞춘 방법입니다. RAG는 LLM에 외부 지식 베이스를 연결하여 모델의 생성 능력과 사실 관계 파악 능력을 향상시키는 기술입니다.

구체적으로 RAG는 다음과 같은 방식으로 LLM의 한계를 보완합니다:

  1. 외부 지식 활용
    • 대규모의 구조화된 지식 베이스(예: 위키피디아)를 모델에 연결
    • 주어진 질의에 대한 관련 정보를 지식 베이스에서 검색 및 추출
  2. 증거 기반 생성
    • 검색된 지식 정보를 증거로 활용하여 보다 사실에 기반한 답변 생성
    • 생성된 답변의 출처를 명시함으로써 신뢰성 향상
  3. 맥락 이해력 향상
    • 외부 지식을 통해 질의에 대한 배경 지식과 맥락 정보를 파악
    • 단순한 패턴 매칭이 아닌 추론 능력을 바탕으로 한 답변 생성

RAG는 기존 LLM의 생성 능력과 외부 지식 베이스의 정보를 결합함으로써, 보다 정확하고 사실에 기반한 답변을 제공할 수 있습니다. 또한 모델의 출력 결과에 대한 증거를 제시할 수 있어 설명 가능성과 신뢰성을 높일 수 있습니다.

RAG 기술은 질의응답, 정보 검색, 팩트 체킹 등의 태스크에서 활발히 연구되고 있으며, 구글의 LaMDA, OpenAI의 WebGPT 등 최신 LLM에도 적용되고 있습니다. 다만 RAG 모델의 성능은 연결된 지식 베이스의 품질과 커버리지에 크게 의존하므로, 고품질의 지식 베이스 구축이 중요한 과제로 남아 있습니다.

 

RAG의 기본 개념

RAG(Retrieval-Augmented Generation)는 대규모 언어 모델(LLM)의 한계를 극복하기 위해 제안된 새로운 자연어 처리 기술입니다. LLM은 방대한 양의 텍스트 데이터를 사전 학습하여 강력한 언어 이해 및 생성 능력을 갖추고 있지만, 학습 데이터에 없는 최신 정보나 특정 도메인 지식은 제공하기 어렵다는 단점이 있습니다.

RAG는 이러한 LLM의 한계를 극복하기 위해 ‘지식 검색’과 ‘언어 생성’을 결합한 프레임워크입니다. RAG의 기본 아이디어는 질문에 답하기 위해 필요한 지식을 외부 데이터베이스에서 검색하여 활용하는 것입니다.

RAG의 주요 구성 요소

  1. 질의 인코더(Query Encoder): 사용자의 질문을 이해하기 위한 언어 모델입니다. 주어진 질문을 벡터 형태로 인코딩합니다.
  2. 지식 검색기(Knowledge Retriever): 인코딩된 질문을 바탕으로 외부 지식 베이스에서 관련 정보를 검색합니다. 예를 들어 Wikipedia, 뉴스 기사, 전문 서적 등 방대한 문서 집합에서 질문과 연관된 문단이나 구절을 찾아냅니다.
  3. 지식 증강 생성기(Knowledge-Augmented Generator): 검색된 지식을 활용하여 질문에 대한 답변을 생성하는 언어 모델입니다. 기존의 LLM과 유사하지만, 검색된 지식을 추가 입력으로 받아 보다 정확하고 풍부한 답변을 생성할 수 있습니다.

RAG의 동작 과정 요약

  1. 사용자의 질문이 주어지면 질의 인코더가 이를 이해하기 쉬운 형태로 변환합니다.
  2. 지식 검색기가 인코딩된 질문을 바탕으로 외부 지식 베이스에서 관련 정보를 검색합니다.
  3. 검색된 지식은 지식 증강 생성기의 입력으로 전달됩니다.
  4. 지식 증강 생성기는 검색된 지식을 활용하여 사용자 질문에 대한 답변을 생성합니다.

RAG는 LLM의 강력한 언어 이해 및 생성 능력과 외부 지식 활용을 결합함으로써, 보다 정확하고 풍부한 정보를 제공할 수 있습니다. 특히 최신 정보나 특정 도메인 지식이 필요한 질문에 효과적으로 대응할 수 있다는 장점이 있습니다.

RAG의 등장 배경과 필요성

RAG는 자연어 처리와 인공지능 기술의 발전, 그리고 증가하는 사용자의 요구에 따라 등장하게 되었습니다. RAG의 등장 배경과 필요성을 다음과 같이 정리할 수 있습니다.

  1. 지식 기반 질의응답 시스템의 한계
    • 초기의 질의응답 시스템은 주로 제한된 도메인의 구조화된 데이터를 기반으로 동작했습니다. 이는 시스템이 다룰 수 있는 주제와 질문의 유형이 한정적이라는 문제가 있었습니다.
    • 사용자의 다양한 정보 요구를 충족시키기 위해서는 보다 광범위한 지식을 활용할 수 있는 시스템이 필요하게 되었습니다.
  2. 비정형 텍스트 데이터의 폭발적 증가
    • 인터넷의 발달과 디지털 기기의 보급으로 웹페이지, 뉴스 기사, 소셜 미디어 게시물 등 비정형 텍스트 데이터가 기하급수적으로 증가하고 있습니다.
    • 이러한 대규모 텍스트 데이터는 방대한 지식을 포함하고 있어, 질의응답 시스템의 지식 베이스로 활용할 수 있는 잠재력이 높습니다.
    • 그러나 비정형 데이터를 효과적으로 처리하고 활용하기 위해서는 기존과는 다른 접근 방식이 필요했습니다.
  3. 사전 학습된 언어 모델의 발전
    • BERT, GPT 등 사전 학습된 대규모 언어 모델의 등장은 자연어 처리 분야에 큰 변화를 가져왔습니다.
    • 이러한 언어 모델은 방대한 텍스트 데이터로부터 언어의 구조와 의미를 학습하여, 다양한 언어 이해 및 생성 태스크에서 뛰어난 성능을 보여주었습니다.
    • 사전 학습된 언어 모델을 질의응답 시스템에 활용함으로써, 보다 자연스럽고 문맥을 고려한 답변 생성이 가능해졌습니다.
  4. 실시간 정보 제공에 대한 사용자의 요구 증대
    • 인터넷과 모바일 기기의 발달로 사용자들은 언제 어디서나 필요한 정보를 즉시 얻고자 하는 요구가 커지고 있습니다.
    • 단순히 정보를 검색하는 것을 넘어, 대화형 인터페이스를 통해 원하는 정보를 직관적으로 얻고자 하는 사용자가 늘어났습니다.
    • 이에 따라 사용자의 질문을 이해하고 적절한 답변을 실시간으로 제공할 수 있는 지능형 질의응답 시스템의 필요성이 대두되었습니다.
  5. 지식 검색과 답변 생성의 통합 필요성
    • 기존의 질의응답 시스템은 지식 검색과 답변 생성을 별도의 단계로 처리하는 경우가 많았습니다. 이로 인해 검색된 정보와 생성된 답변 사이의 정합성이 떨어지는 문제가 발생했습니다.
    • 지식 검색과 답변 생성을 통합적으로 수행할 수 있는 프레임워크의 필요성이 제기되었고, 이는 RAG 아키텍처의 등장으로 이어졌습니다.

이러한 배경과 필요성 속에서 RAG는 대규모 비정형 텍스트 데이터를 활용하고, 사전 학습된 언어 모델과 통합 프레임워크를 통해 보다 진보된 형태의 질의응답 시스템을 구현하고자 합니다. RAG는 사용자의 다양한 정보 요구를 만족시키고, 인간과 자연스럽게 상호작용할 수 있는 지능형 대화 시스템의 발전에 기여할 것으로 기대됩니다.

RAG 기술을 적용한 상용 서비스 사례

RAG 기술을 적용한 상용 서비스는 아직 많지 않지만, 몇몇 대표적인 사례들이 있습니다.

  1. Microsoft Bing Search
    • 2023년 2월, Microsoft는 Bing 검색 엔진에 RAG 기술을 적용한 대화형 AI 기능을 추가했습니다.
    • 사용자의 검색 질의에 대해 웹 페이지의 정보를 활용하여 자연어로 응답을 생성합니다.
    • 제공된 응답의 근거가 되는 웹 페이지 링크를 함께 제시합니다.
  2. Anthropic’s Constitutional AI (CAI)
    • Anthropic사는 RAG 기술을 활용한 대화형 AI 모델인 CAI를 개발했습니다.
    • CAI는 대화 과정에서 외부 지식을 활용하여 사용자의 질문에 답변을 생성합니다.
    • 생성된 응답의 근거가 되는 출처를 명시하여 신뢰성을 높였습니다.
  3. Perplexity AI
    • Perplexity AI는 RAG 기반의 질의응답 서비스를 제공하는 스타트업입니다.
    • 사용자의 질문에 대해 웹 검색을 통해 관련 정보를 수집하고, 이를 바탕으로 응답을 생성합니다.
    • 제공된 응답의 출처와 검색 과정을 사용자에게 투명하게 공개합니다.
  4. OpenAI’s WebGPT (in development)
    • OpenAI는 GPT 모델에 RAG 기술을 적용한 WebGPT를 개발 중입니다.
    • WebGPT는 웹 검색을 통해 획득한 지식을 활용하여 사용자의 질의에 대한 응답을 생성할 것으로 예상됩니다.
    • 아직 공개된 서비스는 아니지만, 향후 RAG 기술의 발전 방향을 보여주는 사례로 주목받고 있습니다.

위의 사례들은 RAG 기술의 초기 적용 단계라고 볼 수 있습니다. RAG의 잠재력이 입증됨에 따라 앞으로 더 많은 분야에서 RAG 기반의 서비스들이 등장할 것으로 예상됩니다. 특히 검색 엔진, 가상 어시스턴트, 고객 서비스 등의 분야에서 RAG 기술이 활발히 도입될 것으로 보입니다.

다만 RAG 기술의 상용화를 위해서는 지식 베이스의 품질 관리, 프라이버시 보호, 책임 소재 등의 이슈들이 선결되어야 할 것입니다. 기술적 진보와 함께 사회적, 윤리적 문제에 대한 고민이 병행되어야 RAG가 실생활에 안전하게 적용될 수 있을 것입니다.

 

 

참고: 

https://modulabs.co.kr/blog/retrieval-augmented-generation/

 

RAG(검색 증강 생성)란? - LLM 단점을 보완하는 기술

LLM(Large Language Model)의 많은 장점에도 불구하고 단점을 보완하기 위한 RAG(검색 증강 생성)이 많은 관심을 받고 있습니다. RAG의 기본 개념, 등장 배경, 원리, 적용 사례 등을 알아보겠습니다.

modulabs.co.kr

 

Video Analysis 개요

Computer Vision(CV)의 핵심은 이미지를 이해하는 것입니다.

현재, "이미지를 이해"하는 것에서 "비디오를 이해"하는 것으로 점점 발전하고 있습니다.

 

비디오(영상) 분석은 

   1. 비디오란 - "일련의 이미지들"이라고 할 수 있으며, 단일 이미지보다 더 많은 상황정보를 제공합니다.

   2. 사물을 트랙킹(Object Tracking)을 통해서, 다음 움직임(Next Move)이 무엇인지 예측할 수 있습니다.

       - 예를 들어, 사람의 움직임을 예측하는 Human Pose 분야도 포함됩니다.

 

비디오(영상) 분석의 핵심 요소 :

   1. Object Detection 

   2. Object Tracking

   3. Action Classification

이라고 할 수 있습니다.

 

Object Detection은 이미지 분석에서도 충분히 다루므로,

Object Tracking부터 설명드리고자 합니다.

 

① Object Tracking

비디오(영상) 분석의 핵심 요소 중 Object Tracking에 대해서 설명하고자 합니다.

 

이미지와 비디오와 차이는 'Motion'이며, 이를 위한 Tracking이 필요합니다.

Object Tracking의 카테고리 :

   1. Video Stream : Live Image Feed - 실시간 이미지 스트리밍

      - 현재 이미지와 이전 이미지를 고려

   2. Video Sequence : Fixed-Length Video - Full 영상

      - 첫 이미지부터 마지막 이미지까지, 전체를 다룸

 

1) Optical Flow(광학 흐름)

   - Optical Flow란 : 영상에서 모션(Motion) 벡터를 찾는 방법으로써, 두 프레임(Frame) 사이의 Pixel Shift를 계산

                          en.wikipedia.org/wiki/Optical_flow

 

   - Optical Flow의 출력 값(Output) : Frame1  Frame2 사이의 흐름(Movement)에 대한 벡터 값(Vector)

Optical Flow 예시

 

Optical Flow(광학 흐름) 대표 딥러닝 논문

 

    FlowNet : 6-depth(2 RGB)를 Input을 활용하여, Optical Flow를 색으로 표시

FlowNet 구조

네트워크의 입력은 두 개의 RGB 이미지 세트입니다. 따라서 깊이는 6입니다.
광학 흐름은 종종 색상으로 표현됩니다.

 

2) Visual Object Tracking(VOT)

Optical Flow가 Pixel단위의 흐름을 추적한다면, Visual Object Tracking(VOT)는 객체(Object) 단위를 트랙킹 한다.

 

Visual Object Tracking 특징 :

   1. Object Detection은 필요하지 않음 - 무엇을 Tracking 하는지 알 필요 없음

   2. 초기 경계 박스(Starter Bounding Box)가 주어짐

   3. 주어진 객체를 추적함

       - 프레임 0과 1의 유사성을 계산

       - 경계박스 내 물체 확인 및 다음 프레임에서 검색

       - 경계 박스를 이동하여, Object를 추적

 

   ※ ※ 번외 : 딥러닝을 사용하지 않는 VOT 

  • 색상 같은 기능을 사용해 개체를 추적할 수도 있음(CV만 사용 가능)
  1. Bounding box를 활용하여, 초기 추적할 object를 입력 받음
  2. 객체의 색상 히스토그램 계산
  3. (객체 근처) 배경색 계산
  4. 전체 이미지에서 객체의 색을 제거



Visual Object Tracking 대표 딥러닝 논문

 

    MDNet(Multi-Domain Net) : Object와 Background를 구별하는 딥러닝을 학습

       - Domain-specific Layer가 존재

       - VGG 모델처럼 보이지만, 도메인별 레이어(객체 대 배경 분류자)가 있음

MDNet 구조

 

    GOTURN(Generic Object Tracking Using Regression Networks) 

       : 두 CNN 모델(Previous Frame 및 Currenet Frame 용)을 활용하여, 검색할 영역(Region)을 특정시킴

       - 100 FPS에서 작동 가능하며, 좋은 성능을 보임

GOTURN 구조

 

3) Multiple Object Tracking(MOT)

 

Multiple Object Tracking 특징 :

   1. 여러 객체를 트랙킹함

   2. VOT보다 더 Long-Term 한 영상을 다룸

 

Multiple Object Tracking 종류 :

   1. Detection-Based Tracking - (YOLO - Deep SORT)

   2. Detection-Free Tracking

 

Detection-Based Tracking세부 Task :

   1. Object Dectection

   2. Object Association

       - Time t의 탐지(Detection) 결과와 Time t+1 탐지 간의 연계

       - Detection 성능에 상당히 의존적임

       - Good Tracker는 약간의 Frame은 Detection 없이 처리해야 함

    * 관련된 내용은 Deep SORT를 다루면서

      nanonets.com/blog/object-tracking-deepsort/

      haandol.github.io/2020/02/27/deep-sort-with-mxnet-yolo3.html

 

② Action Classification

비디오(영상) 분석의 핵심 요소 중 마지막 Action Classification에 대해서 설명하고자 합니다.

 

예를 들어, Action Classification은 매장 내 사람들의 행동을 분석할 때 사용한다.

 

Action Classification의 특징 :

   1. Bounding Box내에서의 Action을 알기 위해선,Object Detection과 Tracking이 우선 되어야 함

      - 주어진 상황이나 장면을 우전적으로 이해해야 되기 때문에

   2. 가장 좋은 카메라 각도(앵글)를 선택

   3. Action 분류( 쉬운 : 걷기, 달리기 ~ 어려운 : 샌드위치 만들기 - 여러 작업(빵 짜르기, 토마토 씻기 등)이 복합됨)

 

Action Classification 대표 딥러닝 논문

   ○ Optical Flow 활용 

Optical Flow를 활용한, Action Classification

       - Optical Flow를 Input으로 받음

       - Action Classifier(Softmax) Layer를 추가

 

   ○ End-to-End 학습 방법

 

    - Action Classification을 위한, End-to-End 학습 예시 : 

Two-scale Model

       - 이미지와 다르게, 다중 Frame을 처리해야 함 → Space-time Volume이라고 함

       - Spatial Stream : Single Image에 적용

       - Temporal Stream : Optical Flow 이미지들을 입력 받음

 

  ※ 번외 : 그 이외에 Action Classification - Pose Estimation

   1. Detecting Keypoint - Keypoint란 왼쪽 그림의 점들

   2. Tracking Detecting Keypoint 

   3. Keypoint의 움직임을 분석 

 


마치며

       - 이미지와 영상분석의 차이에 대해서 다루었습니다.

       - 영상분석의 주요 개념(Tracking, Action classification)에 대해서 다루었습니다.

       - 다음번에는 대표적인 Tracking방법인, Deep SORT를 다루어볼 예정입니다.

 

 

 

참고: https://kmhana.tistory.com/20

 

영상 분석(Video Analysis) 이란? - 기본

*크롬으로 보시는 걸 추천드립니다* 이미지 분석(Image Analysis)을 연구하거나, 산업에 적용하다 보면 영상 분석(Video Analysis)에 대해서 종종 접하게 됩니다. 영상 분석을 접할 기회가 적은 편이고, '

kmhana.tistory.com

https://fritz.ai/computer-vision-from-image-to-video-analysis/

 

Computer Vision and Deep Learning: From Image to Video Analysis - Fritz ai

Computer vision, at its core, is about understanding images. The field has seen rapid growth over the last few years, especially due to deep learning and the ability to detect obstacles, segment images, or extract relevant context from a given… Continue

fritz.ai

 

LLM이란?

  • Large Language Model의 약자로 대규모 언어 모델을 뜻함
  • 인간과 유사한 텍스트를 처리, 이해 및 생성하도록 설계된 고급 인공 지능(AI) 시스템
  • 딥러닝 기술 기반이며 웹 사이트, 책, 기사와 같은 다양한 소스에서 수십억 개의 단어를 포함하는 대규모 데이터 세트에서 훈련됨
  • 언어, 문법, 문맥 및 일반 지식의 뉘앙스를 파악할 수 있음
    • 응답 질문 
    • 텍스트 요약
    • 언어 번역
    • 콘텐츠 생성
    • 사용자와의 양방향 대화(챗봇)

 

LLM 데이터 코퍼스 구축의 필수 요소

  • 데이터 코퍼스: 말뭉치/ 자연어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합

    1. 수량보다 데이터 품질 우선시

       -  광범위하지만 체계적이지 않은 데이터에 대해 훈련된 모델은 부정확한 결과를 낳을 수 있음.

       - 더 작고 세심하게 선별된 데이터 세트는 종종 우수한 성능을 보임.

     2. 적절한 데이터 소스 선택

          -  대화 생성 모델에서 대화 및 인터뷰 소스 활용하기

          - 코드 생성 초점 모델은 잘 문서화된 코드 저장소의 이점 활용 등 

     3. 합성 데이터 생성 사용

          - 합성 데이터로 데이텟을 강화하면, 훈련 데이터셋의 다양성을 확대하여 모델의 탄력성을 향상시키고 편향을 줄일 수 있음

     4. 자동화된 데이터 수집 구현

 

2024년에 주목해야할 LLM 오픈소스 모델

 

1. Llama 2

  • Meta AI에서 개발한 오픈소스 LLM
  • 가장 인기있는 오픈소스이고 2023년 7월 18일에 상용됨
  • 7B에서 70B까지 네 가지 크기를 제공
  • llama 1보다 더 큰 2조 개의 토큰으로 구성되어 있음
  • 표준 트랜스포머 아키텍처 활용 -> RMSNorm(Root Mean Square layer normalization), RoPE(Rotary Positional Embedding)과 같은 새로운 기능 적용
  • Supervised fine-tuning(미세조정)으로 시작하여 RLHF(휴먼 피드백을 통한 강화학습)를 통해 개선됨
  • tokenizer: Byte Pair Encoding(BPE) 알고리즘과 SentencePiece 사용

인간 피드백을 통한 강화학습(RLHF)과 보상 모델링을 통해 양방향 대화에 최적화한 LLaMA 21-Chat(출처: Meta AI)

 

2. Mistral

  • Mistral AI가 출시한 모델로 맞춤형 학습과 튜닝 및 데이터 처리 방법을 기반으로 생성됨
  • Apache 2.0 라이선스로 제공되는 오픈 소스 모델
  • 실제 애플리케이션에 적용할 수 있게 설계되어 효율적이며 높은 성능 제공
  • 수학, 코드 생성 및 추론을 포함한 다양한 벤치마크에서 뛰어난 성능 발휘
  • Mistral-7B: tiny 모델로 복잡한 계산이 없는 대용량 batch 처리 작업에 적합, 애플리케이션에 가장 비용 효율적

다양한 벤치마크에서 Mistral 7B와 Llama 모델의 성능 비교

3. Solar

  • 업스테이지에서 출시한 소형 언어모델
  • 107억 개의 매게변수로 이루어짐
  • 필수적인 NLP(자연어 처리) 작업에서 더 나은 성능을 발휘하면서도 효율성을 유지하는 최신이자 오픈소스 LLM
  • 2023년 12월 세계 최댛 머신러닝 플랫폼인 허깅페이스가 운영하는 '오픈 LLM 리더보드'에서 1위 달성
  • sLLM의 기준이라고 할 수 있는 300억 매개변수(30B) 이하 사이즈로 글로벌 최고 성능 모델에 오름
  • 자체적으로 구축한 데이터 적용 및 자체 스케일링 기법(Depth Up-Scaling) 활용
    • 사전 학습 및 파인튜닝 단계에서 리더보드 벤치마킹 데이터셋을 활용하지 않음 자체적으로 구축한 데이터 적용

4. Yi

  • 8개월만에 10억 달러 이상의 가치를 인정받으며 유니콘 기업으로 성장한 중국 스타트업 01.AI가 개발
  • 다국어 모델을 목표로 모델 학습에 고품질의 3T 다국어 코퍼스 활용
  • 이해력, 상식 추론, 독해력 등에서 주목할만한 성능을 보임
  • LLaMA와 동일한 모델 아키텍처 활용
  • 6B 및 34B 크기의 모델 제공/ 추론 시간 동안 32K 확장 가능
    • 6B: 개인용 및 학술용으로 적합
    • 34B: 상업용 및 개인용, 학술용으로 적합

 

5. Falcon

  • 아랍에미리트(UAE)의 기술혁신연구소에서 출시한 생성형 대규모 언어 모델
  • 180B, 40B, 7.5B, 1.3B 파라미터의 AI 모델 제공
    • 40B:
      • 연구자와 상업 사용자 모두에게 로열티 없이 제공되고 있음
      • 11개의 언어로 작동 가능/ 특정 요구사항에 맞게 파인튜닝 가능
      • GPT-3 보다 적은 훈련 컴퓨팅리소스를 사용하며 품질 높은 훈련 데이터에 초점을 맞춤
    • 180B:
      • 1800억 개의 파라미터 보유/ 3.5조 개의 토큰을 훈련하여 탁월한 성능을 발휘

LLM의 장점

  1. 광범위한 지식 활용
    • - 방대한 양의 텍스트 데이터를 학습하여 다양한 분야의 지식을 습득
    • - 학습한 지식을 바탕으로 사용자의 질문에 폭넓고 심도 있는 답변 가능
  2. 뛰어난 언어 이해 및 생성 능력
    • - 단어 간의 관계와 문맥을 고려하여 자연스러운 언어 이해 가능
    • - 문법적으로 정확하고 의미 있는 문장 생성 능력
  3. 다양한 태스크 수행 가능
    • - 텍스트 분류, 질의응답, 요약, 번역, 문장 생성 등 다양한 NLP 태스크 처리 가능
    • - 하나의 모델로 여러 태스크를 수행할 수 있어 범용성이 높음
  4. 사용자 친화적인 인터페이스
    • - 자연어로 된 사용자 입력을 이해하고 응답할 수 있어 접근성이 좋음
    • - 챗봇, 가상 어시스턴트 등으로 활용되어 사용자 경험 향상
  5. 다양한 분야에서의 활용
    • - 고객 서비스, 콘텐츠 제작, 교육, 의료 등 다양한 산업 분야에서 활용 가능
    • - 사람과 기계 간의 상호작용을 향상시키고 업무 효율성 증대에 기여

LLM의 단점

  1. 편향성 문제
    • 학습 데이터에 내재된 편향성을 그대로 반영할 수 있음
    • 성별, 인종, 종교 등에 대한 고정관념이나 차별적 표현을 생성할 위험 존재
  2. 사실 관계 오류 가능성
    • 방대한 데이터를 학습하지만, 항상 정확한 정보를 제공하지는 않음
    • 잘못된 정보나 허위 정보를 진실로 간주하고 전파할 수 있음
  3. 맥락 이해의 한계
    • 문장 단위의 이해는 가능하지만, 장문의 글이나 복잡한 맥락 파악은 어려울 수 있음
    • 세계 지식과 상식 추론 능력이 부족하여 심층적인 이해에 한계 존재
  4. 일관성 문제
    • 동일한 입력에 대해 일관된 답변을 생성하지 않을 수 있음
    • 모델의 확률적 특성상 생성 결과가 매번 달라질 수 있어 신뢰성 저하
  5. 윤리적 문제
    • 악용 가능성이 존재하며, 책임 소재 파악이 어려울 수 있음
    • 모델의 출력 결과에 대한 통제와 검증 체계 마련 필요

LLM의 단점 중 ‘사실 관계 오류 가능성’과 ‘맥락 이해의 한계’를 개선하는 데 초점을 맞춘 것이 바로 RAG(Retrieval-Augmented Generation)입니다. RAG를 자세히 알고 싶다면 아래 내용을 참고해주세요:)

 

https://aristudy.tistory.com/126

 

RAG(Retrieval-Augmented Generation)란?

LLM의 단점LLM(Large Language Model)은 많은 장점에도 불구하고 다음과 같은 단점과 한계점을 가지고 있습니다:편향성 문제학습 데이터에 내재된 편향성을 그대로 반영할 수 있음성별, 인종, 종교 등에

aristudy.tistory.com

 

참고:

오픈소스 LLM Top 5 (2024) — Upstage

LLM(Large Language Models)이란 무엇입니까? - 주요 사용 사례, 데이터 세트, 미래 (shaip.com)

1. 텍스트 데이터의 구성

  • 말뭉치 (corpus, 코퍼스) = 일반적인 원시텍스트와 이 텍스트에 연관된 메타데이터를 포함한 것
  • 원시텍스트 = 문자(바이트)시퀀스이지만 일반적으로 문자를 토큰이라는 연속된 단위로 묶여 있음 - ASCII, UTF-8 형태
  • 토큰 = 공백문자나 구두점으로 구분되는 단어 혹은 숫자
  • 메타데이터 = 식별자, 레이블, 타임스템프 등 텍스트와 연관된 어떤 부가정보
  • 샘플(Sample) or 데이터포인트 = 메타데이터가 붙어있는 텍스트 
  • 말뭉치 = 샘플들의 모음 = 데이터셋

2. 토큰화

  • 어진 말뭉치(코퍼스)를 토큰으로 나누는 과정을 토큰화 라고 함
"Maria frapis la verda sorcistino"
  •  6개의 토큰 존재(공백문자와 구두점으로 구분)
  •  참고로 토큰은 문장, 줄바꿈, 공백 등 다양한 사용자 기준에 따라 나눌 수 있음
  •  예시의 터키어는 한국어와 같이 교착어라고 부름
  •  교착어: 실질적인 단어 또는 어간에 문법적인 요소가 차례대로 결합함으로써 문장 속에서 문법적인 역할이나 관계의 차이를 나타내는 언어

 3. 타입

  • 타입 = 말뭉치에 등장하는 고유한 토큰
  • 말뭉치에 있는 모든 타입의 집함 = 어휘사전 or 어휘
  • 단어 = 내용어 / 불용어로 구분
    • 불용어 = 관사와 전치사 같은 대부분 내용어를 보충하는 문법적인 용도로 사용

4. n-gram 

참고: [NLP] 텍스트 데이터의 기초 / 말뭉치, 토큰화, n-gram (tistory.com)

 

 

 

 

 

생성형 AI란?

  • 학습된 데이터를 기반으로 고품질 텍스트, 이미지 및 기타 콘텐츠를 생성할 수 있는 인공지능

생성형 AI의 구성 요소

  • 파운데이션 모델: 다양한 LLM 모델을 더 넓은 개념으로 확장할 수 있도록 하는 것 / 완성된 모델 중 하나가 생성형 AI 모델임

 

퍼널 분석(Funnel Analysis)

  • 고객들이 우리가 설계한 유저 경험 루트를 따라 잘 도착하고 있는지 확인해보기 위해 최초 유입부터 최종 목적지까지 단계를 나누어서 살펴보는 분석 기법
  • 앱 스토어 페이지 뷰가 있으면 설치하고 실행하고 가입하고 가입 완료하기 까지의 과정을 잘 따라오고 있는지 분석하는 것. 
  • 각 단계를 넘어가는 것을 전환이라고 부르고 그 비율을 전환율이라고 한다! 
  • 퍼널의 단계를 줄이는게 단계별 이탈하는 유저를 줄이고 전환율을 올릴 수 있음. -> 카카오 계정으로 시작하기 등 
  • 불필요한 단계가 있진 않은지, 전환율이 떨어지는 구간이 있지 않은지, 유입량 자체가 너무 적지 않은지 확인해봐야함

 

리텐션 분석(Retention Analysis)

  • 얼마나 많은 유저가 제품으로 다시 돌아오는지 측정하는 것
  • 0일차에 처음으로 제품을 사용한 유저 중 N일 후 재방문하여 활성화된 유저의 비율이 N일차의 리텐션이 된다. (0일차: 일반적으로 신규 유저가 제품을 처음으로 사용한 날을 의미)
  •  
    리텐션 커브 예시
     
  • 리텐션은 PMF(Product Market Fit) 달성 여부를 판단하는 기준이다.
  • 시간이 지남에 따라 리텐션 커브가 0을 향해 감소하는 직선의 형태라면 근본적으로 PMF 에 문제가 있는 것이다.
  • 반면 초기에 리텐션 커브는 급감했지만 위의 그래프처럼 25% 선에서 안정화되고 있다면 PMF 를 달성했다고 볼 수 있다
  • 리텐션이 중요한 이유
    • 아무리 마케팅을 통해 신규 유저 유입을 늘려봤자 리텐션이 낮으면 아무 소용이 없음.
    • 평균적으로 80%의 신규 유저는 앱 다운로드 3일 후부터 더 이상 앱을 사용하지 않는다고 함.

 

코호트 분석(Cohort Analysis)

  • 특정 기간 동안 공통된 특성이나 경험을 갖는 사용자 집단
  • 첫방문 ,캠페인 유입등 특정 조건에 해당되는 사용자들을 그룹화하고 시간 흐름에 따른 행동 패턴을 추적
  • 코호트가 중요한 이유
    • 고객 유지율(Retention Rate) 분석: 고객의 이탈 시점을 분석하는데 있어 탁월한 분석 지표임
    • 특정 고객 집단의 인사이트 발견: 방문/ 구매/ 유입/ 광고 등의 세그먼트 조건을 조합해 특정 고객군을 선정하고 분석 할 수 있음
  • 코호트 분석을 통해 얻을 수 있는 인사이트
    • 고객 유지율, 고객 이탈율
    • PC웹/ 모바일 웹/ 하이브리드 앱 사용자 유지율
    • 시간 경과에 따른 마케팅 캠페인 효과 분석
    • 신규 회원가입자의 유지율
    • 유입 출처에 따른 고객 가치

 

 

참고: https://problem-solving.tistory.com/24

  1. 평균 제곱 오차 (Mean Squared Error, MSE):
    • 의미: MSE는 예측값과 실제 값 간의 차이(오차)의 제곱을 모든 샘플에 대해 평균화한 값입니다. 이 값이 작을수록 모델의 예측이 정확합니다. 
    • 수식: MSE = (1/n) * Σ(yi - ŷi)² (i는 샘플 인덱스, n은 샘플 수, yi는 실제 값, ŷi는 예측 값)
  2. 평균 절대 오차 (Mean Absolute Error, MAE):
    • 의미: MAE는 예측값과 실제 값 간의 절대값 차이를 모든 샘플에 대해 평균화한 값입니다. MSE와 달리 제곱하지 않으므로 이상치(outlier)에 덜 민감합니다.
    • 수식: MAE = (1/n) * Σ|yi - ŷi| (i는 샘플 인덱스, n은 샘플 수, yi는 실제 값, ŷi는 예측 값)
  3. R-squared (결정 계수, R²):
    • 의미: R-squared는 회귀 모델의 설명력을 나타내며, 예측값이 실제 값의 분산을 얼마나 잘 설명하는지를 나타냅니다. 1에 가까울수록 모델이 높은 설명력을 가집니다.
    • 수식: R² = 1 - (Σ(yi - ŷi)² / Σ(yi - ȳ)²) (i는 샘플 인덱스, yi는 실제 값, ŷi는 예측 값, ȳ는 실제 값의 평균)
  4. 평균 제곱근 오차 (Root Mean Squared Error, RMSE):
    • 의미: RMSE는 MSE의 제곱근 값으로, 예측 오차의 평균적인 크기를 나타냅니다. 미리 예측 오차의 단위와 일치시킬 수 있어 해석하기 쉽습니다.( sklearn에서 제공되지 않음)
    • 수식: RMSE = √MSE
  1. 정확도 (Accuracy):
    • 의미: 정확도는 모델이 올바르게 예측한 샘플의 비율로, 전체 예측 중 올바른 예측의 비율을 나타냅니다.
    • 사용 사례: 이진 분류(두 개의 클래스)나 다중 클래스 분류(여러 개의 클래스)에서 모델의 전반적인 성능을 평가하는 데 사용됩니다.
  2. 정밀도 (Precision):
    • 의미: 정밀도는 모델이 True로 예측한 샘플 중 실제로 True인 샘플의 비율을 나타냅니다. False Positive를 줄이는 데 중점을 둡니다.
    • 사용 사례: 거짓 긍정을 최소화해야 할 때, 예를 들어 스팸 메일 필터링에서 스팸 메일로 오진 않도록 하는 경우.
  3. 재현율 (Recall):
    • 의미: 재현율은 실제 True인 샘플 중 모델이 True로 예측한 샘플의 비율을 나타냅니다. False Negative를 줄이는 데 중점을 둡니다.
    • 사용 사례: 실제 True 샘플을 놓치지 않고 감지해야 할 때, 예를 들어 의료 진단에서 질병을 빠뜨리지 않도록 하는 경우.
  4. F1 점수 (F1 Score):
    • 의미: F1 점수는 정밀도와 재현율의 조화 평균입니다. 모델의 정확성을 평가하는 데 사용되며, 정밀도와 재현율 사이의 균형을 나타냅니다.
    • 사용 사례: 정밀도와 재현율이 중요한 균형을 가져야 하는 경우, 예를 들어 검색 엔진의 검색 결과 정확성을 향상시키는 경우.
  5. ROC 곡선 (Receiver Operating Characteristic Curve):
    • 의미: ROC 곡선은 이진 분류 모델의 성능을 시각화하는 데 사용됩니다. FPR(거짓 양성 비율) 대비 TPR(참 양성 비율)을 나타내며, 곡선 아래 영역(Area Under the Curve, AUC)이 넓을수록 모델의 성능이 우수합니다.
    • 사용 사례: 이진 분류 모델의 성능을 시각적으로 비교하고자 할 때.

목적에 따라 다르게 사용하는 지표

  • 문제 유형과 목표에 따라 다른 평가 지표가 필요함
  • 도메인 지식에 따라서도 달라질 수 있음.
  • 금융 분야: 리스크 최소화가 중요하므로 정확도 보다는 정밀도나 재현율을 높이는 것이 중요
  • 데이터 불균형: 클래스 불균형이 있는 경우 정확도만으로 모델의 성능을 판단하기 어려움. 정밀도, 재현율, F1 score 등을 고려해야함.

'Data Scientist > Machine Learning' 카테고리의 다른 글

이상치 탐지 및 시각화 (코드 예제 포함)  (0) 2023.07.24
[ML] 벡터의 개념  (0) 2022.07.04
[ML] 경사하강법  (0) 2022.07.04
[ML] XGBoost  (0) 2022.03.31
[ML] 앙상블 기법  (0) 2022.02.09

1. 이상 탐지(Anomaly detection)

이상 탐지(anomaly detection)란 자료에서 다른 패턴을 보이는 자료를 찾는 것을 말합니다. 이런 데이터를 이상값(anomaly)라 하며 이상 탐지는 사기 탐지, 침입 탐지, 안전 관리를 포함한 다양한 분야에 널리 활용된다.

2. 이상의 종류

2.1. Point anomaly

데이터셋 내에 하나의 데이터가 나머지에 대해 이상하다고 판단되는 경우, 흔히 아웃라이어(Outlier)라고 부른다.

2.2. Collective anomaly

데이터셋 내에 여러 데이터 포인트가 이상하다고 판단되는 경우

2.3. Contextual anomaly

전체적인 데이터셋의 맥락을 고려했을때 이상하다고 판단되는 경우

3. Isolation forest

Isolation forest는 기본적으로 데이터셋을 의사결정나무(Decision Tree) 형태로 표현해 정상값을 분리하기 위해서는 의사결정나무를 깊숙하게 타고 내려가야 하고, 반대로 이상값은 의사결정나무 상단부에서 분리할 수 있다는 것을 이용한다.

이 특성을 사용해 의사결정나무를 몇 회 타고 내려가야 분리되는가를 기준으로 정상과 이상을 분리한다.

Isolation forest의 장점

  • 군집기반 이상탐지 알고리즘에 비해 계산량이 매우 적다
  • 강건한(Robust)한 모델을 만들 수 있다

# Isolation forest 구현 코드 예제

from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest

df3 = df3.set_index('regdate-display') # 시간 컬럼 넣기
df3 = df3[['msg.base_state.curr-temperature']]  # 데이터 프레임의 원하는 컬럼 넣기

outliers_fraction = float(.01)
scaler = StandardScaler()
np_scaled = scaler.fit_transform(df3.values.reshape(-1, 1))
cast_scaled_df = pd.DataFrame(np_scaled)
model = IsolationForest(contamination=outliers_fraction)
model.fit(cast_scaled_df)
df3['anomaly'] = model.predict(cast_scaled_df)

위 예제는 한 컬럼의 이상치 탐지를 위한 코드이다. 먼저 standartscaler로 표준화 시킨 후 Isolation forest를 진행했다. 

데이터셋의 값이 들쑥날쑥하거나, 매우 큰 경우에는 cost의 값이 발산하여 정상적인 학습이 이루어지지 않기 때문이다!

# 이상치 탐지 시각화 코드

#시각화
fig, ax = plt.subplots(figsize=(10,6))
a = df3.loc[df3['anomaly'] == -1, ['msg.base_state.curr-temperature']] #anomaly

bbox = dict( ## 텍스트 박스 스타일 지정
    boxstyle='square',
    facecolor='white', 
)

line_plot = ax.plot(df3.index, df3['msg.base_state.curr-temperature'], color='black', label = 'Normal')
ax.scatter(a.index,a['msg.base_state.curr-temperature'], color='red', label = 'Anomaly')
line_plot = line_plot[0] # 선 그래프 요소

y = list(a['msg.base_state.curr-temperature'])
new_coord = []
for i in range(len(y)):
    for coord in list(line_plot.get_xydata()):
        if coord[1] == y[i]:
            new_coord.append([coord[0],y[i]])
            
for cor in new_coord:
    ax.text(cor[0],cor[1]+2,f'{int(cor[1])}',fontsize=12, ha='center', label = 'Anomaly', bbox=bbox) 

ax.set_xlabel('time', fontsize = 14)
ax.set_ylabel('msg.base_state.curr-temperature', fontsize = 14)
ax.set_title("이상치 탐지 시각화", fontdict={'fontsize': 14} )
plt.show()
fig.savefig(output_path + 'CART_anomaly_detect.png')

결과 이미지는 아래와 같이 그래프에서 이상치가 어디에 있고 값은 어떤지 상위에 박스로 표시할 수 있도록 했다. 

만약에 위 그래프를 그릴 때 한글이 깨진다면 아래 코드를 실행시키면 된다.

# 한글 폰트 깨짐 방지 코드
import matplotlib as mpl
import matplotlib.font_manager as fm

# print(mpl.matplotlib_fname()) # 디렉토리 확인하기

normal_font = fm.FontEntry(fname=os.path.join('{디렉토리 확인한 후 경로 넣기}', 'NanumGothic.otf'), name='NanumGothic')
fm.fontManager.ttflist.append(normal_font)
mpl.rcParams['font.family'] = normal_font.name


bold_font = fm.FontEntry(fname=os.path.join('/home/srjung/.local/lib/python3.10/site-packages/matplotlib/mpl-data/matplotlibrc', 'NanumBoldGothic.otf'), name='NanumBoldGothic')
fm.fontManager.ttflist.append(bold_font)

plt.rcParams['axes.unicode_minus'] = False

 

참고: Isolation Forest (for anomaly detection) (tistory.com)

'Data Scientist > Machine Learning' 카테고리의 다른 글

모델 성능 평가 지표와 사용 목적  (0) 2023.09.19
[ML] 벡터의 개념  (0) 2022.07.04
[ML] 경사하강법  (0) 2022.07.04
[ML] XGBoost  (0) 2022.03.31
[ML] 앙상블 기법  (0) 2022.02.09

RNN이란?

  •  recurrent neural networks의 약자, 한국어로 순환 신경망
  • 고정 길이 입력이 아닌 임의 길이를 가진 시퀀스를 다룰 수 있음 
    • STT, 자동 번역과 같은 NLP 작업에도 유용

RNN 구조 

  •  각 타임 스텝 t(또는 프레임)마다 \(x_{(t)}\)와 이전 타임 스텝의 출력인 \(y_{(t-1)}\)을 입력받음.
  • 첫번째 타임 스텝은 이전 출력이 없으므로 0으로 설정
  • 역전파 이용 (BPTT) -> 현재 메모리 셀이 예측한 값이 실제값과 차이(=error)가 나면 이는 이전의 메모리 셀에서 잘못한 것이라고 생각
  • 가중치가 각 메모리 셀마다 다른 값을 가지는 것이 아니라 정방향 패스 동안 모든 타임 스텝이 동일한 가중치 행렬을 공유

예제 코드 참고: RNN 개념 잡고 간단 예제 코드 돌려보기 (2) (tistory.com)

+ Recent posts