KR20240065281A - 벡터-양자화된 이미지 모델링 - Google Patents

벡터-양자화된 이미지 모델링 Download PDF

Info

Publication number
KR20240065281A
KR20240065281A KR1020247012781A KR20247012781A KR20240065281A KR 20240065281 A KR20240065281 A KR 20240065281A KR 1020247012781 A KR1020247012781 A KR 1020247012781A KR 20247012781 A KR20247012781 A KR 20247012781A KR 20240065281 A KR20240065281 A KR 20240065281A
Authority
KR
South Korea
Prior art keywords
image
computing system
machine learned
code
codes
Prior art date
Application number
KR1020247012781A
Other languages
English (en)
Inventor
지아후이 유
신 리
한 장
비제이 바수데반
알렉산더 영-시우 쿠
제이슨 마이클 발드리지
위안중 쉬
징 유 고
탕 민 루옹
군잔 바이드
지루이 왕
용휘 우
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20240065281A publication Critical patent/KR20240065281A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/094Adversarial learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

비전 변환기 및 향상된 코드북 처리를 사용하여 벡터-양자화된 이미지 모델링을 위한 시스템 및 방법이 제공된다. 특히, 본 개시는 래스터화된 이미지 토큰을 자동회귀적으로 예측하기 위해 기계 학습 모델(예를 들어, 변환기 모델)을 사전 훈련하는 것을 포함하는 벡터-양자화된 이미지 모델링(VIM) 접근법을 제공한다. 개별 이미지 토큰은 학습된 비전 변환기 기반 VQGAN(ViT-VQGAN이라고 할 수 있는 구현 예)에서 인코딩될 수 있다. 본 개시 내용은 아키텍처에서 코드북 학습까지 바닐라(vanilla) VQGAN에 대한 여러 개선 사항을 제안하여 더 나은 효율성과 재구성 충실도를 제공한다. 개선된 ViT-VQGAN은 비컨디셔닝 이미지 생성, 컨디셔닝된 이미지 생성(예: 클래스 컨디셔닝된 이미지 생성), 비지도 표현 학습을 포함한 벡터-양자화된 이미지 모델링 태스크를 더욱 향상시킨다.

Description

