KR20230152741A - 고정 언어 모델을 사용한 다중-모달 퓨-샷 학습 - Google Patents

고정 언어 모델을 사용한 다중-모달 퓨-샷 학습 Download PDF

Info

Publication number
KR20230152741A
KR20230152741A KR1020237033833A KR20237033833A KR20230152741A KR 20230152741 A KR20230152741 A KR 20230152741A KR 1020237033833 A KR1020237033833 A KR 1020237033833A KR 20237033833 A KR20237033833 A KR 20237033833A KR 20230152741 A KR20230152741 A KR 20230152741A
Authority
KR
South Korea
Prior art keywords
image
sequence
text
input
neural network
Prior art date
Application number
KR1020237033833A
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 KR20230152741A publication Critical patent/KR20230152741A/ko

Links

Classifications

    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • 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/096Transfer learning
    • 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/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/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/268Lexical context

Landscapes

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

Abstract

언어 모델을 사용하여 다중-모달 입력을 프로세싱하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함한 방법, 시스템 및 장치가 제공된다. 특히, 입력에는 이미지가 포함되며, 이미지는 이미지를 나타내는 이미지 임베딩 시퀀스를 생성하기 위해 이미지 인코더 신경망에 의해 인코딩된다. 이미지 임베딩 시퀀스는 언어 모델 신경망에 의해 프로세싱되는 입력 시퀀스의 적어도 일부로 제공된다.

Description

