포스트

if kakao 2023 주요 세선 요약

인상 깊게 본 내용 정리

if kakao 2023 주요 세선 요약

실험을 잘한다는 것은 무엇일까?

  • 몇 논문을 통해 성능이 좋다 입증된 솔루션 발견 → 구현 → 서비스 환경에서 실험
  • 실험 결과가 이전과 유사하거나 그보다 더 좋지 않음.
    • 솔루션 포기
      • 다른 솔루션 찾기
      • 다른 누군가가 그 솔루션을 실험 (ex. 엑스칼리버…)
    • 솔루션 보완 → 실험 → 실패의 반복
      • 마무리 조건 설정
  • 시행착오 고민
    • 이번 실험 결과를 어떻게 남겨야 다음 실험에 도움이 될 수 있을까?
    • 보완은 어디부터 진행하는게 좋을까
    • 마무리 조건은 어떻게 세우는게 좋을까
  • 실험에는 “이 실험이 성공할 것이라는 이유”가 필요
    • ex. 지금 솔루션은 데이터가 많아야 잘 됨. 새로운 솔루션은 데이터 적어도 됨.
    • 이유가 있으면 실험 결과 분석이 쉬워짐
      • 해당 이유의 핵심 Feature 구현을 제대로 했는지 확인.
      • 실제 문제 해결에 도움이 되었는지 확인. → 이전 실험 결과가 다음 실험에 도움이 됨
    • 우선순위를 잡기 편해짐. 실험 사이클을 짧게 가져갈 수 있음.
    • 실험 성공 이유의 핵심 Feature을 개선할 수 있는 방향으로 단순한 모델에서 복잡한 모델로 성장시킬 것

딥(Deep)하게 오타 교정하기

(지금 나가고 있는 선생님 피드백의 경우에도 간혹 오타가 있음. 이런 것들도 개선하는 것이 좋지 않을까?)

  • 오타 교정에 있어서 글을 쓰는 사람의 목적이 중요.
  • 오타 유형
    • 모델 학습 가능 : 단순 입력 오류, 문자 변환 오류, 맞춤법 오류, 외래어 표기 오류
    • 모델 학습 불가 : 잘못된 배경 지식으로 인한 오류
  • 스펠러 모델 (노이즈 채널을 이용한 통계 기반 오타 교정 모델)
    • 단점
      • 교정 정확률을 높이기 위해서 편집 거리를 짧게 사용해 교정비율이 적음
  • 기존 서비스의 단점을 해결하기 위해 딥러닝 모델 사용
    • 디노이징 seq2seq 사용
    • 기대효과 : 복잡 구조를 단순하게. 데이터 추가시 지속적 성능 개선. 학습 데이터에 따라 도메인에 특화된 모델 제공 가능.
  • seq2seq 모델의 학습 데이터
    • 오타, 정타 데이터
    • 오타 생성 모델을 이용
      • 디노이징 모델 : 입력을 노이즈 함수로 변형하고 다시 입력으로 복원하는 것을 학습하는 모델
      • 부족한 데이터를 노이즈 함수를 통해 보충
  • 평가 : 오타 정확률, 정타 정확률(교정하지 않은경우/잘못 교정한 경우)

이 세상 모든 물체를 검출할 수 있는 AI 기술을 만들 수 있을까요?

: 딥러닝 기반 물체 검출 기술의 현황과 모델 소개

  • object detection?
    • multiple object를 검출. classification + localization
    • 이미지를 여러 조각으로 나눈 다음 각 조각에 대한 classification을 하고 localizaion 하면 됨.
  • one-stage detector
    • overfeat, yolo, ssd, retinanet, …
  • two-stage detector
    • RCNN series (Fast, Faster, Mask, R-FCN …)

→ 한 물체에 대해 여러 박스가 검출. 중복된 결과에 대해서는 제거가 필요했음.

→ 해당 중복을 제거하는 post-processing(non-max suppression)이 필요함. NMS 없이는 불완전한 물체 검출기

  • DETR
    • classification과 regression을 동시에 고려하는 positive matching cost를 계산 → Hungarian Algorithm를 활용하여 GT 당 한개의 positive matching pair을 찾도록 함 → 한 가지 객체만 검출
    • (텍스트 모델에서 활용했던) encoder, decoder 구조를 이용. quadratic complexity의 계산 비용을 가진 어텐션 연산으로 인해, 일반적으로 사용하는 멀티 스케일 피쳐를 사용할 수 없었고 그래서 작은 물체의 검출 능력이 좋지 않았다.
  • Deformable DETR (2021)
    • Deformable Convolution과 비슷한 Deformable Attention을 재현. 모든 쿼리가 일부 키만 attention 하도록 해 계산 비용을 liniear complexity로 낮출 수 있었음. → 멀티 스케일 피쳐 사용 가능.
    • DETR과 비교했을 때 작은 물체에 대한 검출 능력 상승
    • 다만 멀티 스케일 피쳐를 사용해 인코더가 처리해야 할 토큰의 수가 약 20배 증가. 전체 계산량도 증가하고 검출 속도도 늦어짐 🥲
    • MSCOCO 데이터 살펴보니 우리가 객체 검출을 할 때 관심있는 부분은 이미지의 30% 정도라는데… 굳이 인코더가 모든 토큰을 처리할 필요가 있나?
  • Sparse DETR (2022)
    • 중요한 토큰만 분별하기 위해 보조 네트워크를 추가해 학습 → 해당 토큰만 encoding : 성능 유지 + 속도 감소

물체 검출 기술의 한계

  • 미리 정의한 class 만 검출할 수 있다는 한계 존재.
  • 새로운 물체를 검출하기 위해서는 class을 추가해주고 모델을 재학습시켜야 물체 검출이 가능함.