벡터-양자화된 이미지 모델링
본 발명은 일반적으로 이미지 합성 및/또는 이미지 생성과 같은 이미지 모델링에 관한 것이다. 보다 구체적으로, 본 개시는 비전 변환기 및 개선된 코드북 처리를 사용하는 벡터-양자화된 이미지 모델링에 관한 것이다.
컴퓨터 비전에서 최근 비지도 또는 자기-지도 학습 기술의 대부분은 이미지 인스턴스를 구별하기 위한 사전 학습 목표를 사용하여 이미지에 다양한 무작위 확대를 적용하는 데 중점을 두고 있으며, 여기서 학습된 표현의 품질은 무작위 밝기, 크롭(cropping), 블러(blurring) 등과 같이 수동으로 선택한 증강에 의존한다.
특정 다른 접근법은 2D 구조에 대한 지식을 통합하지 않고 픽셀을 자동회귀적으로 예측하기 위해 이미지에 GPT 스타일의 생성적 사전 훈련을 적용하며, 여기서 픽셀은 k = 512인 k-평균을 사용하여 (R,G,B) 픽셀 값을 클러스터링하여 생성된 9비트 값이다. 그러나 컬러 인코딩은 언어 모델보다 훨씬 긴 시퀀스 길이와 훨씬 더 많은 메모리 소비 및 더 많은 훈련 계산으로 인해 일반적인 이미지 해상도로 확장되지 않는다(예: 224x224 해상도는 이미지당 50,176개의 토큰으로 이어진다). 결과적으로 이러한 태스크는 대규모 이미지 인식을 위해 상대적으로 작은 최대 해상도(예: 64x64)에만 적용할 수 있으며, 이는 표현 기능을 심각하게 제한한다.
반면, VQVAE(Oord et al., 2017), DALL-E(Ramesh et al., 2021) 및 VQGAN(Esser et al., 2021)을 포함하여, 이미지를 개별 잠재 변수로 사전 양자화하고 이를 자동회귀적으로 모델링함으로써 놀라운 이미지 생성 결과를 얻었다. 이러한 접근 방식에서는 CNN(convolution neural network)을 학습하여 이미지를 자동 인코딩하고 두 번째 단계 CNN 또는 변환기(Transformer)를 학습하여 입력 데이터의 밀도를 모델링한다. 이는 이미지 생성에 효과적인 것으로 입증되었지만 차별 태스크에서 학습된 표현을 평가한 연구는 거의 없다.
이미지 생성의 서브-필드 중 하나는 텍스트-이미지 생성(text-to-image generation)으로, 입력 텍스트를 기반으로 이미지가 합성되고, 합성된 이미지는 입력 텍스트에서 설명하는 콘텐츠를 묘사한다. 언어를 통해 이미지를 생성하는 능력은 언어가 가장 자연스러운 의사소통 형태이기 때문에 매력적이며, 이러한 생성 능력은 잠재적으로 예술, 디자인, 멀티미디어 콘텐츠 제작 등 다양한 분야에서 창의적인 애플리케이션을 잠금 해제할 수 있다. 텍스트-이미지 생성 공간에서 최근 추진력을 얻은 연구 중 하나는 충실도가 높은 이미지를 생성할 수 있는 기능을 갖춘 확산 기반 텍스트-이미지 모델(diffusion-based text-to-image models)을 활용하는 기술이다. 이러한 모델은 개별 이미지 토큰의 사용을 피하고 대신 이미지 생성을 위한 핵심 모델링 접근 방식으로 확산 모델을 사용하여 MS-COCO에서 더 나은 제로샷 FID(Frechet Inception Distance) 점수와 미학적으로 만족스러운 시각적 출력을 달성한다. 이러한 발전에도 불구하고, 텍스트-이미지 생성 태스크에 자동회귀 모델링을 적용할 수 있다는 점은 대규모 언어 모델에 대한 풍부한 이전 연구와 더 많은 양식에 쉽게 적용할 수 있는 개별 토큰의 범용 인터페이스를 고려할 때 여전히 매력적이다.
본 개시내용의 실시예의 양태 및 장점은 다음 설명에서 부분적으로 설명되거나, 설명으로부터 학습될 수 있거나, 실시예의 실시를 통해 학습될 수 있다.
본 개시의 하나의 예시적인 양태는 이미지의 벡터 양자화를 수행하기 위한 컴퓨터로 구현되는 방법에 관한 것이다. 방법은 하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해 이미지의 복수의 입력 이미지 패치를 획득하는 단계를 포함한다. 이 방법은 상기 컴퓨팅 시스템에 의해, 기계 학습된 이미지 인코더로 복수의 입력 이미지 패치를 프로세싱하여 잠재 공간에 복수의 이미지 토큰을 생성하는 단계를 포함하며, 상기 복수의 이미지 토큰은 상기 복수의 입력 이미지 패치에 대응하고; 그리고 상기 기계 학습된 이미지 인코더는 복수의 입력 이미지 패치를 프로세싱하여 잠재 공간에 복수의 이미지 토큰을 생성하기 위해 하나 이상의 셀프-어텐션 연산을 수행한다. 방법은 컴퓨팅 시스템에 의해 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계를 포함한다. 방법은 컴퓨팅 시스템에 의해 복수의 양자화된 코드를 이미지의 인코딩된 버전으로 제공하는 단계를 포함한다.
일부 구현에서, 기계 학습된 이미지 인코더는 비전 변환기 모델(vision transformer model)을 포함한다.
일부 구현에서, 기계 학습된 이미지 인코더는 복수의 입력 이미지 패치에 대해 하나 이상의 셀프-어텐션 연산 중 하나를 수행한다.
일부 구현에서, 방법은 컴퓨팅 시스템에 의해, 기계 학습된 이미지 디코더로 상기 복수의 양자화된 코드를 프로세싱하여 합성된 이미지를 형성하는 복수의 합성된 이미지 패치를 생성하는 단계; 상기 컴퓨팅 시스템에 의해, 상기 합성된 이미지에 적어도 부분적으로 기초하여 손실 값을 제공하는 손실 함수를 평가하는 단계; 그리고 상기 컴퓨팅 시스템에 의해, 상기 기계 학습된 이미지 인코더, 상기 기계 학습된 이미지 디코더, 및 상기 손실 함수에 적어도 부분적으로 기초한 상기 복수의 후보 코드, 중 하나 이상을 수정하는 단계를 더 포함한다.
일부 구현에서, 기계 학습된 이미지 디코더는 비전 변환기 모델을 포함한다.
일부 구현에서, 손실 함수는, 로짓-라플라스(logit-Laplace) 손실 항; L2 손실 항; 지각 손실 항(perceptual loss term); 그리고 GAN(generative adversarial network) 손실 항을 포함한다.
일부 구현에서, 컴퓨팅 시스템에 의해, 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계는, 상기 컴퓨팅 시스템에 의해, 복수의 이미지 토큰을 하위-차원 공간에 프로젝션하는 단계; 그리고 상기 이미지 토큰을 하위-차원 공간에 프로젝션한 후, 상기 컴퓨팅 시스템에 의해, 상기 복수의 이미지 토큰을 상기 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계를 포함한다.
일부 구현에서, 컴퓨팅 시스템에 의해, 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계는, 상기 컴퓨팅 시스템에 의해, 복수의 이미지 토큰 및 복수의 후보 코드 중 하나 또는 둘 다에 L2 정규화를 적용하는 단계; 그리고 상기 L2 정규화를 적용한 후, 상기 컴퓨팅 시스템에 의해, 상기 복수의 이미지 토큰을 상기 양자화 코드북에 포함된 상기 복수의 양자화된 코드에 매핑하는 단계를 포함한다.
일부 구현에서, 방법은 기계 학습된 코드 예측 모델을 사용하는 컴퓨팅 시스템에 의해, 상기 복수의 양자화된 코드 중 하나 이상에 적어도 부분적으로 기초하여 상기 양자화 코드북으로부터 복수의 예측 코드를 자동회귀적으로 예측하는 단계; 상기 컴퓨팅 시스템에 의해, 기계 학습된 이미지 디코더로 상기 복수의 예측 코드를 프로세싱하여 합성된 이미지를 형성하는 복수의 합성된 이미지 패치를 생성하는 단계를 더 포함한다.
일부 구현에서, 방법은 컴퓨팅 시스템에 의해, 상기 복수의 예측 코드에 기초하여 음의 로그 우도를 평가하는 코드 예측 손실 함수를 평가하는 단계; 그리고 상기 컴퓨팅 시스템에 의해, 상기 코드 예측 손실 함수에 기초하여 상기 기계 학습된 코드 예측 모델의 하나 이상의 파라미터를 수정하는 단계를 더 포함한다.
일부 구현에서, 기계 학습된 코드 예측 모델을 사용하는 컴퓨팅 시스템에 의해, 상기 복수의 예측 코드를 자동회귀적으로 예측하는 단계는, 상기 컴퓨팅 시스템에 의해, 상기 합성된 이미지의 하나 이상의 원하는 특성을 설명하는 보조 컨디셔닝 데이터(auxiliary conditioning data)를 사용하여 기계 학습된 코드 예측 모델을 컨디셔닝하는(conditioning) 단계를 포함한다.
일부 구현에서, 보조 컨디셔닝 데이터는 합성된 이미지의 원하는 클래스를 설명하는 클래스 라벨을 포함한다.
일부 구현에서, 보조 컨디셔닝 데이터는 자연어 텍스트 토큰을 포함한다.
일부 구현에서, 방법은 컴퓨팅 시스템에 의해, 상기 기계 학습된 코드 예측 모델로부터 하나 이상의 중간 특징을 추출하는 단계; 그리고 상기 컴퓨팅 시스템에 의해, 상기 중간 특징에 적어도 부분적으로 기초하여 상기 이미지에 대한 클래스 라벨을 예측하는 단계를 더 포함한다.
또 다른 예시적인 양태는 이미지의 벡터 양자화를 수행하기 위한 컴퓨터로 구현되는 방법에 관한 것이다. 방법은 하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해, 이미지의 인코딩된 버전을 형성하는 복수의 양자화된 코드를 획득하는 단계를 포함하며, 상기 복수의 양자화된 코드는 기계 학습된 이미지 인코더 모델에 의해 생성된 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화 코드에 매핑함으로써 선택된다. 방법은 컴퓨팅 시스템에 의해, 상기 이미지의 디코딩된 버전을 형성하는 복수의 디코딩된 이미지 패치를 생성하기 위해 기계 학습된 이미지 디코더로 상기 복수의 양자화된 코드를 프로세싱하는 단계를 포함한다. 일부 구현에서, 기계 학습된 이미지 인코더 모델과 기계 학습된 이미지 디코더 중 하나 또는 둘 다는 하나 이상의 셀프-어텐션 연산을 수행하도록 구성된다.
또 다른 예시적인 양태는 하나 이상의 프로세서; 그리고 상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 제1항 내지 제16항 중 어느 한 항의 방법을 수행하게 하는 명령어를 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 시스템에 관한 것이다.
또 다른 예시적인 양태는 하나 이상의 프로세서; 그리고 기계 학습된 이미지 프로세싱 모델을 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는 컴퓨팅 시스템에 관한 것이다. 기계 학습된 이미지 프로세싱 모델은, 하나 이상의 입력 이미지 패치를 잠재 공간의 하나 이상의 이미지 토큰으로 인코딩하도록 구성된 인코더 부분(encoder portion); 상기 하나 이상의 이미지 토큰을 코드북에서 선택된 하나 이상의 양자화된 코드로 양자화하도록 구성된 양자화 부분(quantization portion); 상기 하나 이상의 양자화된 코드에 적어도 부분적으로 기초하여 상기 코드북으로부터 하나 이상의 예측된 양자화된 코드를 예측하도록 구성된 코드 예측 부분; 그리고 상기 코드 예측 부분으로부터 추출된 데이터에 적어도 부분적으로 기초하여 입력 이미지 패치에 대한 하나 이상의 판별 예측(discriminative predictions)을 생성하도록 구성된 판별 예측 부분을 포함한다.
일부 구현에서, 기계 학습된 이미지 프로세싱 모델은 하나 이상의 양자화된 코드에 기초하여 재구성된 이미지 패치를 생성하거나 하나 이상의 예측된 양자화된 코드에 적어도 부분적으로 기초하여 합성된 이미지 패치를 생성하도록 구성된 디코더 부분을 더 포함한다.
일부 구현에서, 하나 이상의 판별 예측은 이미지 분류 예측을 포함한다.
또 다른 예시적인 양태는 텍스트-이미지(text-to-image) 생성을 수행하기 위한 컴퓨터로 구현되는 방법에 관한 것이다. 방법은 하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해, 원하는 이미지 콘텐츠를 설명하는 자연어 입력을 획득하는 단계를 포함한다. 이 방법은 컴퓨팅 시스템에 의해, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분으로 자연어 입력을 프로세싱하여 텍스트 임베딩을 생성하는 단계를 포함한다. 방법은 컴퓨팅 시스템에 의해, 기계 학습된 코드 예측 모델의 자동회귀 코드 선택 부분으로 상기 텍스트 임베딩을 프로세싱하여 복수의 후보 코드를 포함하는 양자화 코드북으로부터 예측 코드 시퀀스를 자동회귀적으로 예측하는 단계를 포함한다. 이 방법은 컴퓨팅 시스템에 의해, 기계 학습된 이미지 디코더로 양자화된 코드 시퀀스를 프로세싱하여 합성된 이미지를 형성하는 복수의 합성된 이미지 패치를 생성하는 단계를 포함하며, 상기 합성된 이미지는 원하는 이미지 콘텐츠를 묘사한다.
일부 구현에서, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분, 기계 학습된 코드 예측 모델의 자기회귀 코드 선택 부분, 기계 학습된 이미지 디코더 중 하나 이상은 하나 이상의 셀프-어텐션 연산을 수행하도록 구성된다.
일부 구현에서, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분, 기계 학습된 코드 예측 모델의 자기회귀 코드 선택 부분, 및 기계 학습된 이미지 디코더 중 하나 이상은 변환기 신경망을 포함한다.
일부 구현에서, 기계 학습된 이미지 디코더 및 상기 코드북 중 하나 또는 둘 모두는 이미지 인코더 모델과 공동으로 학습된다.
일부 구현에서, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분은 사전 훈련 태스크에 대해 사전 훈련된다.
또 다른 예시적인 양태는 코드 예측 모델을 훈련하기 위한 컴퓨터로 구현되는 방법에 관한 것이다. 방법은 하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해, 훈련 이미지 및 상기 훈련 이미지의 콘텐츠를 설명하는 자연어 입력을 포함하는 훈련 예를 획득하는 단계를 포함한다. 이 방법은 컴퓨팅 시스템에 의해, 기계 학습된 이미지 인코더로 훈련 이미지로부터의 복수의 이미지 패치를 프로세싱하여 잠재 공간에 복수의 이미지 토큰을 생성하는 단계를 포함하며, 상기 복수의 이미지 토큰은 상기 복수의 이미지 패치에 대응한다. 방법은 컴퓨팅 시스템에 의해, 상기 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계를 포함한다. 방법은 컴퓨팅 시스템에 의해, 코드 예측 모델의 텍스트 인코더 부분으로 자연어 입력을 프로세싱하여 텍스트 임베딩을 생성하는 단계를 포함한다. 방법은 컴퓨팅 시스템에 의해, 코드 예측 모델의 자동회귀 코드 선택 부분으로 텍스트 임베딩을 프로세싱하여 양자화 코드북으로부터 예측 코드 시퀀스를 자동회귀적으로 예측하는 단계를 포함한다. 방법은 컴퓨팅 시스템에 의해, 예측된 코드 시퀀스를 복수의 양자화된 코드와 비교하는 코드 예측 손실 함수를 평가하는 단계를 포함한다. 방법은 컴퓨팅 시스템에 의해, 코드 예측 손실 함수에 적어도 부분적으로 기초하여 코드 예측 모델의 하나 이상의 파라미터를 수정하는 단계를 포함한다.
일부 구현에서, 기계 학습된 이미지 인코더는 상기 복수의 입력 이미지 패치를 프로세싱하여 상기 잠재 공간에 상기 복수의 이미지 토큰을 생성하는 하나 이상의 셀프-어텐션 연산을 수행한다.
일부 구현에서, 코드 예측 손실 함수는 상기 양자화된 코드에 대한 예측 코드의 음의 로그 우도를 평가한다.
일부 구현에서, 기계 학습된 이미지 인코더 및 상기 코드북은 이전에 오토인코더 아키텍처의 이미지 디코더로 훈련된다.
일부 구현에서, 컴퓨팅 시스템에 의해, 코드 예측 손실 함수에 적어도 부분적으로 기초하여 코드 예측 모델의 하나 이상의 파라미터를 수정하는 단계는 상기 컴퓨팅 시스템에 의해, 코드 예측 손실 함수에 적어도 부분적으로 기초하여 코드 예측 모델의 자동회귀 코드 선택 부분과 텍스트 인코더 부분 모두의 하나 이상의 파라미터를 수정하는 단계를 포함한다.
본 개시의 다른 양태는 다양한 시스템, 장치, 비일시적 컴퓨터 판독 가능 매체, 사용자 인터페이스 및 전자 장치에 관한 것이다.
본 발명의 다양한 실시예의 이들 및 기타 특징, 양태 및 장점은 다음의 설명 및 첨부된 청구범위를 참조하여 더 잘 이해될 것이다. 본 명세서에 포함되어 일부를 구성하는 첨부 도면은 본 발명의 예시적인 실시예를 예시하고, 설명과 함께 관련 원리를 설명하는 역할을 한다.
당업자를 위한 실시예의 상세한 설명은 첨부된 도면을 참조하여 명세서에 설명되어 있다.
도 1은 본 발명의 예시적인 실시예에 따라 이미지의 벡터 양자화를 수행하기 위한 예시적인 기계 학습 모델의 그래픽 다이어그램을 묘사한다.
도 2는 본 발명의 예시적인 실시예에 따라 이미지 생성을 수행하기 위한 예시적인 기계 학습 모델의 그래픽 다이어그램을 묘사한다.
도 3은 본 발명의 예시적인 실시예에 따라 이미지 생성을 수행하기 위한 예시적인 기계 학습 모델의 그래픽 다이어그램을 묘사한다.
도 4는 본 발명의 예시적인 실시예에 따라 이미지 생성을 수행하기 위한 예시적인 기계 학습 모델의 그래픽 다이어그램을 묘사한다.
도 5는 본 발명의 예시적인 실시예에 따라 텍스트-이미지 생성(text-to-image generation)을 수행하는 접근법의 그래픽 개요를 도시한다.
도 6은 본 발명의 예시적인 실시예에 따른 스케일 모델 훈련에 대한 예시적인 접근 방식의 그래픽 다이어그램을 묘사한다.
도 7은 본 개시의 예시적인 실시예에 따른 예시적인 모델 병렬화 접근법의 그래픽 다이어그램을 묘사한다.
도 8a는 본 개시 내용의 예시적인 실시예에 따른 예시적인 컴퓨팅 시스템의 블록도를 도시한다.
도 8b는 본 개시 내용의 예시적인 실시예에 따른 예시적인 컴퓨팅 장치의 블록도를 도시한다.
도 8c는 본 개시 내용의 예시적인 실시예에 따른 예시적인 컴퓨팅 장치의 블록도를 도시한다.
복수의 도면에 걸쳐 반복되는 참조 번호는 다양한 구현에서 동일한 특징을 식별하기 위한 것이다.
개요
일반적으로, 본 개시물은 비전 변환기 및 개선된 코드북 처리(codebook handling)를 사용하는 벡터-양자화된 이미지 모델링에 관한 것이다. 특히, 본 개시는 래스터화된 이미지 토큰(rasterized image tokens)을 자동회귀적으로 예측하기 위해 기계 학습 모델(예를 들어, 변환기 모델)을 사전 훈련(트레이닝)하는 것을 포함하는 벡터-양자화된 이미지 모델링(VIM) 접근법을 제공한다. 개별 이미지 토큰은 학습된 비전 변환기 기반 VQGAN(ViT-VQGAN이라고 할 수 있는 구현 예)에서 인코딩될 수 있다. 본 개시 내용은 아키텍처에서 코드북 학습까지 바닐라(vanilla) VQGAN에 대한 여러 개선 사항을 제안하여 더 나은 효율성과 재구성 충실도를 제공한다. 개선된 ViT-VQGAN은 비컨디셔닝 이미지 생성(unconditional image generation), 컨디셔닝된 이미지 생성(예: 클래스 컨디셔닝된 이미지 생성), 비지도(unsupervised) 표현 학습을 포함한 벡터-양자화된 이미지 모델링 태스크를 더욱 향상시킨다.
예시 실험은 제안된 기술의 기술적 효율성을 보여준다. 특히 256x256 해상도의 이미지넷(ImageNet)에서 훈련할 때, 본 개시의 예시적인 구현은 IS(Inception Score) 175.1 및 FID(Frechet Inception Distance) 4.17을 달성하는데, 이는 IS 및 FID에 대해 각각 70.6 및 17.04를 얻는 바닐라 VQGAN에 비해 극적인 개선이다. ViT-VQGAN 및 비지도 사전 학습을 기반으로 하는 예제 실험에서는 iGPT(Image GPT)와 유사하게 중간 기능을 평균화하여 사전 학습된 변환기(Transformer)를 추가로 평가한다. 그의 ImageNet 사전 훈련된 VIM-L은 유사한 모델 크기에 대해 선형 프로브 정확도에서 60.3%~72.1%로 iGPT-L을 크게 능가한다. ViM-L은 또한 추가 웹 이미지 데이터와 더 큰 모델 크기로 훈련된 iGPT-XL보다 성능이 뛰어나다.
본 개시의 또 다른 예시적인 양태는 제안된 벡터 양자화된 이미지 모델을 텍스트-이미지 생성 태스크에 적용하는 것에 관한 것이다. 구체적으로, 본 개시물은 확산 기반 접근 방식과는 뚜렷한 이점을 가지고, 텍스트 설명으로부터 사실적 이미지를 생성할 수 있는 자기회귀 모델을 제공한다. 이러한 모델의 구현 예를 "바벨드로우(Babeldraw)"라고 할 수 있다. 일부 구현에서, 바벨드로우는 개선된 이미지 토큰화기인 본 문서에 설명된 변환기 기반 ViT-VQGAN을 사용하여 이미지를 개별 토큰의 시퀀스로 인코딩한다. 이는 자연스럽게 텍스트에서 이미지 토큰까지 익숙한 기계 번역 문제로 태스크를 줄여준다. 둘째, 인코더-디코더 변환기 파라미터를 350M 및 750M에서 3B 및 20B로 확장함으로써 일관된 품질 개선이 관찰되었다. 최근 확산 기반 모델과 비교하여, 20B Babeldraw 모델은 7.31의 제로 샷(zero-shot) MS-COCO FID(Frechet Inception Distance) 점수와 MS-COCO 트레인 분할(train split)에서 미세 조정 시 전례 없는 FID 점수 4.03을 달성했다. 고정된 256 × 256 이미지 토크나이저에서 학습된 포스트 초해상도 업샘플러를 사용하여 Babeldraw는 고해상도의 사실적인 이미지를 안정적으로 생성한다.
따라서, 본 개시의 예시적인 구현은 이미지 생성 및 이미지 이해 태스크 모두를 위한 벡터-양자화된 이미지 모델링(VIM) 방법에 관한 것이다. 특히 일부 구현 예는 다음과 같은 2단계 접근 방식을 따른다.
1단계: 벡터 양자화. 이미지(예: 해상도 256x256)가 주어지면 비전 변환기 기반 VQGAN은 이를 코드북(예: 코드북 크기는 8192일 수 있음) 내에 포함된 여러 개의 이산화된 잠재 코드(예: 32x32)로 인코딩한다. 본 개시는 VQGAN(Esser et al., 2021)을 기반으로 아키텍처에서 코드북 학습에 이르기까지 여러 가지 개선 사항을 제안한다. 결과적으로 ViT-VQGAN은 픽셀별 재구성 메트릭(pixel-wise reconstruction metrics), IS(Inception Score) 및 FID(Frechet Inception Distance) 측면에서 더 나은 효율성과 재구성 충실도를 갖는다. ViT-VQGAN은 로짓-라플라스 손실(logit-Laplace loss), L2 손실(L2 loss), 적대적 손실(adversarial loss) 및/또는 지각 손실(perceptual loss)의 목적 함수가 결합된 이미지 전용 데이터에 대해 엔드투엔드(end-to-end) 훈련(트레이닝)이 가능하다.
2단계: 벡터-양자화된 이미지 모델링. 일부 구현 예시에는 래스터화된(예: 32x32 = 1024) 이미지 토큰을 자동회귀적으로 예측하기 위한 변환기 모델 훈련이 포함될 수 있으며, 여기서 이미지 토큰은 고정된 1단계 ViT-VQGAN에 의해 인코딩된다. 비컨디셔닝 이미지 합성(unconditional image synthesis) 또는 비지도 학습의 경우 디코더 전용 변환기 모델을 훈련하여 다음 토큰을 예측할 수 있다. 컨디셔닝된 이미지 합성(예: 클래스 컨디셔닝된 이미지 합성)의 경우 컨디셔닝 데이터(예: 클래스 ID 토큰)가 모든 이미지 토큰의 시작 부분에 추가될 수 있다.
비지도 학습의 품질을 평가하기 위해, 중간 변환기 기능(intermediate Transformer features)을 추출(예: 평균화)하고 선형 헤드를 훈련하여 클래스의 로짓(선형 프로브 정확도라고도 함)을 예측할 수 있다.
VIM을 사용하여 이미지 생성과 이미지 이해를 모두 향상시키는 핵심 컴포넌트 중 하나는 계산 효율성과 재구성 품질 측면에서 더 나은 이미지 양자화기를 갖는 것이다. 효율적인 양자화기는 무작위 확대가 이미지에 먼저 적용된 다음 입력 토큰으로 이미지 양자화기의 인코더가 적용되는 2단계 훈련 속도를 높일 수 있다. 더욱이, 더 나은 재구성 품질을 갖춘 이미지 양자화기는 이미지 이해 태스크에 중요한 픽셀 공간의 원본 이미지에 비해 정보 손실을 잠재적으로 줄일 수 있다.
본 개시의 추가 예시적 양태는 텍스트 설명으로부터 사실적 이미지를 생성할 수 있는 자동회귀 이미지 생성 모델에 관한 것이다. 여기에 제공된 자기회귀 모델은 더 나은 이미지 토크나이저(토큰화기)(image tokenizer)와 모델 스케일링의 이점을 누릴 수 있다. 보다 구체적으로, 본 개시는 이미지 생성을 위한 변환기 기반 시퀀스-시퀀스 모델(이의 예시적인 구현은 "Babeldraw"로 지칭될 수 있음)을 제공한다. 이미지 생성 모델은 토큰화된 텍스트 토큰을 인코더에 대한 입력으로 사용하고 디코더를 사용하여 자동회귀 방식으로 개별 이미지 토큰을 예측할 수 있다. 이미지 토큰은 일부 예에서 본 명세서에 설명된 변환기 기반 ViT-VQGAN 이미지 토큰화기에 의해 생성될 수 있으며, 이는 효율성 및 이미지 재구성 충실도 측면에서 VQGAN보다 더 나은 모델이다.
일부 구현에서 이미지 생성 모델의 모든 컴포넌트(인코더, 디코더 및 이미지 토크나이저)가 표준 변환기 모델을 기반으로 할 수 있다. 이렇게 하면 모델의 크기를 쉽게 조정할 수 있다. 앞서 언급한 2단계 텍스트-이미지 프레임워크의 한계를 테스트하려면, 예제 Babeldraw 모델의 파라미터 크기는 350M에서 750M, 3B 및 20B로 조정되었으며 텍스트-이미지 정렬 및 이미지 사실성 측면에서 품질 개선이 관찰되었다. 20B Babeldraw 모델은 최첨단 확산 기반 모델과 비교할 수 있는 7.31의 강력한 제로샷 FID 점수를 달성한다. 놀랍게도 MS-COCO에서 미세 조정한 경우 Babeldraw 모델의 예는 전례 없이 낮은 FID 점수 4.07을 달성했다.
대부분의 태스크는 MS-COCO 벤치마크에 집중되어 있지만 예제 실험에서는 MS-COCO보다 평균 4배 긴 설명이 있는 LN(Localized Narratives) 데이터세트에서도 강력한 제로샷 및 미세 조정 결과를 얻을 수 있음을 보여준다. 이러한 결과는 제안된 모델의 더 긴 설명에 대한 강력한 일반화 기능을 명확하게 보여준다.
따라서, 본 개시물은 텍스트-이미지 생성과 관련하여 복수의 기여를 제공한다. 첫째, 이미지 토크나이저는 2단계 텍스트-이미지 생성 모델의 핵심 요소 중 하나이며 생성된 이미지의 시각적 품질과 직접적인 관련이 있음이 인식된다. 둘째, 정확히 동일한 이미지 토크나이저와 훈련 데이터를 사용하여 단순히 인코더-디코더 크기를 조정하는 것이 텍스트-이미지 생성에 효과적이다. 셋째, BERT를 사용한 텍스트 인코더 사전 학습은 텍스트-이미지 시스템에 대한 자연어 이해를 약간만 돕는다. 텍스트-이미지 생성에서 미세 조정된 텍스트 인코더는 언어 이해 작업에서 더 나쁜 결과를 가져오며, 이는 일반적인 언어 이해와 시각적 기반 언어 이해에 잠재적인 격차가 있음을 시사한다.
본 개시의 시스템 및 방법은 복수의 기술적 효과 및 이점을 제공한다. 한 가지 예로서, 제안된 기술은 특정 태스크(예: 생성적 사전 훈련을 사용한 이미지 인식)에 대해 최신 모델(예: iGPT)과 비슷한 결과를 달성할 수 있지만 더 작은 모델과 더 적은 데이터를 사용한다. 더 적은 데이터로 더 작은 모델을 사용할 수 있으면(비교 가능한 결과를 얻을 수 있음) 프로세서 사용량, 메모리 사용량, 네트워크 대역폭 등과 같은 계산 리소스 소비가 줄어든다. 따라서 제안된 접근 방식은 컴퓨팅 리소스를 절약하고 컴퓨터 기능을 향상시킨다.
또 다른 예로서, 본 개시의 예시적인 구현은 기존 모델에 비해 픽셀 단위 재구성 메트릭, IS(Inception Score) 및 FID(Frechet Inception Distance) 측면에서 우수한 효율성 및 재구성 충실도를 갖는다. 따라서, 본 개시물은 이미지 데이터를 인코딩된 표현으로 인코딩하는 능력의 개선을 나타낸다. 데이터를 인코딩하면 메모리 공간과 네트워크 대역폭이 절약되는 등 다양한 이점이 있다. 본 개시 내용은 이미지를 디코딩된 이미지로 디코딩할 때 경험하는 데이터의 손실을 줄이면서 이러한 이점을 달성하기 위해 이미지를 인코딩하는 시스템을 가능하게 한다.
또 다른 예시적인 기술적 효과 및 이점으로서, 본 개시는 계산 효율성 및 재구성 품질 측면에서 개선된 이미지 양자화기를 제공함으로써 VIM을 통한 개선된 이미지 생성 및 이미지 이해를 제공한다. 효율적인 양자화기는 무작위 확대(random augmentations)가 이미지에 먼저 적용된 다음 입력 토큰으로 이미지 양자화기의 인코더가 적용되는 2단계 훈련(Stage 2 training) 속도를 높일 수 있다. 훈련 속도를 높이면 프로세서 사용량, 메모리 사용량 및/또는 네트워크 대역폭 사용량과 같은 계산 리소스가 절약될 수 있다. 더욱이, 더 나은 재구성 품질을 갖춘 이미지 양자화기는 이미지 이해 태스크에 중요한 픽셀 공간의 원본 이미지에 비해 정보 손실을 잠재적으로 줄일 수 있다. 따라서 이미지 이해 태스크에 대한 컴퓨터 성능이 향상될 수 있다.
도면을 참조하여, 본 발명의 예시적인 실시예가 더 자세히 설명될 것이다.
예시 1단계 기술(Stage 1 Techniques)
도 1은 본 발명의 예시적인 실시예에 따라 이미지의 벡터 양자화를 수행하기 위한 예시적인 기계 학습 모델의 그래픽 다이어그램을 묘사한다.
특히, 도 1에 도시된 바와 같이, 컴퓨팅 시스템은 이미지(14)의 복수의 입력 이미지 패치(12)를 획득할 수 있다.
컴퓨팅 시스템은 잠재 공간에 복수의 이미지 토큰(18)을 생성하기 위해 기계 학습된 이미지 인코더(16)를 사용하여 복수의 입력 이미지 패치(12)를 프로세싱할 수 있다. 복수의 이미지 토큰(18)은 복수의 입력 이미지 패치(12)에 대응할 수 있다. 기계 학습된 이미지 인코더(16)는 복수의 입력 이미지 패치(12)를 프로세싱하여 잠재 공간에 복수의 이미지 토큰(18)을 생성하기 위해 하나 이상의 셀프-어텐션 연산(self-attention operations)을 수행할 수 있다.
컴퓨팅 시스템은 복수의 후보 코드를 포함하는 양자화 코드북(22)에 포함된 복수의 양자화된 코드(20)에 복수의 이미지 토큰(18)을 매핑할 수 있다. 컴퓨팅 시스템은 이미지의 인코딩된 버전으로서 복수의 양자화된 코드(20)를 제공할 수 있다.
또한, 일부 구현에서, 컴퓨팅 시스템(즉, 동일하거나 다른 컴포넌트 컴퓨팅 장치)은 기계 학습된 이미지 디코더(24)로 복수의 양자화된 코드(20)를 프로세싱하여 합성된 이미지(28)를 형성하는 복수의 합성된 이미지 패치(26)를 생성할 수 있다.
컴퓨팅 시스템은 합성된 이미지에 적어도 부분적으로 기초하여 손실 값을 제공하는 손실 함수(30)를 평가할 수 있다. 손실 함수에는 로짓-라플라스(logit-Laplace) 손실 항; L2 손실 항; 지각 손실 항; 및/또는 GAN(generative adversarial network) 손실 항이 포함될 수 있다(예를 들어 GAN 평가는 30으로 구체적으로 설명되어 있지만 다른 평가는 그렇지 않다.).
컴퓨팅 시스템은 손실 함수에 적어도 부분적으로 기초하여 기계 학습된 이미지 인코더(16), 기계 학습된 이미지 디코더(24), 및 복수의 후보 코드(22) 중 하나 이상을 수정할 수 있다.
일부 구현에서, 복수의 이미지 토큰(18)을 복수의 양자화된 코드(20)에 매핑하는 것은 복수의 이미지 토큰(18)을 저차원 공간(lower-dimensional space)으로 프로젝션하는 것, 이미지 토큰(18)을 저차원 공간에 프로젝션한 후, 복수의 이미지 토큰을 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 것을 포함할 수 있다. 양자화된 코드(20)는 디코더(24)에 의해 프로세싱되기 전에 더 높은 차원 공간으로 다시 재프로젝션(re-projected)될 수 있다.
일부 구현에서, 복수의 이미지 토큰(18)을 복수의 양자화된 코드(20)에 매핑하는 것은 코드북(22)의 복수의 후보 코드 및 복수의 이미지 토큰(18) 중 하나 또는 둘 다에 L2 정규화를 적용하는 것, L2 정규화를 적용한 후, 복수의 이미지 토큰(18)을 양자화 코드북(22)에 포함된 복수의 양자화된 코드(20)에 매핑하는 것을 포함할 수 있다.
예시 2단계 기술
도 2는 본 발명의 예시적인 실시예에 따라 이미지의 벡터 양자화를 수행하기 위한 예시적인 기계 학습 모델의 그래픽 다이어그램을 묘사한다.
특히, 도 2에 도시된 바와 같이, 컴퓨팅 시스템은 이미지(214)의 하나 이상의 입력 이미지 패치(212)를 획득할 수 있다.
컴퓨팅 시스템은 잠재 공간에 하나 이상의 이미지 토큰(218)을 생성하기 위해 기계 학습된 이미지 인코더(216)로 하나 이상의 입력 이미지 패치(212)를 프로세싱할 수 있다. 하나 이상의 이미지 토큰(218)은 하나 이상의 입력 이미지 패치(212)에 대응할 수 있다. 기계 학습된 이미지 인코더(216)는 잠재 공간에 하나 이상의 이미지 토큰(218)을 생성하기 위해 하나 이상의 입력 이미지 패치(212)를 프로세싱하기 위해 하나 이상의 셀프-어텐션 연산을 수행할 수 있다. 예를 들어, 기계 학습된 이미지 인코더(216)는 도 1에 표시된 프로세스에 따라 훈련되거나 학습될 수 있다.
컴퓨팅 시스템은 하나 이상의 이미지 토큰(218)을 복수의 후보 코드를 포함하는 양자화 코드북(222)에 포함된 하나 이상의 양자화된 코드(220)에 매핑할 수 있다. 예를 들어, 양자화 코드북(222)은 도 1에 도시된 프로세스에 따라 학습될 수 있다.
또한 일부 구현에서, 컴퓨팅 시스템(즉, 동일하거나 다른 컴포넌트 컴퓨팅 장치)은 하나 이상의 양자화된 코드(220)를 기계 학습된 코드 예측 모델(224)로 프로세싱하여 하나 이상의 양자화된 코드(220)에 적어도 부분적으로 기초하여 양자화 코드북(222)으로부터 복수의 예측 코드(226)를 자동회귀적으로 예측할 수 있다.
컴퓨팅 시스템은 합성된 이미지(232)를 형성하는 복수의 합성된 이미지 패치(230)를 생성하기 위해 기계 학습된 이미지 디코더(228)로 복수의 예측 코드(226)를 프로세싱할 수 있다.
일부 구현 또는 예에서, 컴퓨팅 시스템은 복수의 예측 코드(226)에 기초하여 음의 로그 우도(negative log-likelihood)를 평가하는 코드 예측 손실 함수를 추가로 평가할 수 있다. 컴퓨팅 시스템은 코드 예측 손실 함수에 기초하여 기계 학습된 코드 예측 모델(224)의 하나 이상의 파라미터를 수정할 수 있다. 예를 들어, 코드 예측 모델(224)은 예를 들어 코드 예측 손실 함수를 사용하여 이미지 코퍼스(imagery corpus)에 대한 토큰 분포를 학습하도록 훈련될 수 있다.
일부 구현에서 훈련 및/또는 추론 중에, 기계 학습된 코드 예측 모델(224)은 합성된 이미지의 하나 이상의 원하는 특성(desired characteristics)을 설명하는 보조 컨디셔닝 데이터(auxiliary conditioning data)로 컨디셔닝될 수 있다. 일례로서, 보조 컨디셔닝 데이터는 합성된 이미지(232)의 원하는 클래스를 설명하는 클래스 라벨을 포함할 수 있다. 예를 들어, 도 2에서, 모델(224)은 합성된 이미지(232)가 고양이를 묘사하지만 합성된 이미지(232)가 이미지(214)와 시각적 특성을 공유하도록 [Cat]이라는 라벨로 컨디셔닝된다. 다른 예로서, 보조 컨디셔닝 데이터는 자연어 텍스트 토큰 및/또는 이미지 합성에 대한 사전 정보(prior)를 제공하는 임의의 다른 컨디셔닝 데이터를 포함할 수 있다.
도 2는 이미지 생성 프로세스가 입력 이미지(214)로부터의 패치(들)(212) 및 텍스트 입력(예를 들어, 클래스 라벨) 모두에 대해 컨디셔닝되는 예시적인 접근법을 도시한다. 그러나 일부 구현에서 이미지 생성이 텍스트로만 컨디셔닝될 수 있다. 예를 들어, 도 3은 합성된 이미지(332)의 생성이 "화난 고양이(angry cat)"라는 자연어 입력(334)에 따라 컨디셔닝되는 예를 도시한다. 예를 들어, 자연어 입력(334)은 토큰으로 변환된 후 코드 예측 모델(224)에 입력으로 제공될 수 있다.
본 개시의 일 양태에 따르면, 텍스트 컨디셔닝을 포함하고/하거나 텍스트-이미지 생성 태스크(text-to-image generation task)를 수행하는 일부 구현에서, 코드 예측 모델(224)은 텍스트 입력으로부터 텍스트 임베딩을 생성하는 텍스트 인코더를 포함할 수 있다.
예로서, 도 4는 코드 예측 모델(224)이 텍스트 인코더(402) 및 자동회귀 코드 선택기(404)를 포함하는 예시적인 이미지 생성 접근 방식을 보여준다. 텍스트 인코더(402)는 입력 텍스트(334)를 수신하고 텍스트 임베딩(406)을 생성할 수 있다. 텍스트 임베딩(406)은 자동회귀 코드 선택기(404)에 대한 입력으로서 제공될 수 있다. 예를 들어, 텍스트 임베딩(406)은 자동회귀 코드 선택기(404)에 대한 초기 프롬프트 토큰(initial prompting token)으로 제공될 수 있다.
일부 구현에서, 텍스트 인코더(402) 및 자동회귀 코드 선택기(404) 중 하나 또는 둘 다는 셀프 어텐션을 수행하는 변환기 모델 또는 다른 모델이거나 이를 포함할 수 있다. 일부 구현에서 텍스트 인코더가 (예: 마스크된 언어 모델링 사전 학습 접근 방식, 대조 학습 접근 방식 및/또는 기타 사전 학습 접근 방식을 사용하여) 사전 훈련될 수 있다. 일부 구현에서, 자동회귀 코드 선택기(404) 및 텍스트 인코더(402)의 파라미터는 각각 텍스트와 이미지 쌍을 포함하는 텍스트 및 이미지 훈련 예 세트에 대한 토큰의 분포를 학습하도록 공동으로 (예: 코드 예측 손실 함수을 사용하여) 훈련될 수 있다.
ViT-VQGAN을 사용한 벡터 양자화 이미지의 예
VQVAE(Vector-Quantized Variational AutoEncoder)는 잠재 공간(latent space)이 직선 추정(straight-through estimation)을 통해 엔드투엔드 훈련된(trained end-to-end) 개별 학습 가능한 변수의 행렬인 CNN 기반 자동 인코더이다. VQGAN은 판별기(discriminator)에 의해 생성된 적대적 손실(adversarial loss)을 도입하여 VQVAE를 개선한 모델이다. 여기서는 효율성을 높이고 재구성 품질을 향상시키는 VQGAN의 추가 개선 사항이 제공된다.
비전 변환기(Vision Transformers)를 사용한 VQGAN 예시
이미지를 인코딩하고 재구성하기 위해 VQVAE와 VQGAN에서 모두 사용하는 핵심 네트워크 아키텍처는 CNN이다. VQGAN은 비-로컬 어텐션 블록(non-local attention block) 형태로 변환기와 유사한 요소를 도입하여 더 적은 수의 레이어로 원거리 상호 작용(distant interactions)을 캡처할 수 있다. 본 개시의 예시적인 구현은 CNN 인코더 및 디코더를 ViT(비전 변환기)로 대체함으로써 한 단계 더 접근한다. 충분한 데이터(레이블이 지정되지 않은 이미지 데이터가 많음)가 주어지면 ViT-VQGAN이 컨볼루션에 의해 부과된 귀납적 사전 변수에 의해 덜 제한된다는 것을 알 수 있다. 또한 ViT-VQGAN은 아래 표 1과 같이 가속기에서 더 나은 계산 효율성을 제공하고 더 높은 품질의 재구성을 생성한다.
Architecture Model Size Throughput loss Logit-Laplace loss FID IS
(encoder-decoder) (imgs/sec) (1e-2)
ViT-VQGAN Small-Small 1520 3.34 -2.44 1.99 184.4
CNN-VQGAN 946 3.81 -2.36 2.26 178.7
ViT-VQGAN Base-Base 960 3.09 -2.54 1.55 190.2
CNN-VQGAN 400 3.44 -2.46 1.91 183.4
ViT-VQGAN Small-Large 384 2.88 -2.58 1.28 192.3
표 1: ViT-VQGAN의 예시 구현은 CNN-VQGAN에 비해 더 나은 속도-품질 균형(speed-quality trade-offs)을 달성한다. 그러면 2단계 훈련 속도가 더욱 빨라진다. 프로세싱량(Throughputs)은 동일한 128개의 CloudTPUv4 장치를 사용하여 벤치마킹되었다.
ViT-VQGAN의 예제 인코더는 먼저 8×8 비중첩 이미지 패치를 이미지 토큰으로 매핑한 다음 변환기 블록을 매핑하여 256×256 해상도 이미지를 32×32=1024 토큰 시퀀스로 인코딩한다. 예제 디코더는 역 오퍼레이션(inverse operation)을 수행하여 잠재 변수의 각 이미지 토큰을 다시 8×8 이미지 패치로 매핑하고 이를 256×256 이미지로 재그룹화한다. 일부 구현에서 변환기 블록의 출력에서 중간에 tanh 활성화 계층(tanh activation layer)이 있는 2계층 피드포워드 네트워크(two-layer feed-forward network)를 적용한다. 일부 구현에서 ViT-VQGAN 인코더 또는 디코더의 출력에 활성화가 적용되지 않는다(로짓-라플라스 손실의 평균 예측 제외). 일부 구현에서 로짓-라플라스 손실로 인해 디코더의 평균 예측을 위해 시그모이드 활성화(sigmoid activation)가 적용된다. 이 예제 접근 방식은 눈에 띄는 그리드 아티팩트 없이 고품질 재구성을 생성한다.
예제 코드북 학습
바닐라(Vanilla) VQVAE는 일반적으로 코드북 초기화 불량으로 인해 코드북 사용량이 낮은 문제를 겪는다. 따라서 훈련 중에는 코드의 상당 부분이 거의 사용되지 않거나 작동하지 않는다. 효과적인 코드북 크기의 감소는 1단계 양자화기 훈련에서 더 나쁜 재구성을 초래하고 이미지 합성을 위한 2단계에서 낮은 다양성을 초래한다. 결과적으로 VQGAN은 기본 코드북 크기가 1024인 top-k 및 top-p(nucleus) 샘플링 휴리스틱(sampling heuristics)을 사용하여 이미지 합성에 대한 최상의 결과를 얻는다. 본 개시의 예시적인 구현은 8192의 더 큰 코드북 크기에서도 코드북 사용을 상당히 장려할 수 있는 두 가지 개선점을 포함한다. 이미지 합성 중에 예시 구현에서는 top-k 및 top-p 휴리스틱 없이 온도(temperature) 1.0으로 간단한 샘플링을 수행한다.
벡터 양자화의 훈련 목표 중 하나는 수학식 1과 같이 정의된다.
여기서, 은 정지 기울기 연산자(stop-gradient operator)이고, β는 모든 실험에서 0.25로 설정된 커밋 손실 하이퍼파라미터(commitment loss hyperparameter)이고, 는 코드북 벡터이다. 일부 구현에서, 양자화된 코드북 인덱스는 유클리드 거리(Euclidean distance) 측면에서 입력 특징(input features)()에 가장 가까운 코드북 벡터를 찾아 를 산출함으로써 결정된다.
인수분해된 코드. 본 개시의 일부 예시적인 구현은 코드 인덱스 조회를 위해 인코더의 출력으로부터 저차원 잠재 변수 공간으로의 선형 프로젝션(linear projection)을 포함한다(코드당 768-d 벡터에서 32-d 또는 8-d 벡터로 감소). 이로 인해 코드북 사용량이 즉시 증가한다. 인수분해는 코드 조회 및 코드 임베딩을 분리하는 것으로 볼 수 있으며: 일부 구현 예에서는 저차원 조회 공간(lower-dimensional lookup space)의 입력에서 가장 가까운 변수를 조회한 다음 일치하는 잠재 코드를 고차원 임베딩 공간에 프로젝션한다. 예제 실험에서는 조회 공간의 차원을 256-d에서 32-d로 줄이면 재구성 품질이 지속적으로 향상되는 것을 보여준다.
-정규화된 코드. 일부 예시 구현은 또한 인코딩된 잠재 변수() 및 코드북 잠재 변수()에 정규화를 적용한다. 일부 구현에서 코드북 변수는 정규 분포에서 초기화된다. 모든 잠재 변수를 구(sphere)에 매핑함으로써, -정규화 잠재 변수()의 유클리드 거리는 사이의 두 벡터의 코사인 유사성으로 발전하여 우리 실험에서 표시된 훈련 안정성과 재구성 품질을 더욱 향상시킨다.
ViT-VQGAN 훈련 손실 예시
일부 예시 구현에서는 로짓-라플라스 손실, 손실, VGG 네트워크 기반 지각 손실(perceptual loss), StyleGAN 판별기 아키텍처와 GAN 손실의 조합을 사용한다. 손실 균형 가중치는 하이퍼 파라미터 스윕(hyper-parameter sweep)으로 구성되어 이미지 재구성 품질, 코드북 사용, FID 및 개시 점수(IS: Inception Score)를 최적화할 수 있다. 스윕(sweep) 후, 일부 예시 구현에서는 CelebA-HQ, FFHQ 및 ImageNet을 포함한 모든 데이터 세트에 동일한 훈련 손실 하이퍼 파라미터 세트를 적용한다. 로짓-라플라스 손실(Logit-Laplace loss)은 픽셀 수준의 노이즈가 라플라스 분포라고 가정하는 정규화된 손실로 볼 수 있는 반면, 손실은 노이즈가 가우스 분포라고 가정한다. 우리는 로짓-라플라스 손실이 코드북 사용에 기여하는 반면 손실과 지각 손실은 FID에 크게 기여한다는 것을 발견했다. 기본적으로 사용된 최종 손실 조합은 이다.
VGG 기반 지각 손실에 대한 한 가지 주의 사항은 VGG 네트워크가 지도된 분류 손실(supervised classification loss)로 사전 훈련되어 있으므로 지도(supervision)가 선형 프로브 정확도 측정(for linear-probe accuracy measurement)을 위해 2단계로 누출될 수 있다는 것이다. 따라서 보고된 모든 비지도 학습 결과에 대해 일부 구현 예에서는 ViT-VQGAN 훈련 중 지각 손실을 제외한다. 모든 비컨디셔닝(unconditional) 및 클래스 컨디셔닝된 이미지 합성의 경우 일부 예시 구현에서는 지각 손실로 훈련된 ViT-VQGAN 양자화기를 사용하여 충실도가 높은 재구성을 유도한다.
벡터-양자화된 이미지 모델링의 예
학습된 ViT-VQGAN을 사용하면, 이미지 GPT와 유사하게 래스터 순서(raster order)로 평면화된 개별 잠재 코드 ID로 이미지를 인코딩할 수 있다. 디코더 전용 변환기 모델을 사용하여 이미지 데이터()의 밀도를 수학식 2와 같이 자동회귀적으로 모델링할 수 있으며,
여기서 θ는 학습 가능한 가중치이다. 훈련 목표는 데이터 의 음의 로그 우도(negative log-likelihood)를 최소화하는 것이다.
표 2에는 변환기의 아키텍처 구성(architecture configurations) 예가 요약되어 있다. 일부 예시 구현에서는 먼저 추가 학습 가능한 2D 위치 임베딩(2D positional embedding)을 사용하여 개별 이미지 토큰 ID를 각 위치의 학습 가능한 임베딩 공간에 임베드한다. 두 임베딩 차원은 모두 모델 차원과 동일하다. 일부 예시 구현에서는 전체 시퀀스에 대한 인과적인 어텐션(causal attention)을 사용하여 입력에 변환기 블록 스택을 적용한다. 0.1의 드롭아웃 비율(dropout ratio)은 모든 잔차(residual), 활성화 및 어텐션 출력에 사용될 수 있다. 모든 변환기 블록의 마지막 계층(레이어)에서 일부 구현 예는 추가 계층 정규화를 적용한다.
Model Size #Params #Blocks #Heads Model Dim Hidden Dim Dropout #Tokens
ViT-VQGAN Small 32M 8 8 512 2048 0.0 1024
ViT-VQGAN Base 91M 12 12 768 3072 0.0 1024
ViT-VQGAN Large 599M 32 16 1280 5120 0.0 1024
VIM Base 650M 24 16 1536 6144 0.1 1024
VIM Large 1697M 36 32 2048 8192 0.1 1024
표 2: 1단계 ViT-VQGAN 및 2단계 VIM의 변환기 아키텍처 예.
예시 이미지 합성
사전 훈련된 생성적 변환기 모델(generative Transformer model)을 사용하면 출력 소프트맥스 분포에서 토큰별로 간단히 샘플링하여 비컨디셔닝 이미지 생성(unconditional image generation)을 달성할 수 있다. 정성적, 정량적 결과에 사용되는 모든 시료는 온도 저하 없이 얻을 수 있다. 그런 다음 샘플링된 토큰을 ViT-VQGAN의 디코더에 공급하여 출력 이미지를 디코딩할 수 있다. 예제 기본 단계 1 ViT-VQGAN은 해상도 256×256의 입력 이미지를 코드북 크기 8192의 32×32 잠재 코드로 인코딩하는 반면, 단계 2 변환기는 총 길이 1024의 평면화된 이미지 토큰을 사용한다.
클래스 컨디셔닝된 이미지넷(ImageNet) 생성은 이미지 합성 모델의 성능을 측정하기 위해 널리 사용되는 벤치마크이기도 하다. 일부 예제 구현에서는 이미지 토큰 앞에 클래스 ID 토큰을 추가하여 비컨디셔닝 생성(unconditional generation)을 클래스 컨디셔닝된 생성(class-conditioned generation)으로 확장한다. 변환기 모델 차원과 동일한 임베딩 차원을 사용하여 클래스 ID 토큰 및 이미지 토큰에 대해 별도의 임베딩 레이어를 처음부터 학습할 수 있다. 샘플링 중에 클래스 ID 토큰이 첫 번째 위치에 제공되어 나머지 이미지 토큰을 자동회귀적으로 디코딩할 수 있다.
비지도 학습의 예
이미지 이해 태스크의 경우, 일부 구현 예시에서는 입력의 모든 이미지 토큰을 사전 훈련된 변환기에 공급하고 1024개의 토큰 특성(특징)(token features) 시퀀스를 얻는다. 일부 예시 구현에서는 전체 블록 L에 대한 특정 블록 의 레이어 출력(계층 출력)을 취하고, 토큰 특성 시퀀스(frozen)에 대한 평균을 취하고, 평균 특성(averaged feature)을 프로젝션하는 소프트맥스 레이어(learnable)를 클래스 로짓(class logits)에 삽입한다. 일부 예시 구현에서는 iGPT에서처럼 서로 다른 블록 출력을 연결하는 대신 하나의 특정 변환기 블록 출력만 사용한다. 선형 프로브의 가장 눈에 띄는 특징은 일반적으로 모든 변환기 블록의 중앙 근처에 있는 경우가 많다.
바벨드로우(Babeldraw) 모델 예
바벨드로우의 일부 구현 예는 이미지 토크나이저(토큰화기)와 언어 및 이미지 토큰에 대한 자동회귀 모델로 구성된 2단계 모델이다.
이미지 토크나이저 예시
자동회귀 텍스트-이미지 모델(Autoregressive text-to-image models)은 2D 이미지를 패치 표현의 1D 시퀀스로 선형화하는 일부 형태에 의존한다. 한계는 픽셀일 뿐이지만 이를 위해서는 상대적으로 작은 이미지에도 매우 긴 시퀀스를 모델링해야 한다(예: 256 × 256 이미지는 65536 래스터화된 픽셀로 이어짐). 더 나쁜 것은 이미지의 컨텍스트에서 픽셀의 위치를 통해 알 수 있는 풍부한 표현보다는 입력에 대한 매우 낮은 수준의 표현을 기반으로 한다는 것이다. 많은 연구에서는 개별 변형 자동 인코더를 사용하여 원시 이미지 코퍼스에 대한 이미지 패치의 양자화된 표현을 학습함으로써 앞서 언급한 문제를 해결했다. 잠재 공간에서 모든 값을 취할 수 있는 표현을 학습하는 대신, 전체 잠재 공간에서 학습되고 인덱싱 가능한 위치인 가장 가까운 코드북 엔트리에 패치 임베딩을 스냅하는 시각적 코드북이 학습된다. 이러한 엔트리는 시각적 단어 유형으로 생각할 수 있으며, 주어진 이미지의 패치에 이러한 단어가 나타나는 것은 이미지 토큰이다.
두 번째 단계 모델에 가장 유용하게 사용하려면, 이미지 토크나이저는 (a) 광범위한 이미지에 걸쳐 해당 엔트리의 균형 잡힌 사용을 지원하고 (b) 일련의 시각적 토큰을 고품질 출력 이미지로 재구성하는 것을 지원하는 효과적인 시각적 코드북을 학습해야 한다. 일부 예시적인 구현은 코드북 학습을 개선하는 기술, 즉 훈련 안정성, 재구성 품질 및 코드북 사용에 기여하는 정규화 및 인수분해 코드를 사용하여 두 가지 요구 사항을 모두 해결하는 여기에 설명된 예시인 ViT-VQGAN을 사용한다.
바벨드로우의 이미지 토크나이저의 경우, 일부 구현 예시에서는 위에서 설명한 대로 ViT-VQGAN을 훈련하지만 더 큰 이미지-텍스트 훈련 데이터(예: ImageNet, CelebA-HQ 또는 FFHQ 대신)의 이미지를 사용한다. 일부 예시 구현에서는 먼저 ViT-VQGAN-Small 구성(블록 8개, 헤드 8개, 모델 차원 512 및 은닉 차원 2048)을 훈련하고 코드북에 대한 8192개의 이미지 토큰 클래스를 학습한다. 2단계 인코더-디코더 훈련은 학습된 양자화기의 인코더와 코드북에만 의존한다는 점에 유의한다. 재구성된 이미지의 VA(visual acuity)를 더욱 향상시키기 위해, 일부 구현 예에서는 훈련 후 인코더와 코드북을 동결(freeze)하고 더 큰 크기의 디코더(블록 32개, 헤드 16개, 모델 차원 1280 및 은닉진 차원 5120)로 미세 조정한다. 이미지 토크나이저의 입력과 출력 모두 256 × 256의 해상도를 가질 수 있다.
일부 예시 구현에서는 일부 이미지를 확대할 때 ViT-VQGAN 출력의 픽셀화 패턴(포화 픽셀 값)을 보여준다. 이 문제를 해결하기 위해 일부 구현 예에서는 최종 시그모이드 레이어(final sigmoid layer)를 제거하고 원시 값(raw values)을 RGB 픽셀 값(범위 [0, 1])으로 노출한다. 편리하게도 이 수정 사항은 디코더를 미세 조정하여 이미 훈련된 모델로 핫스왑(hot-swapped)될 수 있다.
또한 256×256 해상도의 이미지가 대부분의 내용과 구조, 질감을 담아내지만, 512 × 512 또는 1024 × 1024와 같은 고해상도 이미지를 사용하면 시각적으로 더 좋다. 이를 위해 일부 구현 예에서는 이미지 토크나이저 위에 간단한 초해상도 모듈을 활용한다. 잔차 연결(residual connections)이 있는 누적 컨벌루션 레이어를 초해상도 네트워크 모듈로 사용할 수 있다. ViT-VQGAN과 동일한 손실(지각 손실, StyleGAN 손실 및 L2 손실)을 사용하여 재구성된 이미지를 고해상도 재구성 이미지로 매핑하는 방법을 학습할 수 있다. 여기서 확산 모델은 텍스트 입력에 대한 컨디셔닝하거나 컨디셔닝하지 않고 반복적 개선 초해상도 모듈(iterative refinement super-resolution modules)로 사용할 수도 있다.
인코더-디코더를 사용한 텍스트-이미지(Text-to-Image) 예
일부 예시적인 구현에서, 표준 인코더-디코더 변환기 모델은 텍스트-이미지(text-to-image)를 시퀀스-시퀀스(sequence-to-sequence) 모델링 문제로 프로세싱하여 두 번째 단계에서 훈련된다. 모델은 텍스트를 입력으로 사용할 수 있으며 1단계 이미지 토크나이저에서 생성된 이미지 잠재 코드의 다음 토큰 예측을 사용하여 학습된다. 추론 시, 모델은 자동회귀 방식으로 이미지 토큰을 샘플링할 수 있으며, 이는 나중에 이전에 학습된 이미지 토큰화기(토크나이저)의 디코더를 사용하여 픽셀로 디코딩된다.
텍스트 프롬프트(Text prompts)는 최대 길이 128까지 잘릴 수 있으며(truncated), 해상도 256x256의 이미지는 길이 1024(32 × 32)의 토큰으로 인코딩될 수 있다. 일부 예시 구현에서는 교차 엔트로피 손실로 훈련하고 일정하게 감쇠하는 2차 순간 인자(second-moment factor)(beta1 = 0.9, beta2 = 0.96)가 있는 int8-양자화 아다팩터 옵티마이저(int8-quantized Adafactor optimizer)를 사용한다. 데이터 유형은 bfloat16 또는 어텐션 프로젝션 및 피드포워드 변환기 레이어로 캐스팅될 수 있으며, 모든 레이어 표준 및 모델 출력은 float32로 유지될 수 있다. 모든 모델은 컨버전 형태의 "Masked Sparse Attention"을 사용할 수 있으며, 일부 예시 구현에서는 3억 5천만에서 200억 개의 파라미터 범위에 있는 4가지 크기 변형을 훈련한다.
기존 2단계 텍스트-이미지 생성 모델의 대부분은 디코더 전용 모델이다. 3억 5천만 ~ 7억 5천만 파라미터 규모의 초기 탐색에서 바벨드로우의 인코더-디코더 변형은 훈련 손실 및 텍스트-이미지 생성 품질 측면에서 디코더 전용 변형보다 성능이 뛰어난 것으로 나타났다.
예제 텍스트 인코더 사전 훈련
인코더-디코더 아키텍처는 이미지 토큰 생성에서 텍스트 인코딩을 분리한다. 따라서 일부 구현 예에는 사전 학습된 텍스트 인코더를 사용하여 모델을 웜 스타트(warm-start)하는 간단한 방법도 포함되어 있다. 직관적으로, 시각적 합성을 위한 우수한 텍스트 인코더는 시각적 기반 프롬프트 외에도 일반적인 언어 이해가 가능해야 한다. 일부 예시 구현에서는 BERT 사전 학습 목표가 있는 "Colossal Clean Crawled Corpus"(C4)와 대조 학습 목표가 있는 이미지-텍스트 데이터세트라는 두 개의 데이터 세트에서 텍스트 인코더를 사전 학습한다. 사전 훈련 후, 일부 예시 구현에서는 8192개의 이산 이미지 토큰 어휘에 대한 소프트맥스 교차 엔트로피 손실을 사용하여 텍스트-이미지 생성을 위한 인코더와 디코더 모두를 계속 훈련한다.
분류기가 없는 안내(Classifier-Free Guidance) 및 순위 재지정(Reranking) 예시
분류기가 없는 안내는 일반적으로 사전 훈련된 분류기가 없는 확산 모델의 샘플 품질을 향상시키는 컨텍스트에서 사용된다. 이 설정에서 생성 모델 G는 비컨디셔닝 생성 G(z)(여기서 z는 랜덤 노이즈를 나타냄)와 컨디셔닝 생성 G(z, c)를 수행할 수 있도록 훈련되었다(여기서 c는 우리의 경우 언어 설명과 같은 일부 조건을 나타낸다.). 이는 단순히 특정 확률로 컨디셔닝 벡터를 무작위로 삭제(마스킹 아웃하거나 학습된 임베딩으로 전환)하는 방식으로 구현된다. 그런 다음 추론 과정에서, 비컨디셔닝 예측과 컨디셔닝 예측의 선형 조합을 사용하여 수학식 3과 같이 출력 I의 샘플링이 수행되며,
여기서 λ는 분류기가 없는 안내(Classifier-free guidance)의 가중치를 나타내는 하이퍼파라미터이다. 직관적으로 이는 컨디셔닝 우도(조건부 우도)를 증가시키면서 샘플의 비컨디셔닝 우도(무조건 우도)를 감소시키며, 이는 조건(컨디션)에 대해 생성된 샘플의 정렬을 개선하는 것으로 볼 수 있다.
분류기가 없는 안내는 텍스트-이미지 생성을 위한 자동회귀 모델의 컨텍스트에서 유사하게 적용되어 큰 효과를 냈다. 한 가지 예시 접근 방식은 텍스트 프롬프트를 패딩된 토큰(padded tokens)으로 무작위로 교체하면서 모델을 미세 조정하는 것이다. 추론 중에, 비컨디셔닝 모델(unconditional model)(패딩 토큰(padding tokens)에 따라 컨디셔닝됨)과 원본 텍스트 프롬프트에 따라 컨디셔닝된 모델에서 샘플링된 로짓의 선형 조합이 사용된다.
일부 예제 구현에서는 바벨드로우에서 분류기가 없는 안내를 적용했으며 특히 까다로운 텍스트 프롬프트에서 출력 품질에 긍정적인 영향을 미친다는 사실을 발견했다. 일부 예시 구현에서는 100,000단계에 대해 모델을 미세 조정하여 텍스트 프롬프트를 패딩 토큰으로 무작위로 대체한다. 샘플링 중에 일부 예제 구현에서는 무조건(비컨디셔닝) 로짓과 조건부(컨디셔닝) 로짓의 선형 조합에서 로짓을 샘플링한다.
일부 구현 예에서는 텍스트 프롬프트당 16개의 이미지를 샘플링한다. 각 출력에 대해 일부 예시 구현에서는 CoCa(Contrastive Captioners 모델)의 이미지 및 텍스트 임베딩의 정렬 점수를 기반으로 순위를 다시 매긴다. CoCa 기본 크기 모델은 동일한 데이터세트에서 학습될 수 있다. 텍스트-이미지 생성 샘플링에서는 작은 이미지 세트에 대해 순위를 다시 매기는 것이 계산적으로 저렴하다는 점은 주목할 만한다.
확장 접근 방식의 예
일부 예시 구현에서는 GSPMD 및 Lingvo 프레임워크를 사용하여 훈련 및 추론을 위해 CloudTPUv4 하드웨어에서 모델을 확장(scale)한다. GSPMD는 TPU 클러스터를 단일 가상 장치로 프로세싱하고 몇 개의 텐서에 샤딩 주석(sharding annotations)을 사용하여 자동으로 데이터를 배포하고 수천 개의 장치에서 계산하도록 컴파일러에 지시할 수 있는 XLA 컴파일러 기반 모델 파티셔닝 시스템(XLA compiler-based model partitioning system)이다.
훈련(Training). 350M 및 750M 모델 모두의 경우 일부 구현 예에서는 데이터 병렬처리를 사용하여 모델을 훈련한다. 3B 모델의 경우, 일부 구현 예에서는 4방향 계층 내 모델 병렬 처리(4-way in-layer model parallelism)와 128방향 데이터 병렬 처리를 사용한다. 각 텐서에서 단일 차원을 분할하면 3B 모델을 확장하는 데 충분하다. 모델 가중치는 피드포워드 은닉 차원과 어텐션 헤드 수 차원으로 분할될 수 있으며; 어텐션 레이어(계층) 및 피드포워드의 내부 활성화 텐서는 은닉 및 헤드 차원으로 분할될 수도 있지만 "Megatron-LM"과의 차이점은 일부 예시 구현에서는 피드포워드 및 어텐션 레이어의 출력 활성화도 다른 차원(은닉/헤드 차원이 없음)에서 완전히 분할한다는 점이다. 이 전략을 사용하면 "AllReduce" 대신 "ReduceScatter" 및 "AllGather" 통신 패턴이 발생하여 최대 활성화 메모리가 크게 줄어든다.
일례로서, 도 6은 본 발명의 예시적인 실시예에 따른 스케일 모델 훈련에 대한 예시적인 접근 방식의 그래픽 다이어그램을 묘사한다. 특히, 도 6은 예제 3B 모델 훈련을 확장(스케일)하기 위해 완전히 분할된 활성화를 갖춘 4방향 계층 내 모델 병렬처리(4-way in-layer model parallelism)를 보여준다. 도 6은 단순화된 변환기 피드포워드 계층(시퀀스 차원 생략)을 보여주며, 각 음영은 한 장치의 데이터를 나타낸다. 일부 구현 예에서는 128방향 데이터 병렬처리를 추가로 사용한다.
20B 모델의 한 가지 예에는 16개의 인코더 레이어(계층)와 64개의 디코더 레이어가 있다. 각 레이어의 가중치 크기는 중간 정도(moderate)(매우 넓지 않음)이므로 파이프라인 병렬처리가 확장(스케일)을 위한 좋은 옵션이 된다. 일반 파이프라이닝 래퍼 계층(pipelining wrapper layer)이 구현되어 예시 구현에서 단일 단계 프로그램을 지정할 수 있으며, 이 프로그램은 나중에 자동으로 다단계 파이프라이닝 프로그램으로 변환되며; 래퍼 레이어(계층)는 벡터화 및 이동 버퍼를 사용하여 파이프라이닝을 텐서 파티셔닝 문제(tensor partitioning problem)로 줄이므로 모든 하위 수준 인프라를 파이프라이닝에 재사용할 수 있다. GSPMD 파이프라이닝을 채택하면, 1) 예제 구현을 통해 모델의 서브컴포넌트 내에서 파이프라인을 편리하게 구성할 수 있으므로 인코더-디코더 모델의 전반적인 복잡성이 단순화되고, 2) 파이프라이닝은 벡터화된 프로그램에서 텐서 파티셔닝으로 구현되므로 예제 구현에서는 변환기 계층 외부의 다른 유형의 병렬처리(병렬화)에 동일한 장치 세트를 재사용할 수 있다는 두 가지 추가 이점이 있다.
일례로서, 도 7은 본 개시의 예시적인 실시예에 따른 예시적인 모델 병렬처리(병렬화) 접근법의 그래픽 다이어그램을 묘사한다. 특히, 도 7은 예시 20B 모델 훈련을 확장(스케일)하기 위한 예시 16단계(16-stage) GSPMD 파이프라인을 보여준다. 도 7은 16개 장치가 양자화기, 임베딩 및 소프트맥스 계층에서 데이터 병렬처리에 사용되지만 인코더 및 디코더 계층에서는 파이프라인용으로 용도가 변경되는 방식을 보여준다. 각 음영은 하나의 장치에 할당된 데이터 또는 레이어(계층)를 나타낸다. 디코더는 파이프라인 버블 비율(pipeline bubble ratio)을 더욱 줄이기 위해 4라운드 순환 일정(4-round circular schedule)을 사용한다. 또한 예시 구현에서는 모든 계층에 대해 64방향 데이터 병렬처리를 추가로 사용한다.
일부 예시 구현에서는 각각 16단계로 구성된 별도의 인코더 및 디코더 파이프라인을 갖도록 모델을 구성한다. 일부 예시 구현에서는 훈련 속도를 높이기 위해 파이프라인 외에도 64방향 데이터 병렬처리를 사용한다. 그러나 이는 코어당 배치 크기(batch size)를 작게 만들어 과도한 파이프라인 버블이라는 추가적인 문제를 노출시킨다. 파이프라인 버블의 비율을 줄이기 위해, 일부 구현 예시에서는 디코더 파이프라인의 순환 일정을 조정(adapt)하며, 여기서 각 단계의 4개 레이어는 라운드 로빈 순서(round-robin order)로 실행된다. 인코더 및 디코더 외부의 일부 예시 구현에서는 임베딩, 소프트맥스 및 이미지 토크나이저 레이어에 대한 파이프라인 대신 동일한 장치 세트를 사용하여 데이터 병렬처리를 수행한다.
훈련 중에, 아다팩터 옵티마이저(Adafactor optimizer)를 사용하여 beta1 = 0.9, beta2 = 0.96 및 분리된 가중치 감소 값 4.5e-2로 메모리를 절약할 수 있다. 옵티마이저 슬롯 변수의 첫 번째 모멘트(moments)는 float32에서 int8로 추가로 양자화된다. 일부 예시 구현에서는 인코더와 디코더 모두의 모든 모델에 대해 기본 드롭아웃 비율 0.1을 사용한다. 드롭아웃 레이어의 결정론적 버전을 20B 모델에서 사용하여 모델 파이프라인을 활성화할 수 있다. 일부 구현 예에서는 기본 학습 속도 4.5e-5와 준비 단계가 5,000개인 지수 학습 속도 일정(exponential learning rate schedule)을 사용한다. 지수 감쇠는 훈련 단계 85,000에서 시작하여 총 450,000단계와 최종 비율 0.025이다. 일부 예시 구현에서는 장치 메모리를 절약하기 위해 모델 가중치의 지수 이동 평균을 사용하지 않는다. 텍스트 인코딩의 경우 일부 예시 구현에서는 훈련 데이터의 서브세트에 대해 어휘 크기가 16,000인 문장 조각 모델(sentence-piece model)을 구축한다. Conv-모양(Conv-shaped)의 스파스 어텐션(sparse attention)은 디코더 변환기에 사용될 수 있다. 일부 예시 구현에서는 특히 처음에 훈련을 안정화하기 위해 기울기 표준(그래디언트 노름)(gradient norm)을 4.0 값으로 추가로 클립한다(clip ). 인코더와 디코더의 출력에서 일부 예시 구현은 추가 레이어 정규화 레이어(layer normalization layer)를 적용한다.
추론. 추론 최적화의 주요 목표 중 하나는 소규모 배치 이미지 생성 속도를 높이는 것이다. 일부 구현 예에서는 3B 및 20B 모델 모두에 대해 계층 내 모델 병렬처리(in-layer model parallelism)를 선택한다. 훈련과는 반대로, 일부 예시 구현에서는 피드포워드에 대한 출력 활성화와 추론을 위한 어텐션 레이어를 완전히 분할하지 않으며, 이는 1) 자동회귀 디코딩의 각 단계가 훨씬 더 작은 텐서를 생성하고 (기록하는 시점에서) "AllReduce"가 작은 데이터에서 더 나은 성능을 발휘하고, 2) 역방향 전달이 없는 추론 중에는 활성화 메모리가 문제가 되지 않기 때문이다.
예시적인 장치 및 시스템
도 8a는 본 개시의 예시적인 실시예에 따른 예시적인 컴퓨팅 시스템(100)의 블록도를 도시한다. 시스템(100)은 네트워크(180)를 통해 통신 가능하게 연결된 사용자 컴퓨팅 장치(102), 서버 컴퓨팅 시스템(130) 및 훈련 컴퓨팅 시스템(150)을 포함한다.
사용자 컴퓨팅 장치(102)는 예를 들어, 개인용 컴퓨팅 장치(예: 랩탑 또는 데스크탑), 모바일 컴퓨팅 장치(예: 스마트폰 또는 태블릿), 게임 콘솔 또는 제어기, 웨어러블 컴퓨팅 장치, 내장형 컴퓨팅 장치, 또는 다른 유형의 컴퓨팅 장치와 같은 임의의 유형의 컴퓨팅 장치일 수 있다.
사용자 컴퓨팅 장치(102)는 하나 이상의 프로세서(112) 및 메모리(114)를 포함한다. 하나 이상의 프로세서(112)는 임의의 적합한 프로세싱 장치(예를 들어, 프로세서 코어, 마이크로프로세서, ASIC, FPGA, 제어기, 마이크로제어기 등)일 수 있으며, 하나의 프로세서일 수도 있고 작동 가능하게 연결된 복수의 프로세서일 수도 있다. 메모리(114)는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 장치, 자기 디스크 등과 같은 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체 및 이들의 조합을 포함할 수 있다. 메모리(114)는 사용자 컴퓨팅 장치(102)가 동작을 수행하게 하기 위해 프로세서(112)에 의해 실행되는 데이터(116) 및 명령어(118)를 저장할 수 있다.
일부 구현에서, 사용자 컴퓨팅 장치(102)는 하나 이상의 기계 학습 모델(120)을 저장하거나 포함할 수 있다. 예를 들어, 기계 학습 모델(120)은 신경망(예: 심층 신경망)과 같은 다양한 기계 학습 모델 또는 비선형 모델 및/또는 선형 모델을 포함한 다른 유형의 기계 학습 모델이거나 이를 포함할 수 있다. 신경망에는 피드포워드 신경망, 순환 신경망(예: 장단기 기억 순환 신경망), 컨벌루션 신경망 또는 기타 형태의 신경망이 포함될 수 있다. 기계 학습 모델의 일부 예는 셀프-어텐션과 같은 어텐션 메커니즘을 활용할 수 있다. 예를 들어, 기계 학습 모델의 일부 예시에는 다중 헤드 셀프-어텐션 모델(예: 변환기 모델)이 포함될 수 있다. 예시적인 기계 학습 모델(120)은 도 1과 2를 참조하여 설명된다.
일부 구현에서, 하나 이상의 기계 학습 모델(120)은 네트워크(180)를 통해 서버 컴퓨팅 시스템(130)으로부터 수신되고, 사용자 컴퓨팅 장치 메모리(114)에 저장된 후, 하나 이상의 프로세서(112)에 의해 사용되거나 구현될 수 있다. 일부 구현에서, 사용자 컴퓨팅 장치(102)는 단일 기계 학습 모델(120)의 다중 병렬 인스턴스를 구현할 수 있다(예: 여러 이미지 인스턴스에 걸쳐 병렬 이미지 양자화를 수행하려는 경우).
추가적으로 또는 대안적으로, 하나 이상의 기계 학습 모델(140)은 클라이언트-서버 관계에 따라 사용자 컴퓨팅 장치(102)와 통신하는 서버 컴퓨팅 시스템(130)에 포함되거나 저장되고 구현될 수 있다. 예를 들어, 기계 학습 모델(140)은 서버 컴퓨팅 시스템(140)에 의해 웹 서비스(예를 들어, 이미지 양자화, 이해 및/또는 생성 서비스)의 일부로 구현될 수 있다. 따라서, 하나 이상의 모델(120)은 사용자 컴퓨팅 장치(102)에 저장되고 구현될 수 있고/있거나 하나 이상의 모델(140)은 서버 컴퓨팅 시스템(130)에 저장되고 구현될 수 있다.
사용자 컴퓨팅 장치(102)는 또한 사용자 입력을 수신하는 하나 이상의 사용자 입력 컴포넌트(122)를 포함할 수 있다. 예를 들어, 사용자 입력 컴포넌트(122)는 사용자 입력 객체(예를 들어, 손가락 또는 스타일러스)의 터치에 민감한 터치 감지 컴포넌트(예를 들어, 터치 감지 디스플레이 스크린 또는 터치 패드)일 수 있다. 터치 감지 컴포넌트는 가상 키보드를 구현하는 역할을 할 수 있다. 다른 예시적인 사용자 입력 컴포넌트에는 마이크로폰, 기존 키보드 또는 사용자가 사용자 입력을 제공할 수 있는 기타 수단이 포함된다.
서버 컴퓨팅 시스템(130)은 하나 이상의 프로세서(132) 및 메모리(134)를 포함한다. 하나 이상의 프로세서(132)는 임의의 적합한 프로세싱 장치(예를 들어, 프로세서 코어, 마이크로프로세서, ASIC, FPGA, 제어기, 마이크로제어기 등)일 수 있으며, 하나의 프로세서일 수도 있고 작동 가능하게 연결된 복수의 프로세서일 수도 있다. 메모리(134)는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 장치, 자기 디스크 등과 같은 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체 및 이들의 조합을 포함할 수 있다. 메모리(134)는 서버 컴퓨팅 시스템(130)이 동작을 수행하게 하기 위해 프로세서(132)에 의해 실행되는 데이터(136) 및 명령어(138)를 저장할 수 있다.
일부 구현에서, 서버 컴퓨팅 시스템(130)은 하나 이상의 서버 컴퓨팅 장치를 포함하거나 이에 의해 구현된다. 서버 컴퓨팅 시스템(130)이 복수의 서버 컴퓨팅 장치를 포함하는 경우, 그러한 서버 컴퓨팅 장치는 순차 컴퓨팅 아키텍처, 병렬 컴퓨팅 아키텍처, 또는 이들의 일부 조합에 따라 동작할 수 있다.
전술한 바와 같이, 서버 컴퓨팅 시스템(130)은 하나 이상의 기계 학습 모델(140)을 저장하거나 포함할 수 있다. 예를 들어, 모델(140)은 다양한 기계 학습 모델이거나 이를 포함할 수 있다. 기계 학습 모델의 예로는 신경망 또는 기타 다층 비선형 모델이 있다. 신경망의 예로는 피드포워드 신경망, 심층 신경망, 순환 신경망 및 컨볼루션 신경망이 있다. 기계 학습 모델의 일부 예는 셀프-어텐션과 같은 어텐션 메커니즘을 활용할 수 있다. 예를 들어, 기계 학습 모델의 일부 예시에는 다중 헤드 셀프-어텐션 모델(예: 변환기 모델)이 포함될 수 있다. 예시적인 모델(140)은 도 1 및 2를 참조하여 설명된다.
사용자 컴퓨팅 장치(102) 및/또는 서버 컴퓨팅 시스템(130)은 네트워크(180)를 통해 통신 가능하게 결합된 훈련 컴퓨팅 시스템(150)과의 상호작용을 통해 모델(120 및/또는 140)을 훈련할 수 있다. 훈련 컴퓨팅 시스템(150)은 서버 컴퓨팅 시스템(130)과 별개일 수 있거나 서버 컴퓨팅 시스템(130)의 일부일 수 있다.
훈련 컴퓨팅 시스템(150)은 하나 이상의 프로세서(152)와 메모리(154)를 포함한다. 하나 이상의 프로세서(152)는 임의의 적합한 프로세싱 장치(예를 들어, 프로세서 코어, 마이크로프로세서, ASIC, FPGA, 제어기, 마이크로제어기 등)일 수 있으며, 하나의 프로세서일 수도 있고 작동 가능하게 연결된 복수의 프로세서일 수도 있다. 메모리(154)는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 장치, 자기 디스크 등과 같은 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체 및 이들의 조합을 포함할 수 있다. 메모리(154)는 훈련 컴퓨팅 시스템(150)이 동작을 수행하게 하기 위해 프로세서(152)에 의해 실행되는 데이터(156) 및 명령어(158)를 저장할 수 있다. 일부 구현에서, 훈련 컴퓨팅 시스템(150)은 하나 이상의 서버 컴퓨팅 장치를 포함하거나 이에 의해 구현된다.
훈련 컴퓨팅 시스템(150)은 예를 들어 오류의 역전파와 같은, 다양한 훈련 또는 학습 기술을 사용하여 사용자 컴퓨팅 장치(102) 및/또는 서버 컴퓨팅 시스템(130)에 저장된 기계 학습 모델(120 및/또는 140)을 훈련하는 모델 훈련기(트레이너)(160)를 포함할 수 있다. 예를 들어, 손실 함수는 모델을 통해 역전파되어 모델의 하나 이상의 파라미터를 업데이트할 수 있다(예: 손실 함수의 기울기를 기반으로). 평균 제곱 오차, 우도 손실, 교차 엔트로피 손실, 힌지 손실 및/또는 다양한 기타 손실 함수와 같은 다양한 손실 함수가 사용될 수 있다. 경사하강법(Gradient descent techniques)을 사용하면 여러 번의 훈련 반복을 통해 파라미터를 반복적으로 업데이트할 수 있다.
일부 구현에서, 오류의 역전파를 수행하는 것은 시간에 따른 절단된(truncated) 역전파를 수행하는 것을 포함할 수 있다. 모델 훈련기(160)는 훈련되는 모델의 일반화 능력을 향상시키기 위해 복수의 일반화 기술(가령, 가중치 감소, 드롭아웃 등)을 수행할 수 있다.
특히, 모델 훈련기(트레이너)(160)는 훈련 데이터 세트(162)에 기초하여 기계 학습 모델(120 및/또는 140)을 훈련할 수 있다. 훈련 데이터(162)는 예를 들어 비지도 및/또는 지도 훈련 이미지(supervised training images)를 포함할 수 있다.
일부 구현에서, 사용자가 동의를 제공한 경우, 훈련 예는 사용자 컴퓨팅 장치(102)에 의해 제공될 수 있다. 따라서, 이러한 구현에서, 사용자 컴퓨팅 장치(102)에 제공되는 모델(120)은 사용자 컴퓨팅 장치(102)로부터 수신된 사용자 특정 데이터에 대해 훈련 컴퓨팅 시스템(150)에 의해 훈련될 수 있다. 어떤 경우에는 이 프로세스를 모델 개인화라고 할 수 있다.
모델 훈련기(160)는 원하는 기능을 제공하는 데 활용되는 컴퓨터 로직을 포함한다. 모델 훈련기(160)는 하드웨어, 펌웨어, 및/또는 범용 프로세서를 제어하는 소프트웨어로 구현될 수 있다. 예를 들어, 일부 구현에서, 모델 훈련기(160)는 저장 장치에 저장되고 메모리에 로드되며 하나 이상의 프로세서에 의해 실행되는 프로그램 파일을 포함한다. 다른 구현예에서, 모델 훈련기(160)는 RAM, 하드 디스크, 광학 또는 자기 매체와 같은 유형의 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 컴퓨터 실행 가능 명령어 세트를 포함한다.
네트워크(180)는 근거리 통신망(예를 들어, 인트라넷), 광역 네트워크(예를 들어, 인터넷), 또는 이들의 일부 조합과 같은 임의의 유형의 통신 네트워크일 수 있으며 임의의 수의 유선 또는 무선 링크를 포함할 수 있다. 일반적으로 네트워크(180)를 통한 통신은 다양한 통신 프로토콜(예: TCP/IP, HTTP, SMTP, FTP), 인코딩 또는 형식(예: HTML, XML) 및/또는 보호 체계(예: VPN, 보안 HTTP, SSL)를 사용하여, 모든 유형의 유선 및/또는 무선 연결을 통해 수행될 수 있다.
본 명세서에 설명된 기계 학습 모델은 다양한 태스크, 애플리케이션 및/또는 사용 사례에서 사용될 수 있다.
일부 구현에서, 본 개시의 기계 학습 모델(들)에 대한 입력은 이미지 데이터일 수 있다. 기계 학습 모델은 이미지 데이터를 프로세싱하여 출력을 생성할 수 있다. 예를 들어, 기계 학습 모델은 이미지 데이터를 프로세싱하여 이미지 인식 출력(예: 이미지 데이터의 인식, 이미지 데이터의 잠재 임베딩, 이미지 데이터의 인코딩된 표현, 이미지 데이터의 해시 등)을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 이미지 데이터를 프로세싱하여 이미지 분할 출력을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 이미지 데이터를 프로세싱하여 이미지 분류 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 이미지 데이터 수정 출력(예: 이미지 데이터 변경 등)을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 인코딩된 이미지 데이터 출력(예: 이미지 데이터의 인코딩 및/또는 압축된 표현 등)을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 이미지 데이터를 프로세싱하여 확대된(upscaled) 이미지 데이터 출력을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 이미지 데이터를 프로세싱하여 예측 출력을 생성할 수 있다.
일부 구현에서, 본 개시의 기계 학습 모델(들)에 대한 입력은 잠재 인코딩 데이터(예를 들어, 입력의 잠재 공간 표현 등)일 수 있다. 기계 학습 모델은 잠재 인코딩 데이터를 프로세싱하여 출력을 생성할 수 있다. 예를 들어, 기계 학습 모델은 잠재 인코딩 데이터를 프로세싱하여 인식 출력을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 잠재 인코딩 데이터를 프로세싱하여 재구성 출력을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 잠재 인코딩 데이터를 프로세싱하여 검색 출력을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 잠재 인코딩 데이터(the latent encoding data)를 프로세싱하여 재클러스터링 출력을 생성할 수 있다. 또 다른 예로, 기계 학습 모델은 잠재 인코딩 데이터를 프로세싱하여 예측 출력을 생성할 수 있다.
일부 경우에, 기계 학습 모델(들)은 신뢰할 수 있는 및/또는 효율적인 전송 또는 저장(및/또는 해당 디코딩)을 위해 입력 데이터를 인코딩하는 것을 포함하는 태스크를 수행하도록 구성될 수 있다. 예를 들어 태스크는 오디오 압축 태스크일 수 있다. 입력은 오디오 데이터를 포함할 수 있고 출력은 압축된 오디오 데이터를 포함할 수 있다. 다른 예에서, 입력은 시각적 데이터(visual data)(예: 하나 이상의 이미지 또는 비디오)를 포함하고, 출력은 압축된 시각적 데이터를 포함하며, 태스크는 시각적 데이터 압축 태스크이다. 다른 예에서, 태스크는 입력 데이터(예를 들어 입력 오디오 또는 시각적 데이터)에 대한 임베딩을 생성하는 것을 포함할 수 있다.
일부 경우에, 입력에 시각적 데이터가 포함되고 태스크가 컴퓨터 비전 태스크인 경우도 있다. 경우에 따라 입력에는 하나 이상의 이미지에 대한 픽셀 데이터가 포함되며 태스크는 이미지 프로세싱 태스크이다. 예를 들어 이미지 프로세싱 태스크는 이미지 분류일 수 있으며, 여기서 출력은 점수 세트이며, 각 점수는 서로 다른 객체 클래스에 해당하고 하나 이상의 이미지가 객체 클래스에 속하는 객체를 묘사할 가능성을 나타낸다. 이미지 프로세싱 태스크는 이미지 프로세싱 출력이 하나 이상의 이미지에서 하나 이상의 영역을 식별하고, 각 영역에 대해 해당 영역이 관심 대상을 묘사할 가능성(우도)을 식별하는 객체 감지(검출)일 수 있다. 또 다른 예로 이미지 프로세싱 태스크는 이미지 분할(image Segmentation)이 될 수 있는데, 이미지 프로세싱 출력은 하나 이상의 이미지의 각 픽셀에 대해 사전 결정된 카테고리 세트의 각 카테고리에 대한 각각의 우도를 정의한다. 예를 들어, 카테고리 세트는 전경 및 배경일 수 있다. 또 다른 예로, 카테고리 세트는 객체 클래스일 수 있다. 또 다른 예로 이미지 프로세싱 태스크는 깊이 추정이 될 수 있는데, 이미지 프로세싱 출력은 하나 이상의 이미지의 각 픽셀에 대해 각각의 깊이 값을 정의한다. 또 다른 예로, 이미지 프로세싱 태스크는 움직임 추정(Motion Estimation)이 될 수 있으며, 여기서 네트워크 입력은 여러 이미지를 포함하고 이미지 프로세싱 출력은 입력 이미지 중 하나의 각 픽셀에 대해 네트워크 입력의 이미지 사이의 픽셀에 묘사된 장면의 모션을 정의한다.
도 8a는 본 개시 내용을 구현하는 데 사용될 수 있는 하나의 예시적인 컴퓨팅 시스템을 도시한다. 다른 컴퓨팅 시스템도 사용할 수 있다. 예를 들어, 일부 구현에서, 사용자 컴퓨팅 장치(102)는 모델 훈련기(160) 및 훈련 데이터세트(162)를 포함할 수 있다. 그러한 구현에서, 모델(120)은 사용자 컴퓨팅 장치(102)에서 로컬로 훈련되고 사용될 수 있다. 그러한 구현 중 일부에서, 사용자 컴퓨팅 장치(102)는 사용자 특정 데이터에 기초하여 모델(120)을 개인화하기 위해 모델 훈련기(160)를 구현할 수 있다.
도 8b는 본 개시 내용의 예시적인 실시예에 따라 수행하는 예시적인 컴퓨팅 장치(10)의 블록도를 도시한다. 컴퓨팅 장치(10)는 사용자 컴퓨팅 장치 또는 서버 컴퓨팅 장치일 수 있다.
컴퓨팅 장치(10)는 복수의 애플리케이션(applications)(예를 들어, 애플리케이션 1 내지 N)을 포함한다. 각 애플리케이션에는 자체 기계 학습 라이브러리(machine learning library)와 기계 학습 모델(machine-learned model)이 포함되어 있다. 예를 들어 각 애플리케이션에는 기계 학습 모델이 포함될 수 있다. 예시적인 애플리케이션에는 문자 메시지 애플리케이션, 이메일 애플리케이션, 딕테이션(dictation) 애플리케이션, 가상 키보드 애플리케이션, 브라우저 애플리케이션 등이 포함된다.
도 8b에 도시된 바와 같이, 각각의 애플리케이션은 예를 들어 하나 이상의 센서, 컨텍스트 관리자, 장치 상태 컴포넌트 및/또는 추가 컴포넌트와 같은 컴퓨팅 장치의 복수의 다른 컴포넌트와 통신할 수 있다. 일부 구현에서 각 애플리케이션은 API(예: 공개 API)를 사용하여 각 장치 컴포넌트와 통신할 수 있다. 일부 구현에서 각 애플리케이션에서 사용하는 API가 해당 애플리케이션에만 적용된다.
도 8c는 본 개시의 예시적인 실시예에 따라 수행하는 예시적인 컴퓨팅 장치(50)의 블록도를 도시한다. 컴퓨팅 장치(50)는 사용자 컴퓨팅 장치 또는 서버 컴퓨팅 장치일 수 있다.
컴퓨팅 장치(50)는 복수의 애플리케이션(예를 들어, 애플리케이션 1 내지 N)을 포함한다. 각 애플리케이션은 중앙 인텔리전스 계층(central intelligence layer)과 통신한다. 예시적인 애플리케이션에는 문자 메시지 애플리케이션, 이메일 애플리케이션, 딕테이션 애플리케이션, 가상 키보드 애플리케이션, 브라우저 애플리케이션 등이 포함된다. 일부 구현에서, 각 애플리케이션은 API(예: 모든 애플리케이션에 걸친 공통 API)를 사용하여 중앙 인텔리전스 계층(및 여기에 저장된 모델)과 통신할 수 있다.
중앙 인텔리전스 계층에는 다양한 기계 학습 모델이 포함되어 있다. 예를 들어, 도 8c에 표시된 것처럼 각각의 기계 학습 모델이 각 애플리케이션에 제공되고 중앙 인텔리전스 계층에서 관리될 수 있다. 다른 구현에서는 두 개 이상의 애플리케이션이 단일 기계 학습 모델을 공유할 수 있다. 예를 들어 일부 구현에서 중앙 인텔리전스 계층이 모든 애플리케이션에 대한 단일 모델을 제공할 수 있다. 일부 구현에서, 중앙 인텔리전스 계층은 컴퓨팅 장치(50)의 운영 체제 내에 포함되거나 그렇지 않으면 이에 의해 구현된다.
중앙 인텔리전스 계층은 중앙 장치 데이터 계층과 통신할 수 있다. 중앙 장치 데이터 계층은 컴퓨팅 장치(50)에 대한 데이터의 중앙 집중식 저장소일 수 있다. 도 8c에 도시된 바와 같이, 중앙 장치 데이터 계층은 예를 들어 하나 이상의 센서, 컨텍스트 관리자, 장치 상태 컴포넌트 및/또는 추가 컴포넌트와 같은 컴퓨팅 장치의 복수의 다른 컴포넌트와 통신할 수 있다. 일부 구현에서, 중앙 장치 데이터 계층은 API(예: 개인 API)를 사용하여 각 장치 컴포넌트와 통신할 수 있다.
추가 공개
여기에 설명된 기술은 서버, 데이터베이스, 소프트웨어 애플리케이션 및 기타 컴퓨터 기반 시스템뿐만 아니라 이러한 시스템에서 수행된 액션과 해당 시스템으로 전송된 정보를 참조한다. 컴퓨터 기반 시스템의 고유한 유연성으로 인해 컴포넌트 간 태스크 및 기능의 매우 다양한 구성, 조합, 분할이 가능하다. 예를 들어, 본 명세서에 설명된 프로세스는 단일 장치 또는 컴포넌트 또는 조합하여 작동하는 다중 장치 또는 컴포넌트를 사용하여 구현될 수 있다. 데이터베이스와 애플리케이션은 단일 시스템에서 구현되거나 여러 시스템에 분산될 수 있다. 분산 컴포넌트는 순차적으로 또는 병렬로 작동할 수 있다.
본 요지 그 다양한 특정 예시적인 실시예에 관해 상세히 설명되었지만, 각각의 예는 설명의 방식으로 제공되는 것이지 본 개시 내용을 제한하는 것이 아니다. 당업자는 전술한 내용을 이해하면 이러한 실시예에 대한 변경, 변형 및 등가물을 쉽게 생성할 수 있다. 따라서, 본 개시 내용은 당업자에게 쉽게 명백한 바와 같이 본 요지에 대한 그러한 수정, 변경 및/또는 추가의 포함을 배제하지 않는다. 예를 들어, 하나의 실시예의 일부로서 예시되거나 설명된 특징은 또 다른 실시예와 함께 사용되어 또 다른 실시예를 생성할 수 있다. 따라서, 본 개시는 그러한 변경, 변형 및 등가물을 포괄하도록 의도된다.