고정 언어 모델을 사용한 다중-모달 퓨-샷 학습
본 명세서는 신경망을 사용하여 이미지를 포함하는 입력 프로세싱과 관련이 있다. 신경망은 하나 이상의 비선형 단위 계층을 사용하여 수신된 입력에 대한 출력을 예측하는 기계 학습 모델이다. 일부 신경망에는 출력층 외에 하나 이상의 은닉층이 포함되어 있다. 각 은닉층의 출력은 네트워크의 다음 계층(레이어)(예: 다음 은닉층 또는 출력층)에 대한 입력으로 사용된다. 네트워크의 각 계층은 각 파라미터 세트의 현재 값에 따라 수신된 입력으로부터 출력을 생성한다.
본 명세서에서는 이미지 인코더 신경망과 언어 모델 신경망을 사용하여 다중-모달 태스크를 수행하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템에 대해 설명한다. 언어 모델 신경망은 사전 트레이닝된다. 예를 들어 이미지 인코더 신경망 트레이닝 중에는 트레이닝되지 않는다.
일 양태에서, 방법은 입력 이미지를 획득하는 단계; 상기 입력 이미지를 특성화하는 이미지 임베딩 벡터의 이미지 시퀀스를 생성하도록, 상기 입력 이미지를 프로세싱하도록 트레이닝된 이미지 인코더 신경망을 사용하여 상기 입력 이미지를 프로세싱하는 단계; 상기 이미지 임베딩 벡터의 이미지 시퀀스를 포함하는 입력 임베딩 벡터의 입력 시퀀스를 생성하는 단계; 그리고 상기 입력 임베딩 벡터의 입력 시퀀스에 대한 텍스트 응답을 나타내는 텍스트 토큰의 출력 시퀀스를 출력으로서 생성하도록, 트레이닝된 언어 모델 신경망을 사용하여 상기 이미지 임베딩 벡터의 이미지 시퀀스를 포함하는 입력 임베딩 벡터의 입력 시퀀스를 프로세싱하는 단계를 포함하며, 상기 출력 시퀀스의 각 텍스트 토큰은 텍스트 토큰의 어휘에서 선택되며; 상기 트레이닝된 언어 모델 신경망은 상기 텍스트 토큰의 어휘에서 텍스트 토큰을 나타내는 텍스트 임베딩 벡터의 입력 시퀀스 트레이닝에 대한 언어 모델링 태스크를 수행하도록 트레이닝되며; 그리고 상기 이미지 임베딩 벡터의 이미지 시퀀스에 있는 각 이미지 임베딩 벡터는 텍스트 토큰의 어휘로부터의 텍스트 토큰을 나타내는 텍스트 임베딩 벡터와 동일한 차원수(dimensionality)를 갖는다.
따라서, 이미지 인코더 신경망은 이미지를 임베딩 시퀀스로 표현하는 데 사용되며, 이 시퀀스를 포함하는 입력("prefix"라고도 함)으로 프롬프트되는 사전 트레이닝된 언어 모델은 해당 다중-모달 태스크에 대한 적절한 출력을 생성한다.
일부 구현에서, 상기 이미지 인코더 신경망은 상기 트레이닝된 언어 모델 신경망을 통해 상기 이미지 인코더 신경망의 파라미터에 대한 손실 함수의 기울기를 역전파함으로써 트레이닝되며; 상기 손실 함수는 트레이닝된 언어 모델 신경망을 사용하여, 트레이닝 이미지로부터 상기 이미지 인코더 신경망에 의해 생성된 트레이닝 이미지 임베딩 벡터의 시퀀스를 포함하는 트레이닝 입력을 프로세싱함으로써 복수의 텍스트 토큰을 포함하는 트레이닝 출력 텍스트 시퀀스를 생성해야 하는 다중-모달(multi-modal) 태스크에 대한 손실 함수이다. 이를 통해 트레이닝된 언어 모델 신경망이 텍스트를 나타내는 임베딩을 프로세싱하도록 트레이닝되었고 이미지 인코더에서 생성된 임베딩이 이미지를 나타내는 경우에도 이미지 인코더가 태스크를 수행하는 데 효과적으로 사용할 수 있는 임베딩을 생성하는 방법을 학습할 수 있다.
이러한 구현 중 일부에서, 다중-모달 태스크는 이미지 캡션 태스크이고, 트레이닝 출력 텍스트 시퀀스는 트레이닝 이미지에 대한 텍스트 캡션의 적어도 일부이다.
일부 구현에서, 트레이닝된 언어 모델 신경망은 다중-모달 태스크에 대한 손실 함수에 대한 이미지 인코더 신경망의 트레이닝 동안 트레이닝되지 않으며, 상기 이미지 인코더 신경망을 트레이닝하는 것은 언어 모델 신경망의 파라미터를 조정하지 않고 상기 트레이닝된 언어 모델 신경망을 통해 상기 이미지 인코더 신경망으로 상기 손실 함수의 기울기를 역전파하는 것을 포함한다. 즉, 언어 모델 신경망은 이미지 인코더 신경망 트레이닝 중에 "고정(frozen)"되며, 이미지 인코더 신경망이 트레이닝된 이후에는 다양한 다중-모달 태스크에서 고품질 성능을 보장하기 위해 미세 조정할 필요가 없다. 결과로 생성된 결합 모델은 대규모 언어 모델의 모든 기능을 유지하면서 다양한 다중-모달 태스크를 수행하기 위해 임의의 순서로 텍스트 및 이미지 입력을 프로세싱할 수도 있다.
일부 구현에서, 상기 손실 함수는 상기 트레이닝 입력의 프로세싱의 결과로서 상기 트레이닝된 언어 모델 신경망에 의해 생성된 텍스트 토큰의 어휘의 텍스트 토큰에 대한 점수 분포에 의해 상기 다중-모달 태스크에 대한 GT(ground truth) 텍스트 출력의 텍스트 토큰에 할당된 각각의 우도를 측정한다.
일부 구현에서, 상기 트레이닝된 언어 모델 신경망은 상기 다중-모달 태스크에 대한 손실 함수에 대한 이미지 인코더 신경망의 트레이닝 이전에 상기 언어 모델링 태스크에 대해 트레이닝된다.
일부 구현에서, 상기 언어 모델 신경망은 출력 시퀀스에서 특정 텍스트 토큰 앞에 오는 임의의 텍스트 토큰의 텍스트 임베딩 벡터가 뒤따르는 입력 임베딩 벡터의 입력 시퀀스(i)를 포함하는 현재 입력 시퀀스에 따라 조건화된 출력 시퀀스의 각 특정 텍스트 토큰을 생성함으로써, 텍스트 토큰의 출력 시퀀스를 자기-회귀적으로 생성하는 자기-회귀적 신경망이다.
일부 구현에서, 트레이닝된 언어 모델 신경망은 각각 셀프-어텐션 연산을 적용하는 복수의 레이어(계층)를 포함하는 자기-회귀적 트랜스포머 기반 신경망이다. 따라서 설명된 접근 방식은 미리 트레이닝된 대규모 트랜스포머(Transformer) 기반 언어 모델에 인코딩된 "지식"을 활용하여 제로 샷 및 소수 샷 설정 모두에서 다양한 다중-모달 태스크를 수행할 수 있는 결합 모델을 생성한다.
일부 구현에서, 트레이닝된 언어 모델 신경망은 복수의 계층을 사용하여 입력 시퀀스를 프로세싱하기 전에 입력 시퀀스에 상대 위치 인코딩을 적용하도록 구성된다.
일부 구현에서, 이미지 인코더 신경망은 컨벌루션 신경망을 포함한다.
일부 구현에서, 컨벌루션 신경망은 입력 이미지를 프로세싱하여 입력 이미지를 특성화하는 출력 텐서를 생성하도록 구성되고, 이미지 인코더 신경망은 출력 텐서를 이미지 임베딩 벡터의 이미지 시퀀스에 매핑하도록 구성된다.
일부 구현에서, 텍스트 토큰의 출력 시퀀스는 입력 이미지에 대한 예측된 텍스트 캡션의 적어도 일부를 나타낸다.
일부 구현에서, 상기 입력 임베딩 벡터의 입력 시퀀스는 또한 (i) 각각의 텍스트 시퀀스를 나타내는 텍스트 임베딩 벡터의 하나 이상의 시퀀스, (ii) 각각 다른 입력 이미지를 특성화하는 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, 또는 (iii) 둘 다를 포함한다.
일부 구현에서, 상기 입력 임베딩 벡터의 입력 시퀀스는 상기 이미지 임베딩 벡터의 이미지 시퀀스와 상기 입력 이미지에 대한 질문을 나타내는 텍스트 임베딩 벡터의 시퀀스를 포함하고, 그리고 상기 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 관한 질문에 대한 예측된 텍스트 답변을 나타낸다.
일부 구현에서, 상기 입력 임베딩 벡터의 입력 시퀀스는 (i) 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, 및 (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 이미지 임베딩 벡터의 다른 시퀀스에 의해 특성화된(characterized) 다른 이미지에 대한 분류를 나타내는 텍스트 임베딩 벡터의 각 시퀀스를 포함하며, 그리고 상기 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 대한 예측된 분류를 나타낸다.
일부 구현에서, 상기 입력 임베딩 벡터의 입력 시퀀스는 (i) 각각의 추가 입력 이미지를 특성화하는 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 이미지 임베딩 벡터의 다른 시퀀스에 의해 특성화된 추가 이미지에 대한 질문에 대한 답변을 나타내는 텍스트 임베딩 벡터의 각 시퀀스를 포함하며, 그리고 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 관해 질문을 받을 때 상기 질문에 대한 예측된 답변을 나타낸다.
일부 구현에서, 상기 입력 임베딩 벡터의 입력 시퀀스는 (i) 각각의 추가 입력 이미지를 특성화하는 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 이미지 임베딩 벡터의 다른 시퀀스에 의해 특성화된 추가 이미지에 대한 특정 유형의 정보를 제공하는 텍스트 임베딩 벡터의 각 시퀀스, 그리고 (iii) 이미지 임베딩 벡터의 이미지 시퀀스에 대해, 상기 입력 이미지에 대한 특정 유형의 정보를 제공하기 위한 텍스트 프롬프트를 나타내는 텍스트 임베딩의 부분 시퀀스를 포함하며, 그리고 상기 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 관한 특정 유형의 정보를 제공하는 상기 텍스트 프롬프트의 예상 완료를 나타낸다.
일부 구현에서, 상기 입력 임베딩 벡터의 입력 시퀀스는 출력 시퀀스에 의해 표현된 텍스트 응답에 의해 수행되어야 하는 태스크를 설명하는 텍스트 시퀀스를 나타내는 텍스트 임베딩 벡터의 제1 시퀀스를 포함한다.
본 명세서에 설명된 요지는 다음 장점 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다.
충분한 규모로 트레이닝되면 언어 모델(예: 셀프-어텐션을 사용하여 자기-회귀적으로 출력을 생성하는 트랜스포머(Transformer) 기반 언어 모델)은 몇 가지 예를 통해 프롬프트를 받은 후 새로운 언어 태스크를 학습하는 주목할만한 능력을 나타낸다. 설명된 기술은 비전 인코더를 사용하여 이미지를 일련의 연속 임베딩으로 표현함으로써 이러한 몇 번의 학습 능력을 다중 모달(multimodal) 설정으로 전환하며, 따라서 이 시퀀스를 포함하는 "프리픽스(prefix)"로 프롬프트된 사전 트레이닝된 고정 언어 모델은 해당 다중-모달 태스크에 대한 적절한 출력을 생성한다. 결과 시스템은 인터리브된 이미지 및 텍스트 임베딩의 시퀀스로 표현되는 예제를 조건으로 할 때 다양한 새로운 태스크를 학습할 수 있는 놀라운 능력을 갖춘 다중 모달 퓨-샷 학습자(multimodal few-shot learner)이다. 구체적인 예로, 결과 시스템은 새로운 객체와 새로운 시각적 범주에 대한 단어를 신속하게 "학습"하고, 소수의 예만으로 시각적 질의 응답을 수행하며, 이미지 인코더가 트레이닝된 후 추가 트레이닝이나 미세 조정 없이 외부 지식을 활용할 수 있다. 따라서 결과 시스템은 (i) 언어 모델이 텍스트 데이터에서만 동작하는 언어 모델링 태스크에 대해서만 트레이닝되었음에도 불구하고 그리고 (ii) 완전히 다른 다중-모달 태스크를 수행하면서 이미지 인코더 신경망을 트레이닝한 경우에도 다중-모달 태스크를 효과적으로 수행할 수 있다.
본 명세서의 요지에 대한 하나 이상의 실시예의 세부사항은 첨부 도면 및 아래 설명에서 설명된다. 요지의 다른 특징, 양태 및 이점은 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 다중-모달 시스템의 다이어그램이다.
도 2는 이미지 인코더 신경망의 트레이닝을 보여준다.
도 3은 다중-모달 태스크를 수행하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 시각적 질의 응답 태스크를 수행하기 위해 사용되는 이미지 인코더 신경망과 언어 모델 신경망의 예를 보여준다.
도 5는 k-샷(k-shot) 외부 지식 시각적 질의 응답 태스크를 수행하는 데 사용되는 이미지 인코더 신경망과 언어 모델 신경망의 예를 보여준다.
도 6은 k-샷 이미지 분류 태스크를 수행하는데 사용되는 이미지 인코더 신경망과 언어 모델 신경망의 예를 보여준다.
다양한 도면에서 유사한 참조 번호 및 지정은 유사한 요소를 나타낸다.
본 명세서는 하나 이상의 다중-모달 태스크를 수행하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 컴퓨터 프로그램으로 구현된 시스템을 설명한다.
도 1은 예시적인 다중-모달 시스템(100)의 도면이다. 다중-모달 시스템(100)은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템의 예이며, 여기서 아래에 설명된 시스템, 컴포넌트 및 기술이 구현될 수 있다.
다중-모달 시스템(100)은 이미지 인코더 신경망(110) 및 언어 모델 신경망(120)을 사용하여 하나 이상의 다중-모달 태스크를 수행하도록 구성된다.
본 명세서에서 사용되는 다중-모달 태스크는 텍스트 토큰 시퀀스(154)를 포함하는 네트워크 출력(152)을 생성하기 위해 이미지(104)(예: 카메라에 의해 캡처된 현실 세계의 이미지)를 포함하는 네트워크 입력(102)을 프로세싱해야 하는 것이다. 일부 경우에, 네트워크 입력(102)은 텍스트, 하나 이상의 다른 이미지, 또는 둘 다를 포함할 수도 있다.
다중-모달 태스크의 예는 아래에 더 자세히 설명되어 있다.
이미지 인코더 신경망(110)은 이미지를 수신하고 이미지를 프로세싱하도록, 예를 들어 이미지 픽셀의 강도 값을 프로세싱하여, 이미지를 특성화하는(characterizing) 이미지 임베딩 벡터의 이미지 시퀀스를 생성하도록 구성된 신경망이다.
본 명세서에 사용된 "임베딩 벡터"는 미리 결정된 차원을 갖는, 예를 들어 미리 결정된 개수의 값을 갖는 수치 값, 예를 들어 부동 소수점 또는 다른 유형의 수치 값의 벡터이다.
이미지 인코더 신경망(110)은 일반적으로 이미지를 임베딩 시퀀스에 매핑하는 임의의 적절한 아키텍처를 가질 수 있다. 임베딩 시퀀스는 미리 결정된 수, 예를 들어 1, 2, 4 또는 8개의 임베딩을 가질 수 있다.
예를 들어, 이미지 인코더 신경망(110)은 컨벌루션 신경망을 포함할 수 있다.
특정 예로서, 컨벌루션 신경망은 입력 이미지를 특성화하는 출력 텐서를 생성하기 위해 이미지를 프로세싱하도록 구성될 수 있으며, 이미지 인코더 신경망(110)은 출력 텐서를 이미지 임베딩 벡터의 이미지 시퀀스에 매핑하도록 구성될 수 있다. 즉, 신경망(110)은 (i) 컨벌루션 신경망 및 (ii) 출력 텐서를 이미지 시퀀스에 매핑하는 추가 컴포넌트를 포함할 수 있다. 예를 들어, 추가 컴포넌트는 선형 변환을 적용하여 출력 텐서를 D * n 채널에 선형으로 매핑한 다음 결과를 각각 차원수(dimensionality)(D)를 갖는 n 개의 임베딩 시퀀스로 재구성할 수 있다.
다른 예로서, 이미지 인코더 신경망(110)은 비전 트랜스포머 신경망일 수 있다. 비전 트랜스포머는 이미지의 복수의 이미지 패치를 획득하고, 각 이미지 패치의 각각의 임베딩을 생성한 후, 하나 이상의 셀프-어텐션 레이어 블록을 사용하여 해당 임베딩을 업데이트하는 신경망이다(예를 들어, 마지막 셀프-어텐션 계층 블록을 제외한 각 셀프-어텐션 계층 블록의 출력이 시퀀스의 다음 셀프-어텐션 계층 블록의 입력이 되도록 순서대로 배열됨). 이 예에서 임베딩 시퀀스는 마지막 셀프-어텐션 계층 블록에 의해 생성된 패치 중 일부 또는 전부에 대한 업데이트된 임베딩일 수 있다.
언어 모델 신경망(120)은 입력 임베딩 벡터의 시퀀스를 입력으로 수신하고 입력을 프로세싱하여 텍스트 토큰의 출력 시퀀스를 출력으로 생성하도록 구성된 신경망이다.
각 입력 임베딩 벡터는 이미지 인코더 신경망(110)에 의해 생성된 이미지 임베딩 벡터와 동일한 차원수(dimensionality)를 갖는다.
아래에서 더 자세히 설명되는 바와 같이, 언어 모델 신경망(120)의 트레이닝 동안,
입력 임베딩 벡터는 텍스트 토큰을 나타내는 반면 트레이닝 후 및 다중-모달 태스크를 수행하는 동안 입력 임베딩 벡터 중 적어도 일부는 이미지 임베딩 벡터이다.
보다 구체적으로, 시스템(100)은 또한 토큰 어휘의 각 토큰을 입력 임베딩과 동일한 차원수를 갖는 개별 텍스트 임베딩으로 독립적으로 변환(transform)하는 임베딩 함수인 텍스트 임베더를 포함할 수 있다. 텍스트 임베딩은 예를 들어 미리 결정되거나 고정될 수 있거나 언어 모델 신경망(120)의 트레이닝 중에 학습될 수 있다.
어휘의 토큰은 하나 이상의 자연어로 텍스트 요소를 나타내는 단어, 단어 조각(word pieces), 구두점 등과 같은 적절한 텍스트 토큰일 수 있으며, 선택적으로 텍스트 코퍼스에서 발견되는 숫자 및 기타 텍스트 기호일 수 있다. 예를 들어, 시스템은 센텐스피스(SentencePiece) 토크나이저(tokenizer) 또는 다른 토크나이저와 같은 토크나이저를 적용하여 해당 시퀀스를 어휘의 토큰으로 나누어 주어진 단어 시퀀스를 토큰화할 수 있다.
언어 모델 신경망(120)은 (i) 입력 임베딩 벡터의 입력 시퀀스와 그 뒤에 오는 (ii) 출력 시퀀스에서 특정 텍스트 토큰 앞에 오는 텍스트 토큰의 텍스트 임베딩 벡터(텍스트 임베더에 의해 생성됨)를 포함하는 현재 입력 시퀀스를 조건으로 하는 출력 시퀀스에서 각각의 특정 텍스트 토큰을 생성함으로써 텍스트 토큰의 출력 시퀀스를 자기-회귀적으로 생성하는 자기-회귀적 신경망일 수 있다.
보다 구체적으로, 특정 텍스트 토큰을 생성하기 위해, 신경망(120)은 텍스트 토큰의 어휘의 각 토큰에 각각의 점수, 예를 들어 각각의 확률을 할당하는 점수 분포, 예를 들어 확률 분포를 생성하기 위해 현재 입력 시퀀스를 프로세싱할 수 있다. 그런 다음 신경망(120)은 점수 분포를 사용하여 어휘로부터 텍스트 토큰을 특정 텍스트 토큰으로 선택할 수 있다. 예를 들어, 신경망(120)은 가장 높은 점수를 받은 토큰을 우선적으로 선택할 수 있거나, 예를 들어 핵 샘플링(nucleus sampling) 또는 다른 샘플링 기술을 사용하여 분포로부터 토큰을 샘플링할 수 있다.
특정 예로서, 트레이닝된 언어 모델 신경망(120)은 각각 셀프-어텐션 연산을 적용하는 복수의 레이어를 포함하는 자기-회귀적 트랜스포머 기반 신경망일 수 있다. 신경망(120)은 다양한 트랜스포머 기반 신경망 아키텍처 중 하나를 가질 수 있다. 이러한 아키텍처의 예는 "Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J Liu. Exploring the limits of transfer learning with a unified text-to-text transformer. arXiv preprint arXiv:1910.10683, 2019"; "Daniel Adiwardana, Minh-Thang Luong, David R. So, Jamie Hall, Noah Fiedel, Romal Thoppilan, Zi Yang, Apoorv Kulshreshtha, Gaurav Nemade, Yifeng Lu, and Quoc V. Le. Towards a human-like open-domain chatbot. CoRR, abs/2001.09977, 2020"; "Tom B Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. arXiv preprint arXiv:2005.14165, 2020"에서 설명한 아키텍처를 포함한다.
선택적으로, 언어 모델 신경망(120)은 복수의 레이어를 사용하여 입력 시퀀스(또는 현재 입력 시퀀스)를 프로세싱하기 전에 입력 시퀀스(또는 현재 입력 시퀀스)에 상대 위치 인코딩을 적용할 수 있다. 입력 시퀀스에 상대 위치 인코딩을 적용하는 것은 입력 시퀀스의 임베딩 위치를 기반으로 입력 시퀀스의 각 임베딩을 수정하는 것을 의미한다(예를 들어 셀프-어텐션 연산을 적용하기 전에 임베딩 위치에 대한 정보를 주입한다). 예를 들어, 신경망(120)은 각 입력 임베딩을 입력 시퀀스의 입력 임베딩 위치에 대응하는 위치 임베딩과 결합(예: 추가 또는 연결)할 수 있다.
하나 이상의 다중-모달 태스크를 수행하기 위해 이미지 인코더 신경망(110)과 언어 모델 신경망(120)을 사용하기 전에, 신경망(110 및 120)은 예를 들어 시스템(100), 하나 이상의 다른 시스템에 의해, 또는 부분적으로 시스템(100)에 의해 그리고 부분적으로 하나 이상의 다른 시스템에 의해 트레이닝된다.
특히, 시스템(100) 또는 다른 시스템 중 하나는 언어 모델링 태스크, 예를 들어 텍스트 토큰의 현재 시퀀스가 주어지면 트레이닝 데이터의 현재 시퀀스를 따르는 다음 토큰을 예측해야 하는 태스크에 대해 언어 모델 신경망(120)을 사전 트레이닝한다. 특정 예로서, 언어 모델 신경망(120)은 예를 들어 인터넷이나 다른 텍스트 코퍼스에서 공개적으로 이용 가능한 텍스트와 같은 대규모 텍스트 데이터 세트에 대한 최대 가능성(우도) 목표에 대해 사전 트레이닝될 수 있다.
따라서 이러한 사전 트레이닝 동안 신경망(120)에 대한 입력 시퀀스에는 어휘의 텍스트 토큰에 대한 텍스트 임베딩만 포함된다. 사전 트레이닝에 사용되는 텍스트에는 레이블을 지정할 필요가 없으며 레이블이 지정되지 않은 대량의 텍스트를 인터넷이나 기타 대규모 텍스트 코퍼스에서 쉽게 사용할 수 있기 때문에, 언어 모델 신경망(120)은 대규모 트레이닝 데이터 세트에 대해 사전 트레이닝될 수 있으며 따라서 트레이닝된 언어 모델 신경망(120)은 대량의 텍스트 기반 지식(text-based knowledge)을 인코딩할 수 있다.
언어 모델 신경망(120)을 트레이닝한 후, 시스템(100) 또는 다른 시스템은 언어 모델 신경망(120)을 "고정(frozen)" 상태로 유지하면서 다중-모달 태스크를 위한 트레이닝 데이터에 대해 이미지 인코더 신경망(110)을 트레이닝한다. 즉, 이 트레이닝 중에, 이미지 인코더 신경망(110)의 파라미터는 조정되는 반면 언어 모델 신경망(120)의 파라미터는 고정된 상태로 유지된다.
이러한 이미지 인코더 신경망(110)의 트레이닝에 대해서는 도 2를 참조하여 아래에서 더 자세히 설명한다.
트레이닝 후, 다중-모달 태스크를 수행하기 위해, 시스템 100은 입력 이미지(104)를 포함하는 입력(102)을 획득하고 이미지 인코더 신경망(110)을 사용하여 입력 이미지(104)를 프로세싱한다.
전술한 바와 같이, 이미지 인코더 신경망(110)은 입력 이미지(104)를 특성화하는 이미지 임베딩 벡터(112)의 이미지 시퀀스를 생성하기 위해 입력 이미지(104)를 프로세싱하도록 트레이닝되었다.
입력(102)이 하나 이상의 다른 입력 이미지도 포함하는 경우, 시스템(100)은 또한 이미지 인코더 신경망(110)을 사용하여 서로의 입력 이미지를 프로세싱하여 서로의 입력 이미지에 대한 이미지 임베딩 벡터의 각각의 시퀀스를 생성한다.
그런 다음 시스템(100)은 이미지 임베딩 벡터(112)의 이미지 시퀀스를 포함하는 입력 임베딩 벡터(114)의 입력 시퀀스를 생성한다.
특히, 시스템(100)이 수행하는 다중-모달 태스크에 따라, 입력 시퀀스는 이미지 임베딩 벡터(112)의 이미지 시퀀스만을 포함할 수 있거나 (i) 각각의 텍스트 시퀀스를 나타내는 텍스트 임베딩 벡터의 하나 이상의 시퀀스, (ii) 각각 다른 입력 이미지의 특징을 나타내는(특성화하는) 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, 또는 (iii) 둘 다를 포함할 수 있다. 즉, 각 입력 임베딩 벡터(114)는 이미지 임베딩 벡터(112)와 동일한 차원수를 가지지만, 일부 태스크의 경우 임베딩 벡터(114)는 이미지 임베딩 벡터(112) 외에 다른 텍스트 또는 이미지 임베딩도 포함한다.
즉, 이미지 인코더 신경망(110)이 단일 다중-모달 태스크에 대해서만 학습되는 경우에도 시스템(100)은 입력 시퀀스를 적절하게 생성함으로써 학습 후 여러 개의 서로 다른 다중-모달 태스크를 수행할 수 있다.
시스템(100)은 트레이닝된 언어 모델 신경망(120)을 사용하여 이미지 임베딩 벡터(112)의 이미지 시퀀스를 포함하는 입력 임베딩 벡터(114)의 입력 시퀀스를 프로세싱하여, 네트워크 출력(152)의 적어도 일부로서 입력 임베딩 벡터(114)의 입력 시퀀스에 대한 텍스트 응답을 나타내는 텍스트 토큰(154)의 출력 시퀀스를 생성한다.
특히, 위에서 설명한 바와 같이, 출력 시퀀스의 각 텍스트 토큰(154)은 텍스트 토큰의 어휘에서 선택되고 그리고 트레이닝된 언어 모델 신경망(120)은 텍스트 토큰의 어휘에서 텍스트 토큰을 나타내는 텍스트 임베딩 벡터의 입력 시퀀스 트레이닝에 대한 언어 모델링 태스크를 수행하도록 트레이닝되었다. 시스템(100)이 입력 이미지(104)의 표현에 따라 언어 모델(120)을 효과적으로 조건화할 수 있도록, 이미지 임베딩 벡터(112)의 이미지 시퀀스에 있는 각 이미지 임베딩 벡터(112)는 텍스트 토큰의 어휘로부터 텍스트 토큰을 나타내는 텍스트 임베딩 벡터와 동일한 차원수를 갖는다.
따라서, 언어 모델 신경망(110)이 텍스트 입력 시퀀스에 대해서만 트레이닝되었더라도 추론 시 시스템(100)은 언어 모델 신경망(110)을 사용하여 다중-모달 태스크를 효과적으로 수행한다.
도 2는 이미지 인코더 신경망(110)의 트레이닝을 도시한다.
전술한 바와 같이, 언어 모델 신경망(120)이 언어 모델링 태스크를 사전 트레이닝한 후, 이미지 인코더 신경망(110)이 다중-모달 태스크를 트레이닝한다.
다중-모달 태스크를 위한 트레이닝 데이터에는 여러 트레이닝 예제가 포함되어 있으며, 여기서 각 트레이닝 예제는 (i) 하나 이상의 이미지를 포함하는 태스크에 대한 트레이닝 입력과 (ii) 트레이닝 입력에 대한 GT(ground truth) 텍스트(예: 트레이닝 입력에 대한 다중-모달 태스크를 수행하여 생성되어야 하는 텍스트)가 포함된다.
예를 들어 다중-모달 태스크는 입력 이미지에 대한 텍스트 캡션을 생성해야 하는 이미지 캡션 태스크일 수 있으며, 각 트레이닝 입력에는 단일 이미지가 포함될 수 있으며, 트레이닝 입력에 대한 GT(ground truth) 텍스트는 단일 이미지에 대한 GT(ground truth) 텍스트 캡션(적어도 일부)일 수 있다.
특히, 다중-모달 태스크는 트레이닝된 언어 모델 신경망(120)을 사용하여,
트레이닝 이미지(202)로부터 이미지 인코더 신경망(110)에 의해 생성된 트레이닝 이미지 임베딩 벡터(206)의 시퀀스를 포함하는 트레이닝 입력(204)을 프로세싱함으로써 복수의 텍스트 토큰을 포함하는 트레이닝 출력 텍스트 시퀀스를 생성하는 것을 요구한다. 다중-모달 태스크이 이미지 캡션 태스크인 경우, 트레이닝 출력 시퀀스는 트레이닝 이미지(202)에 대한 텍스트 캡션(적어도 일부)이다.
다중-모달 태스크에 대한 이미지 인코더 신경망(110)을 트레이닝시키기 위해, 시스템은 트레이닝된 언어 모델 신경망(120)을 통해 이미지 인코더 신경망(110)의 파라미터에 대한 다중-모달 태스크에 대한 손실 함수의 기울기를 역전파한다. 이미지 인코더 신경망(110)의 파라미터는 가중치 및 경우에 따라 이미지 인코더 신경망(110)의 레이어의 바이어스, 예를 들어 네트워크(110)의 완전 연결된 레이어(fully-connected layers)의 가중치 행렬, 네트워크(110)의 임의의 컨벌루션 레이어의 커널 등을 포함한다.
특히, 시스템은 여러 트레이닝 반복마다 트레이닝 데이터에 대한 트레이닝 예제를 샘플링할 수 있으며, 예를 들어, 트레이닝된 언어 모델 신경망(120)을 통한 역전파를 통해 샘플링된 트레이닝 예제를 사용하여 이미지 인코더 신경망(110)의 파라미터와 관련하여 다중-모달 태스크에 대한 손실 함수의 기울기를 계산한다. 그런 다음 시스템은 업데이트를 생성하기 위해 계산된 기울기에 최적화기(optimizer)를 적용한 다음 파라미터의 현재 값에 업데이트를 추가하거나 업데이트를 빼는 방식으로 이미지 인코더 신경망(110)의 파라미터를 업데이트할 수 있다.
구체적인 예로, 다중-모달 태스크의 손실 함수는 트레이닝 입력을 프로세싱한 결과 트레이닝된 언어 모델 신경망(120)에 의해 생성된 텍스트 토큰의 어휘의 텍스트 토큰에 대한 점수 분포에 의해 다중-모달 태스크에 대한 GT 텍스트 출력의 텍스트 토큰에 할당된 각각의 우도를 측정할 수 있다.
예를 들어, 언어 모델 신경망(120)이 전술한 바와 같이 자기-회귀적(auto-regressive) 신경망인 경우, 손실 함수는 주어진 트레이닝 입력에 대한 GT 텍스트 출력의 각 특정 토큰에 대해, (i) 주어진 트레이닝 입력과 (ii) GT 텍스트 출력에서 특정 토큰 앞에 오는 토큰의 임베딩을 포함하는 입력 시퀀스를 프로세싱함으로써 신경망(120)에 의해 생성된 점수 분포에 의해 특정 토큰에 할당된 확률의 음의 로그를 측정하는 음의 로그 우도 손실(negative log likelihood loss)일 수 있다.
도 2는 (i) 트레이닝 이미지(202) 및 (ii) 트레이닝 이미지(202)에 대한 캡션(caption)의 초기 부분(204)을 포함하는 이미지 캡션 태스크를 위한 트레이닝 입력에 대한 이미지 인코더 신경망(“비전 인코더”)(110)의 트레이닝의 예를 도시한다.
도 2에 도시된 바와 같이, 시스템은 (i) 텍스트 토큰을 수신하고 그리고 텍스트 토큰 각각의 임베딩을 생성하는 텍스트 임베더(text embedder)(210)와 (ii) 언어 모델 신경망(120)을 사용하며, 이는 도 2의 예에서, 트랜스포머 기반 신경망(예를 들어 위에 설명된 대로 셀프-어텐션(self-attention)을 적용(인과적으로 마스킹됨)하는 하나 이상의 셀프-어텐션 레이어 세트를 포함하는 신경망)이며, 자세한 내용은 아래에서 설명된다.
도 2의 예에서, 트레이닝 이미지(202)는 빨간 보트의 이미지이고, 캡션의 초기 부분(204)은 "A small red boat(작은 빨간 보트)"이고, 그리고 태스크는 캡션을 완성하는 출력을 생성, 예를 들어 신경망(120)이 완성(completion)("on the water"(수면 위의))(206)을 생성해야한다.
도 2에 도시된 바와 같이, 시스템은 두 개의 이미지 임베딩(222)을 포함하는 이미지 임베딩 시퀀스를 생성하기 위해 이미지 인코더(110)를 사용하여 트레이닝 이미지(202)를 프로세싱한다.
그런 다음 시스템은 임베딩(222, 224)과 초기 부분(204)의 텍스트 임베딩을 포함하는 트레이닝 입력 시퀀스를 프로세싱하여, 예를 들어 완성(206)에서 각 토큰에 대한 각각의 손실(예를 들어, "on" 토큰(232), "the" 토큰(234) 및 "water" 토큰(236)에 대한 각각의 손실) 합계의 조합인 손실 함수를 평가한다.
주어진 토큰에 대한 손실은 예를 들어 (i) 주어진 트레이닝 입력 및 (ii) GT 텍스트 출력에서 주어진 토큰 앞에 오는 모든 토큰의 임베딩을 포함하는 입력 시퀀스를 프로세싱함으로써 신경망(120)에 의해 생성된 점수 분포에 의해 주어진 토큰에 할당된 확률의 음의 로그일 수 있다.
그런 다음 시스템은 언어 모델 신경망(120)(및 텍스트 임베더(210))을 고정하여 각 이미지 임베딩(222 및 224)에 대한 해당 기울기(gradient)를 계산하는 동안 언어 모델 신경망(120)을 통해 손실을 역전파한다. 그런 다음 시스템은 신경망(110)의 파라미터에 대한 기울기를 결정하기 위해 이미지 인코더 신경망(110)을 통해 기울기를 역전파할 수 있다.
따라서, 도 2에 도시된 바와 같이, 트레이닝된 언어 모델 신경망(120)은 다중-모달 태스크에 대한 손실 함수에 대한 이미지 인코더 신경망(110)의 트레이닝 중에 트레이닝되지 않으며(텍스트 임베더(210)도 마찬가지임), 시스템은 언어 모델 신경망(120)의 파라미터를 조정하지 않고 트레이닝된 언어 모델 신경망(120)을 통해 이미지 인코더 신경망(110)으로 손실 함수의 기울기를 역전파한다.
도 2의 예는 실제로 단일 트레이닝 예(training example)에 대한 프로세싱을 보여주며, 시스템은 주어진 트레이닝 단계에서 여러 트레이닝 예를 병렬로 프로세싱할 수 있으며, 트레이닝 단계에 대해 계산된 전체 기울기는 각 트레이닝 예에 대한 각 기울기의 합일 수 있다.
토큰은 도 2에 단어로서 예시되어 있으며, 토큰은 단어, 단어 조각, 구두점 등과 같은 적절한 텍스트 토큰일 수 있다. 예를 들어, 시스템은 "SentencePiece" 토크나이저 또는 다른 토크나이저와 같은 토크나이저를 적용하여 해당 시퀀스를 어휘의 토큰으로 나누어 주어진 단어 시퀀스를 토큰화할 수 있다.
도 3은 다중-모달 태스크를 수행하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 다중-모달 시스템, 예를 들어 도 1에 도시된 다중-모달 시스템(100)은 본 명세서에 따라 적절하게 프로그래밍되고 프로세스(300)를 수행할 수 있다.
시스템은 입력 이미지를 획득한다(단계 302).
시스템은 입력 이미지를 특성화하는(characterizing) 이미지 임베딩 벡터의 이미지 시퀀스를 생성하기 위해 입력 이미지를 프로세싱하도록 트레이닝된 이미지 인코더 신경망을 사용하여 입력 이미지를 프로세싱한다(단계 304).
시스템은 이미지 임베딩 벡터의 이미지 시퀀스를 포함하는 입력 임베딩 벡터의 입력 시퀀스를 생성한다(단계 306).
시스템이 입력 시퀀스를 생성하는 방식은 시스템이 수행하는 다중-모달 태스크에 따라 달라진다.
일반적으로, 적어도 일부 태스크의 경우, 이미지 임베딩 벡터의 이미지 시퀀스 외에도, 입력 시퀀스는 텍스트 임베딩 벡터의 하나 이상의 "프롬프트(prompt)" 시퀀스도 포함할 수 있다. 텍스트 임베딩 벡터의 프롬프트 시퀀스는 출력 시퀀스에 의한 텍스트 응답에 의해 수행되어야 하는 태스크를 설명하는 텍스트 시퀀스를 나타내며, 예를 들어 이미지 임베딩 벡터를 사용하여 어떤 태스크를 수행해야 하는지에 대한 정보를 언어 모델 신경망에 제공한다.
예를 들어, 이미지 캡션 태스크나 단일 이미지에서 동작(오퍼레이팅)하는 기타 다중-모달 태스크의 경우, 입력 시퀀스는 (i) 이미지 임베딩 벡터의 이미지 시퀀스만 포함하거나 (ii) 출력 시퀀스로 표시되는 텍스트 응답에 의해 수행되어야 하는 태스크를 설명하는 텍스트 시퀀스를 나타내는 텍스트 임베딩 벡터의 "프롬프트" 시퀀스가 뒤따르거나 앞에 오는 이미지 임베딩 벡터의 이미지 시퀀스를 포함할 수 있다. 이미지 캡션 태스크의 예에서, 프롬프트 시퀀스는 예를 들어 "Caption this(이 캡션)" 또는 "Caption:(캡션:)"을 나타낼 수 있다.
또 다른 예로서, 이미지 캡션 완성 태스크, 시각적 질의 응답 태스크 또는 단일 이미지 및 이미지와 관련된 텍스트에 대해 동작(오퍼레이팅)하는 기타 다중-모달 태스크의 경우, 입력 시퀀스는 (i) 이미지 임베딩 벡터의 이미지 시퀀스와 이미지와 관련된 텍스트 시퀀스의 텍스트 임베딩만을 포함할 수 있거나, (ii) 출력 시퀀스로 표시되는 텍스트 응답으로 수행되어야 하는 태스크를 설명하는 텍스트 시퀀스를 나타내는 텍스트 임베딩 벡터의 하나 이상의 "프롬프트" 시퀀스가 뒤따르거나 앞에 오는 또는 둘 다인 이미지와 관련된 텍스트 시퀀스의 텍스트 임베딩 및 이미지 임베딩 벡터의 이미지 시퀀스를 포함할 수 있다. 시각적 질의 응답 태스크의 예에서, 텍스트 임베딩 앞에는 "Q:" 또는 "Question"을 나타내는 첫 번째 프롬프트 시퀀스가 올 수 있고, "A:" 또는 "Answer:" 등을 나타내는 두 번째 프롬프트 시퀀스가 뒤따를 수 있다.
다른 다중-모달 태스크 및 해당 태스크에 대한 입력 시퀀스의 예는 도 4 내지 도 6을 참조하여 아래에 설명된다.
시스템은 트레이닝된 언어 모델 신경망을 사용하여 입력 임베딩 벡터의 입력 시퀀스를 프로세싱하여 입력 임베딩 벡터의 입력 시퀀스에 대한 텍스트 응답을 나타내는 텍스트 토큰의 출력 시퀀스를 출력으로서 생성한다(단계 308).
도 4는 시각적 질의 응답 태스크를 수행하는 데 사용되는 이미지 인코더 신경망(110)과 언어 모델 신경망(120)의 예를 보여준다.
시각적 질의 응답 태스크에서, 입력 임베딩 벡터의 입력 시퀀스는 입력 이미지에 대한 이미지 임베딩 벡터의 이미지 시퀀스와 입력 이미지에 대한 질문을 나타내는 텍스트 임베딩 벡터의 시퀀스를 포함하고, 텍스트 토큰의 출력 시퀀스는 입력 이미지에 대한 질문에 대한 예측된 텍스트 답변을 나타낸다.
도 4의 예에서, 시스템은 자동차 이미지와 이미지에 대한 질문(“what colour is the car?"(자동차는 무슨 색인가요?))을 수신한다. 그런 다음 시스템은 수신된 이미지의 이미지 임베딩 벡터의 이미지 시퀀스와 입력 이미지에 대한 질문을 나타내는 텍스트 임베딩 벡터의 시퀀스를 포함하는 입력 시퀀스를 생성한다. 도 4의 예에서, 입력 시퀀스에는 어떤 태스크가 수행되고 있는지에 대한 정보를 신경망(120)에 제공하는 두 개의 프롬프트 시퀀스도 포함된다(예를 들어 텍스트 임베딩 벡터의 전체 시퀀스에는 "Question: What colour is the car? Answer:"라는 텍스트 임베딩이 포함된다).
그런 다음 시스템은 입력 이미지("Blue")에 대한 질문에 대한 예측 텍스트 답변을 나타내는 텍스트 토큰의 출력 시퀀스를 생성하기 위해 입력 시퀀스를 프로세싱한다. 도 4의 예에서, 출력 시퀀스에는 출력이 사용자에게 제공되기 전에 제거될 수 있는 지정된 "EOS"(End-of-Sequence) 토큰도 포함된다.
도 5는 k-샷 외부 지식 시각적 질의 응답 태스크를 수행하는 데 사용되는 이미지 인코더 신경망(110)과 언어 모델 신경망(120)의 예를 보여준다. 도 5의 예에서, k는 1과 동일하지만, 보다 일반적으로 k는 임의의 양의 정수, 예를 들어 1보다 크거나 같은 임의의 정수와 동일할 수 있다.
이 태스크에서, 입력 임베딩 벡터의 입력 시퀀스는 입력 이미지의 임베딩 외에도, (i) 각각의 추가 입력 이미지를 특성화하는 k개의 다른 이미지 임베딩 벡터 시퀀스, 그리고 (ii) 서로 다른 이미지 임베딩 벡터 시퀀스에 대해, 다른 이미지 임베딩 벡터 시퀀스에 의해 특성화된 추가 이미지에 대해 질문할 때 질문에 대한 답변을 나타내는 텍스트 임베딩 벡터의 각 시퀀스를 포함한다.
도 5의 예에서, 입력 시퀀스는 비행기의 이미지 임베딩과 이미지에 대한 질문과 답변을 나타내는 텍스트 시퀀스 임베딩을 포함한다(예를 들어, "Q: Who invented this? A: The Wright brothers."(Q: 누가 이걸 발명했나요? A: 라이트 형제요.)).
시스템은 입력 시퀀스를 프로세싱하여 텍스트 토큰의 출력 시퀀스를 생성하며 입력 이미지에 대해 질문할 때 질문에 대한 예상 답변을 나타낸다. 도 5의 예에서, 답변(answer)은 "Steve Jobs"(스티브 잡스)이다.
도 5의 예에서, 출력 시퀀스에는 출력이 사용자에게 제공되기 전에 제거될 수 있는 지정된 "EOS"(End-of-Sequence) 토큰도 포함된다.
대안으로, 태스크를 질문과 답변으로 제시하는 대신, 시스템은 컨텍스트 텍스트 시퀀스를 "This was invented by the Wright brothers(이것은 라이트 형제가 발명했습니다)"라는 진술(statement)로 제시할 수 있고, 질문을 나타내는 텍스트 시퀀스는 신경망의 출력에 의해 완성되어야 하는 불완전한 진술(예: "This was invented by")로 나타날 수 있다.
도 5의 태스크는 질문에 대한 답변이 이미지에 표시되지 않고, 따라서 태스크에서는 언어 모델 신경망(120)이 사전 트레이닝의 결과로 인코딩된 정보를 사용하여 답변을 결정해야 하기 때문에 "외부 지식(outside knowledge)" 태스크라고 한다.
도 6은 k-샷 이미지 분류 태스크를 수행하는데 사용되는 이미지 인코더 신경망(110)과 언어 모델 신경망(120)의 예를 도시한다. 도 6의 예에서, k는 2와 동일하지만, 보다 일반적으로 k는 임의의 양의 정수, 예를 들어 1보다 크거나 같은 임의의 정수와 동일할 수 있다.
이 태스크에서, 입력 임베딩 벡터의 입력 시퀀스에는 입력 이미지의 임베딩 외에도 (i) 각각의 추가 입력 이미지를 특징으로 하는 k개의 다른 이미지 임베딩 벡터 시퀀스, (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 다른 이미지에 대한 텍스트 분류("텍스트 라벨(text label)")를 나타내는 텍스트 임베딩 벡터의 각 시퀀스가 포함된다.
도 6의 예에서, 입력 시퀀스는 첫 번째 과일의 첫 번째 이미지와 첫 번째 이미지에 대한 라벨의 임베딩("This is a dax.(이것은 닥스입니다.)")과 두 번째 과일의 두 번째 이미지와 해당 두 번째 이미지에 대한 라벨의 임베딩("This is a blicket.(이것은 브리켓입니다.)")을 포함한다. 입력 시퀀스는 입력 이미지(예: 세 번째 과일 이미지)와 분류 태스크를 위한 프롬프트 텍스트 시퀀스("Question: What is this? Answer:(질문: 이것은 무엇인가요? 답변:)")를 포함한다.
시스템은 입력 시퀀스를 프로세싱하여 입력 이미지에 대한 예측된 분류를 나타내는 텍스트 토큰의 출력 시퀀스를 생성한다. 도 5의 예에서, 답변(answer)은 "This is a dax.(이것은 닥스입니다.)"이다.
도 6의 예에서, 출력 시퀀스에는 출력이 사용자에게 제공되기 전에 제거될 수 있는 지정된 "EOS"(End-of-Sequence) 토큰도 포함된다.
보다 일반적으로, 도 6의 예에서의 분류 태스크는 하나 이상의 추가 이미지에 대한 특정 유형의 정보를 제공하고 신경망이 입력 이미지에 대해 동일한 유형의 정보를 제공하도록 요구하는 태스크로 구성될 수 있다.
즉, 이러한 유형의 태스크에 대해, 입력 임베딩 벡터의 입력 시퀀스는
(i) 각각의 추가 입력 이미지를 특징으로 하는 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 이미지 임베딩 벡터의 다른 시퀀스를 특징으로 하는 추가 이미지에 대한 특정 유형의 정보를 제공하는 텍스트 임베딩 벡터의 각 시퀀스, 그리고 (iii) 이미지 임베딩 벡터의 이미지 시퀀스의 경우 입력 이미지에 대한 특정 유형의 정보를 제공하기 위한 텍스트 프롬프트를 나타내는 텍스트 임베딩의 부분 시퀀스를 포함한다. 그러면 출력 시퀀스는 입력 이미지에 대한 특정 유형의 정보를 제공하는 텍스트 프롬프트의 예상된 완성(predicted completion)을 나타낸다.
도 4 내지 도 6은 다중-모달 태스크의 예를 보여주며, 이는 이러한 유형의 태스크에 대한 트레이닝 데이터에 대해 이미지 인코더 또는 언어 모델 신경망을 재트레이닝할 필요 없이 시스템이 수행할 수 있는 다양한 유형의 퓨샷(few-shot) 또는 제로샷(zero-shot) 다중-모달 태스크의 예일 뿐이다.
도 1의 다중 모델 시스템(100)은 다양한 기술적 응용이 있다. 예를 들어, 입력(102)의 이미지(104)는 카메라에 의해 캡처된 현실 세계의 이미지일 수 있고, 텍스트 데이터(154)는 현실 세계를 설명하는 텍스트일 수 있다. 특히, 텍스트(154)는 입력(102)에 포함된 텍스트에 의해 제기된 현실 세계에 관한 질문에 답할 수 있다. 따라서, 다중 모델 시스템(100)의 기술적 응용 중 하나는 시각 장애가 있는 사용자가 이미지(104)에 대한 정보를 얻기 위해 사용되는 것이다. 예를 들어, 다중 모델 시스템(100)은 이미지(104)를 획득하는(예를 들어, 컴퓨터 시스템의 카메라를 사용하여) 컴퓨터 시스템의 일부일 수 있다. 사용자는 (예를 들어 데이터 입력 장치를 제어하거나 컴퓨터 시스템에 의해 텍스트로 변환되는 명령, 예를 들어 음소를 나타내는 문자 또는 토큰의 문자열을 말함으로써) 입력(102)의 텍스트를 제공할 수 있다. 그러면 다중 모델 시스템(100)은 출력 텍스트(154)를 생성할 수 있다(예, 스피커 장치에 의해 사용자에게 방송되는 사운드 신호로 변환되는 일련의 토큰). 이 컴퓨터 시스템의 유용한 특징은 (사용자가 쿼리 프로세싱 시스템이 이미지(104)에서 추출해야 하는 정보를 자유롭게 정의할 수 있기 때문에) 유연성이다.
선택적으로, 컴퓨터 시스템은 사용자가 일련의 다중 입력(102)을 생성할 수 있도록 구성될 수 있으며, 각각은 동일한 이미지(104)를 포함하지만 서로 다른 텍스트를 포함한다. 예를 들어, 첫 번째 입력(102)의 텍스트는 "What is shown in the picture?(그림에 표시된 것은 무엇입니까?)"일 수 있다. 쿼리 프로세싱 시스템이 제1 입력(102)에 응답하여, 해당 출력 텍스트(154)(예: "A bus(버스)")를 생성하는 경우, 그러면 그 사람은 동일한 이미지(104)와 새로운 텍스트(예: "What destination is on the front of the bus?(버스의 앞에 어느 목적지가 있나요?)")를 포함하는 두 번째 입력(102)을 정의할 수 있다.
선택적으로, 시리즈의 첫 번째 입력(102)을 제외한 시리즈의 입력(102)의 각 입력(102)은 시리즈의 이전 입력(102) 중 하나 이상으로부터의 입력 텍스트 및 출력 텍스트(154)를 포함할 수 있다. 이러한 방식으로, 사람은 이미지(104)에 관해 다중 모델 시스템(100)과 일관된 토론에 참여할 수 있으며(일반적으로 시리즈의 모든 입력(102)에 포함됨), 각 단계에서 다중 모델 시스템(100)은 그 토론의 이전 부분의 합리적인 연속인 출력 텍스트(154)를 생성한다.
다중 모델 시스템(100)의 또 다른 기술적 응용은 이미지(104)에 대한 캡션 시스템이다. 입력(102)의 텍스트는 "provide a caption explaining what is happening(무슨 일이 일어나고 있는지 설명하는 캡션을 제공)"과 같은 이미지 프로세싱 태스크를 정의할 수 있으며, 이 경우 출력 텍스트(154)는 이미지(104)에 묘사된 이벤트 또는 액션을 설명하는 캡션을 포함할 수 있다.
다른 기술 응용에서, 이미지(104)는 텍스트를 포함하고, 컴퓨터 시스템은 입력(102)에서 일부 텍스트의 적어도 일부를 생성하기 위해 이미지(104)로부터 텍스트를 추출하는 OCR(광학 문자 인식) 시스템을 포함할 수 있다. 예를 들어, 이미지(104)가 지시사항이 있는 표지판을 포함하는 장면의 이미지인 경우(예를 들어, 이미지는 텍스트를 포함하는 도로 표지판을 포함하는 도로의 이미지일 수 있음), OCR은 이미지의 지시사항에 기초하여 입력(102)의 텍스트를 생성할 수 있다. 이 경우, 출력 텍스트(154)는 주어진 장면의 나머지 부분에서 지시사항의 중요성을 나타낼 수 있다 (예를 들어, 현재 주차가 가능함을 나타내는 표지판과 빈 주차 공간의 이미지인 이미지(104)의 경우, 출력 텍스트(154)는 "Please park here(여기에 주차하세요)"가 될 수 있다).
다른 기술적 응용에서, 입력(102)은 출력 텍스트(154)로서 컴퓨터 시스템의 프로세서에 의해 실행 가능한 코드를 생성하도록 다중 모델 시스템(100)에 지시할 수 있다. 예를 들어, 입력(102)은 "Generate HTML code which when executed generates a video image of the object shown in the image(실행 시 이미지에 표시된 객체의 비디오 이미지를 생성하는 HTML 코드를 생성)"라고 읽는 텍스트를 포함할 수 있다.
위에서 언급한 셀프-어텐션 계층은 셀프-어텐션 계층 입력(또는 계층 입력에서 파생된 입력)에 대해 오퍼레이팅하여 셀프-어텐션 계층 출력을 생성하는 어텐션 메커니즘을 포함하는 신경망 계층이다. 셀프-어텐션 메커니즘은 인과적으로 마스킹되어 입력 시퀀스의 특정 위치가 입력 시퀀스의 특정 위치 뒤의 모든 위치를 무시(예: 데이터 사용)하지 않도록 할 수 있다. 가능한 어텐션 메커니즘은 다양하다. 어텐션 메커니즘을 포함한 셀프-어텐션 계층의 몇 가지 예는 "Vaswani et al. "Attention is all you need", 31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA"; "Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J Liu. Exploring the limits of transfer learning with a unified text-to-text transformer. arXiv preprint arXiv:1910.10683, 2019"; "Daniel Adiwardana, Minh-Thang Luong, David R. So, Jamie Hall, Noah Fiedel, Romal Thoppilan, Zi Yang, Apoorv Kulshreshtha, Gaurav Nemade, Yifeng Lu, and Quoc V. Le. Towards a human-like open-domain chatbot. CoRR, abs/2001.09977, 2020"; 및 "Tom B Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. arXiv preprint arXiv:2005.14165, 2020"에 설명된다.
일반적으로 어텐션 메커니즘은 쿼리와 키-값 쌍 집합을 출력에 매핑되며, 여기서 쿼리, 키 및 값은 모두 벡터이다. 출력은 값의 가중치 합으로 계산되며, 여기서 각 값에 할당된 가중치는 호환성 함수로 계산된다(예를 들어 해당 키를 사용한 쿼리의 내적 또는 확장된 내적).
일반적으로, 셀프-어텐션 메커니즘은 동일한 시퀀스의 서로 다른 위치를 연관시켜 시퀀스의 변환된 버전을 출력으로 결정하도록 구성된다. 예를 들어, 어텐션 계층 입력은 입력 시퀀스의 각 요소에 대한 벡터를 포함할 수 있다. 이러한 벡터는 셀프-어텐션 메커니즘에 대한 입력을 제공하고 셀프-어텐션 메커니즘에 의해 어텐션 레이어(계층) 출력에 대한 동일한 시퀀스의 새로운 표현을 결정하는 데 사용되며, 이는 유사하게 입력 시퀀스의 각 요소에 대한 벡터로 구성된다. 셀프-어텐션 메커니즘의 출력은 어텐션 계층 출력으로 사용될 수 있으며, 또는 어텐션 계층 출력을 제공하기 위해 하나 이상의 피드포워드 계층, 연결 건너뛰기 또는 정규화 연산에 의해 프로세싱될 수 있다.
일부 구현에서, 어텐션 메커니즘은 어텐션 계층에 대한 입력 데이터 X인 어텐션 계층 입력에, 예를들어 행렬 로 정의된 각 쿼리 변환, 행렬 로 정의된 키 변환, 행렬 로 정의된 값 변환을 적용하여, 입력 시퀀스의 각 벡터에 대한 개별 쿼리를 포함하는 쿼리 행렬 , 입력 시퀀스의 각 벡터에 대한 해당 키를 포함하는 키 행렬 , 입력 시퀀스의 각 벡터에 대한 각 값을 포함하는 값 행렬 을 도출하도록 구성되며, 이는 출력에 대한 어텐션된 순서를 결정하는 데 사용된다. 예를 들어, 어텐션 메커니즘은 각 값 벡터에 대한 개별 가중치를 결정하기 위해 각 쿼리 벡터를 각 키 벡터에 적용한 다음 입력 시퀀스의 각 요소에 대한 셀프-어텐션 계층 출력을 결정하기 위해 각 가중치를 사용하여 값 벡터를 결합함으로써 적용되는 내적 어텐션 메커니즘일 수 있다. 셀프-어텐션 계층(레이어) 출력은 스케일링 인자(예를 들어 스케일링된 내적 어텐션을 구현하기 위해 쿼리와 키 차원의 제곱근)에 의해 스케일링될 수 있다. 따라서, 예를 들어 어텐션 메커니즘의 출력은 로 결정될 수 있으며, 여기서 d는 키(및 값) 벡터의 차원이다. 다른 구현에서 어텐션 메커니즘은 은닉층이 있는 피드포워드 네트워크를 사용하여 호환성 함수를 계산하는 "추가 어텐션(additive attention)" 메커니즘을 포함한다. 어텐션 메커니즘의 출력은 하나 이상의 완전 연결된 피드포워드 신경망 계층에 의해 추가로 프로세싱될 수 있다.
어텐션 메커니즘은 다중 헤드 어텐션을 구현할 수 있으며, 즉, 여러 개의 서로 다른 어텐션 메커니즘을 병렬로 적용할 수 있다. 그런 다음 이들의 출력을 결합할 수 있으며, 예를 들어 필요한 경우 원래 차원으로 줄이기 위해 학습된 선형 변환을 적용하여 연결될 수 있다.
본 명세서는 시스템 및 컴퓨터 프로그램 컴포넌트와 관련하여 "구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 구성된 시스템이 특정 오퍼레이션 또는 액션을 수행하도록 구성된다는 것은 시스템에 소프트웨어, 펌웨어, 하드웨어 또는 동작 중에 시스템이 오퍼레이션 또는 액션을 수행하도록 하는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 오퍼레이션 또는 액션을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 프로세싱 장치에 의해 실행될 때 장치가 오퍼레이션 또는 액션을 수행하게 하는 명령어를 포함한다는 것을 의미한다.
본 명세서에 기술된 요지 및 기능적 동작의 실시예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 프로세싱 장치에 의해 실행되거나 데이터 프로세싱 장치의 동작을 제어하기 위해 유형의 비일시적 저장 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능한 저장 장치, 기계 판독 가능한 저장 기판, 랜덤 또는 직렬 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령어는 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하도록 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 프로세싱 장치"라는 용어는 데이터 프로세싱 하드웨어를 말하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 종류의 장치, 장치 및 기계를 포함한다. 장치는 또한 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 논리 회로일 수 있거나 추가로 포함할 수 있다. 장치는, 하드웨어에 추가하여, 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드라고도 하거나 설명할 수 있는 컴퓨터 프로그램은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성할 수 있으며; 그리고 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 장치를 포함하여 모든 형태로 배포될 수 있다. 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부에 저장될 수 있으며, 예를 들어, 마크업 언어 문서, 해당 프로그램 전용 단일 파일 또는 여러 조정 파일, 예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 부분을 저장하는 파일에 저장된 하나 이상의 스크립트일 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 데이터 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서, "데이터베이스"라는 용어는 임의의 데이터 컬렉션을 지칭하기 위해 광범위하게 사용되며: 데이터는 특정 방식으로 구조화될 필요가 없거나 전혀 구조화될 필요가 없으며, 하나 이상의 위치에 있는 저장 장치에 저장할 수 있다. 따라서, 예를 들어 인덱스 데이터베이스는 각각 다르게 구성되고 액세스될 수 있는 여러 데이터 컬렉션을 포함할 수 있다.
본 명세서에서 용어 "엔진"은 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 컴포넌트로 구현된다. 일부 경우 하나 이상의 컴퓨터가 특정 엔진 전용이며; 다른 경우에는 여러 엔진이 동일한 컴퓨터에 설치되어 실행될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA 또는 ASIC과 같은 특수 목적 논리 회로 또는 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서 또는 둘 다, 또는 다른 종류의 중앙 프로세싱 장치에 기초하여 할 수 있다. 일반적으로 중앙 프로세싱 장치는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령어와 데이터를 수신한다. 컴퓨터의 필수 요소는 명령어를 수행하거나 실행하기 위한 중앙 프로세싱 장치와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 중앙 프로세싱 장치와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 포함하거나 동작 가능하게 연결된다. 그러나 컴퓨터에는 그러한 장치가 필요하지 않는다. 또한, 컴퓨터는 휴대 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플계층, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 장치(예를 들어 USB(Universal Serial Bus) 플래시 드라이브)와 같은 다른 장치에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함하며, 예를 들어 반도체 메모리 장치, 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치를 포함하고; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크를 포함하고; 자기 광 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함할 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예들은 사용자에게 정보를 표시하기 위한 디스플레이 장치, 예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터 및 키보드 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치를 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 장치도 사용자와의 상호작용을 제공하는 데 사용할 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 문서를 수신하여 사용자와 상호작용할 수 있으며; 예를 들어 웹 브라우저에서 수신된 요청에 대한 응답으로 사용자 장치의 웹 브라우저에 웹 페이지를 전송한다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 장치(예: 메쉬징 애플리케이션을 실행하는 스마트폰)에 보내고 사용자로부터 응답 메시지를 수신하여 사용자와 상호작용할 수 있다.
기계 트레이닝 모델을 구현하기 위한 데이터 프로세싱 장치는 또한 예를 들어 기계 트레이닝 트레이닝 또는 프로덕션, 즉 추론, 워크로드의 공통 및 컴퓨팅 집약적 부분을 프로세싱하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 트레이닝 모델은 기계 트레이닝 프레임워크, 예를 들어 텐서플로우(TensorFlow) 프레임워크를 사용하여 구현 및 배포할 수 있다.
본 명세서에 기술된 주제의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트, 그래픽 사용자 인터페이스가 있는 클라이언트 컴퓨터, 웹 브라우저 또는 사용자가 본 명세서에 설명된 주제의 구현과 상호작용할 수 있는 앱과 같은 프론트 엔드 컴포넌트, 또는 하나 이상의 백엔드 컴포넌트, 미들웨어 컴포넌트, 프론트 엔드 컴포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network), 예를 들어 인터넷이 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 예를 들어 클라이언트로서 작용하는 장치와 상호작용하는 사용자로부터 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위해 데이터, 예를 들어 HTML 페이지를 사용자 장치에 전송한다. 사용자 장치에서 생성된 데이터, 예를 들어 사용자 상호작용의 결과는 장치로부터 서버에서 수신될 수 있다.
본 명세서는 많은 특정 구현 세부사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징의 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 역으로, 단일 실시예의 컨텍스트에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 하위 조합으로 다중 실시예에서 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그러한 것으로 청구될 수 있지만, 청구된 조합의 하나 이상의 특징은 일부 경우에 조합에서 제거될 수 있으며 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작이 도면에 도시되어 있고 청구범위에 특정 순서로 인용되어 있지만, 이는 그러한 동작이 도시된 특정 순서로 또는 순차적인 순서로 수행되어야 하거나 또는 모든 예시된 동작이 원하는 결과를 얻을 수 있다. 특정 상황에서는 멀티태스킹 및 병렬 프로세싱가 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품에 패키징될 수 있음을 이해해야 한다.
요지의 특정 실시예가 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 예를 들어, 청구범위에 언급된 동작는 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 일례로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지는 않는다. 경우에 따라 멀티태스킹 및 병렬 프로세싱가 유리할 수 있다.

Claims (20)

  1. 하나 이상의 컴퓨터에 의해 수행되는 방법으로서,
    입력 이미지를 획득하는 단계;
    상기 입력 이미지를 특성화하는 이미지 임베딩 벡터의 이미지 시퀀스를 생성하도록, 상기 입력 이미지를 프로세싱하도록 트레이닝된 이미지 인코더 신경망을 사용하여 상기 입력 이미지를 프로세싱하는 단계;
    상기 이미지 임베딩 벡터의 이미지 시퀀스를 포함하는 입력 임베딩 벡터의 입력 시퀀스를 생성하는 단계; 그리고
    상기 입력 임베딩 벡터의 입력 시퀀스에 대한 텍스트 응답을 나타내는 텍스트 토큰의 출력 시퀀스를 출력으로서 생성하도록, 트레이닝된 언어 모델 신경망을 사용하여 상기 이미지 임베딩 벡터의 이미지 시퀀스를 포함하는 입력 임베딩 벡터의 입력 시퀀스를 프로세싱하는 단계를 포함하며,
    상기 출력 시퀀스의 각 텍스트 토큰은 텍스트 토큰의 어휘에서 선택되며;
    상기 트레이닝된 언어 모델 신경망은 상기 텍스트 토큰의 어휘에서 텍스트 토큰을 나타내는 텍스트 임베딩 벡터의 입력 시퀀스 트레이닝에 대한 언어 모델링 태스크를 수행하도록 트레이닝되며; 그리고
    상기 이미지 임베딩 벡터의 이미지 시퀀스에 있는 각 이미지 임베딩 벡터는 텍스트 토큰의 어휘로부터의 텍스트 토큰을 나타내는 텍스트 임베딩 벡터와 동일한 차원수(dimensionality)를 갖는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  2. 제1항에 있어서,
    상기 이미지 인코더 신경망은 상기 트레이닝된 언어 모델 신경망을 통해 상기 이미지 인코더 신경망의 파라미터에 대한 손실 함수의 기울기를 역전파함으로써 트레이닝되며;
    상기 손실 함수는 트레이닝된 언어 모델 신경망을 사용하여, 트레이닝 이미지로부터 상기 이미지 인코더 신경망에 의해 생성된 트레이닝 이미지 임베딩 벡터의 시퀀스를 포함하는 트레이닝 입력을 프로세싱함으로써 복수의 텍스트 토큰을 포함하는 트레이닝 출력 텍스트 시퀀스를 생성해야 하는 다중-모달(multi-modal) 태스크에 대한 손실 함수인 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  3. 제2항에 있어서, 상기 다중-모달 태스크는 이미지 캡션 태스크이고, 상기 트레이닝 출력 텍스트 시퀀스는 상기 트레이닝 이미지에 대한 텍스트 캡션의 적어도 일부인 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 트레이닝된 언어 모델 신경망은 상기 다중-모달 태스크에 대한 손실 함수에 대한 이미지 인코더 신경망의 트레이닝 동안 트레이닝되지 않으며,
    상기 이미지 인코더 신경망을 트레이닝하는 것은 언어 모델 신경망의 파라미터를 조정하지 않고 상기 트레이닝된 언어 모델 신경망을 통해 상기 이미지 인코더 신경망으로 상기 손실 함수의 기울기를 역전파하는 것을 포함하는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 손실 함수는 상기 트레이닝 입력의 프로세싱의 결과로서 상기 트레이닝된 언어 모델 신경망에 의해 생성된 텍스트 토큰의 어휘의 텍스트 토큰에 대한 점수 분포에 의해 상기 다중-모달 태스크에 대한 GT(ground truth) 텍스트 출력의 텍스트 토큰에 할당된 각각의 우도를 측정하는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서, 상기 트레이닝된 언어 모델 신경망은 상기 다중-모달 태스크에 대한 손실 함수에 대한 이미지 인코더 신경망의 트레이닝 이전에 상기 언어 모델링 태스크에 대해 트레이닝된 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  7. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 언어 모델 신경망은 출력 시퀀스에서 특정 텍스트 토큰 앞에 오는 임의의 텍스트 토큰의 텍스트 임베딩 벡터가 뒤따르는 입력 임베딩 벡터의 입력 시퀀스(i)를 포함하는 현재 입력 시퀀스에 따라 조건화된 출력 시퀀스의 각 특정 텍스트 토큰을 생성함으로써, 텍스트 토큰의 출력 시퀀스를 자기-회귀적으로 생성하는 자기-회귀적 신경망인 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  8. 제7항에 있어서, 상기 트레이닝된 언어 모델 신경망은 각각 셀프-어텐션 연산을 적용하는 복수의 레이어를 포함하는 자기-회귀적 트랜스포머 기반 신경망인 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  9. 제8항에 있어서, 상기 트레이닝된 언어 모델 신경망은 복수의 레이어를 사용하여 입력 시퀀스를 프로세싱하기 전에 입력 시퀀스에 상대 위치 인코딩을 적용하도록 구성되는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  10. 선행하는 청구항 중 어느 한 항에 있어서, 상기 이미지 인코더 신경망은 컨벌루션 신경망을 포함하는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  11. 제10항에 있어서, 상기 컨벌루션 신경망은 상기 입력 이미지를 특성화하는 출력 텐서를 생성하도록 상기 입력 이미지를 프로세싱하도록 구성되고, 그리고
    상기 이미지 인코더 신경망은 상기 출력 텐서를 상기 이미지 임베딩 벡터의 이미지 시퀀스에 매핑하도록 구성되는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  12. 선행하는 청구항 중 어느 한 항에 있어서, 상기 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 대한 예측된 텍스트 캡션의 적어도 일부를 나타내는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 입력 임베딩 벡터의 입력 시퀀스는 또한 (i) 각각의 텍스트 시퀀스를 나타내는 텍스트 임베딩 벡터의 하나 이상의 시퀀스, (ii) 각각 다른 입력 이미지를 특성화하는 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, 또는 (iii) 둘 다를 포함하는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  14. 제13항에 있어서, 상기 입력 임베딩 벡터의 입력 시퀀스는 상기 이미지 임베딩 벡터의 이미지 시퀀스와 상기 입력 이미지에 대한 질문을 나타내는 텍스트 임베딩 벡터의 시퀀스를 포함하고, 그리고 상기 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 관한 질문에 대한 예측된 텍스트 답변을 나타내는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  15. 제13항에 있어서, 상기 입력 임베딩 벡터의 입력 시퀀스는 (i) 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, 및 (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 이미지 임베딩 벡터의 다른 시퀀스에 의해 특성화된(characterized) 다른 이미지에 대한 분류를 나타내는 텍스트 임베딩 벡터의 각 시퀀스를 포함하며, 그리고 상기 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 대한 예측된 분류를 나타내는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  16. 제13항에 있어서, 상기 입력 임베딩 벡터의 입력 시퀀스는 (i) 각각의 추가 입력 이미지를 특성화하는 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 이미지 임베딩 벡터의 다른 시퀀스에 의해 특성화된 추가 이미지에 대한 질문에 대한 답변을 나타내는 텍스트 임베딩 벡터의 각 시퀀스를 포함하며, 그리고 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 관해 질문을 받을 때 상기 질문에 대한 예측된 답변을 나타내는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  17. 제13항에 있어서, 상기 입력 임베딩 벡터의 입력 시퀀스는 (i) 각각의 추가 입력 이미지를 특성화하는 이미지 임베딩 벡터의 하나 이상의 다른 시퀀스, (ii) 이미지 임베딩 벡터의 서로 다른 시퀀스에 대해, 이미지 임베딩 벡터의 다른 시퀀스에 의해 특성화된 추가 이미지에 대한 특정 유형의 정보를 제공하는 텍스트 임베딩 벡터의 각 시퀀스, 그리고 (iii) 이미지 임베딩 벡터의 이미지 시퀀스에 대해, 상기 입력 이미지에 대한 특정 유형의 정보를 제공하기 위한 텍스트 프롬프트를 나타내는 텍스트 임베딩의 부분 시퀀스를 포함하며, 그리고 상기 텍스트 토큰의 출력 시퀀스는 상기 입력 이미지에 관한 특정 유형의 정보를 제공하는 상기 텍스트 프롬프트의 예상 완료를 나타내는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서, 상기 입력 임베딩 벡터의 입력 시퀀스는 출력 시퀀스에 의해 표현된 텍스트 응답에 의해 수행되어야 하는 태스크를 설명하는 텍스트 시퀀스를 나타내는 텍스트 임베딩 벡터의 제1 시퀀스를 포함하는 것을 특징으로 하는 하나 이상의 컴퓨터에 의해 수행되는 방법.
  19. 시스템으로서,
    하나 이상의 컴퓨터; 그리고
    상기 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제18항 중 어느 한 항의 단계를 수행하게 하는 명령어를 저장한 하나 이상의 저장 장치를 포함하는 것을 특징으로 하는 시스템.
  20. 하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제18항 중 어느 한 항의 방법을 수행하게 하는 명령어를 저장한 하나 이상의 컴퓨터 판독 가능 저장 매체.
KR1020237033833A 2021-06-08 2022-06-08 고정 언어 모델을 사용한 다중-모달 퓨-샷 학습 KR20230152741A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GR20210100374 2021-06-08
GR20210100374 2021-06-08
PCT/EP2022/065502 WO2022258666A1 (en) 2021-06-08 2022-06-08 Multimodal few-shot learning with frozen language models

Publications (1)

Publication Number Publication Date
KR20230152741A true KR20230152741A (ko) 2023-11-03

Family

ID=82319915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033833A KR20230152741A (ko) 2021-06-08 2022-06-08 고정 언어 모델을 사용한 다중-모달 퓨-샷 학습

Country Status (8)

Country Link
EP (1) EP4302239A1 (ko)
KR (1) KR20230152741A (ko)
CN (1) CN117121015A (ko)
AU (1) AU2022288746A1 (ko)
BR (1) BR112023020614A2 (ko)
CA (1) CA3214735A1 (ko)
IL (1) IL307517A (ko)
WO (1) WO2022258666A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117351331A (zh) * 2023-10-24 2024-01-05 北京云上曲率科技有限公司 一种为视觉大模型添加适配器的方法及装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116135797B (zh) * 2023-04-19 2023-07-04 江苏海峡环保科技发展有限公司 污水处理智能控制系统
CN116597384B (zh) * 2023-06-02 2024-03-05 中国人民解放军国防科技大学 基于小样本训练的空间目标识别方法、装置及计算机设备
CN116452895B (zh) * 2023-06-13 2023-10-20 中国科学技术大学 基于多模态对称增强的小样本图像分类方法、装置及介质
CN116977461B (zh) * 2023-06-30 2024-03-08 北京开普云信息科技有限公司 特定场景的人像生成方法、装置、存储介质及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117351331A (zh) * 2023-10-24 2024-01-05 北京云上曲率科技有限公司 一种为视觉大模型添加适配器的方法及装置

Also Published As

Publication number Publication date
AU2022288746A1 (en) 2023-09-28
CA3214735A1 (en) 2022-12-15
CN117121015A (zh) 2023-11-24
IL307517A (en) 2023-12-01
WO2022258666A1 (en) 2022-12-15
EP4302239A1 (en) 2024-01-10
BR112023020614A2 (pt) 2023-12-19

Similar Documents

Publication Publication Date Title
US11386914B2 (en) Generating audio using neural networks
US11069345B2 (en) Speech recognition using convolutional neural networks
KR20230152741A (ko) 고정 언어 모델을 사용한 다중-모달 퓨-샷 학습
AU2018271931B2 (en) Attention-based sequence transduction neural networks
CN108959396B (zh) 机器阅读模型训练方法及装置、问答方法及装置
CN107705784B (zh) 文本正则化模型训练方法和装置、文本正则化方法和装置
CN106502985B (zh) 一种用于生成标题的神经网络建模方法及装置
CN112487182A (zh) 文本处理模型的训练方法、文本处理方法及装置
CN110148400A (zh) 发音类型的识别方法、模型的训练方法、装置及设备
CN112214591B (zh) 一种对话预测的方法及装置
US20240028893A1 (en) Generating neural network outputs using insertion commands
US20230351149A1 (en) Contrastive captioning neural networks
CN112528883A (zh) 一种基于反思网络的教学场景视频描述生成方法
US20230205994A1 (en) Performing machine learning tasks using instruction-tuned neural networks
CN112989843B (zh) 意图识别方法、装置、计算设备及存储介质
CN114970666B (zh) 一种口语处理方法、装置、电子设备及存储介质
CN116913278B (zh) 语音处理方法、装置、设备和存储介质
US20230196105A1 (en) Generating labeled training data using a pre-trained language model neural network
US20240135955A1 (en) Generating audio using neural networks
US20240119261A1 (en) Discrete token processing using diffusion models
CA3214170A1 (en) Adaptive visual speech recognition
CN116050481A (zh) 一种基于对比学习的图像生成方法、装置、设备及介质
KR20230159585A (ko) 잠재 임베딩 세트에 대한 질의 임베딩의 교차 어텐션을 통한 신경망 출력 생성
CN114896986A (zh) 增强语义识别模型的训练数据的方法和装置
CN115204259A (zh) 多模态训练方法、电子设备及存储介质