ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5월 4주차
    Study/GeekNews 2024. 5. 23. 17:39

    필요한 GeekNews를 읽고 내가 필요한 내용들만 블로그에 다시 정리

    참고자료 : GeekNews

    ChatGPT, 데이터 분석 기능 개선

    링크 : https://openai.com/index/improvements-to-data-analysis-in-chatgpt/

     

     

    • 데이터 파일을 업로드하면 ChatGPT가 사용자를 대신해 Python 코드를 작성하고 실행하여 데이터를 분석
      • 대규모 데이터 세트 병합 및 정리, 차트 생성, 인사이트 발견과 같은 다양한 데이터 작업을 알아서 처리
    • 구글 드라이브와 OneDrive에서 파일을 직접 업로드
    • 테이블과 차트를 볼때 풀스크린 뷰에서 인터랙티브하게 지원
      • 특정 영역을 잡아서 추가 질문을 하거나, ChatGPT의 프롬프트 제안에 따라 더 깊은 분석 가능
    • 차트를 개인화하고 다운로드 가능
      • 막대형, 선형, 파이형, 분산형 차트 등을 사용자 지정하고 상호작용 가능
      • 차트 요소 위로 마우스를 가져가서 추가 질문을 하거나 색상을 선택할 수 있음
      • 완성되면 다운로드하여 프레젠테이션이나 문서에 사용
      • 이 대화형 기능은 다양한 차트 유형에 적용되며, 지원되지 않는 차트에 대해서는 정적 버전을 생성

    PaliGemma: An Open Multimodal Model by Google

    링크 : https://blog.roboflow.com/paligemma-multimodal-vision/

     

    PaliGemma: Open Source Multimodal Model by Google

    PaliGemma is a vision language model (VLM) developed and released by Google that has multimodal capabilities. Learn how to use it.

    blog.roboflow.com

     

    • PaliGemma는 멀티모달 모델로, 객체 감지 및 분할 등의 작업에서 다른 VLM(비전언어모델)들과 달리 우수한 성능을 보임
    • 특정 작업에 대해 성능을 향상시키기 위해 파인 튜닝 가능
    • 2024년 Google I/O 이벤트에서 발표. SigLIP이라는 비전 모델과 Gemma라는 대형 언어 모델을 결합.
    • 트랜스포머 디코더와 비전 트랜스포머 이미지 인코더로 구성되며, 이미지와 텍스트를 모두 입력으로 받아 텍스트를 출력하며 여러 언어를 지원함
    • 모델은 30억 개의 결합 파라미터로 상대적으로 작은 크기이며, 상업적 사용이 허용되고 이미지/짧은 동영상 캡션, 시각적 질의응답, 텍스트 읽기, 객체 감지, 객체 분할 등의 작업에 파인튜닝이 가능함
    • 싱글 턴 VLM으로, 특정 사용 사례에 맞게 파인튜닝할 때 가장 잘 작동함
      • 이미지 캡션 작성, 비디오 캡션 작성, 시각적 질문 응답, 세분화 등의 작업에 적합함
      • OCR, 문서 이해, 시각적 질의응답(VQA), 객체 감지 등 다양한 컴퓨터 비전 작업에서 우수한 성능을 보임
    • 폐쇄형 모델로는 해결하기 힘든 사용자 정의 애플리케이션 구축에 유용하며, OCR 분야에서도 성능과 비용 효율성 측면에서 최고 수준을 보임
    • 다만 VLM의 한계로 개방형, 복잡하고 미묘한 추론 기반 문제에는 적합하지 않으며, 프롬프트에 민감한 특성이 있어 사용에 주의가 필요함
    • PaliGemma의 공개로 멀티모달 AI가 크게 발전할 것으로 기대. 가벼운 오픈 모델로, 누구나 자신만의 대형 비전 언어 모델을 맞춤형으로 훈련하고 상업적 목적으로 배포할 수 있음
    • 이전의 LMM들은 매우 비싸고, 큰 연산 능력이 필요했으나, PaliGemma는 이러한 한계를 극복하고 맞춤형 AI 응용 프로그램을 만드는 데 혁신적인 모델

    llama3 implemented from scratch

    링크 : https://github.com/naklecha/llama3-from-scratch

     

    GitHub - naklecha/llama3-from-scratch: llama3 implementation one matrix multiplication at a time

    llama3 implementation one matrix multiplication at a time - naklecha/llama3-from-scratch

    github.com

     

    • 하나의 텐서와 행렬 곱셈을 통해 Llama3를 처음부터 구현함.
    • Meta에서 제공한 Llama3 모델 파일에서 텐서를 직접 로드

    LLaMA-3 모델의 스크래치 구현 요약

    토크나이저 설정

    • Tiktoken 라이브러리를 사용하여 토크나이저 설정
    • 특수 토큰들을 정의하고 토크나이저에 추가

    모델 파일 읽기

    • PyTorch를 사용하여 모델 파일(consolidated.00.pth)을 로드
    • 모델의 구성을 params.json 파일에서 읽어옴
      • 차원 수(dim), 레이어 수(n_layers), 헤드 수(n_heads) 등의 정보 포함

    텍스트를 토큰으로 변환

    • 프롬프트 텍스트를 토크나이저를 사용하여 토큰 시퀀스로 변환
    • 각 토큰을 해당하는 임베딩으로 변환
    • RMS 정규화를 사용하여 임베딩 정규화

    어텐션 구현

    • 쿼리(wq), 키(wk), 값(wv), 출력(wo) 행렬을 모델에서 로드
    • 각 토큰에 대해 쿼리, 키, 값 벡터 계산
    • RoPE(Rotary Positional Embedding)를 사용하여 위치 정보 추가
    • 쿼리와 키의 내적을 계산하여 어텐션 점수 계산
    • 미래 토큰에 대한 어텐션 점수를 마스킹
    • Softmax 함수를 적용하여 어텐션 분포 계산
    • 어텐션 분포와 값 벡터를 곱하여 어텐션 결과 계산

    멀티 헤드 어텐션

    • 모든 어텐션 헤드에 대해 어텐션 계산을 수행
    • 각 헤드의 결과를 연결(concatenate)하여 최종 어텐션 결과 생성

    피드 포워드 네트워크

    • SwiGLU(Swish Gated Linear Unit) 활성화 함수를 사용한 피드 포워드 네트워크 구현
    • 어텐션 결과와 피드 포워드 네트워크의 출력을 더하여 최종 임베딩 생성

    전체 레이어 반복

    • 모든 트랜스포머 레이어에 대해 어텐션과 피드 포워드 네트워크 계산을 반복
    • 최종 임베딩을 RMS 정규화

    토큰 예측

    • 최종 임베딩을 출력 행렬과 곱하여 로짓(logits) 계산
    • 로짓에서 가장 높은 값을 가진 토큰을 다음 토큰으로 예측
    • 예측된 토큰을 디코딩하여 출력

    GN⁺의 의견

    • 이 기사는 Llama3 모델의 내부 구조와 동작 방식을 이해하는 데 매우 유용함. 특히, 처음부터 구현하는 과정을 통해 모델의 각 구성 요소가 어떻게 상호작용하는지 명확히 알 수 있음.
    • 초급 소프트웨어 엔지니어에게는 다소 복잡할 수 있음. 그러나, 단계별로 설명이 잘 되어 있어 천천히 따라가면 이해할 수 있음.
    • RoPE(회전 위치 임베딩)와 같은 고급 개념을 도입하여 모델의 성능을 향상시키는 방법을 배울 수 있음. 이는 다른 NLP 모델을 구현하거나 개선할 때 유용할 수 있음.
    • 이 기사를 통해 딥러닝 모델의 내부 구조와 동작 방식을 깊이 이해할 수 있음. 이는 모델을 최적화하거나 디버깅할 때 큰 도움이 될 것임.

    댓글

Designed by Tistory.