Claims (30)

  1. 이미지의 벡터 양자화를 수행하기 위한 컴퓨터로 구현되는 방법으로서,
    하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해, 이미지의 복수의 입력 이미지 패치를 획득하는 단계;
    상기 컴퓨팅 시스템에 의해, 기계 학습된 이미지 인코더로 복수의 입력 이미지 패치를 프로세싱하여 잠재 공간에 복수의 이미지 토큰을 생성하는 단계 -상기 복수의 이미지 토큰은 상기 복수의 입력 이미지 패치에 대응하고; 그리고 상기 기계 학습된 이미지 인코더는 복수의 입력 이미지 패치를 프로세싱하여 잠재 공간에 복수의 이미지 토큰을 생성하기 위해 하나 이상의 셀프-어텐션 연산을 수행함-;
    상기 컴퓨팅 시스템에 의해, 상기 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 복수의 양자화된 코드를 상기 이미지의 인코딩된 버전으로 제공하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 기계 학습된 이미지 인코더는 비전 변환기 모델을 포함하는, 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서, 상기 기계 학습된 이미지 인코더는 상기 복수의 입력 이미지 패치에 대해 하나 이상의 셀프-어텐션 연산 중 하나를 수행하는, 컴퓨터로 구현되는 방법.
  4. 선행하는 청구항 중 어느 한 항에 있어서, 상기 방법은,
    상기 컴퓨팅 시스템에 의해, 기계 학습된 이미지 디코더로 상기 복수의 양자화된 코드를 프로세싱하여 합성된 이미지를 형성하는 복수의 합성된 이미지 패치를 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 합성된 이미지에 적어도 부분적으로 기초하여 손실 값을 제공하는 손실 함수를 평가하는 단계; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 기계 학습된 이미지 인코더, 상기 기계 학습된 이미지 디코더, 및 상기 손실 함수에 적어도 부분적으로 기초한 상기 복수의 후보 코드, 중 하나 이상을 수정하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  5. 제4항에 있어서, 상기 기계 학습된 이미지 디코더는 비전 변환기 모델을 포함하는, 컴퓨터로 구현되는 방법.
  6. 제4항 또는 제5항에 있어서, 상기 손실 함수는,
    로짓-라플라스(logit-Laplace) 손실 항;
    L2 손실 항;
    지각 손실 항; 그리고
    GAN(generative adversarial network) 손실 항을 포함하는, 컴퓨터로 구현되는 방법.
  7. 선행하는 청구항 중 어느 한 항에 있어서, 상기 컴퓨팅 시스템에 의해, 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계는,
    상기 컴퓨팅 시스템에 의해, 복수의 이미지 토큰을 하위-차원 공간에 프로젝션하는 단계; 그리고
    상기 이미지 토큰을 하위-차원 공간에 프로젝션한 후, 상기 컴퓨팅 시스템에 의해, 상기 복수의 이미지 토큰을 상기 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
  8. 선행하는 청구항 중 어느 한 항에 있어서, 상기 컴퓨팅 시스템에 의해, 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계는,
    상기 컴퓨팅 시스템에 의해, 복수의 이미지 토큰 및 복수의 후보 코드 중 하나 또는 둘 다에 L2 정규화를 적용하는 단계; 그리고
    상기 L2 정규화를 적용한 후, 상기 컴퓨팅 시스템에 의해, 상기 복수의 이미지 토큰을 상기 양자화 코드북에 포함된 상기 복수의 양자화된 코드에 매핑하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
  9. 선행하는 청구항 중 어느 한 항에 있어서, 상기 방법은,
    기계 학습된 코드 예측 모델을 사용하는 컴퓨팅 시스템에 의해, 상기 복수의 양자화된 코드 중 하나 이상에 적어도 부분적으로 기초하여 상기 양자화 코드북으로부터 복수의 예측 코드를 자동회귀적으로 예측하는 단계;
    상기 컴퓨팅 시스템에 의해, 기계 학습된 이미지 디코더로 상기 복수의 예측 코드를 프로세싱하여 합성된 이미지를 형성하는 복수의 합성된 이미지 패치를 생성하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  10. 제9항에 있어서, 상기 방법은,
    상기 컴퓨팅 시스템에 의해, 상기 복수의 예측 코드에 기초하여 음의 로그 우도를 평가하는 코드 예측 손실 함수를 평가하는 단계; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 코드 예측 손실 함수에 기초하여 상기 기계 학습된 코드 예측 모델의 하나 이상의 파라미터를 수정하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 기계 학습된 코드 예측 모델을 사용하는 컴퓨팅 시스템에 의해, 상기 복수의 예측 코드를 자동회귀적으로 예측하는 단계는,
    상기 컴퓨팅 시스템에 의해, 상기 합성된 이미지의 하나 이상의 원하는 특성을 설명하는 보조 컨디셔닝 데이터(auxiliary conditioning data)를 사용하여 기계 학습된 코드 예측 모델을 컨디셔닝하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
  12. 제11항에 있어서, 상기 보조 컨디셔닝 데이터는 상기 합성된 이미지의 원하는 클래스를 설명하는 클래스 라벨을 포함하는, 컴퓨터로 구현되는 방법.
  13. 제11항 또는 제12항에 있어서, 상기 보조 컨디셔닝 데이터는 자연어 텍스트 토큰을 포함하는, 컴퓨터로 구현되는 방법.
  14. 제13항에 있어서, 상기 컴퓨팅 시스템에 의해, 상기 자연어 텍스트 토큰으로 기계 학습된 코드 예측 모델을 컨디셔닝하는 단계는,
    상기 컴퓨팅 시스템에 의해, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분으로 상기 자연어 텍스트 토큰을 프로세싱하여 텍스트 임베딩을 생성하는 단계; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 기계 학습된 코드 예측 모델의 자동회귀 코드 선택 부분에 대한 입력으로서 상기 텍스트 임베딩을 제공하여 상기 복수의 예측 코드를 자동회귀적으로 예측하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서, 상기 방법은,
    상기 컴퓨팅 시스템에 의해, 상기 기계 학습된 코드 예측 모델로부터 하나 이상의 중간 특징을 추출하는 단계; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 중간 특징에 적어도 부분적으로 기초하여 상기 이미지에 대한 클래스 라벨을 예측하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  16. 이미지의 벡터 양자화를 수행하기 위한 컴퓨터로 구현되는 방법으로서,
    하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해, 이미지의 인코딩된 버전을 형성하는 복수의 양자화된 코드를 획득하는 단계 -상기 복수의 양자화된 코드는 기계 학습된 이미지 인코더 모델에 의해 생성된 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화 코드에 매핑함으로써 선택됨-; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 이미지의 디코딩된 버전을 형성하는 복수의 디코딩된 이미지 패치를 생성하기 위해 기계 학습된 이미지 디코더로 상기 복수의 양자화된 코드를 프로세싱하는 단계를 포함하며, 상기 기계 학습된 이미지 인코더 모델 및 기계 학습된 이미지 디코더 중 하나 또는 둘 다는 하나 이상의 셀프-어텐션 연산을 수행하도록 구성되는, 컴퓨터로 구현되는 방법.
  17. 컴퓨터 시스템으로서,
    하나 이상의 프로세서; 그리고
    상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 제1항 내지 제16항 중 어느 한 항의 방법을 수행하게 하는 명령어를 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 컴퓨터 시스템.
  18. 컴퓨팅 시스템으로서,
    하나 이상의 프로세서; 그리고
    기계 학습된 이미지 프로세싱 모델을 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하며, 상기 기계 학습된 이미지 프로세싱 모델은,
    하나 이상의 입력 이미지 패치를 잠재 공간의 하나 이상의 이미지 토큰으로 인코딩하도록 구성된 인코더 부분(encoder portion);
    상기 하나 이상의 이미지 토큰을 코드북에서 선택된 하나 이상의 양자화된 코드로 양자화하도록 구성된 양자화 부분(quantization portion);
    상기 하나 이상의 양자화된 코드에 적어도 부분적으로 기초하여 상기 코드북으로부터 하나 이상의 예측된 양자화된 코드를 예측하도록 구성된 코드 예측 부분; 그리고
    상기 코드 예측 부분으로부터 추출된 데이터에 적어도 부분적으로 기초하여 입력 이미지 패치에 대한 하나 이상의 판별 예측(discriminative predictions)을 생성하도록 구성된 판별 예측 부분을 포함하는, 컴퓨팅 시스템.
  19. 제18항에 있어서, 상기 기계 학습된 이미지 프로세싱 모델은 하나 이상의 양자화된 코드에 기초하여 재구성된 이미지 패치를 생성하거나 하나 이상의 예측된 양자화된 코드에 적어도 부분적으로 기초하여 합성된 이미지 패치를 생성하도록 구성된 디코더 부분을 더 포함하는, 컴퓨팅 시스템.
  20. 제18항 또는 제19항에 있어서, 상기 하나 이상의 판별 예측은 이미지 분류 예측을 포함하는, 컴퓨팅 시스템.
  21. 텍스트-이미지(text-to-image) 생성을 수행하기 위한 컴퓨터로 구현되는 방법으로서,
    하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해, 원하는 이미지 콘텐츠를 설명하는 자연어 입력을 획득하는 단계;
    상기 컴퓨팅 시스템에 의해, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분으로 자연어 입력을 프로세싱하여 텍스트 임베딩을 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 기계 학습된 코드 예측 모델의 자동회귀 코드 선택 부분으로 상기 텍스트 임베딩을 프로세싱하여 복수의 후보 코드를 포함하는 양자화 코드북으로부터 예측 코드 시퀀스를 자동회귀적으로 예측하는 단계;
    상기 컴퓨팅 시스템에 의해, 기계 학습된 이미지 디코더로 양자화된 코드 시퀀스를 프로세싱하여 합성된 이미지를 형성하는 복수의 합성된 이미지 패치를 생성하는 단계를 포함하며, 상기 합성된 이미지는 원하는 이미지 콘텐츠를 묘사하는, 컴퓨터로 구현되는 방법.
  22. 제21항에 있어서, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분, 기계 학습된 코드 예측 모델의 자기회귀 코드 선택 부분, 기계 학습된 이미지 디코더 중 하나 이상은 하나 이상의 셀프-어텐션 연산을 수행하도록 구성되는, 컴퓨터로 구현되는 방법.
  23. 제21항 또는 제22항에 있어서, 기계 학습된 코드 예측 모델의 텍스트 인코더 부분, 기계 학습된 코드 예측 모델의 자기회귀 코드 선택 부분, 및 기계 학습된 이미지 디코더 중 하나 이상은 변환기 신경망을 포함하는, 컴퓨터로 구현되는 방법.
  24. 제21항 내지 제23항 중 어느 한 항에 있어서, 상기 기계 학습된 이미지 디코더 및 상기 코드북 중 하나 또는 둘 모두는 이미지 인코더 모델과 공동으로 학습되는, 컴퓨터로 구현되는 방법.
  25. 제21항 내지 제23항 중 어느 한 항에 있어서, 상기 기계 학습된 코드 예측 모델의 텍스트 인코더 부분은 사전 훈련 태스크에 대해 사전 훈련되는, 컴퓨터로 구현되는 방법.
  26. 코드 예측 모델을 훈련하기 위한 컴퓨터로 구현되는 방법으로서,
    하나 이상의 컴퓨팅 장치를 포함하는 컴퓨팅 시스템에 의해, 훈련 이미지 및 상기 훈련 이미지의 콘텐츠를 설명하는 자연어 입력을 포함하는 훈련 예를 획득하는 단계;
    상기 컴퓨팅 시스템에 의해, 기계 학습된 이미지 인코더로 훈련 이미지로부터의 복수의 이미지 패치를 프로세싱하여 잠재 공간에 복수의 이미지 토큰을 생성하는 단계 -상기 복수의 이미지 토큰은 상기 복수의 이미지 패치에 대응함-;
    상기 컴퓨팅 시스템에 의해, 상기 복수의 이미지 토큰을 복수의 후보 코드를 포함하는 양자화 코드북에 포함된 복수의 양자화된 코드에 매핑하는 단계;
    상기 컴퓨팅 시스템에 의해, 코드 예측 모델의 텍스트 인코더 부분으로 자연어 입력을 프로세싱하여 텍스트 임베딩을 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 코드 예측 모델의 자동회귀 코드 선택 부분으로 텍스트 임베딩을 프로세싱하여 양자화 코드북으로부터 예측 코드 시퀀스를 자동회귀적으로 예측하는 단계;
    상기 컴퓨팅 시스템에 의해, 예측된 코드 시퀀스를 복수의 양자화된 코드와 비교하는 코드 예측 손실 함수를 평가하는 단계; 그리고
    상기 컴퓨팅 시스템에 의해, 코드 예측 손실 함수에 적어도 부분적으로 기초하여 코드 예측 모델의 하나 이상의 파라미터를 수정하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
  27. 제26항에 있어서, 상기 기계 학습된 이미지 인코더는 상기 복수의 입력 이미지 패치를 프로세싱하여 상기 잠재 공간에 상기 복수의 이미지 토큰을 생성하는 하나 이상의 셀프-어텐션 연산을 수행하는, 컴퓨터로 구현되는 방법.
  28. 제26항 또는 제27항에 있어서, 상기 코드 예측 손실 함수는 상기 양자화된 코드에 대한 예측 코드의 음의 로그 우도를 평가하는, 컴퓨터로 구현되는 방법.
  29. 제26항 내지 제28항 중 어느 한 항에 있어서, 상기 기계 학습된 이미지 인코더 및 상기 코드북은 이전에 오토인코더 아키텍처의 이미지 디코더로 훈련되는, 컴퓨터로 구현되는 방법.
  30. 제26항에 있어서, 상기 컴퓨팅 시스템에 의해, 코드 예측 손실 함수에 적어도 부분적으로 기초하여 코드 예측 모델의 하나 이상의 파라미터를 수정하는 단계는 상기 컴퓨팅 시스템에 의해, 코드 예측 손실 함수에 적어도 부분적으로 기초하여 코드 예측 모델의 자동회귀 코드 선택 부분과 텍스트 인코더 부분 모두의 하나 이상의 파라미터를 수정하는 단계를 포함하는, 컴퓨터로 구현되는 방법.