그럼… 세상에 존재하는 모든 물체를 검출할 수는 없을까?

Open Vocabulary Object Detection

  • 고정된 길이의 logit을 학습에 사용하지 않고 CLIP text encoder을 이용해 text embedding을 생성.
  • person과 woman, man은 가까운 위치에 있기 때문에 해당 class를 추가하지 않아도 해당 물체를 검출할 수 있게 됨.
  • 몇 가지 class로만 분류하게 되는 head를 제거하고 clip의 텍스트 인코더와 matching.
  • 결과 예시 (Text Query를 input으로 추가)

어디에 사용할 수 있을까요?

  • CCTV : 거리에 몇명 지나가는지, ~옷을 입은 사람은 몇명이 지나갔는지. 거리 위급한 환자 발생했을때 ..

카카오브레인의 **텍스트 기반 이미지 생성 기술 소개**

  • Denosing Diffusion Probabilistic Models
  • unCLIP (a.k.a. DALL-E 2) 모델 활용
  • 구조 소개 (Prior - Decoder - SR)
    1. CLIP 모델 기반 Prior 모델 학습
      • 이미지 인코더, 텍스트 인코더를 통해 feature 추출
        • 이미지 feature : vectors
        • 텍스트 feature : 시퀀스 요약 vectors, 시퀀스 정보가 남아있는 feature
    2. Decoder
    3. SR (화질 개선)
    4. 자체 방식 설계
  • 이미지 variation 가능 여부 평가
  • 모델 개선을 위한 연구
    • Two-Stage Image 생성 프레임워크
      • 원본 이미지를 넣으면 원본 이미지로 나올 수 있도록. 이미지 복원 문제.
    • 프로젝트
      1. RQ-VAE (, RQ-Transformer)
        • 해상도를 얼마나 높일 수 있을지가 관건.
        • 많이 나눠서 학습하면 성능은 좋지만 (품질은 좋지만) 비용 많이 소요. 반대로 적게 나눠서 학습하면 비용이 적게 들지만 성능 떨어지는 문제 발생
          • 이러한 Trade-off 관계를 줄이고자 고안된 방법
      2. HQ-VAE
        • RQ-VAE 발전시킨 모델. 해당 모델은 동일한 패치 범위로 학습하는 방법을 이용.
        • 만일 이미지를 계층적인 descript로 표현할 수 있다면 → 이미지의 전체를 먼저 생성하고 디테일을 채우는 식으로 발전시킴.
          • Top code 를 생성 → 그 아래 Bottom code를 가짐.
          • 빠르게 고품질 이미지 생성 가능.
      3. Contextural RQ-Transformer
        • 위 두 모델의 공통적 단점 autoregressive하게 이미지를 생성하는 방식을 극복한 모델
          • 이미지의 양방향의 정보를 보며 생성.

초거대모델 학습을 위한 이미지-텍스트 데이터셋

  • 7억 4천만개 이미지-텍스트 데이터 셋
  • 이미지 텍스트 기반 초거대 모델
    • CLIP (OpenAI) : 4억개
    • DALL-E (OpenAI) : 2억 5천만개
    • ALIGN (구글) : 18억개
    • Florence (MS) : 9억개 → 데이터 공개 X… 초거대 모델의 핵심은 데이터
  • 이미지와 텍스트 수집 방법
    • (신뢰할 수 있는 데이터 필요)
    • 이미지를 볼 수 없는 사람들을 위한 대체텍스트 정보 이용
    • 웹페이지 크롤 확보 : Common Crawl. 1년간 220억 페이지에서 수집
  • 데이터 필터링
    • 이미지 필터링
      • pillow 라이브러리로 읽을 수 있는 확장자 위주 수집
      • 파일 크기 5kb 미만 제거
      • 200px 이하의 이미지, 가로 혹은 세로로 긴 이미지는 제거
    • 텍스트 필터링
      • 영문 데이터만 수집
      • 5자 이상 1000자 이하 데이터만 수집
      • 단어의 개수 3개 이상 256개 이하 + 명사형 단어가 1개 이상인 문장 수집
    • 중복제거
      • Perceptual Image Hash 기반으로 중복 이미지 제거
        • 외부 공개 이미지셋과 해쉬값이 동일한 경우 제거
      • 10번 이상 등장하는 텍스트가 포함된 샘플 모두 제거 (기계로 생성된 여지 있음)
    • 안전한 데이터셋 (유해 이미지 제거)
    • 이미지-텍스트 조합 필터링
  • 추가 메타 데이터 제공
    • 이미지와 텍스트 간 유사도 (CLIP 모델 이용 유사도 계산) → 이를 이용해 관련성이 떨어진 이미지-텍스트 조합은 제거 가능
    • 워터마크 점수 (자체 개발 워터마크 분류 모델 적용해 계산) → 이를 이용해 워터마크 없는 데이터만 사용 가능
    • Aesthetic 점수 (아름답고 깨끗한 정도) → 모델 개선 연구 진행중
    • Faces : 얼굴 개수 정보
    • 텍스트 길이, 단어 개수, Bert/GPT2 토큰 개수 정보
  • 형식 : parquet
  • 필터링 예시
    • Non-face : width>256, height>256, face_count==0
    • High-resolution : width > 1024, height > 1024
    • High-quality : width > 320, height > 320, word_count > 10, clip_similarity_vitb32 > 0.3
    • Image Generation : width > 512, height > 512, aesthetic_score_laion_v2 > 5.0, watermark_score < 0.5
  • https://github.com/hanoonaR/object-centric-ovd
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

인기 태그