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)
- CLIP 모델 기반 Prior 모델 학습
- 이미지 인코더, 텍스트 인코더를 통해 feature 추출
- 이미지 feature : vectors
- 텍스트 feature : 시퀀스 요약 vectors, 시퀀스 정보가 남아있는 feature
- 이미지 인코더, 텍스트 인코더를 통해 feature 추출
- Decoder
- SR (화질 개선)
- 자체 방식 설계
- CLIP 모델 기반 Prior 모델 학습
- 이미지 variation 가능 여부 평가
- 모델 개선을 위한 연구
- Two-Stage Image 생성 프레임워크
- 원본 이미지를 넣으면 원본 이미지로 나올 수 있도록. 이미지 복원 문제.
- 프로젝트
- RQ-VAE (, RQ-Transformer)
- 해상도를 얼마나 높일 수 있을지가 관건.
- 많이 나눠서 학습하면 성능은 좋지만 (품질은 좋지만) 비용 많이 소요. 반대로 적게 나눠서 학습하면 비용이 적게 들지만 성능 떨어지는 문제 발생
- 이러한 Trade-off 관계를 줄이고자 고안된 방법
- HQ-VAE
- RQ-VAE 발전시킨 모델. 해당 모델은 동일한 패치 범위로 학습하는 방법을 이용.
- 만일 이미지를 계층적인 descript로 표현할 수 있다면 → 이미지의 전체를 먼저 생성하고 디테일을 채우는 식으로 발전시킴.
- Top code 를 생성 → 그 아래 Bottom code를 가짐.
- 빠르게 고품질 이미지 생성 가능.
- Contextural RQ-Transformer
- 위 두 모델의 공통적 단점 autoregressive하게 이미지를 생성하는 방식을 극복한 모델
- 이미지의 양방향의 정보를 보며 생성.
- 위 두 모델의 공통적 단점 autoregressive하게 이미지를 생성하는 방식을 극복한 모델
- RQ-VAE (, RQ-Transformer)
- Two-Stage Image 생성 프레임워크
초거대모델 학습을 위한 이미지-텍스트 데이터셋
- 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번 이상 등장하는 텍스트가 포함된 샘플 모두 제거 (기계로 생성된 여지 있음)
- Perceptual Image Hash 기반으로 중복 이미지 제거
- 안전한 데이터셋 (유해 이미지 제거)
- 이미지-텍스트 조합 필터링
- 이미지 필터링
- 추가 메타 데이터 제공
- 이미지와 텍스트 간 유사도 (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
라이센스를 따릅니다.