KR1020247012781A 2021-10-05 2022-10-05 벡터-양자화된 이미지 모델링 KR20240065281A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163252452P 2021-10-05 2021-10-05
US63/252,452 2021-10-05
US202263351131P 2022-06-10 2022-06-10
US63/351,131 2022-06-10
PCT/US2022/045756 WO2023059699A1 (en) 2021-10-05 2022-10-05 Vector-quantized image modeling

Publications (1)

Publication Number Publication Date
KR20240065281A true KR20240065281A (ko) 2024-05-14

Family

ID=84357941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247012781A KR20240065281A (ko) 2021-10-05 2022-10-05 벡터-양자화된 이미지 모델링

Country Status (6)

Country Link
US (1) US20240112088A1 (ko)
EP (1) EP4397044A1 (ko)
KR (1) KR20240065281A (ko)
AU (1) AU2022358651A1 (ko)
CA (1) CA3233965A1 (ko)
WO (1) WO2023059699A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220301297A1 (en) * 2021-03-16 2022-09-22 9419-6979 Québec inc. System, method and apparatus for obtaining sensitive and specific predictions from deep neural networks
US20240048724A1 (en) * 2022-08-05 2024-02-08 Samsung Display Co., Ltd. Method for video-based patch-wise vector quantized auto-encoder codebook learning for video anomaly detection
US20240153153A1 (en) * 2022-11-04 2024-05-09 Lemon Inc. Generation of image corresponding to input text using multi-text guided image cropping
CN116664456B (zh) * 2023-08-02 2023-11-17 暨南大学 一种基于梯度信息的图片重建方法、系统及电子设备
US12014575B1 (en) * 2023-12-11 2024-06-18 VelocityEHS Holdings Inc. Image-based automated ergonomic risk root cause and solution identification system and method
CN117577121B (zh) * 2024-01-17 2024-04-05 清华大学 基于扩散模型的音频编解码方法及装置、存储介质及设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020525127A (ja) * 2017-06-26 2020-08-27 ザ・リサーチ・ファウンデーション・フォー・ザ・ステイト・ユニヴァーシティ・オブ・ニューヨーク 仮想膵臓撮影法のためのシステム、方法、およびコンピュータ・アクセス可能媒体
US10825219B2 (en) * 2018-03-22 2020-11-03 Northeastern University Segmentation guided image generation with adversarial networks
EP3598339A1 (en) * 2018-07-19 2020-01-22 Tata Consultancy Services Limited Systems and methods for end-to-end handwritten text recognition using neural networks
US11593660B2 (en) * 2018-09-18 2023-02-28 Insilico Medicine Ip Limited Subset conditioning using variational autoencoder with a learnable tensor train induced prior
WO2020234449A1 (en) * 2019-05-23 2020-11-26 Deepmind Technologies Limited Generative adversarial networks with temporal and spatial discriminators for efficient video generation
US20220237801A1 (en) * 2019-05-30 2022-07-28 The Research Foundation For The State University Of New York System, method, and computer-accessible medium for generating multi-class models from single-class datasets
US10713821B1 (en) * 2019-06-27 2020-07-14 Amazon Technologies, Inc. Context aware text-to-image synthesis
EP4107668A1 (en) * 2020-02-19 2022-12-28 Insilico Medicine IP Limited Adversarial autoencoder architecture for methods of graph to sequence models
US11024060B1 (en) * 2020-03-09 2021-06-01 Adobe Inc. Generating neutral-pose transformations of self-portrait images
GB202016824D0 (en) * 2020-10-23 2020-12-09 Deep Render Ltd DR big book 3
EP4168936A1 (en) * 2020-06-19 2023-04-26 Nokia Technologies Oy Apparatus, method and computer program product for optimizing parameters of a compressed representation of a neural network
US11972225B2 (en) * 2020-10-01 2024-04-30 Shrey Pathak Automated patent language generation
US20220129671A1 (en) * 2020-10-22 2022-04-28 Sap Se Document Information Extraction Without Additional Annotations
US11748555B2 (en) * 2021-01-22 2023-09-05 Bao Tran Systems and methods for machine content generation
US11921824B1 (en) * 2021-03-29 2024-03-05 Amazon Technologies, Inc. Sensor data fusion using cross-modal transformer
EP4102405A1 (en) * 2021-06-10 2022-12-14 Naver Corporation Demonstration-conditioned reinforcement learning for few-shot imitation
US11861762B2 (en) * 2021-08-12 2024-01-02 Adobe Inc. Generating synthesized digital images utilizing class-specific machine-learning models
US11769227B2 (en) * 2021-08-12 2023-09-26 Adobe Inc. Generating synthesized digital images utilizing a multi-resolution generator neural network
US11954144B2 (en) * 2021-08-26 2024-04-09 International Business Machines Corporation Training visual language grounding models using separation loss
US20230081171A1 (en) * 2021-09-07 2023-03-16 Google Llc Cross-Modal Contrastive Learning for Text-to-Image Generation based on Machine Learning Models
US20230100413A1 (en) * 2021-09-27 2023-03-30 Qualcomm Incorporated Transformer-based architecture for transform coding of media

Also Published As

Publication number Publication date
WO2023059699A1 (en) 2023-04-13
CA3233965A1 (en) 2023-04-13
AU2022358651A1 (en) 2024-04-18
US20240112088A1 (en) 2024-04-04
EP4397044A1 (en) 2024-07-10

Similar Documents

Publication Publication Date Title
KR20240065281A (ko) 벡터-양자화된 이미지 모델링
US10671889B2 (en) Committed information rate variational autoencoders
KR20210029785A (ko) 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법
US20230359865A1 (en) Modeling Dependencies with Global Self-Attention Neural Networks
US20210326710A1 (en) Neural network model compression
CN113961736A (zh) 文本生成图像的方法、装置、计算机设备和存储介质
US20230394306A1 (en) Multi-Modal Machine Learning Models with Improved Computational Efficiency Via Adaptive Tokenization and Fusion
CN116547681A (zh) 用于持续演进内容的动态语言模型
US20240087179A1 (en) Video generation with latent diffusion probabilistic models
CN114267366A (zh) 通过离散表示学习进行语音降噪
CN117499711A (zh) 视频生成模型的训练方法、装置、设备及存储介质
US20240104352A1 (en) Contrastive Learning and Masked Modeling for End-To-End Self-Supervised Pre-Training
WO2023133204A1 (en) Machine learning models featuring resolution-flexible multi-axis attention blocks
CN118176733A (zh) 矢量量化图像建模
US11755883B2 (en) Systems and methods for machine-learned models having convolution and attention
Liu et al. Stylized image resolution enhancement scheme based on an improved convolutional neural network in cyber‐physical systems
US20220108204A1 (en) Scale-Permuted Machine Learning Architecture
US20240232637A9 (en) Method for Training Large Language Models to Perform Query Intent Classification
US20240135187A1 (en) Method for Training Large Language Models to Perform Query Intent Classification
WO2024086598A1 (en) Text-driven image editing via image-specific finetuning of diffusion models
Sun et al. Degradation-Aware Blind Face Restoration via High-Quality VQ Codebook
WO2022216591A1 (en) Generating minority-class examples for training data
CN115803753A (zh) 用于高效推理的多阶段机器学习模型合成
CN115577796A (zh) 用重用transformer利用注意力中的冗余
JP2024521621A (ja) 潜在的な埋込みのセットに対するクエリ埋込みのクロスアテンションによる、ニューラルネットワーク出力の生成