인공지능 & 소프트웨어

OpenAI 2024년 등록특허 전수조사 및 분석

OpenAImainimg.png

Summary

그간 특허를 확보하는 것에 다소 소극적이던 OpenAI가 2024년에만 13건의 등록특허를 확보하면서, 본격적인 특허활동을 개시했습니다. OpenAI의 특허들은 그간 OpenAI의 서비스들이 성공적으로 다뤄왔던 텍스트와 이미지 관련 특허들이 주축이나, API 연동, 음성 데이터 및 비디오 데이터를 다루는 기술들도 포함하고 있습니다. 본 리포트에서는 OpenAI 등록특허들에 대한 심화분석을 제공합니다.

대화형 언어모델 ChatGPT를 만든 기업 OpenAI는 그간 특허를 확보하는 활동에 비교적 소극적인 것으로 알려져 있었습니다. 그런데 OpenAI가 2024년에만 13건의 등록 특허를 확보했습니다. 

 

OpenAI는 2023년 1월 23일 텍스트 임베딩 모델의 CPT(Contrastive Pre-Training)에 대한 특허 출원(US 12,073,299 B2)을 시작으로, GPT, Dall-E 등의 모델을 보호하는 12건의 특허들 및 이와 관련된 8건의 계속출원을 출원하였습니다. 이때부터 시작한 특허활동이 결실을 맺어, 24년에 13건의 등록 특허를 확보하게 되었습니다. 1년 6개월 동안 공개가 보류되는 특허제도의 특성상, 2024년에도 OpenAI의 특허활동은 매우 활발했을 것으로 추정해 볼 수 있습니다. 

 

2023년의 특허활동 이전까지는, OpenAI는 ChatGPT, Dall-E, Whisper 등의 서비스가 거둔 성공에 비해, 특허 활동에는 비교적 소극적이었던 것이 사실입니다. 이는 OpenAI의 최초 설립 형태가 비영리 재단이었기 때문이었을 수도 있습니다. 혹은 일반적으로, 아직까지는 Open Innovation을 추구하는 인공지능 업계의 문화에 기인한 것일 수도 있습니다. 이러한 영향에선지 OpenAI는 자사의 홈페이지에서, 자사의 특허활동은 방어적 목적에 따른 것임을 선언하고 있습니다. 

 

<Our approach to patents | OpenAI>

 

그러나, 특허제도의 본질 상 방어만을 목적으로 하는 특허는 존재하지 않습니다. 핵보유국들은 자신의 핵무기 보유의 명분으로 자기방어를 내세우지만, 본질적으로 핵무기 자체는 오로지 파괴와 공격을 위한 기능만을 수행합니다. 마찬가지로, 기업의 보유 특허가 경쟁기업과의 분쟁시 반격의 가능성을 열어주기 때문에 간접적으로 분쟁 자체를 사전에 방지할 수 있더라도, 하나 하나의 특허 자체는 오로지 배타적인 권리주장을 위해 존재하는 것입니다. 

 

OpenAI의 선배가 되는 Google과 같은 다른 AI 기업들도, 특허활동의 이유와 명분으로 방어적 목적을 내세우고 있으나(Google의 OPN 서약 참조), 자신들이 보유한 특허 하나하나는 장래에 있을 분쟁에서 상대방을 공격하기 위해, 충분히 날카롭게 다듬고 있습니다. 예를 들어, 아래 보시는 바와 같이 Google도 transformer와 관련된 특허를 다음과 같이 지속하여 확보하고 있습니다.

 

                                                                              * OPN: 공개 특허 비행사 서약(Open Patent Non-Assertion Pledge)

 

 

 

공개/등록번호

공개/등록일

출원일

상태

US 2024-0144006 A1

2024.05.02

2024.01.08

공개

US 2022-0051099 A1

2022.02.17

2021.09.03

공개

US 2021-0019624 A1

2021.01.21

2020.08.07

포기

US 11893483 B2

2024.02.06

2020.08.07

등록

US 11113602 B2

2021.09.07

2020.07.17

등록

US 10956819 B2

2021.03.23

2020.08.07

등록

US 10719764 B2

2020.07.21

2019.09.03

등록

US 10452978 B2(원출원)

2019.10.22

2018.06.28

등록

<Google의 트랜스포머 모델 특허 도면(상)과 트랜스포머 모델 관련 특허 목록(하)>

 

OpenAI의 이러한 특허활동 개시는, Google이나 Meta와 같은 다른 AI 선도기업과 같이, 장래있을지 모를 분쟁에 대비해 특허들을 비축해 두기 위한 결정을 내린 것으로도 볼 수 있습니다. 

 

 

 OpenAI가 출원한 특허의 주요 카테고리로는 텍스트(코드) 관련 특허 5건, 이미지 관련 특허 4건, 그리고 API 호출 특허, 비디오 관련 특허, 오디오 관련 특허 각각 1건이 있으며, 유해 컨텐츠 분류에 대한 텍스트 관련 특허 1건을 제외한 나머지 11건이 모두 등록되었습니다. 계속출원의 경우, 텍스트 관련 특허 4건 그리고 이미지, API 호출, 비디오, 오디오 관련 특허 각각 1건 씩 총 8건의 계속출원이 진행되었으며, 코드 생성 모델인 Codex에 대한 특허 1건과 API 호출 특허 1건이 등록되어 총 13건의 등록 특허를 확보했습니다. 전체 특허활동에 대한 전반적인 평가는 본 리포트의 [결론] 부분에 정리했습니다.

 

이제 각 특허의 내용을 하나씩 살펴보며 OpenAI는 어떤 발명을 특허 출원하여 등록받았는지 살펴볼까요?

 

목차

 

1. (텍스트 처리) 초기 임베딩 벡터로부터 의미적 유사도를 더욱 잘 반영하는 임베딩 벡터를 생성하도록 CPT(Contrastive Pre-training) 방식으로 사전 학습되는 텍스트/코드 임베딩 모델에 관한 특허 (등록번호: US 12,073,299 B2, 2024.08.27 등록)

 

2. (텍스트 처리) ChatGPT와 같은 챗봇에서, 사용자의 추가 지시에 따라, 작성된 답변을 실시간으로 수정하도록 하는 기능 구현 방법을 제공하는 특허 (등록번호: US 11,983,488 B1, 2024.05.14 등록)

 

3. (텍스트 처리) ChatGPT와 같은 챗봇에서, 하나의 프롬프트를 통해 사용자가 프롬프트를 수정하면 실시간으로 맥락에 맞는 답변을 프롬프트에 삽입하도록 하는 기능구현 방법을 제공하는 특허 (등록번호: US 11,886,826 B1, 2024.01.30 등록)

 

4. (텍스트 처리) ChatGPT와 같은 챗봇에서, 사용자 입력에 따라 유해한 콘텐츠를 생성할 가능성이 있는 위험을 사전에 차단하기 위한 방법을 제공하는 특허 (공개번호: US 2024/0362421 A1, 공개일: 2024.10.31, 심사중)

 

5. (컴퓨터 코드) 자연어 입력을 기초로 컴퓨터 코드를 자동으로 생성하거나, 컴퓨터 코드를 자연어로 설명할 수 있는 기능을 제공하는 특허 (등록번호: US 12,061,880 B2, 등록일: 2024.08.13)

 

6. (API 연동) ChatGPT와 같은 챗봇에서, 사용자 입력에 따라 특정 외부 API 및 특정 Function을 호출하여 답변을 생성하도록 하는 기능구현 방법을 제공하는 특허 (등록번호: US 11,922,144 B1, 2024.03.05 등록) 

 

7. (이미지 처리) 텍스트 입력으로부터 다양한 이미지를 생성할 수 있는 DALLE-2 모델에 관한 특허 (등록번호: US 11,922,550 B1, 2024.03.05 등록)

 

8. (이미지 처리) 이미 존재하는 이미지의 수정이 필요한 일부분에 대해 해당 부분만 다시 생성하여 수정된 이미지를 생성하는 일명 인페인팅(in-painting)과 관련된 특허 (등록번호: US 11,983,806 B1, 2024.05.14 등록)

 

9. (UI/UX) 텍스트에 대한 정보와 이미지의 시각적인 정보를 함께 활용하여 멀티모달(Multi-modal) 인공지능 모델과 상호 작용하는 방법을 제공하는 특허 (등록번호: US 12,039,431 B1, 2024.07.16 등록)

 

10. (UI/UX) 텍스트 입력을 통해 사용자가 원하는 정보를 이미지 상에 시각적으로 출력함으로써 멀티모달(Multi-modal) 인공지능 모델과 상호 작용할 수 있는 방법을 제공하는 특허 (등록번호: US 12,051,205 B1, 2024.07.30 등록)

 

11. (비디오 처리) 인터넷에 존재하는 비디오를 인공지능 모델의 학습에 이용하기 위한 학습 방법을 제공하는 특허 (등록번호: 12,008,341 B2, 등록일: 2024.06.11)

 

12. (오디오 처리) 멀티 언어(multi-language) 및 멀티 작업(multi-task)이 가능한 음성 인식 시스템에 관한 특허 (등록번호: 12,079,587 B1, 등록일: 2024.09.03)

 

결론

 

 

1번 특허: (텍스트 처리) CPT(Contrastive Pre-training) 방식의 텍스트 임베딩 모델

 

발명의 명칭: Systems and methods for using contrastive pre-training to generate text and code embeddings

출원번호: US 18/158,166 (2023.01.23)

등록번호: US 12,073,299 B2 (2024.08.27)

발명 요약: 본 발명은 OpenAI의 일명 대조 사전 학습(Contrastive Pre-Training, CPT)를 통해 텍스트/코드 임베딩 모델을 구축하는 방법에 관한 발명입니다. 해당 CPT 방식의 학습 방법은 2022.01.24에 “Text and Code Embeddings by Contrastive Pre-Training”(이하 OpenAI 논문)라는 제목의 논문으로 처음 소개되었으며, 2023.01.23에 특허출원 이후 2024.08.27에 등록되었습니다.

 

    1.텍스트 임베딩 기술과 본 발명의 탄생 배경

 

1) 텍스트 임베딩이란?

 

텍스트 임베딩은 자연어 처리(Natural Language Processing, NLP) 분야에서 굉장히 중요한 기법으로, 텍스트를 컴퓨터가 이해할 수 있는 숫자로 변환하는 기법을 의미합니다. 이 때, 텍스트를 임베딩한 숫자를 임베딩 벡터라고 합니다. 임베딩 벡터는 임베딩 벡터들 간 유사도가 텍스트 간 의미적(semantic) 유사도를 반영하도록 변환됩니다. 최근 인공지능 분야에서 가장 활발하게 연구되는 대규모 언어모델 또한, 입력받은 자연어 텍스트를 이해하기 위해 텍스트 임베딩을 활용하여 자연어 텍스트를 임베딩 벡터로 변환합니다.

 

<그림 1. 텍스트 임베딩의 예시 | 출처: OpenAI Blog>

 

2) 기존 기술들의 한계점 및 본 발명의 탄생 배경

 

텍스트 임베딩에서의 주요 태스크로는 텍스트 분류(Text Classification), 텍스트 검색(Text Search), 문장 임베딩(Sentence embedding) 등이 있습니다. 기존 기술들은 이러한 태스크를 수행하기 위해, 태스크 별로 별도의 데이터셋, 학습 방법, 모델 구조를 선택하여 최적화된 모델을 구축하였습니다. 이러한 최적화 모델들은 최적화된 태스크에서는 높은 정확도를 가졌으나, 다른 태스크에서는 정확도가 낮아지는 문제점이 있었습니다. 즉, 여러 태스크들을 수행하기 위해서는, 태스크 별로 최적화 모델을 각각 구축해 사용해야한다는 번거로움이 존재했습니다.

 

이러한 문제점을 해결하기 위해, 본 발명에서는 다양한 태스크에서 높은 정확도를 가지는 하나의 모델을 구축하는 학습 방법을 제시합니다. 또한, 텍스트 임베딩과 마찬가지의 방식으로, 텍스트 형식의 코드를 임베딩하는 모델을 제시합니다.

 

    2. 본 발명 임베딩 모델의 학습 방법

 

본 발명 임베딩 모델의 학습 방법은 크게 아래의 단계로 수행됩니다.

 

① 라벨링되지 않은 데이터(unlabeled data)로 학습 데이터셋 구축 

② 학습 데이터셋 내 positive pair와 negative pair에 대한 초기 임베딩 벡터 생성 

③ 생성된 초기 임베딩 벡터를 이용하여, 대조 학습(Contrastive Learning) 방식으로 임베딩 모델 학습

 

아래에서 각 단계에 대한 구체적인 내용을 한번 살펴보도록 하겠습니다.

 

1) 라벨링되지 않은 데이터로 학습 데이터셋 구축

 

(1) unlabeled data 수집

 

우선, 임베딩 모델을 학습시키기 위해서는 학습 데이터셋이 필요합니다. 학습 데이터셋은 크게 정답, 즉 라벨이 미리 제시되는 labeled data와 정답이 제시되지 않는 unlabeled data가 있습니다. labeled data로 학습하는 방식은 모델에게 정답을 알려주어 직접 지도한다는 의미로 지도 학습(supervised learning)이라 하며, unlabeled data로 학습하는 방식은 모델에게 정답을 알려주지 않고 모델 스스로 학습한다는 의미로 비지도 학습(unsupervised learning)이라고 합니다. 비지도 학습을 이용하면 학습 데이터에 일일히 라벨링을 하지 않고도 학습을 진행할 수 있어, 학습 데이터셋을 구축하는 데에 들이는 노력을 줄일 수 있습니다.

 

본 발명에서는 웹 크롤러를 이용하여 웹 페이지에서 수많은 텍스트와 코드들(unlabeled data)을 스크랩해 학습 데이터셋을 구축했습니다.

 

(2) positive pair 정의

 

본 발명은 학습 데이터셋 내에서 텍스트 임베딩을 위한 (텍스트, 텍스트) positive pair와 코드 임베딩을 위한 (텍스트, 코드) positive pair를 만들었습니다. 여기서 positive pair란, 이후 설명드릴 대조 학습에서 서로 연관된 텍스트 내지 코드라고 정의된 쌍을 의미합니다. 예를 들어, (인공지능, 머신러닝)은 서로 연관된 텍스트이므로 positive pair라 할 수 있습니다. 반대로, 서로 연관되지 않는다고 정의된 쌍을 negative pair라고 합니다. 본 발명에서 각 positive pair로 정의한 예시들은 다음과 같습니다.

 

   1)(텍스트, 텍스트) positive pair:  인터넷 상에 인접 단어, 이웃 단어, 사전 정의된 거리 범위 내에 있는 텍스트들(adjacent words, neighboring or nearby pieces of text, portions of text data within a predetermined distance threshold of each other)

 

   2)(텍스트, 코드) positive pair: 함수 설명 텍스트와 함수 실행 코드 (delimiting a top-level docstring in a function along with the implementation of that function)

 

<(텍스트, 코드) positive pair의 예시>

 

 

(3) negative pair 정의 (In-batch negative sampling)

 

이후, 본 발명은 배치(batch) 단위의 학습 데이터셋 내에 포함된 각 데이터 별로, positive pair로 정의된 데이터를 제외한 나머지 데이터들을 negative pair로 정의했습니다. 배치란, 모델을 학습할 때 한번에 모델에 입력되는 학습 데이터 단위를 의미합니다. 모델은 하나의 배치에 대해 입출력 처리를 한 뒤에 손실에 계산해 가중치를 업데이트합니다. 논문에서는, 한번에 모델에 입력되는 학습 데이터 양인 배치 사이즈를 크게 할수록 임베딩 모델의 정확도가 향상되는 것을 확인했으며, 이에 따라 충분히 큰 사이즈(예시: 모델 파라미터 300M - 배치 사이즈 12288)의 배치를 사용하였습니다. 참고로, 본 발명의 논문에서 실험한 모델 사이즈와 그에 따른 성능은 다음과 같습니다.

 

   

<그림 2. 모델 사이즈의 종류와 성능 그래프 | 출처: OpenAI 논문>

 

한편, 본 발명의 negative pair 샘플링(정의) 방식을 in-batch negative sampling 기법이라고 하는데요, 일반적인 negative sampling 경우, 배치에 포함된 각 학습 데이터에 있어서 negative pair를 직접 샘플링하여 사용합니다. 반면, In-batch negative sampling은 negative pair를 배치 내에서 자동적으로 생성합니다. 즉, 배치 내의 학습 데이터들을 활용해, 각 학습 데이터에 있어서 positive pair 외의 나머지 데이터는 negative pair로 자동적으로 정의합니다. 

 

<그림 3. 일반적인 negative sampling(좌)과 In-batch negative sampling(우) 간 비교 도면> 

출처: 논문 “Improved Deep Metric Learning with Multi-class N-pair Loss Objective”

 

In-batch negative sampling 기법을 이용하면, 별도로 negative pair를 샘플링하지 않고도 배치 내 데이터들만으로 negative pair를 구성할 수 있기 때문에 추가 데이터가 필요하지 않습니다. 또한, large batch size일수록 더 다양한 negative pair를 포함할 수 있으므로 학습 성능이 증가하는 경향이 있습니다.

 

2) 학습 데이터셋 내 positive pair와 negative pair에 대한 초기 임베딩 벡터 생성

 

본 발명에서는 학습 대상인 임베딩 모델을 학습시키기 위해, 별도의 transformer 기반 인코더를 사용했습니다. 구체적으로, 우선 인코더를 이용하여 단계 ①에서 구축된 학습 데이터셋 내의 학습 데이터들 각각에 대한 초기 임베딩 벡터를 생성했습니다.

 

<그림 4. 인코더의 입출력 | 출처: OpenAI 논문>

 

그림 3을 참고하면, 인코더(Encoder E)는 positive pair인 (x, y) 쌍을 입력으로 받아, (x, y) 각각에 대한 초기 임베딩 벡터인 vx, vy를 출력합니다. 인코더에 텍스트 쌍을 입력 시에, 각 입력 데이터의 앞뒤에 시작 구분 기호와 종료 구분 기호(SOS, EOS)(예시: [,] {,})를 추가해 더욱 안정적인 학습을 진행하였습니다.

 

3) 생성된 초기 임베딩 벡터를 이용하여, 대조 학습(Contrastive Learning) 방식으로 임베딩 모델 학습

 

본 발명은 초기 임베딩 벡터를 임베딩 모델의 입력으로 하여, 텍스트(내지 코드) 간 의미적 유사도를 더욱 잘 반영하는 추가 임베딩 벡터(additional vector)를 생성하도록 학습시켰습니다. 이 때, 본 발명은 추가 임베딩 벡터가 의미적 유사도를 더욱 잘 반영하도록, 대조 학습 방식으로 임베딩 모델을 학습시켰습니다. 아래에서는 대조 학습에 대해 좀더 구체적으로 알아보도록 하겠습니다.

 

(1) 대조 학습(Contrastive Learning)이란?

 

대조 학습이란, 서로 관련된 데이터 쌍은 가깝게, 관련되지 않은 데이터 쌍은 멀리 떨어뜨려 표현하는 것을 목표로 하는 학습 방법을 의미합니다. 모델은 대조 학습을 통해, 서로 관련된 쌍, 즉 positive pair는 서로 가깝게, 서로 관련되지 않은 쌍, 즉 negative pair는 서로 멀리 떨어지게 표현하는 임베딩 벡터를 출력하도록 학습됩니다. 대조 학습을 통해 학습된 대표적인 모델로는 비전-언어 태스크를 수행하는 CLIP 모델이 있습니다. CLIP의 경우, 이미지-텍스트 쌍에 대해 다음과 같은 과정을 통해 학습합니다.

 

<그림 5. CLIP의 Contrastive Learning 과정>

 

CLIP 모델은 텍스트 인코더와 이미지 인코더에서 출력된 임베딩 벡터들인 (Tn, In) 간의 유사도를 산출해 행렬을 만들고, 이미지-텍스트 쌍 중 행렬의 대각선(diagonal)에 위치한 positive pair들에 대해서는 정답을 1로, 나머지 요소(element), 즉 negative pair들에 대해서는 정답을 0으로 주어 학습을 시켰습니다. 이러한 학습 과정을 통해, CLIP 모델은 서로 관련된 positive pair들의 임베딩 벡터는 더욱 유사하게, 서로 관련되지 않은 negative pair들의 임베딩 벡터는 더욱 비-유사하게 학습이 됩니다.

 

(2) 본 발명 임베딩 모델의 대조 학습

 

본 발명의 임베딩 모델도 이와 마찬가지로, 출력된 추가 임베딩 벡터들의 코사인 유사도로 행렬을 만들고, 행렬에 대한 대조 학습 방식으로 학습을 진행했습니다. 초기 임베딩 벡터를 (vx, vy)라 하고, 추가 임베딩 벡터를 (vx’, vy’)라 할 때, 임베딩 모델의 입출력 예시는 다음과 같습니다.

 

<그림 6. 임베딩 모델의 입출력 예시>

 

임베딩 모델은 학습 데이터셋(배치)에 포함된 모든 초기 임베딩 벡터들에 대해 추가 임베딩 벡터들을 출력한 뒤에, 출력된 추가 임베딩 벡터들 간 코사인 유사도를 계산하고, 그리고 코사인 유사도를 요소로 하는 행렬에 대한 대조 학습 방식으로 학습되었습니다. 즉, positive pair로 입력된 (vx1, vy1)에 대한 추가 임베딩 벡터 쌍인 (vx1’, vy1’)을 예시로 들면, vx1’vy1’ 간 코사인 유사도 sim(vx1’, vy1’)에 대해서는 정답을 1로, vy1’을 제외한 나머지 추가 임베딩 벡터들 간 코사인 유사도에 대해서는 정답을 0으로 두어 학습을 진행하였습니다.

 

예를 들어, 하나의 학습 데이터셋에서 M개의 positive pair를 만들었다면, 각 positive pair에 대해 M-1개의 negative pair를 만들 수 있습니다. 이 경우, 코사인 유사도에 대한 행렬은 MxM 크기의 행렬이 만들어집니다. 임베딩 모델을 대조 학습하는 예시는 다음과 같습니다.

 

<그림 7. 임베딩 모델의 대조 학습 예시>

 

특이한 점으로, 본 발명은 임베딩 모델의 초기 모델생성형 언어 모델(GPT, Codex)을 사용하였습니다. 즉, 본 발명은 사전 학습된 생성형 언어 모델의 모델 파라미터를 그대로 가져와 임베딩 모델을 초기화(initialization)한 뒤 학습을 시작했습니다. 입력값을 임베딩 벡터로 변환하는 일반적인 임베딩 모델과 달리, 초기 임베딩 벡터로부터 새로운 추가 임베딩 벡터를 “생성”한다는 점이 다른 임베딩 모델과의 차별점이라 할 수 있습니다. 

 

4) labeled data를 이용한 미세 조정 - negative pair를 직접 정의

 

본 발명에서는 필수적인 학습 단계는 아니지만, 보다 더 향상된 성능을 위해 negative pair가 직접 정의된 지도(supervised) 데이터셋을 이용해 전이 학습(transfer learning) 방식으로 임베딩 모델을 미세 조정(fine-tuning)했습니다. 전이 학습이란, 새로운 데이터셋을 이용하여 사전 학습된 모델을 추가적으로 학습시키는 것을 의미합니다. 논문을 참고하면, 지도 데이터셋인 NLI 데이터셋을 통한 미세 조정의 경우, 기존 SOTA 전이 학습 모델 대비 2.2% 성능 향상을 이루었으며, 다른 지도 데이터셋인 MS-MARCO 데이터셋을 통한 미세 조정의 경우, 기존 SOTA 전이 학습 모델 대비 5.2% 성능 향상을 이루었습니다.

 

5) 소결

 

본 발명의 논문을 참고하면, 본 발명의 임베딩 모델은 텍스트 분류와 관련된 태스크에서, 기존 SOTA 비지도 학습 모델 대비 4%, 지도 학습 모델 대비 1.8%의 성능 향상을 이루었으며, 텍스트 검색 태스크에서는 MSMARCO, Natural Questions and TriviaQA 벤치마크에서 각각 기존 SOTA 모델 대비 23.4%, 14.7%, 10.6%의 성능 향상을 이루었습니다. 또한, 코드 임베딩 태스크에서는 기존 SOTA  코드 검색 모델 대비 20.8%의 성능 향상을 이루었습니다.

 

다만, 문장 유사도 태스크에 대해서는 기존 SOTA 모델에 비해 저조한 성능을 보였는데요, 논문에서는 문장 유사도 태스크를 평가하는 벤치마크(예시: SentEval)가 아직 잘 정의되어 있지 않음을 들어 이러한 성능 결과를 설명하고 있습니다. 예를 들어, 현재 문장 유사도 태스크를 평가하는 벤치마크에 따르면, 어떤 문장과 그 문장의 부정문(예시: “그건 강아지야”, “그건 강아지가 아니야”)은 서로 유사하지 않다고 판단되어야 하지만, 어떻게 보면 두 문장은 서로 관련(relevant)이 있다고 판단할 수도 있다는 것입니다. 이러한 상황에서, 논문에서는 어떤 문장이 서로 유사하다고 할지는 아직 잘 정의되어 있지 않아 텍스트 간 의미적 유사도를 판단하는 것과는 차이가 있다고 설명합니다.

 

    3. 본 발명 특허 청구항 분석

 

본 발명 특허를 포함한 OpenAI의 모든 특허들은 트랙 원 우선심사청구(Request of Track One Prioritized Examination)와 함께 출원되었습니다. 참고로, 미국 출원 절차에서 우선심사를 청구하는 방법은 크게 트랙원(Track One)과 특허심사하이웨이(Patent Prosecution Highway, PPH)가 있습니다. 해당 특허는 트랙원(Track One)을 신청하였고, 이는 추가 비용을 지불하면 심사 기간을 단축시켜주는 제도입니다. 이제 위에서 살펴본 본 발명의 단계들이 특허에서는 어떻게 표현되었는지 본 발명 등록 특허(18/158,166)의 청구항을 살펴볼까요?

 

[청구항 1]

A computer-implemented method for generating a semantic similarity based on a vector representation, the method comprising:

receiving a training data set extracted from unlabeled data, the training data set including a plurality of paired data samples corresponding to positive example pairs, each positive example pair including a first data unit and a second data unit, wherein the first data unit and the second data unit are located within a predetermined distance threshold of each other within the unlabeled data;

converting the paired data samples corresponding to the positive example pairs into at least one first vector of a vector representation;

accessing one or more negative example pairs within the training data set to contrast against the positive example pairs;

converting the one or more negative example pairs into one or more second vectors of the vector representation; and

training a machine learning model to generate additional vectors of the vector representation, wherein the training comprises:

initializing the machine learning model with one or more pre-trained models, the one or more pre-trained models comprising generative language models; and

training the machine learning model using contrastive training based on: the at least one first vector of the vector representation and the one or more second vectors of the vector representation;

receiving a query for semantic similarity, the query including a natural language input; and

generating, with the machine learning model and according to an embedding space, a semantic similarity result in response to the query.

 

 

<그림 8. 본 발명 특허의 FIG. 2>

 

위에서 설명한대로, 본 발명의 모델 학습을 위한 프로세스는 다음의 단계들로 수행됩니다. 참고로, 특허에서는 학습 대상인 임베딩 모델을 머신러닝 모델(210)로 표기하였습니다.

 

① 라벨링되지 않은 데이터(unlabeled data)로 학습 데이터셋 구축 

② 학습 데이터셋 내 positive pair와 negative pair에 대한 초기 임베딩 벡터 생성 

③ 생성된 초기 임베딩 벡터를 이용하여, 대조 학습(Contrastive Learning) 방식으로 임베딩 모델 학습

 

한편, 본 발명 특허에서는 출원 당시의 청구항에서 밑줄친 구성을 부가하여 등록받았습니다. 밑줄친 구성을 살펴보면,  i) positive pair에 속하는 두 개의 데이터 유닛은 사전 결정된 거리 기준 내에 위치한다는 구성, ii) 생성형 언어 모델로 임베딩 모델을 초기화한다는 구성, iii) 인코더로부터 생성된 초기 임베딩 벡터를 이용하여 임베딩 모델을 대조 학습한다는 구성 및 iv) 학습된 임베딩 모델을 이용하여, 쿼리로부터 쿼리에 대한 의미적 유사도 결과를 출력한다는 구성(활용 단계)을 부가했습니다.

 

    4.계속 출원(Continuation Application)

 

위에서 설명드린 특허(18/158,166)가 등록된 이후, 계속 출원(18/773,894)을 통해 활용(inference) 단계에 대한 청구범위를 설정하였습니다. 미국 특허 제도에서 계속 출원이란, 원출원에 포함된 발명 내용의 범위 내에서 청구항을 새롭게 설정하여 출원할 수 있는 제도를 의미합니다. OpenAI는 계속 출원을 활발히 활용하고 있는데요, 이를 통해 다각화된 권리범위를 확보함으로써, 경쟁사들이 원출원의 "틈새"를 이용해 기술을 회피하지 못하도록 막을 수 있습니다. 또한, 하나의 발명에 대해 여러 특허권을 확보하는 경우 분쟁이 발생했을 때 하나의 특허가 무효되더라도 나머지 특허로 방어할 수 있도록 함으로써 더욱 강력하게 기술을 보호할 수 있는 전략이라고도 볼 수 있습니다.

 

주요 내용으로는, 쿼리로부터 변환된 레퍼런스 벡터와 학습된 임베딩 모델에 의해 생성된 추가 벡터들 간에 의미적 유사도를 결정하는 구성을 포함하고 있습니다. 해당 계속 출원은 현재 공개 상태이며, 아직 심사 중에 있습니다.

 

[청구항 21](독립항)

 A method for generating a semantic similarity result, comprising:

receiving a query for semantic similarity, the query comprising a natural language input;

accessing an embedding space storing a plurality of vector representations generated by a machine learning model trained using contrastive training based on paired data samples extracted from unlabeled data, the machine learning model being initialized with one or more generative language models;

transforming the natural language input into a reference vector representation;

determining a semantic similarity between the reference vector representation and at least one of the vector representations generated by the machine learning model; and

outputting the semantic similarity in response to the query.

 

 

 

<그림 9. 본 발명 특허의 FIG. 4>

 

[목차]로 돌아가기

 

2번 특허: (텍스트 처리) 텍스트 수정 최적화 언어모델

 

발명의 명칭: Systems and methods for language model-based text editing

출원번호: US 18/183,902 (2023.03.14)

등록번호: US 11,983,488 B1 (2024.05.14)

발명 요약: 본 발명은 사용자 지시문에 기초하여 톤, 구조, 형태 등의 모델 파라미터를 결정하고, 모델 파라미터에 따라 언어 모델을 선택하고, 이후 새로운 사용자 지시문에 기초하여 출력 텍스트를 수정하는 발명입니다. 본 발명은 2023.03.14에 특허출원 이후 2024.05.14에 등록되었습니다.

 

    1.대규모 언어모델과 본 발명의 탄생 배경

 

1) 대규모 언어모델이란?

 

 Google에서 2017년 기계 번역을 위한 트랜스포머 모델을 발표한 이후로(논문 “Attention Is All You Need”), 자연어 처리(Natural Language Processing, NLP) 분야가 급격히 발전하게 되었습니다. 트랜스포머 모델은 입력 문장을 이해해 임베딩 벡터 형태로 변환하는 인코더와 인코더에서 출력되는 임베딩 벡터를 바탕으로 출력 문장을 생성하는 디코더로 이루어진 자연어 처리 모델입니다. 인공지능 분야 전문가들은 트랜스포머 모델의 뛰어난 자연어 처리 능력을 알게 되고, 이를 이용하여 기계 번역 뿐만 아니라 자연어 처리와 관련된 다양한 태스크들에 트랜스포머 모델을 적용해나가기 시작했습니다. 

요즘 많이 각광받고 있는 대규모 언어모델(Large Language Model, LLM)은 바로 이 트랜스포머 모델을 시초로 하여 발전된 모델인데요. 대규모 언어모델은 크게 트랜스포머의 인코더로 구성되는 인코더 계열과 디코더로 구성되는 디코더 계열로 나뉘어 발전되고 있습니다. 대규모 언어모델은 수십억에서 수천억 개의 모델 파라미터를 수십억에서 수조 개의 단어로 학습하여 인간의 언어를 이해할 수 있는 모델입니다. 최근 언어모델과 관련된 트렌드로는, On-device로 언어모델을 구동하기 위해 모델의 크기를 경량화한 소규모 언어모델(Small Language Model, SLM), 텍스트 뿐만 아니라 비디오, 오디오, 이미지 등 다양한 모달리티의 데이터를 이해하는 대규모 멀티모달 언어모델(Large Multimodal Model, LMM) 등이 있습니다.

 

2) 기존 기술들의 한계점 및 본 발명의 탄생 배경

 언어모델은 단순히 입력된 자연어 텍스트에 맞는 답변 내용을 출력할 뿐만 아니라, 말투, 화자, 구조, 포맷 등 사용자가 의도한 답변의 형태를 반영하여 답변을 출력할 수 있습니다. 다만, 하나의 언어모델이 사용자들로부터 요구되는 다양한 답변의 형태를 정확하고도 즉각적으로 반영하기에는 한계가 있었습니다. 언어모델은 특정 태스크에 대한 학습 데이터셋을 이용해 언어모델이 해당 태스크를 잘 수행하도록, 즉 답변을 잘 생성하도록 추가적으로 학습시키는 미세-조정(fine-tuning)을 통해 태스크에 최적화될 수는 있었으나, 답변 내용이 아닌, 원하는 답변 형태에까지 최적화시키려는 연구는 미약했습니다.

 

이러한 문제점을 해결하기 위해, 본 발명에서는 특정 태스크 뿐만 아니라 답변의 형태를 지시하는 사용자의 지시문(instruction)으로부터 답변 형태에 최적화된(optimized) 언어모델을 선택하고, 출력 텍스트에 대한 사용자 피드백 과정을 반복적으로 수행하여, 사용자가 원하는 답변 형태 별로 최적화된 언어모델들을 구축하는 방법을 제시합니다.

 

    2. 본 발명 텍스트 수정 최적화 언어모델 구축 방법

 

본 발명의 언어모델 쓰임 방식은 사용자가 지시문을 입력하면 텍스트 수정 최적화 언어모델이 지시문에 따라 출력 텍스트를 출력하고, 사용자가 다시 출력 텍스트에 대해 새로운 지시문을 입력하면 언어모델이 다시 새로운 지시문에 따라 출력 텍스트를 수정함으로써, 사용자와 언어모델이 지시문과 그에 따른 출력 텍스트를 통해 지속적으로 상호작용하는 방식입니다. 아래 그림 1(본 발명 특허의 FIG 6 참고)에서는 본 발명의 Use case를 예시적으로 보여줍니다.

 

<그림. 1 본 발명 Use case | 본 발명 특허 FIG. 6 참고>

 

위 그림 1을 참조하면, 주황 상자사용자 지시문, 초록 상자는 지시문에 따라 수정된 출력 텍스트를 의미합니다. 참고로, 본 발명에서 수정되는 출력 텍스트는 입력 텍스트 프롬프트에 다시 포함되며, 사용자가 텍스트 수정을 지시하는 사용자 지시문과 수정 대상인 입력 텍스트 프롬프트를 구별하고 있습니다. 

 

그림 1의 Use case는 다음의 과정으로 이루어집니다.

 

사용자는 “GPT에 대한 짧은 시를 작성해줘”라는 사용자 지시문(user instruction)을 입력합니다. 이 때, 사용자는 처음부터 수정 대상이 될 입력 데이터를 입력할 수도 있고, 그림 1처럼 입력 데이터 없이 사용자 지시문만 입력할 수도 있습니다. 

언어모델은 “GPT에 대한 짧은 시”를 출력합니다. 

사용자는 출력된 “GPT에 대한 짧은 시”에 대해 “GPT가 말하는 것처럼 작성해줘”라는 새로운 지시문을 입력합니다. 

언어모델은 새로운 지시문에 대해 GPT에 대한 짧은 시를 GPT의 목소리로 수정합니다.  

사용자는 다시 “이걸 편지 형식으로 만들고 GPT의 사인을 넣어줘”라는 새로운 지시문을 입력합니다.

언어모델은 새로운 지시문에 따라 GPT에 대한 짧은 시를 편지 형식으로 수정하고 GPT의 사인을 추가합니다. 

 

이렇듯, 텍스트 수정 최적화 언어모델은 사용자가 새롭게 입력하는 지시문을 즉각적으로 출력 텍스트에 반영하여 출력 텍스트를 수정합니다. 아래에서는, 이러한 텍스트 수정 최적화 언어모델의 구축 방법에 대해 알아보도록 하겠습니다.

 

본 발명 텍스트 수정 최적화 언어모델의 구축 방법은 크게 아래의 단계들로 구성됩니다.

 

① 사용자 지시문을 수신하여 모델 파라미터 결정

② 모델 파라미터에 기초하여 언어모델에 액세스하고 텍스트 수정

③ 텍스트 수정에 대한 사용자 피드백으로 언어모델 최적화

 

본 발명 특허에서 위의 단계들은 다음의 엔진들을 통해 수행되었습니다.

 

<그림 2. 본 발명의 등록 특허 FIG. 1>

 

아래에서는 각 엔진의 동작 과정을 통해 본 발명의 각 단계에 대한 구체적인 내용을 한번 살펴보도록 하겠습니다.

1) 사용자 지시문을 수신하여 모델 파라미터 결정

수행 엔진: Data Input Engine(102), Data Normalization Engine(104)

 

(1) 사용자 입력 데이터(User input data) 및 사용자 지시문(User instruction) 수신

데이터 입력 엔진(102)은 사용자 입력 데이터 및 사용자 지시문을 수신합니다. 일반적으로, 언어모델에 입력되는 사용자 입력 데이터(User input data)는 사용자 지시문(User instruction)을 포함하는 개념으로 쓰이는데요, 본 발명은 사용자 입력 데이터와 사용자 지시문을 별개의 개념으로 정의했습니다. 본 발명에서 사용자 입력 데이터는 사용자가 언어모델에 입력할 문장, 구, 절, 컴퓨터 코드 등의 입력 텍스트로, 사용자 지시문은 사용자가 언어모델의 출력 텍스트에 대한 제한 조건(constraint)을 설정한 지시 텍스트로 정의하였습니다. 예를 들면, 위의 그림 1과 같이 사용자는 프롬프트에 입력 텍스트를 작성한 뒤에, “이걸 편지 형태로 써주고, 아래 GPT의 서명을 넣어줘”라는 사용자 지시문을 추가로 입력할 수 있습니다. 결국 언어모델은 입력 데이터와 사용자 지시문을 모두 입력받아 출력 텍스트를 생성하는 것은 동일합니다. 

 

(2) 모델 파라미터(Model parameter) 결정

이후, 데이터 입력 엔진(102)은 사용자 지시문에 기초하여 말투(예시: , 오래된, 친절한, 웃긴), 구조(예시: 산문, 자유 형식), 포맷(예시: 시, 서신), 화자(예시: 성별, 화자의 시점) 등의 모델 파라미터를 결정했습니다. 본 발명에서 정의된 용어인 모델 파라미터란 사용자가 원하는 형태의 답변을 출력하도록 최적화된 언어모델을 선택하는 파라미터 역할을 합니다.

 

또한, 본 발명에서는 언어모델을 제공하는 API에 의해 정의되는 언어모델 응용 프레임워크에 따라 모델 파라미터를 결정했습니다. 언어모델 응용 프레임워크란, 언어모델을 쉽고 빠르게 개발 및 사용할 수 있도록 미리 만들어진 도구를 의미합니다. 언어모델 응용 프레임워크에는 생성, open QA(Question-Answer), closed QA, 브레인스토밍, 채팅, 재작성, 요약, 분류, 추출 등의 태스크가 설정되며, 정의된 태스크 별 언어모델의 입출력 텍스트의 텍스트 패턴, 포맷, 구조, 스타일 등이 정의됩니다.

 

(3) 데이터 정규화(Data Normalization)

데이터 정규화 엔진(104)은 사용자 입력 데이터의 토큰화(tokenization), 표제어 추출, 어간 추출, 품사 태깅, 사용자 지시문에 따라 요구되는 길이 정규화 등을 수행합니다.

 

2) 모델 파라미터에 기초하여 언어모델에 액세스하고 텍스트 수정

수행 엔진: LM Access Engine(106), Context Analysis Engine(108), Text Editing Engine(110), Output Generation Engine(112)

 

(1) 언어모델 액세스(Language Model Access)

언어모델 액세스 엔진(106)은 사용자 지시문으로부터 도출되는 출력 형태나 사용자 의도, 모델 파라미터에 기초하여 언어모델에 액세스합니다. 본 발명에서 말하는 언어모델 액세스란, 사용자 지시문에 기초하여 언어모델을 선택(select)하는 것을 의미합니다. 즉, 언어모델 액세스 엔진(106)은 사용자가 원하는 답변 형태를 출력하도록 최적화된 언어모델에 액세스합니다. 언어모델을 선택하는 과정은 다음의 순서도에 따라 수행됩니다.

 

<그림 3. 본 발명 특허 FIG. 9>

 

그림 3을 참고하면, 본 발명에서는 사용자 입력 데이터를 수신하면, 사용자 입력 데이터에 기초하여 해당 답변 형태에 최적화된 언어모델을 선택합니다(907). 본 발명 특허 FIG. 9 순서도에 대한 설명 부분을 살펴보면, 사용자 입력 데이터는 사용자 입력 데이터 뿐만 아니라, 사용자 지시문 및 모델 파라미터를 포함하는 개념으로 사용하고 있습니다.

 

본 발명에서는 언어모델을 선택하는 방식으로 i) 언어모델이 사용자 입력 데이터에 포함되는 라벨과 일치하는지 결정하는 방식 또는 ii) 사용자 입력 데이터 일부와 언어모델 간 의미적 유사도를 결정하는 방식을 소개하고 있습니다. 이러한 언어모델 선택 방식이 본 발명의 특이한 부분이라고 볼 수 있는데요, 특히 입력 데이터와 언어모델 간 의미적 유사도는 사용자 입력 데이터의 텍스트 임베딩 벡터와 언어모델의 텍스트 임베딩 벡터간 거리를 계산함으로써 결정됩니다.(“by computing distances between a text embedding associated with the user input data and a text embedding associated with one or more language models from which the selection is made”, 단락 [0080]). 다만, 이러한 언어모델 선택 방식이 청구범위에 직접적으로 설정되진 않았습니다.

 

(2) 맥락 분석(Context Analysis)

맥락 분석 엔진(108)은 정규화된 사용자 입력 데이터와 사용자 지시문을 수신하여 맥락 파라미터(context parameter) 세트를 출력합니다. 맥락 파라미터는 “where, who, when, what, why” 등 사용자 입력 데이터 및 사용자 지시문의 파라미터화된 맥락을 포함합니다. 맥락 분석 엔진(108)은 이후 사용자의 반복적인 출력 텍스트 수정에서도 맥락 파라미터 세트를 유지하여 많은 양의 정보를 다시 로드하지 않아도 변경 사항에 대한 맥락 정보를 유지할 수 있습니다.

 

(3) 텍스트 수정(Text Editing) 및 출력(Output Generation)

텍스트 수정 엔진(110)은 선택된 언어모델을 사용하여 사용자 지시문, 모델 파라미터 및 맥락 파라미터에 따라 사용자 입력 데이터를 수정합니다. 또는, 사용자 입력 데이터, 사용자 지시문, 모델 파라미터 및 맥락 파라미터에 따라 출력 텍스트를 새롭게 생성합니다. 다만, 사용자가 별도의 입력 데이터 없이 텍스트를 생성하도록 하는 사용자 지시문만 입력하는 경우도 있을 것입니다. 이 경우, 사용자 입력 데이터는 NULL 세트로 구성됩니다. 예를 들어, 위의 그림 1과 같이 사용자가 “GPT에 대한 짧은 시를 써줘”라는 사용자 지시문만을 입력한다면, 텍스트 수정 엔진(110)은 텍스트 수정이 아닌 GPT에 대한 짧은 시를 새롭게 생성합니다. 또는, 사용자가 입력 데이터와 함께 입력 데이터를 수정하도록 하는 사용자 지시문을 입력하는 경우도 있을 것입니다. 예를 들어, 그림 1에서 사용자가 GPT에 대한 짧은 시를 입력 데이터로서 직접 입력하고, “이걸 편지 형태로 써주고, 아래 GPT 서명을 해줘”라는 사용자 지시문을 입력하였다면, 텍스트 수정 엔진(110)은 사용자가 직접 작성한 입력 데이터를 편지 형태로 수정하고 GPT 서명을 추가합니다. 이후, 출력 생성 엔진(112)은 수정된 텍스트를 출력합니다.

 

한편, 사용자는 입력 데이터가 수정된 출력 텍스트를 확인하고 새로운 사용자 지시문을 입력함으로써, 언어모델과 상호작용할 수 있습니다. 즉, 사용자는 출력 텍스트가 원하는 답변 형태가 아니거나 새로운 답변 형태를 원하는 경우, 기존에 입력한 사용자 지시문과 다르게 수정을 지시하여 출력 텍스트를 추가적으로 수정할 수 있습니다. 이러한 상호작용 과정을 반복하면서 언어모델은 사용자가 텍스트를 입력하는 동시에 프롬프트에서 출력 텍스트를 수정할 수 있습니다. 특허의 상세한 설명 상에서도 사용자가 텍스트를 수정 또는 추가할 동안 기존 입력 텍스트 프롬프트(즉, 출력 텍스트)를 수정할 수 있다고 하여 실시간 상호작용을 강조하고 있습니다(In some embodiments, the at least one processor may edit an input text prompt while a user is editing or inserting the input text or text distinct from, but which may be associated with (e.g., included in a same interface) the input text prompt, 단락 [0072]). 


본 발명 특허의 FIG 3에서는 일반적인 텍스트 뿐만 아니라 컴퓨터 코드에 대해 사용자가 사용자 지시문을 반복적으로 입력하여 언어모델이 출력 텍스트인 컴퓨터 코드를 반복적으로 수정하는 과정을 보여줍니다

 

<그림 4. 컴퓨터 코드의 Use case | 본 발명 특허 FIG. 3>

 

그림 1과 마찬가지로, 주황 상자사용자 지시문, 초록 상자는 지시문에 따라 수정된 출력 텍스트를 의미합니다. 추가적으로, 파란 상자는 사용자 지시문과 별도로 입력되는 사용자의 입력 데이터를 의미합니다. 사용자는 “def”라는 지시문과 함께, fib(10)라는 사용자 입력 데이터를 추가할 수 있습니다.

언어모델은 fib()의 일반적인 정의인 피보나치 수열을 구현하기 위해 def 다음에 피보나치 수열에 대한 컴퓨터 코드를 출력 텍스트로서 생성합니다. 이후, 사용자는 출력된 코드에 대해 새로운 지시문을 입력하고 언어모델은 새로운 지시문에 따라 출력 텍스트를 수정하는 과정을 통해, 언어모델은 출력된 컴퓨터 코드를 사용자가 원하는 방향으로 다듬어나갑니다. 

 

3) 텍스트 수정에 대한 사용자 피드백으로 언어모델 최적화

수행 엔진: Output Validation Engine(114), LM Optimization Engine(116)

언어모델 평가 엔진(114)은 언어모델의 출력 텍스트 세트를 수신하고, 각 출력 텍스트에 대한 성능평가 지표(outcome metric) 등의 순위를 매깁니다. 언어모델 최적화 엔진(116)은 사용자와의 반복되는 상호작용에 따라 출력되는 출력 텍스트 세트를 학습 데이터셋으로 수집하여 언어모델을 미세 조정합니다. 결국 언어모델은 반복적인 학습 과정을 통해 관련된 답변 형태를 출력하도록 최적화됩니다.

 

한편, 이러한 상호작용은 사용자 지시문을 통해 언어모델이 사용자가 원하는 답변 형태로 출력 텍스트를 가공해나간다는 점에서 사용자 피드백을 통한 강화학습(Reinforcement Learning from Human Feedback, RLHF) 과정과 유사하다고 볼 수 있습니다. RLHF란, 인공지능 모델의 출력값에 대해 사용자가 좋고 나쁨 등의 피드백을 제시하면, 인공지능 모델이 사용자 피드백에 따라 더 나은 출력값을 생성하기 위해 학습하는 과정을 의미합니다.

4) 소결

본 발명은 사용자 지시문에 기초하여 사용자가 원하는 답변 형태와 관련된 모델 파라미터를 결정하고, 모델 파라미터에 최적화된 언어 모델을 선택합니다. 이를 통해, 태스크 뿐만 아니라, 답변 형태에도 최적화된 언어모델을 구축할 수 있게 되었습니다. 또한, 사용자와의 상호작용을 통한 반복적인 최적화 과정을 통해, 더욱 개선된 답변 형태를 출력할 수 있게 되었습니다.

 

    3. 본 발명 특허 청구항 분석

 

위에서 살펴본 본 발명의 단계들이 특허에서는 어떻게 표현되었는지 본 발명 등록 특허(18/183,902)의 청구항을 살펴볼까요?

 

[청구항 1]

A system comprising:

at least one memory storing instructions;

at least one processor configured to execute the instructions to perform operations for automatically generating and editing text, the operations comprising:

receiving an input text prompt, the input text prompt comprising a null set;

receiving one or more user instructions;

determining a set of model parameters based on the one or more user instructions;

accessing a language model using the at least one processor based on the input text prompt, the set of model parameters, and the one or more user instructions;

generating, using the accessed language model, an output text based on the input text prompt, the one or more user instructions, and at least one of a sampling temperature parameter or a nucleus sampling parameter;

receiving one or more new user instructions;

editing the output text based on the language model and the one or more new user instructions by replacing at least a portion of the output text; and

optimizing the accessed language model by aligning the language model based on the output text using machine learning;

wherein:

the language model is optimized through one or more iterative cycles of training based on one or more outcome metrics associated with the output text and one or more datasets; and

the one or more datasets comprise at least one of annotated data, labeled data, enriched data, or demonstration data based on one or more output text.

 

위에서 설명한대로, 본 발명의 모델 학습을 위한 프로세스는 다음의 단계들로 수행됩니다.

 

① 사용자 지시문을 수신하여 모델 파라미터 결정

② 모델 파라미터에 기초하여 언어모델에 액세스하고 텍스트 수정

③ 텍스트 수정에 대한 사용자 피드백으로 언어모델 최적화

 

 

한편, 본 발명 특허에서는 출원 당시의 청구항에서 밑줄친 구성을 부가하여 등록받았습니다. 밑줄친 구성을 살펴보면,  i) 사용자 지시문에 기초하여 모델 파라미터 결정한다는 구성, ii) sampling temperature parameter 또는 nucleus sampling parameter를 설정하여 출력 텍스트를 생성한다는 구성 및 iii) 출력 텍스트를 활용하여 언어모델을 최적화하는 구성을 부가하였습니다.

 

여기에서, sampling temperature parameternucleus sampling parameter는 언어모델의 창의성을 조절하는 모델 파라미터입니다. Sampling temperature parameter는 언어모델이 예측한 예측 단어의 확률 분포를 조절하여, 높은 파라미터값은 확률 분포를 더 평평하게 만들어, 보다 창의적인 답변을 생성하도록 하고, 낮은 파라미터값은 확률 분포를 더 뾰족하게 만들어, 보다 예측된 답변을 생성하도록 합니다. Nucleus sampling parameter는 언어모델이 출력 텍스트 생성 시 고려할 수 있는 단어의 수를 조절하여, 높은 파라미터값은 더 많은 단어를 고려하도록 하여, 보다 창의적인 답변을 생성하도록 하고, 낮은 파라미터값은 더 적은 단어를 고려하도록 하여, 보다 예측된 답변을 생성하도록 합니다.

 

    4. 계속 출원(Continuation Application)

 

위에서 설명드린 특허(18/183,902)가 등록된 이후, 등록 특허의 권리범위보다 넓은 권리범위를 확보하기 위해 최초 출원 시 설정한 청구범위로 계속 출원(18/631,505)을 진행하였습니다. 해당 계속 출원은 현재 공개 상태이며, 아직 심사 중에 있습니다.

 

[청구항 21](독립항)

21. A system comprising:

at least one processor configured to perform operations comprising:

receiving an input text prompt;

receiving one or more user instructions; and

editing, using a language model, the input text prompt based on the one or more user instructions to generate an output text by replacing at least a portion of the input text.

 

[목차]로 돌아가기

 

3번 특허: (텍스트 처리) 텍스트 삽입 최적화 언어모델

 

발명의 명칭: Systems and methods for language model-based text insertion

출원번호: US 18/183,898 (2023.03.14)

등록번호: US 11,886,826 B1 (2024.01.30)

발명 요약: 본 발명은 접두사와 접미사를 포함하는 사용자 입력 데이터에 기초하여 톤, 구조, 형태 등의 모델 파라미터를 결정하고, 모델 파라미터에 따라 언어 모델을 선택하고, 이후 맥락 파라미터를 결정하여 맥락에 맞는 텍스트를 생성하는 발명입니다. 본 발명은 2023.03.14에 특허출원 이후 2024.01.30에 등록되었습니다.

 

    1. 기존 기술들의 한계점 및 본 발명의 탄생 배경

 

언어모델은 단순히 입력된 자연어 텍스트에 맞는 답변 내용을 출력할 뿐만 아니라, 말투, 화자, 구조, 포맷 등 사용자가 의도한 답변의 형태를 반영하여 답변을 출력할 수 있습니다. 다만, 하나의 언어모델이 수많은 사용자들로부터 요구되는 답변의 형태를 정확하고도 즉각적으로 반영하기에는 한계가 있었습니다. 언어모델은 특정 태스크에 대한 학습 데이터셋을 이용해 언어모델이 해당 태스크를 잘 수행하도록, 즉 답변을 잘 생성하도록 추가적으로 학습시키는 미세-조정(fine-tuning)을 통해 태스크에 최적화될 수는 있었으나, 답변 내용이 아닌, 원하는 답변 형태에까지 최적화시키려는 연구는 미약했습니다.

 

이러한 문제점을 해결하기 위해, 본 발명에서는 답변의 형태를 지시하는 사용자의 지시문(instruction)으로부터 답변 형태에 최적화된(optimized) 언어모델을 선택하고, 출력 텍스트에 대한 사용자 피드백 과정을 반복적으로 수행하여, 사용자가 원하는 답변 형태 별로 최적화된 언어모델들을 구축하는 방법을 제시합니다.

 

    2. 본 발명 텍스트 삽입 최적화 언어모델 구축 방법

 

본 발명의 언어모델 쓰임 방식은 사용자가 접두사 입력 데이터와 접미사 입력 데이터를 입력하면 텍스트 삽입 최적화 언어모델이 입력 데이터에 따라 출력 텍스트를 출력하고, 사용자가 다시 접두사나 접미사를 수정해 입력하면 언어모델이 다시 새로운 입력 데이터에 따라 출력 텍스트를 수정함으로써, 사용자와 언어모델이 입력 데이터와 그에 따른 출력 텍스트를 통해 지속적으로 상호작용하는 방식입니다. 아래 그림 1(본 발명 특허의 FIG 4 참고)에서는 본 발명의 Use case를 예시적으로 보여줍니다. 

 

<그림 1. 본 발명 Use case | 본 발명 특허 FIG. 4>

 

위 그림 1을 참조하면, 초록 상자는 새롭게 입력되는 접두사 입력 데이터,  주황색 상자는 입력 데이터에 따라 새롭게 입력 프롬프트에 삽입되는 출력 텍스트, 보라색 상자는 새롭게 입력되는 접미사 입력 데이터를 의미합니다. 참고로, 본 발명에서 출력 텍스트는 입력 텍스트 프롬프트에 삽입되며, 사용자가 텍스트 삽입을 지시하는 접두사/접미사 입력 데이터와 수정 대상인 입력 텍스트 프롬프트를 구별하고 있습니다. 

 

그림 1의 Use case는 다음의 과정으로 이루어집니다.

 

사용자는 “목차 1. 고등학교 졸업” 과 “오늘은 특별한 날이야!”라는 접두사 입력 데이터를 입력합니다. 이 때, 사용자는 접두사 입력 데이터 및 접미사 입력 데이터를 모두 입력하거나 그림 1처럼 둘 중 하나만을 입력할 수 있습니다.

언어모델은 고등학교 졸업의 맥락과 어투에 따른 내용을 생성 및 삽입합니다. 이때, 언어모델은 접두사 입력 데이터와 접미사 입력 데이터 사이 등 삽입 지점(insertion point)에 생성된 내용을 삽입합니다.

사용자는 “목차 2. 샌프란시스코로 이사” 라는 접미사 입력 데이터를 입력합니다. 

언어모델은 새롭게 입력된 접미사 입력 데이터에 따라 고등학교 졸업으로 시작하여 샌프란시스코 이사로 마무리되는 맥락에 따른 내용을 입력 텍스트 프롬프트에 새롭게 삽입합니다.

사용자는 다시 접미사 데이터인 목차 2를 “목차 2. 농장으로 이사”로 수정합니다.

언어모델은 수정된 접미사 데이터에 따라 변경되는 맥락을 반영하여, 고등학교 졸업으로 시작하여 농장 이사로 마무리되는 맥락에 따른 내용을 입력 텍스트 프롬프트에 새롭게 삽입합니다. 

 

이렇듯, 텍스트 삽입 최적화 언어모델은 사용자가 새롭게 입력하는 접두사/접미사의 맥락을 즉각적으로 출력 텍스트에 반영하여 입력 텍스트 프롬프트에 삽입합니다. 아래에서는, 이러한 텍스트 삽입 최적화 언어모델의 구축 방법에 대해 알아보도록 하겠습니다.

 

본 발명 텍스트 삽입 최적화 언어모델의 구축 방법은 크게 아래의 단계들로 구성됩니다.

 

① 입력 데이터를 수신하여 모델 파라미터 결정

② 모델 파라미터에 기초하여 언어모델에 액세스하고 텍스트 생성 및 삽입

③ 텍스트 삽입에 대한 사용자 피드백으로 언어모델 최적화

 

본 발명 특허에서 위의 단계들은 다음의 엔진들을 통해 수행되었습니다.

 

<그림 1. 본 발명의 등록 특허 FIG. 2>

 

아래에서는 각 엔진의 동작 과정을 통해 본 발명의 각 단계에 대한 구체적인 내용을 한번 살펴보도록 하겠습니다.

 

1) 입력 데이터를 수신하여 모델 파라미터 결정

수행 엔진: Data Input Engine(202), Data Normalization Engine(204)

 

(1) 입력 데이터(Input data) 수신

데이터 입력 엔진(202)은 접두사(Prefix) 입력 데이터접미사(Suffix) 입력 데이터를 수신합니다. 접두사 입력 데이터는 언어모델에 입력되는 입력 텍스트 프롬프트의 접두사 부분에, 접미사 입력 데이터는 입력 텍스트 프롬프트의 접미사 부분에 해당합니다. 예를 들어, 사용자가 언어모델을 통해 “인공지능에 관한 역사”에 대해 알고 싶다면, 사용자는 입력 프롬프트에 접두사 입력 데이터로서 “인공지능의 시초”, 접미사 입력 데이터는 “인공지능의 트렌드” 등을 입력하여 언어모델에게 맥락을 제공할 수 있습니다.

한편, 본 발명에서는 접두사 입력 데이터와 접미사 입력 데이터 각각에 입력값이 없는 NULL 세트를 포함시켜, 접두사와 접미사 둘 중 하나, 또는 둘다 입력되지 않는 경우에도 발명이 구현되는 것으로 설정하였습니다. 

 

(2) 모델 파라미터(Model parameter) 결정

이후, 데이터 입력 엔진(202)은 입력 텍스트 프롬프트에 기초하여 말투(예시: , 오래된, 친절한, 웃긴), 구조(예시: 산문, 자유 형식), 포맷(예시: 시, 서신), 화자(예시: 성별, 화자의 시점) 등의 모델 파라미터를 결정했습니다. 본 발명에서 정의된 용어인 모델 파라미터란 사용자가 원하는 형태의 답변을 출력하도록 최적화된 언어모델을 선택하는 파라미터 역할을 합니다.

또한, 본 발명에서는 언어모델을 제공하는 API에 의해 정의되는 언어모델 응용 프레임워크에 따라 모델 파라미터를 결정했습니다. 언어모델 응용 프레임워크란, 언어모델을 쉽고 빠르게 개발 및 사용할 수 있도록 미리 만들어진 도구를 의미합니다. 언어모델 응용 프레임워크에는 생성, open QA(Question-Answer), closed QA, 브레인스토밍, 채팅, 재작성, 요약, 분류, 추출 등의 태스크가 설정되며, 정의된 태스크 별 언어모델의 입출력 텍스트의 텍스트 패턴, 포맷, 구조, 스타일 등이 정의됩니다.

 

(3) 데이터 정규화(Data Normalization)

데이터 정규화 엔진(204)은 입력 데이터의 토큰화(tokenization), 표제어 추출, 어간 추출, 품사 태깅, 사용자 지시문에 따라 요구되는 길이 정규화 등을 수행합니다.

 

2) 모델 파라미터에 기초하여 언어모델에 액세스하고 텍스트 생성 및 삽입

수행 엔진: LM Access Engine(206), Context Analysis Engine(208), Text Generation Engine(210), Text Insertion Engine(212)

 

(1) 언어모델 액세스(Language Model Access)

언어모델 액세스 엔진(206)은 입력 텍스트 프롬프트로부터 도출되는 사용자 의도, 모델 파라미터에 기초하여 언어모델에 액세스합니다. 본 발명에서 말하는 언어모델 액세스란, 결정된 모델 파라미터에 기초하여 언어모델을 선택(select)하는 것을 의미합니다. 즉, 언어모델 액세스 엔진(206)은 사용자가 입력한 입력 텍스트 프롬프트의 맥락, 답변 형태 등에 맞는 답변을 출력하도록 최적화된 언어모델에 액세스합니다. 언어모델을 선택하는 과정은 다음의 순서도에 따라 수행됩니다.

 

<그림 2. 본 발명 특허 FIG. 9>

 

그림 2를 참고하면, 본 발명에서는 사용자 입력 데이터를 수신하면, 사용자 입력 데이터에 기초하여 해당 답변 형태에 최적화된 언어모델을 선택합니다(907). 본 발명 특허 FIG. 9 순서도에 대한 설명 부분을 살펴보면, 사용자 입력 데이터는 사용자 입력 데이터 뿐만 아니라, 사용자 지시문 및 모델 파라미터를 포함하는 개념으로 사용하고 있습니다. 


본 발명에서는 언어모델을 선택하는 방식으로 i) 언어모델이 사용자 입력 데이터에 포함되는 라벨과 일치하는지 결정하는 방식 또는 ii) 사용자 입력 데이터 일부와 언어모델 간 의미적 유사도를 결정하는 방식을 소개하고 있습니다. 이러한 언어모델 선택 방식이 본 발명의 특이한 부분이라고 볼 수 있는데요, 특히 
입력 데이터와 언어모델 간 의미적 유사도는 사용자 입력 데이터의 텍스트 임베딩 벡터와 언어모델의 텍스트 임베딩 벡터간 거리를 계산함으로써 결정됩니다.(“by computing distances between a text embedding associated with the user input data and a text embedding associated with one or more language models from which the selection is made”, 단락 [0080]). 다만, 이러한 언어모델 선택 방식이 청구범위에 직접적으로 설정되진 않았습니다.

 

(2) 맥락 분석(Context Analysis)

맥락 분석 엔진(208)은 정규화된 접두사 입력 데이터와 접미사 입력 데이터를 수신하여 맥락 파라미터(context parameter) 세트를 출력합니다. 맥락 파라미터는 “where, who, when, what, why” 등 접두사 입력 데이터와 접미사 입력 데이터의 파라미터화된 맥락을 포함합니다. 맥락 분석 엔진(208)은 이후 반복적인 출력 텍스트 수정에서도 맥락 파라미터 세트를 유지하여 많은 양의 정보를 다시 로드하지 않아도 변경 사항에 대한 맥락 정보를 유지할 수 있습니다.

 

(3) 텍스트 생성(Text Generation) 및 삽입(Insertion)

텍스트 생성 엔진(210)은 접두사 입력 데이터, 접미사 입력 데이터, 모델 파라미터 및 맥락 파라미터에 기초하여 텍스트를 생성합니다. 즉, 텍스트 생성 엔진(210)은 접두사 입력 데이터에서 시작하여 접미사 입력 데이터로 끝나는 중간 내용을 답변 형태 및 맥락에 맞게 생성하게 됩니다. 이후, 텍스트 삽입 엔진(212)은 텍스트 생성 엔진(210)으로부터 생성된 텍스트를 수신하여, 입력 텍스트 프롬프트 상의 접두사 입력 데이터와 접미사 입력 데이터 사이의 삽입 지점(insertion point)에 생성된 텍스트를 삽입합니다. 또한, 본 발명은 사용자가 특정 위치, 영역 등으로 삽입 지점을 지정하는 사용자 입력을 수신하여 사용자 입력에 따른 삽입 지점에 생성된 텍스트를 삽입할 수도 있습니다(e.g., a user input received at an interface that specifies a position, area, or segment within a pre-existing text area for the insertion, 단락 [0056]). 

 

한편, 사용자는 입력 데이터에 따라 생성된 텍스트를 확인하고 새로운 접두사 또는 접미사 입력 데이터를 입력함으로써, 언어모델과 상호작용할 수 있습니다. 즉, 사용자가 출력 텍스트가 원하는 답변 형태가 아니거나 새로운 답변 내용을 원하는 경우, 기존에 입력한 접두사/접미사와 다르게 입력하여 출력 텍스트를 추가적으로 생성 및 수정할 수 있습니다. 이러한 상호작용 과정을 반복하면서 언어모델은 사용자가 텍스트를 입력하는 동시에 프롬프트에서 출력 텍스트를 수정할 수 있습니다. 특허의 상세한 설명 상에서도 사용자가 텍스트를 수정 또는 추가할 동안 기존 입력 텍스트 프롬프트(즉, 출력 텍스트)에 텍스트를 생성 및 삽입할 수 있다고 하여 실시간 상호작용을 강조하고 있습니다(In some embodiments, the at least one processor may generate and insert text into an input text prompt while a user is editing or inserting the input text or text distinct from, but which may be associated with (e.g., included in a same interface) the input text prompt, 단락 [0072]). 

 

또다른 예시로, 본 발명 특허의 FIG 5에서는 일반적인 텍스트 뿐만 아니라 컴퓨터 코드에 대해 사용자가 새로운 접두사 입력 데이터 또는 접미사 입력 데이터를 반복적으로 입력하여 언어모델이 출력 텍스트인 컴퓨터 코드를 반복적으로 생성 및 삽입하는 과정을 보여줍니다.

 

<그림. 3 본 발명 특허 FIG. 5>

 

그림 1과 마찬가지로, 초록 상자는 새롭게 입력되는 접두사 입력 데이터,  주황색 상자는 입력 데이터에 따라 새롭게 입력 프롬프트에 삽입되는 출력 텍스트, 보라색 상자는 새롭게 입력되는 접미사 입력 데이터를 의미합니다. 502에서 언어모델은 입력되는 접두사 코드 및 접미사 코드의 실행을 가능하게 하기 위해, 접미사 코드에 포함된 “prune”이라는 함수를 새롭게 생성하여 입력 텍스트 프롬프트에 삽입합니다. 이후, 사용자는 마지막 입력 텍스트 프롬프트를 기준으로 새롭게 삽입 지점을 지정하며 언어모델은 삽입 지점에 접두사 코드 및/또는 접미사 코드의 맥락에 맞는 새로운 컴퓨터 코드를 삽입합니다. 즉, 사용자는 언어모델을 이용하여 최초 입력 데이터 입력 이후, 추가적인 컴퓨터 코드 입력 없이 적절한 삽입 지점을 지정하는 것만으로도 코드를 완성해나갈 수 있습니다. 

 

3) 텍스트 삽입에 대한 사용자 피드백으로 언어모델 최적화

 

수행 엔진: Output Validation Engine(214), LM Optimization Engine(216)

 

언어모델 평가 엔진(214)은 언어모델의 출력 텍스트 세트를 수신하고, 각 출력 텍스트에 대한 성능평가 지표(outcome metric) 등의 순위를 매깁니다. 언어모델 최적화 엔진(216)은 사용자와의 반복되는 상호작용에 따라 출력되는 출력 텍스트 세트를 학습 데이터셋으로 수집하여 언어모델을 미세 조정합니다. 결국 언어모델은 반복적인 학습 과정을 통해 원하는 답변 형태 및 접두사/접미사의 맥락에 맞는 텍스트를 출력하도록 최적화됩니다.

 

한편, 이러한 상호작용은  언어모델이 반복적인 입력 데이터를 입력받아 사용자가 원하는 답변 형태로 출력 텍스트를 가공해나간다는 점에서 사용자 피드백을 통한 강화학습(Reinforcement Learning from Human Feedback, RLHF) 과정과 유사하다고 볼 수 있습니다. RLHF란, 인공지능 모델의 출력값에 대해 사용자가 좋고 나쁨 등의 피드백을 제시하면, 인공지능 모델이 사용자 피드백에 따라 더 나은 출력값을 생성하기 위해 학습하는 과정을 의미합니다. 

4) 소결

본 발명은 접두사 입력 데이터 및 접미사 입력 데이터과 관련된 모델 파라미터를 결정하고, 모델 파라미터에 최적화된 언어 모델을 선택합니다. 또한, 접두사 입력 데이터 및 접미사 입력 데이터에 기초하여 맥락 파라미터를 결정하고, 사용자가 원하는 답변 형태 및 맥락에 맞는 답변을 제공합니다. 이를 통해, 태스크 뿐만 아니라, 답변 형태에도 최적화된 언어모델을 구축할 수 있게 되었습니다. 또한, 사용자와의 상호작용을 통한 반복적인 최적화 과정을 통해, 더욱 개선된 답변 형태를 출력할 수 있게 되었습니다.

 

    3. 본 발명 특허 청구항 분석

 

위에서 살펴본 본 발명의 단계들이 특허에서는 어떻게 표현되었는지 본 발명 등록 특허(18/183,898)의 청구항을 살펴볼까요? 

 

[청구항 1]

A system comprising:

at least one memory storing instructions;

at least one processor configured to execute the instructions to perform operations for automatically generating and inserting text, the operations comprising:

receiving an input text prompt comprising a prefix portion and a suffix portion;

determining a set of model parameters based on the input text prompt;

accessing a language model based on the input text prompt and the set of model parameters;

determining a set of context parameters based on the input text prompt and the language model, the set of context parameters comprising at least one of location, person, time, or event;

generating language model output text based on the set of context parameters and the language model;

inserting the language model output text into the input text prompt based on the language model; and

optimizing the accessed language model by aligning the language model based on the language model output using machine learning,

wherein:

        the language model is optimized through one or more iterative cycles of training based on one or more outcome metrics associated with the language model output and one or more datasets, and

        the one or more datasets comprise at least one of user-instruction data or user-labeled data based on language model output text.

 

위에서 설명한대로, 본 발명의 모델 학습을 위한 프로세스는 다음의 단계들로 수행됩니다.

 

① 입력 데이터를 수신하여 모델 파라미터 결정

② 모델 파라미터에 기초하여 언어모델에 액세스하고 텍스트 생성 및 삽입

③ 텍스트 삽입에 대한 사용자 피드백으로 언어모델 최적화

 

한편, 본 발명 특허에서는 출원 당시의 청구항에서 밑줄친 구성을 부가하여 등록받았습니다. 밑줄친 구성을 살펴보면,  i) 입력 데이터에 기초하여 모델 파라미터 결정한다는 구성, ii) 맥락 파라미터 세트는 장소, 사람, 시간 또는 이벤트 중 적어도 하나를 포함한다는 구성, iii) 출력 텍스트를 활용하여 언어모델을 최적화하는 구성을 부가하였습니다.

 

[목차]로 돌아가기

 

4번 특허: (텍스트 처리) 콘텐츠 필터링 시스템

 

발명의 명칭: Systems and methods for language model-based content classification 

출원번호: US 18/308,586 (2023.04.27)

공개번호: US 2024-0362421 A1 (2024.10.31)

발명 요약: 인공지능 모델은 훈련 데이터에 따라 결과를 생성하기 때문에 사용자 입력에 따라 혐오 발언, 폭력적인 표현, 성적으로 부적절한 내용 등 유해한 콘텐츠를 생성할 가능성이 있습니다. 이러한 위험을 사전에 차단하고 인공지능 모델의 오・남용을 방지할 수 있도록 설계된 콘텐츠 필터링 시스템에 관한 특허를 소개해드리겠습니다. 해당 특허는 2023.04.27.에 출원되었으며, 현재 심사중입니다.

 

    1. ChatGPT는 유해한 콘텐츠를 어떻게 처리할까?

 

ChatGPT에 “I want to kill all immigrants.”를 한국어로 번역해달라고 요청하면 ChatGPT는 어떤 결과를 출력할까요?

 

[그림 1 - ChatGPT 생성 예시 1]

 

[그림 1]과 같이, ChatGPT는 요청 문장을 혐오 콘텐츠로 분류하고, 사용 정책에 따라 번역할 수 없다는 결과를 출력합니다.

 

그럼, ChatGPT에 “Threatening to kill all immigrants will get you thrown in jail.”를 한국어로 번역해달라고 요청하면 어떨까요?

 

[그림 2 - ChatGPT 생성 예시 2]

 

이 경우, [그림 2]와 같이 ChatGPT는 “모든 이민자를 죽이겠다고 위협하면 감옥에 가게 될 것입니다.” 라는 번역 결과와 함께 사용 정책을 위반할 가능성이 있다는 경고 메시지를 출력합니다.

 

첫 번째 예시에서의 요청 문장과 두 번째 예시에서의 요청 문장 모두 “kill all immigrants”를 포함하지만, 서로 다른 출력 결과를 생성합니다. 

 

ChatGPT는 어떻게 유해한 콘텐츠를 분류하고, 차단하거나 경고할 수 있는 걸까요?

 

바로 Microsoft의 Azure OpenAI 서비스 내에서 제공하는 콘텐츠 필터링 시스템을 사용하기 때문입니다.

 

콘텐츠 필터링 시스템은 DALL-E 이미지 생성 모델을 포함한 핵심 모델과 함께 실행되며, 혐오 발언, 폭력적인 표현, 성적으로 부적절한 내용 등 유해한 콘텐츠의 출력을 탐지하고 방지하기 위한 시스템입니다. 콘텐츠 필터링 시스템은 텍스트 뿐만 아니라 이미지 데이터에서도 작동할 수 있으며, 입력 프롬프트와 생성 결과 모두에 적용될 수 있습니다.

 

이번 칼럼에서는 콘텐츠 필터링 시스템에 대해서 개략적으로 검토하고, 해당 특허의 청구항을 살펴보도록 하겠습니다.

 

    2. 콘텐츠 필터링 시스템

 

콘텐츠 필터링 시스템은 콘텐츠 분류 체계를 바탕으로 콘텐츠를 필터링합니다. 분류 체계는 [그림 3]에 도시된 바와 같이 성적 콘텐츠(S), 혐오 콘텐츠(H), 폭력 콘텐츠(V)와 같은 카테고리와, 해당 카테고리에 포함된 서브-카테고리들을 포함합니다. 

 

[그림 3 - 출처: ‘586 특허의 도 2]

 

대표적으로 혐오 컨텐츠(H)를 예로 들어보겠습니다. 혐오 컨텐츠(H)는 [그림 3]에서 도시된 바와 같이 아래의 4개의 서브-카테고리들을 포함합니다.

 

  • [H1] 비하적 고정 관념 또는 혐오적 발언에 대한 지지
  • [H2] 폭력을 선동하거나 위협하는 혐오적 콘텐츠
  • [H0.a] 집단 정체성을 언급하는 중립적 진술
  • [H0.b] 다른 개인의 혐오 발언을 비판하기 위해 인용하는 맥락화된 혐오 발언

 

콘텐츠 분류 시스템은 [H1] 또는 [H2] 그룹으로 분류된 콘텐츠에 “바람직하지 않은(undesired)” 레이블을 부여할 수 있고, [H0.a] 또는 [H0.b] 그룹으로 분류된 콘텐츠에 “바람직하지 않은” 레이블을 부여하지 않을 수 있습니다. 콘텐츠 필터링 시스템은 “바람직하지 않은” 레이블이 부여된 콘텐츠를 탐지하고 필터링할 수 있게 됩니다. 


이러한 컨텐츠 분류 체계는 아래의 [그림 4]에서 보이는 바와 같이 여러 제약 조건을 설정하는 콘텐츠 정책에 기반하여 자동으로 생성될 수 있습니다.

 

[그림 4 - 출처: Microsoft의 Azure OpenAI 서비스]

 

예를 들어, 사용자가 콘텐츠 정책 중 심각도 임계값을 “중간(medium)”으로 지정하고 “annotate and blocking"을 지정한 경우, 콘텐츠 필터링 시스템은  “바람직하지 않음” 으로 분류된 콘텐츠라도 심각도 수준이 ‘낮음’ 또는 ‘안전'에서 감지된 콘텐츠는 사용자에게 전달하되 경고 메시지를 부여할 수 있습니다.  그러나, 심각도 수준이 ‘중간’ 또는 ‘높음’ 에서 김지된 컨텐츠는 사용자에게 표시하지 않도록 차단하거나 생성이 중단됩니다. 

 

그럼 해당 특허의 독립항 제 1항을 살펴보겠습니다.

 

    3. 특허 청구항 분석

 

해당 특허(18/308,586)는 2023.04.27.자에 트랙 원 우선심사청구(Request of Track One Prioritized Examination)와 함께 출원되었고, 2023.10.31.자에 해당 특허를 기초로 한 PCT가 출원되었습니다.

 

해당 특허는 2024.05.22.자에 특허청에서 1차 거절이유가 발행되어 청구항을 보정하여 대응하였으나, 거절이유가 해소되지 않아 현재 2차 거절이유가 발행된 상태입니다. 

 

해당 특허의 독립항 제 1항은 아래와 같습니다.

 

독립항 제 1 항

1. A system comprising:

at least one memory storing instructions; and

at least one processor configured to execute the instructions to perform first operations for automatically classifying and moderating content, the operations comprising:

receiving input data;

receiving one or more content policies;

generating a content taxonomy using a large language model generation engine configured to receive the input data and the one or more content policies and generate the content taxonomy by forming categories and subcategories ranked with a prediction metric predictive of content including desired or undesired digital material, the metric being automatically machine-generated;

receiving multi-domain cold start data from a plurality of data sources;

generating training data based on the multi-domain cold start data to initiate an active learning process, the active learning process being performed based on two or more parallel learning pipelines;

accessing a pre-trained language model based on the input data and the training data;

iteratively executing second operations until a threshold value has been reached to generate an optimized language model, wherein the second operations comprise:

classifying the content of the input data using the pre-trained language model and the content taxonomy;

refining the training data based on the classified content of the input data;

refining the pre-trained language model based on the refined training data to generate the optimized language model; and

probing the optimized language model; and

moderating the content of the input data based on the optimized language model and the content taxonomy.

 

독립항 제 1 항은 크게 1) 컨텐츠 분류 체계를 생성하는 과정, 2) 학습 데이터를 생성하고 사전 학습된 모델에 액세스(access)하는 과정, 3) 최적화 된 모델을 생성하는 과정, 및 4) 콘텐츠를 조정하는 과정으로 구성됩니다. 밑줄 친 부분이 특허청에서 발행된 1차 거절이유를 극복하기 위해 추가된 구성요소입니다.

 

[그림 5 - 출처: ‘586 특허의 도 5]

 

(1)  컨텐츠 분류 체계 생성

 

콘텐츠 정책에는 앞서 설명한 예시에서와 같이 특정 콘텐츠를 차단하도록 설정하는 것과 심각도 임계값을 설정하는 것 등을 포함할 수 있습니다.

 

콘텐츠 정책에 기반하여 자동으로 생성된 분류 체계는 성적 콘텐츠, 혐오적 콘텐츠, 폭력적 콘텐츠와 같은 콘텐츠 카테고리와 각 카테고리 내의 서브-카테고리들을 포함할 수 있습니다. 

 

최초 청구항에서 거절이유를 극복하기 위해 추가된 부분이 바로 밑줄 친 부분인 “바람직한 디지털 자료 또는 바람직하지 않은 디지털 자료를 포함하는 콘텐츠를 예측하는 예측 지표(metric)로 순위가 매겨진 서브-카테고리를 형성하여 콘텐츠 분류 체계를 생성하며, 해당 지표는 자동으로 기계에서 생성된다”는 부분입니다.

 

즉, 콘텐츠 분류 시스템은 콘텐츠 분류 체계를 생성할 때, 예측 지표라는 특정 기준을 사용해서   "바람직하지 않은” 레이블을 부여하는지 여부로 서브-카테고리를 순위화합니다.

 

심사 과정에서 출원인은 상술한 내용을 더 추가했음에도 불구하고 2차 거절이유가 발행된 상태입니다. 따라서, OpenAI가 어떤 구성요소를 더 추가하여 등록받을 수 있을지는 더 지켜봐야 할 부분입니다.

 

(2) 학습 데이터를 생성하고 사전 학습된 모델에 액세스

 

학습 데이터는 복수의 데이터 소스로부터 가져온 콜드 스타트 데이터(multi-domain cold start data)를 기초로 생성될 수 있습니다. 여기서 ‘콜드 스타트’는 일반적으로 머신러닝이나 인공지능 모델을 학습할 때, 충분한 학습 데이터가 없는 초기 상태를 나타냅니다. 이런 상황에서는 모델이 정확하게 학습하기 어려운데, ‘콜드 스타트 데이터’는 데이터가 충분히 수집되거나 학습되지 않은 상태에서, 초기 학습이나 모델 훈련을 위해 제공되는 데이터를 의미합니다.

 

해당 특허에서는 ‘콜드 스타트 데이터’가 기계가 생성한 데이터일 수도 있고, 사람이 큐레이팅 한 합성된 데이터일 수도 있다고 개시되어 있습니다. 사람이 큐레이션하여 합성된 데이터란 사람이 설계한 프롬프트 템플릿에 기반하여 생성된 프롬프트를 기초로 합성된 데이터를 의미합니다. 사람에 의해 작성된 프롬프트 템플릿은 [그림 6]에 예시적으로 도시되어 있고, 굵은 글씨로 표시된 내용은 다양성을 높이기 위해 무작위로 선택될 수 있습니다.

 

[그림 6 - 출처: ‘586 특허의 도 3]

 

학습 데이터가 생성되면, 생성된 학습 데이터를 활용하여 언어 모델에 액세스합니다. 여기서, 언어모델에 액세스하는 것은 언어 모델의 모델 파라미터를 추가, 제거, 수정하거나, 모델의 노드 및/또는 계층을 추가, 비활성화 또는 제거하는 것을 의미합니다. 특히, 해당 특허에서는 생성된 학습 데이터를 활용해서 언어 모델을 위한 능동 학습 과정(active learning process)을 시작합니다.

 

[그림 7]은 능동 기계 학습을 나타내는 그림입니다. 라벨링되지 않은 데이터에 대해 사람이 라벨을 부여하면 이를 기계가 학습하는 방식으로 이루어지는 ‘전통적인 기계학습(passive machine learning)’과는 달리, ‘능동 기계 학습’은 기계가 가장 유용한 데이터를 자동으로 그리고 적응적으로 선택하고 라벨링을 요청하는 것을 의미합니다. 즉, 모델이 학습 중 불확실성이 높은 데이터가장 유익한 정보를 담고 있을 것 같은 데이터를 우선적으로 선택하여 라벨링을 요청하고, 새롭게 라벨링된 데이터를 추가하여 모델을 재학습하는 과정을 통해서 모델의 정확도를 높일 수 있습니다.

 

[그림 7 - 출처: ICML 2019 active learning tutorial]

 

해당 특허에서 능동 학습은 세 개의 병렬 학습 파이프라인을 기반으로 수행될 수 있습니다. ‘첫번째 파이프라인’은 콜드 스타트 데이터에서 무작위로 데이터를 샘플링하여 라벨링을 요청합니다. 이렇게 하면, 실제 사용 환경에서의 데이터 분포와의 일관성을 보장할 수 있습니다. ‘두번째 파이프라인’은 컴퓨터가 예측한 결과 중에서 점수가 특정 임계값 이상인 데이터에서 무작위로 샘플링하여 라벨링을 요청합니다. 모델 점수가 특정 임계값 이상이라도 해당 데이터가 실제로 잘못된 카테고리에 속해 있을 수 있기 때문에, 두번째 파이프라인은 잘못된 확신으로 인해 발생할 수 있는 잠재적 오류를 탐지하기 위한 전략이라고 볼 수 있습니다. ‘세번째 파이프라인’은 특정 임계값 이상에서 컴퓨터가 가장 불확실하다고 판단하는 샘플을 포착합니다. 특정 클래스에 대한 확률이 높은데도 불구하고 다른 클래스의 확률도 비슷하게 높다면 모델은 해당 데이터에 대해 불확실성을 느끼는 것이므로, 세번째 파이프라인을 통해서 모델이 학습하지 못한 영역이나 약한 부분을 발견하고 라벨링할 수 있게 때문에 학습의 효율성을 극대화할 수 있습니다.

 

(3) 최적화 된 모델 생성 

 

콘텐츠 분류 시스템은 사전 학습된 언어 모델의 출력과 분류 체계를 활용하여 입력 데이터의 컨텐츠를 분류합니다. 이 후, 잘못 분류된 컨텐츠를 식별하고, 학습 데이터를 재정규화(re-normalizing)하는 데이터 정제 작업이 수행됩니다.

 

예를 들어, [그림 8]에서 첫번째, 두번째, 세번째 문장들은 혐오 콘텐츠에 해당하지만, 네번째 문장은 내용상 혐오 콘텐츠가 아닙니다.

 

[그림 8 - 출처: ‘586 특허의 도 4]

 

그러나, 학습 데이터에서 자주 등장하는 단어인 “all immigrants”가 혐오 콘텐츠와 연결되어 있다면, 콘텐츠 분류 시스템은 “all immigrants"가 포함된 모든 문장을 혐오 콘텐츠로 분류할 가능성이 높습니다. 콘텐츠 분류 시스템은 이렇게 과적합된 단어로 인해 네번째 문장을 혐오 콘텐츠로 잘못 분류할 수 있습니다.

 

이를 방지하기 위해, 콘텐츠 분류 시스템은 과적합된 단어를 식별하고, 과적합된 단어가 분류 결과에 과도하게 영향을 미쳤는지를 분석하여, 해당 콘텐츠가 잘못 분류된 콘텐츠인지를 식별할 수 있습니다.

 

콘텐츠 분류 시스템은 정제된 데이터 셋을 기초로 사전 학습된 언어 모델을 정렬하거나 조정(fine-tuning)하여 최적화 작업을 수행할 수 있습니다. 언어 모델을 정렬하는 과정은 언어 모델의 모델 파라미터를 추가, 제거, 수정하거나, 모델의 노드 및/또는 계층을 추가, 비활성화 또는 제거하는 것을 의미합니다. 

 

참고로, 인공지능 분야에서 AI 정렬(AI alignment)은 ‘외부 정렬’과 ‘내부 정렬’을 포함합니다. ‘외부 정렬’은 AI 시스템이 설정된 목표나 목적에 맞게 행동하도록 하는 것을 의미하며, 해당 특허에서 언어 모델을 정렬하는 것에 대응할 수 있습니다. ‘내부 정렬’은 AI 시스템이 목표를 달성하는 과정에서 인간의 가치와 윤리를 준수하도록 하는 과정을 의미합니다. 예를 들어,  AI 채용 시스템의 학습에 사용된 과거 채용 데이터가 성별이나 인종에 대한 편견을 포함하는 경우, AI가 이를 학습해 특정 성별이나 인종에 유리한 결정을 내리는 등의 사례가 잘못된 가치 판단의 예입니다. ‘내부 정렬’은 윤리적인 문제를 다룬다는 점에서 해당 특허의 콘텐츠 분류 시스템과 개념이 비슷하지만, 해당 특허의 콘텐츠 분류 시스템은 사전 정의된 정책에 따라 유해하거나 부적절한 콘텐츠의 생성을 방지하는 것이며 특정한 AI 서비스 내에서 동작하는 것이 내부 정렬과 다른 점입니다.

 

콘텐츠 분류 시스템은 최적화된 언어 모델을 탐지(probing)할 수 있습니다. 일례로, 주요 토큰이 과적합되었는지를 탐색하여 모델을 검증하거나, 레드팀에 의해 모델을 테스트하여 검증할 수 있습니다. ‘레드팀’이란 언어 모델을 시험해보고 문제를 찾아내는 일을 수행하는 팀을 의미합니다. 

 

(4)  콘텐츠 조정

 

콘텐츠 필터링 시스템은 최적화된 언어 모델을 사용하여 콘텐츠를 조정합니다. 여기서, 콘텐츠를 조정하는 것이란 사용자의 프롬프트에 유해한 콘텐츠가 포함되었다고 판단되면 유해하거나 부적절한 결과를 생성하지 않도록 모델에 전달되는 입력을 제한하는 것과, 사용자가 입력한 프롬프트에 따라 모델이 생성한 결과에 유해한 콘텐츠가 포함되었다고 판단되면 유해한 출력을 차단하거나 수정하는 것을 의미합니다.

서두에서 ChatGPT가 첫 번째 예시에서의 요청 문장과 두 번째 예시에서의 요청 문장 모두 “kill all immigrants”를 포함하지만, 서로 다른 출력 결과를 생성할 수 있었던 것은 모델을 최적화하는 과정에서 과적합된 토큰을 식별하고, 학습 데이터 셋을 정제하는 과정을 거쳤기 때문에 가능한 것입니다.

 

독립항 제 1 항은 현재 심사중이므로, OpenAI가 어떤 구성요소를 더 추가하여 등록받을 수 있을지는 더 지켜봐야 할 부분입니다.

 

[목차]로 돌아가기

 

5번 특허: (컴퓨터 코드) Codex 특허

 

발명의 명칭: Systems and methods for generating code using language models trained on computer code

출원번호: US 18/321,852 (2023.05.23)

등록번호: US 12,061,880 B2 (2024.08.13)

발명 요약: OpenAI는 트랜스포머 기반의 언어 모델인 Codex를 개발하여 자연어 입력을 기초로 컴퓨터 코드를 자동으로 생성하거나, 코드를 자연어로 설명할 수 있는 기능을 제공할 수 있게 되었습니다. 해당 특허는 2023.05.23.자에 출원되었으며, 2024.08.13.자에 등록되었습니다.

 

    1. 기존 프로그래밍 방식의 한계와 해결책

 

기존의 컴퓨터 코드 작성 방법은 코드를 작성하는 과정에서 구문 오류가 발생하거나 버그가 생길 가능성이 높고, 하나의 프로그램을 여러 프로그래밍 언어와 플랫폼에서 작동하도록 개발하는 것이 어렵습니다. 게다가  복잡한 코드를 작성하려면 고도의 프로그래밍 기술이 필요하므로 초보자가 접근하기 어려운 문제가 있습니다.

 

이번 칼럼에서는 자연어 입력을 기초로 컴퓨터 코드를 자동으로 생성하거나, 코드를 자연어로 설명할 수 시스템에 관해 살펴보고자 합니다.

 

예를 들어, [그림 1]와 같이 “Make it be smallish” 라고 자연어를 입력하면, [그림 2]와 같이 시스템이 자동으로 컴퓨터 코드를 작성하고 이를 실행할 수 있습니다.

 

[그림 1 - 출처: OpenAI 블로그]

 

[그림 2 - 출처: OpenAI 블로그]

 

그럼, 기계 학습 모델이 자연어 입력을 기초로 컴퓨터 코드를 어떻게 자동으로 생성하는지 살펴보도록 하겠습니다.

 

    2. 자연어로 코드를 작성하는 방법

 

[그림 3 - 출처: 깃허브]

 

[그림 3]은 OpenAI Codex로 구동되는  AI 기반 코딩 도우미 GitHub Copilot의 예시를 나타냅니다.

 

먼저, 시스템은 디지털 프로그래밍 결과를 지정하는 자연어 텍스트를 나타내는 docstring을 수신합니다. 여기서, docstring은 주석, 문서, 문장, 단락, 단어 또는 자연어 구문을 포함한 모든 텍스트를 지칭하며, 컴퓨터 프로그래밍 코드와 관련된 함수, 메서드, 모듈 또는 클래스의 사용 또는 상호작용에 대한 정보를 제공할 수 있습니다. 

 

예를들어, [그림 4]에서 // Determine whether the sentiment of text is positive, 및 // Use a web service 와 같이, 텍스트의 감정이 긍정적인지 판별하는 함수라는 설명, 이 코드가 웹 서비스를 사용한다는 설명이 docstring에 해당할 수 있습니다. 그리고, docstring을 제외한 부분이 컴퓨터 코드에 해당하며, 실제로 함수와 로직을 구현하는 부분입니다.

 

시스템은 기계 학습 모델을 활용하여 docstring을 기초로, 후보 결과를 생성하는 여러 컴퓨터 코드 샘플들을 생성합니다. 여기서, 후보 결과는 자연어 입력에 의해 지정된 원하는 결과와 일치할 수도 있고 일치하지 않을 수도 있습니다. 기계 학습 모델에 의해 제공되는 컴퓨터 코드 샘플들의 수가 많을수록 각 후보 결과를 비교하여 가장 적합한 코드를 선택할 수 있기 때문에 원하는 결과를 정확하게 얻을 가능성이 높아집니다. 이러한 기계 학습 모델은 자연어를 이해하도록 사전 학습된 모델에 주석이 달린 컴퓨터 코드로 구성된 학습 데이터를 적용하여 추가로 학습된 모델일 수 있습니다.

 

시스템은 컴퓨터 코드 샘플들을 실행하고, 실행된 컴퓨터 코드 샘플 단위로 해당 컴퓨터 코드가 얼마나 정확하게 동작하는지를 확인하기 위한 단위 테스트를 수행합니다. 여기서, 단위 테스트란 컴퓨터 코드 샘플 또는 그 일부를 ‘독립적으로’ 테스트하여 해당 컴퓨터 코드가 올바르게 작동하는지를 확인하는 테스트를 의미합니다. 따라서, 전체 단위 테스트 세트 중 특정 컴퓨터 코드 샘플이 통과한 단위 테스트 수를 토대로 해당 컴퓨터 코드가 원하는 기능을 얼마나 정확히 수행했는지를 점수화할 수 있습니다.

 

시스템은 상술한 점수를 토대로 여러 개의 코드 샘플들 중 적합한 코드 샘플을 식별할 수 있습니다. 예를 들어, 첫번째 코드 샘플은 자연어 입력에 의해 표시된 결과에 대응하지 않는 결과를 초래하고, 두번째 코드 샘플은 자연어 입력에 의해 표시된 결과에 대응하는 결과를 초래한다면, 두번째 컴퓨터 코드 샘플이 식별될 수 있습니다. 다시 말해, 시스템은 디지털 프로그래밍 결과와 연관된 특정 후보 결과를  생성하도록 구성된 컴퓨터 코드 샘플을 식별할 수 있습니다.

 

시스템은 식별된 컴퓨터 코드 샘플을 출력하고, 식별된 컴퓨터 코드 샘플을 기초로 머신 러닝 모델을 조정(fine-tuning)하여 모델의 성능을 향상시킬 수 있습니다.

 

그럼 해당 특허의 독립항 제 1항을 살펴보겠습니다.

    3. 특허 청구항 분석

해당 특허의 독립항 제 1항은 아래와 같습니다.

 

독립항 제 1 항 

[청구항 1]

A computer-implemented method, comprising:

receiving a docstring representing natural language text specifying a digital programming result;

generating, using a trained machine learning model and based on the docstring, one or more computer code samples configured to produce respective candidate results;

causing each of the one or more computer code samples to be executed in a testing environment associated with the trained machine learning model, wherein each of the one or more computer code samples are evaluated based on at least one unit test, the at least oneunit test being generated by the machine learning model;

identifying, based on a result of the executing in the testing environment, at least one of the computer code samples which produces a particular candidate result associated with the digital programming result;

generating, using the trained machine learning model, natural language text associated with the at least one identified computer code sample;

verifying each of the one or more executed computer code samples; and

outputting the at least one identified computer code sample and the natural language text associated with the at least one identified computer code sample;

wherein:

verifying includes computing a functional correctness score for each of the executed one or more computer code samples;

the identifying at least one of the computer code samples is based on the functional correctness score; and

the trained machine learning model is fine-tuned based on verified computer code samples.

 

[그림 4 - ‘852 특허의 도 1]

 

독립항 제 1항은 출원 시에 기계 학습 모델을 활용하여 docstring을 기초로 컴퓨터 코드 샘플들을 생성하고, 컴퓨터 코드 샘플들을 실행한 결과를 기초로 특정 코드 샘플을 식별하고 이를 출력하는 과정을 권리화하였습니다(① 내지 ⑤).

 

그러나, 등록 포인트는 밑줄 친 부분과 같이 단위 테스트를 기초로 실행된 코드 샘플을 평가하고, 실행된 코드 샘플의 기능적 정확성 점수를 기초로 특정 코드 샘플을 식별하고, 식별된 컴퓨터 코드 샘플에 기초한 추가적 설명을 제공하는 자연어 텍스트를 생성하고,  식별된 컴퓨터 코드 샘플에 기초하여 기계 학습 모델이 조정되는 내용입니다.

 

참고로, 밑줄 친 부분 중 볼드체로 표시된 부분은 등록 결정(Notice of Allowance) 시 심사관의 수정(Examiner’s Amendment)에 의해 추가된 내용입니다.

 

    4. 계속 출원 1의 청구항 분석

 

2023.05.23.자에 CA 출원되고, 2024.06.11.자에 등록된 등록 특허(18/321,921)의 독립항 제21항을 살펴보겠습니다.

원출원과의 차이점은, 원출원의 등록 청구항 제 1 항은 자연어 입력으로부터 컴퓨터 코드를 생성하는 구성을 권리화 한 것이고, 해당 특허의 독립항 제 21항은 반대로 컴퓨터 코드로부터 자연어를 출력하는 구성을 권리화한 것입니다

 

[청구항 21]

A computer-implemented method, comprising:

training a machine learning model to generate natural language docstrings from computer code;

receiving one or more computer code samples at the trained machine learning model;

generating, via the trained machine learning model and based on the received one or more computer code samples, one or more candidate natural language docstrings representing natural language text, each of the one or more candidate natural language docstrings being associated with at least a portion of the one or more computer code samples;

identifying at least one of the one or more candidate natural language docstrings that provides an intent of the at least a portion of the one or more computer code samples;

outputting from the trained machine learning model the at least one identified natural language docstring with the at least a portion of the one or more computer code samples; and

receiving, at the machine learning model, a selection of the one or more computer code samples, wherein the machine learning model provides an automatic description of the selection and generates a template for building an additional machine learning model.

 

 

[그림 4 - ‘921 특허의 도 2]

 

독립항 제 21항은 출원 시에 훈련된 기계 학습 모델을 활용하여 컴퓨터 코드 샘플로부터 후보 자연어 docstring들을 생성하고, 후보 docstring들 중 코드 샘플의 ‘의도’를 제공하는 docstring을 식별하여 출력하는 과정을 권리화하였습니다. 여기서, 의도란 해당 컴퓨터 코드 샘플이 시스템에서 실행될 때 달성하는 기본적인 기능, 목적, 또는 목표를 설명하는 것을 의미합니다.

 

그러나, 등록 포인트는 밑줄 친 부분과 같이 기계 학습 모델이 컴퓨터 코드 샘플의 선택을 수신하고, 수신된 선택에 대한 자동 설명을 제공하며, 추가적인 기계 학습 모델을 구축하기 위한 ‘템플릿’을 생성하는 내용입니다. 즉, 해당 발명은 새로운 기계 학습 모델을 구축하는 데 필요한 초기 코드 구조인 템플릿을 생성할 수 있으며, 이를 기반으로 사용자가 원하는 작업에 맞게 필요한 코드를 자동으로 만들어줄 수 있습니다. 

 

    5.계속 출원 2의 청구항 분석

 

2024.07.09.자에 CA 출원되고, 2024.12.05.자에 공개된 공개 특허(18/767,894)의 독립항 제21항을 살펴보겠습니다.

 

해당 출원의 독립항 제 21 항은, 원출원의 등록 청구항 제 1 항의 주요 등록 포인트인 “기능 점수를 기반으로 컴퓨터 코드 샘플을 검증하는” 내용은 유지하고, 원출원의 등록 청구항 제 1 항 내용 중 단위 테스트를 기반으로 컴퓨터 코드 샘플을 평가하는 구성, 및 식별된 컴퓨터 코드 샘플과 연관된 자연 텍스트를 생성하고 출력하는 구성은 삭제했습니다.

 

21. A computer-implemented method, comprising:

receiving a docstring representing natural language text indicating a programming result;

generating, using a machine learning model and based on the docstring, computer code samples;

identifying computer code samples that produce candidate results associated with the programming result;

computing functional scores for each of the identified computer code samples;

verifying at least one of the identified computer code samples based on the functional scores;

outputting the at least one verified identified computer code sample; and

fine-tuning the trained machine learning model based on the at least one verified identified computer code sample.

 

해당 출원은 심사중이므로 해당 청구항 그대로 등록받을 수 있을지 아니면 구성요소를 더 추가하여 등록받을 수 있을지는 더 지켜봐야 할 부분입니다.

 

[목차]로 돌아가기

 

6번 특허: (API 연동) 외부 API와 연동하는 언어모델 시스템

 

발명의 명칭: Schema-based integration of external apis with natural language applications

출원번호: US 18/186,712 (2023.03.20)

등록번호: US 11,922,144 B1 (2024.03.05)

발명 요약: 본 발명은 언어모델 UI에 외부 API를 통합하여 언어모델이 외부 API의 기능(function)들을 이해하고, 사용자가 외부 API를 사용할 수 있도록 제공하는 발명입니다. 본 발명은 2023.03.20에 특허출원 이후 2024.03.05에 등록되었습니다.

 

    1. 본 발명의 탄생 배경

1) API(Application Programming Interface)란?

API는 하나의 시스템에서 여러 어플리케이션들을 사용할 수 있도록 구성된 프로토콜의 집합을 의미합니다. 예를 들어, 사용자는 시스템 상에서 다른 외부의 API들을 통합할 수 있으며, 시스템은 외부 API의 정보가 저장된 위치에 접근해 사용자의 요청을 전달하고, 외부 API로부터 요청에 따른 결과값을 전달받습니다.

 

2) 기존 기술들의 한계점 및 본 발명의 탄생 배경

 

언어모델은 특정 태스크(또는 어플리케이션)에 대한 학습 데이터셋을 이용해 언어모델이 해당 태스크를 잘 수행하도록, 즉 답변을 잘 생성하도록 추가적으로 학습시키는 미세-조정(fine-tuning)을 통해 태스크에 최적화될 수 있습니다. 다만, 언어모델을 해당 자신이 학습한 학습 데이터셋에 기초하여 출력 텍스트를 생성하기 때문에, 언어모델을 추가적으로 학습시키지 않는 경우에는 변경된 데이터 또는 새로운 데이터가 출력 텍스트에 반영되지 않고, 새로운 태스크에 대한 미세 조정 시 많은 시간과 비용이 발생한다는 문제점이 있었습니다. 뿐만 아니라, 검증되지 않은 데이터에 의해 학습된 언어모델은 부정확한 답변을 생성할 위험이 존재했습니다.

 

이러한 문제점을 해결하기 위해, 본 발명에서는 언어모델을 외부의 다양한 API들과 상호작용할 수 있도록 통합하여, 모델을 별도로 재설정하지 않아도 외부 API의 다양한 기능들을 이용할 수 있도록 하고, 검증된 소스의 데이터를 이용하여 정확한 결과값값을 생성할 수 있도록 하였습니다.

 

    2. 본 발명 언어모델-API 통합 방법

본 발명은 언어모델에 사용자가 특정 API에 대한 접근을 요청하는 텍스트를 입력하면 언어모델이 요청된 특정 API를 식별하여 언어모델 인터페이스에 연결하고, 사용자의 자연어 텍스트에서 요청되는 특정 API의 기능(function)을 호출하는 발명입니다. 본 발명이 활용되는 가장 심플한 Use case는 바로 이미지 생성 API를 이용하여 이미지를 생성하는 케이스입니다.

 

<그림 1. 본 발명의 Use case>

 

본 발명에서는 위와 같이 이미 ChatGPT에 연결된 이미지 생성 API 뿐만 아니라 사용자 요청에 따라 언어모델 UI에서 접근 가능한 위치에 매니페스트 파일이 저장된 API에 새롭게 접근하여 활용할 수 있는 API 통합 방법을 소개하고 있습니다.

 

본 발명 언어모델-API 통합 방법은 크게 아래의 단계들로 구성됩니다.

 

① 언어모델 UI에서 수신한 입력에 기초하여 외부 API를 식별 및 접속

② 외부 API에 대한 매니페스트 파일로 언어모델 학습

③ 외부 API와 상호작용하여 결과값 제공

 

본 발명을 수행하는 언어모델 UI 시스템의 개략도는 다음과 같습니다.

 

<그림 2. 본 발명의 시스템 구성도(FIG. 3)>

 

아래에서 각 단계에 대한 구체적인 내용을 소개하도록 하겠습니다.

1) 언어모델 UI에서 수신한 입력에 기초하여 외부 API를 식별 및 접속

 

(1) 외부 API 생성

언어모델 UI에서 외부 API에 접속하기에 앞서, 외부 API는 다음의 단계들 통해 생성 및 작동됩니다.

 

① API 게시자(publisher)가 언어모델에서 호출될 수 있도록 설정된 엔드포인트(API의 접근 주소)에 API 생성

② API 게시자(publisher)가 API에 대한 설명서(description specification)와 설명서의 주소를 포함하는 매니페스트 파일 작성

③ 이후, 언어모델은 API 문서(설명서, 매니페스트 파일)와 사용자 대화 맥락에 기초하여, API 호출

 

(2) 언어모델 UI에서 API 연결을 요청하는 입력 수신

언어모델 UI는 사용자로부터 외부 API의 통합을 요청하는 입력을 수신합니다. 이 때, 사용자는 UI에 자연어 텍스트를 입력하거나 메뉴를 선택하여 입력(드롭다운 메뉴, 클릭-앤-드래그 방식 등)할 수 있습니다. UI는 입력에 포함된 특정 API의 이름/식별 정보나 특정 API를 선택하는 선택 입력을 결정하고, 사용자가 원하는 특정 API를 식별할 수 있습니다. 

 

(3) 외부 API 통합(Integrate)

언어모델 UI는 사용자에 의해 요청된 외부 API를 통합할 수 있습니다. API 통합이란, API의 기능들을 호출할 수 있도록 API의 매니페스트 파일이 저장된 주소에 접근하는 것을 의미합니다. 매니페스트 파일은 해당 API의 설명서의 저장 주소를 포함합니다. 

2) 외부 API에 대한 매니페스트 파일로 언어모델 학습

언어모델은 해당 API의 매니페스트 파일과 설명서를 학습 데이터로 하여, 해당 API의 특정 기능(function)을 요청하는 사용자 입력으로부터 해당 API의 특정 기능을 호출하거나, 특정 결과를 얻기 위해 어떤 기능을 호출해야하는지 학습됩니다. 

 

3) 외부 API와 상호작용하여 결과값 제공

(1) 추가적인 입력 수신

언어모델 UI는 API를 호출한 최초 입력에 더해 추가적인 입력을 수신할 수 있습니다. 이 경우에는, 최초 입력은 API 선택에 대한 입력이고, 추가 입력은 해당 API를 통해 결과를 요청하는 입력일 수 있습니다.

 

(2) 외부 API로부터 받은 결과값 전달

언어모델 UI는 API로부터 결과값을 전달받아 사용자에게 제공합니다. 이 때, 언어모델 UI는 단순히  결과값을 출력하는 것 뿐만 아니라, 추가적으로 언어모델을 이용하여 결과값을 요약하여 화면에 표시할 수 있습니다. 

 

4) 소결

본 발명은 외부 API가 수행할 수 있는 기능들 전부에 대한 학습이 아닌, API 문서를 통한 기능 호출만을 학습하여, 많은 학습 비용을 들이지 않고도 사용자에게 최신의 외부 API 기능들을 제공할 수 있습니다. 즉, 언어모델은 많은 학습 없이도 사용자의 입력 텍스트로부터 사용자가 원하는 기능을 이해하고, 해당 기능을 외부 API에 전달하여, 검증된 소스로부터 정확한 결과값을 제공할 수 있습니다.

 

    3. 본 발명 특허 청구항 분석

위에서 살펴본 본 발명의 단계들이 특허에서는 어떻게 표현되었는지 본 발명 등록 특허(18/186,712)의 청구항을 살펴볼까요?

 

[청구항 1]

A computer-implemented method for integrating a particular external application programming interface (API) with a natural language model user interface, comprising:

receiving a first input at the natural language model user interface communicably connected to a natural language model that is trained to call one or more functions based on a manifest and in response to the received first input;

determining the first input includes a request to integrate the particular external API with the natural language model user interface;

identifying the particular external API based on the received first input;

integrating the particular external API with the natural language model user interface, the integrating comprising accessing a web API, a description of the web API, and the manifest stored in a location associated with the particular external API, wherein the manifest is customizable by a publisher of the particular external API;

accessing the particular external API based on the first input or a second input at the natural 

language model user interface; and

transmitting, based on the accessing, a response message to the natural language model user interface, the response message including a result of the accessing, wherein transmitting the response message to the natural language model user interface includes summarizing payload contents received from the particular external API and displaying natural language text to a user via the natural language model user interface.

 

본 발명의 등록 청구항은 학습 단계(단계 ②)를 생략하고, 외부 API 통합 단계 및 결과값 제공(단계 ①, ③)에 대한 구성으로 청구항을 설정했습니다.

 

① 언어모델 UI에서 수신한 입력에 기초하여 외부 API를 식별 및 접속

② 외부 API에 대한 매니페스트 파일로 언어모델 학습

③ 외부 API와 상호작용하여 결과값 제공

 

한편, 본 발명 특허에서는 출원 당시의 청구항에서 밑줄친 구성을 부가하여 등록받았습니다. 밑줄친 구성을 살펴보면,  i) 언어모델 UI는 API 매니페스트 파일과 입력에 따라 기능을 호출하도록 학습된 언어모델과 상호연결된다는 구성, ii) API를 통합하는 것은 웹 API, 웹 API 매니페스트 파일, 웹 API 설명서에 접근하는 것을 포함하는 구성, iii) API로부터 전달받은 결과값을 언어모델 UI에 전송한다는 구성을 부가하였습니다.

 

4. 계속 출원(Continuation Application)

 

위에서 설명드린 원출원 특허(18/186,712)가 등록된 이후, 여러개의 API와 통합이 가능하다는 것을 강조하기 위해 2023.09.25에 계속 출원(출원번호: 18/474,063)을 진행하였으며, 2024.10.22에 등록되었습니다(등록번호: US 12,124,823 B2).

 

[청구항 1]

 A computer-implemented method comprising:

accessing a first manifest file stored in a first location, the first manifest file including first training data associated with a first web application programming interface (API), the first training data including a second location of a first description of the first web API;

accessing the first description of the first web API based on the first training data;

training a model based on the first training data and the first description of the first web API;

accessing a second manifest file stored in a third location, the second manifest file including second training data associated with a second web API, the second training data including a fourth location of a second description of the second web API;

accessing the second description of the second web API based on the second training data;

training the model based on the second training data and the second description of the second web API;

receiving an input at a user interface of the model;

analyzing the received input to determine whether the input includes a request to integrate the first web API or the second web API with the user interface;

determining one or more function calls to transmit to the first web API or the second web API based on the analysis of the received input, wherein the model is trained to call a first function based on a first input and a second function based on a second input; and

re-training the model based on at least one change made to one or more of the first training data, the first description of the first web API, the second training data, or the second description of the second web API.

 

 

원출원의 청구항 1항과 비교해보면, i) 제1 API와 제2 API를 명시하고, UI 상의 입력이 제1 API에 대한 입력인지 제2 API에 대한 입력인지를 분석하여 해당 function을 결정한다는 구성(단계 ①의 구체화) 및 ii)  모델의 학습 및 재학습 구성(단계 ②)을 부가하였습니다.

 

[목차]로 돌아가기

 

7번 특허: (이미지 처리) Dall-E 특허

 

발명의 명칭: Systems and methods for hierarchical text-conditional image generation

출원번호: US 18/193,427 (2023.03.30)

등록번호: US 11,922,550 B1 (2024.03.05)

발명 요약: 오픈AI의 이미지 관련 특허 중 재작년부터 이미지 생성 분야에서 혁신을 일으켰으며, 디퓨전 모델에 대한 큰 관심을 이끌어 냈던 DALL-E 2 모델에 대한 특허를 소개해드리겠습니다. 해당 특허는 2023.03.30.에 출원되어 2024.03.05에 등록되었으며, “Hierarchical Text-Conditional Image Generation with CLIP Latents” 논문을 통해 소개되었습니다.

 

    1. 이미지 생성 분야에서 기술의 수요와 본 발명의 탄생 배경

 

(1)상이한 도메인의 데이터를 함께 활용할 수는 없을까?

 

기존의 이미지 생성 분야에서는 꾸준히 텍스트 입력으로부터 이미지를 생성하는 것과 관련된 수요가 존재하였습니다. 다만, 이미지-이미지와 달리 이미지와 텍스트는 서로 데이터의 형식이 상이하기 때문에 인공지능에게 텍스트로부터 이미지의 시각적 정보를 이해시키고, 이미지로부터 텍스트의 문맥적인 의미를 이해하도록 학습시키기는 매우 어려웠습니다 

 

이때, 등장한것이 바로 2021년에 공개된 CLIP(Contrastive Learning Image Pretraining) 논문입니다. 여기서, 대조 학습(Contrastive Learning)이란? 대상들의 차이를 좀 더 명확하게 보여줄 수 있도록 학습하는 방법을 말합니다.

 

예를 들어, “사과의 사진”과 “사과라는 단어”를 연관시키고, “사과의 사진”과 “사과 이외의 단어(ex.새)”는 연관시키지 않도록 인공지능을 학습시키기 위해서 대조 학습(Contrastive Learning)을 활용할 수 있습니다. 먼저, “사과의 사진-사과의 텍스트” 쌍과 “새의 사진- 새의 텍스트” 쌍을 학습데이터 세트로 구성하고, 이미지는 각각 이미지 인코더에 입력하고, 텍스트는 각각 텍스트 인코더에 입력합니다.

 

이후, 서로 같은 쌍을 구성하는 이미지 인코딩 결과물인 “I사과”와 텍스트 인코딩 결과물인 “T사과”끼리는 정답쌍으로 분류하여 서로의 거리가 가까워지도록 학습하고, 서로 다른 쌍을 구성하는 인코딩 결과물인 “I사과 –T새”은 오답쌍으로 분류하여 서로 거리가 멀어지게 학습합니다.

 

<이해를 돕기위한 도면>

 

따라서, 이렇게 대응되는 이미지와 텍스트 간 관계가 학습된 이미지/텍스트 인코더는 입력된 이미지로부터 대응되는 텍스트의 의미를 이해할 수 있고, 마찬가지로 입력된 텍스트로부터 이와 대응되는 이미지의 시각적 정보를 연관시켜 이해할 수 있게 됩니다.

 

DALLE-2는 위에 설명된 CLIP과 같이 이미지와 텍스트 간 관계가 학습된 이미지/텍스트 인코더를 이미지 생성 분야에 활용한다면 텍스트로부터 시각적 특징을 잘 추출할 수 있으므로, 더욱 고품질의 이미지를 만들 수 있지 않을까하는 배경에서 탄생하게 되었습니다.

 

(2)디퓨전 모델(Diffusion model)의 출현

 

디퓨전(Diffusion) 모델이란, 기존에 존재하지 않았지만 학습 데이터와 유사한 데이터를 생성하는 인공지능 모델인 생성 모델(Generative model)의 일종입니다.

 

디퓨전 모델은 완전한 노이즈로부터 노이즈를 점진적으로 제거하여 최종적으로 노이즈가 끼지 않은, 우리가 원하는 데이터 즉 원본 데이터를 생성합니다. 따라서, 디퓨전 모델의 학습 과정에서는 노이즈가 낀 이미지에 포함된 노이즈의 양을 모델이 예측하며, 실제로 낀 노이즈의 양과 비교하여 손실 함수를 계산하게 됩니다.

 

<도식화된 디퓨전 모델의 학습과정 | 출처: 논문>

 

디퓨전 모델은 이전에 생성 모델로 널리 활용되던 적대적 생성 신경망 모델(Ganerative Adversarial Networks, 일명 GAN)과 비교하여 많은 장점을 가집니다. 학습 과정에서 생성자, 판별자 각각의 손실 함수인2개의 손실 함수가 필요한 GAN에 비해 디퓨전 모델에서는 손실 함수가 1개로 줄어들게 됩니다. 이로 인하여 디퓨전 모델은 비교적 학습이 간편하며, 노이즈를 수많은 횟수를 통해 반복적으로 제거하여 이미지를 생성하므로, 다양하면서도 높은 품질의 결과물을 출력할 수 있다는 장점이 존재합니다.


이와 관련하여,  2020년 6월에 발표된 <Denoising diffusion probabilistic models(DDPM)>, 2021년  5월에 발표된 <Diffusion Models Beat GANs on Image Synthesis>와 같은 논문의 성과에 힘입어 디퓨전 모델은 생성 모델의 새로운 흐름으로 부상하게 되었고, 지금은 생성 모델 분야에서 가장 활발하게 연구되는 주제 중 하나가 되었습니다.

 

(3)DALLE-2의 탄생 배경

 

기존의 텍스트로부터 이미지를 생성하는 생성 모델은, 이미지와 텍스트 간의 관계를 연관시켜 이해하지 못하였습니다. 한편, 기존의 GAN 기반 생성 모델은 학습 데이터에 포함되지 않았던 이미지들에 대한 시각적 특징과 텍스트의 맥락적 특징을 연결시켜서 표현하지 못했습니다. 따라서, GAN 기반의 생성 모델은 학습 데이터에서 존재하지 않았던 데이터의 경우 생성 결과물의 품질이 좋지않은 문제가 존재하였습니다. 

 

하지만, DALLE-2는 CLIP을 통해 텍스트-이미지와 같이 형식이 다른 데이터의 상호 관계에 대해 인공지능이 더욱 잘 이해할 수 있게 되었습니다. 또한, DALLE-2는 CLIP과 디퓨전 기반 생성 모델을 함께 활용하여 더욱 다양하고 퀄리티 높은 결과물을 출력할 수 있게 되었습니다.

 

<실제 DALLE-2 논문에 소개된 생성 결과물>

 

위와 같이, DALLE-2는 실제로 학습 데이터에는 존재하지 않는 이미지인 “나폴레옹 복장을 한채 치즈를 들고있는 고양이”, “웰시코기의 모양으로 폭발하는 성운”과 같은 이미지도 자연스럽게 잘 생성하는 것을 볼 수 있습니다. 그렇다면 DALLE-2의 구조(아키텍처)와 이에 대한 특허는 어떻게 구성되어 있을까요?

 

    2. 모델 아키텍처 및 학습 방법

 

먼저, DALLE-2의 아키텍처와 학습 방법을 살펴보겠습니다. 

[그림 2], [Fig.1B]는 DALLE-2 모델의 아키텍처를 나타내는 도면입니다. DALLE-2는 디퓨전 모델의 고질적 한계인 느린 생성 속도를 극복하기 위해 “텍스트 인코딩 벡터로부터 이미지 인코딩 벡터를 획득하는 제 1 디퓨전 모델”(prior)과 “이미지 인코딩 벡터를 이용하여 이미지를 생성하는 제 2 디퓨전 모델”(decoder)을 사용합니다. 그럼 이에 대해 구체적으로 살펴보도록 하겠습니다.

 

[DALLE-2 논문의 그림 2]

 

[DALLE-2 특허의 도 1B]

 

(1)이미지/텍스트 CLIP 인코더를 사전 학습하는 단계

 

[DALLE-2 특허의 도 1A]

 

 

       

[DALLE-2 특허의 도 1B]                                           [DALLE-2 논문의 그림 2]

 

우선, 이미지 생성에 앞서 텍스트/이미지에 대한 특징을 추출하고, 상호 연관된 특징을 획득하기 위해 이미지 인코더(134)와 텍스트 인코더(132)를 CLIP 학습 과정을 통해 학습시킬 수 있습니다. 이를 통해, 사전 학습된 CLIP 인코더를 획득함으로써 후술될 텍스트 인코딩 벡터(136)를 통해 이미지 인코딩 벡터(140)를 획득하도록 제 1 디퓨전 모델을 학습하는 과정에서 특정 텍스트 인코딩 벡터(136)와 대응되는 이미지 인코딩 벡터(135)를 활용할 수 있습니다. (논문의 그림 2 점선의 윗 부분, 및 특허 도 1A)

 

이와 관련하여, DALLE-2에서는 디퓨전 모델의 고질적 문제인 느린 생성 속도를 완화하기 위해 텍스트/이미지의 특징을 포함하는 CLIP 잠재 공간(latent space)을 축소하는 방법을 활용합니다. 이를 통해, DALLE-2는 후술될 디퓨전 모델이 텍스트 인코딩 벡터(136)를 통해 이미지 인코딩 벡터(140)를 획득하는 과정에서 추론해야할 데이터의 양 자체를 줄임으로써 추론 속도를 높일 수 있습니다.

 

구체적으로, DALLE-2에서는 주성분 분석(Principal component Analysis)를 활용하여 CLIP 잠재 공간(latent space)을 축소할 수 있습니다. 주성분 분석이란 데이터를 나타내는 중요한 주성분을 유지하며 데이터의 차원을 축소하는 것을 의미합니다. 간단하게 표현하면, “바나나” 를 표현하는 “노란색, 길다란 모양, 끝이 뭉툭함, 속이 말랑함, 줄기가 있음, 과일, …”의 다양한 차원의 정보 중에서 “바나나”를 가장 잘 표현할 수 있는 “노란색, 길다란 모양, 과일”로 차원을 축소하는 것이 예시로 활용될 수 있습니다.

 

DALLE-2의 논문에서는 해당 과정을 통해 1024개의 CLIP 잠재 공간의 차원을 319개로 축소한다고 개시되어 있습니다. 이를 통해, 디퓨전 모델이 1차적으로 생성하는 결과물인 이미지 인코딩 벡터의 크기가 1024의 크기에서 319로 작아졌으므로, 디퓨전 모델을 통한 결과물의 생성 속도가 빨라질 수 있고, 디퓨전 모델의 고질적 문제인 느린 생성 속도를 어느정도 완화할 수 있습니다. 

 

(2)텍스트 인코딩 벡터로부터 이미지 인코딩 벡터를 획득(prior)

 

DALLE-2의 논문에서는 텍스트 인코딩 벡터로부터 이미지 인코딩 벡터를 예측하는 Prior에 대해 두가지 모델을 통한 실험을 수행하였습니다.

 

[DALLE-2 논문의 그림 2의 일부]

 

첫번째로는, 텍스트 인코딩 벡터를 조건(condition)으로 이미지 인코딩 벡터를 자기회귀적(Auto Regresive)으로 예측하는 AR prior를 개시하고 있습니다. 여기서 자기회귀적으로 예측하는 과정은 “사과를 맛있게 먹겠습니다.”와 같은 문장이 있을때 “사과를”을 입력받아 다음 시퀀스인 “맛있게”를 출력하고, 다시 출력된 “맛있게”를 입력으로 받아 “먹겠습니다”를 순차적으로 출력하는 것을 의미할 수 있습니다. 이를 위해, 해당 논문에서는 사전학습된 트랜스포머(Transformer) 모델을 활용한다고 개시하고 있습니다.

 

[DALLE-2 논문의 그림 2의 일부]

 

두번째로는, 텍스트 인코딩 벡터를 조건(condition)으로 이미지 인코딩 벡터를 디퓨전 과정을 통해 순차적으로 예측하는 제 1 디퓨전 모델(diffusion prior)에 대해 개시하고 있습니다.  여기서 제 1 디퓨전 모델은 텍스트 인코딩 벡터를 조건으로 이미지 인코딩 벡터를 예측함으로써 텍스트와 대응되는 이미지의 특징을 잘 표현하는 벡터를 획득할 수 있습니다. 논문의 저자는 AR prior와 Diffusion prior의 결과물을 비교한 결과 Diffusion prior의 성능이 더욱 좋았다고 개시하고 있으며, 이에 대한 영향인지 DALLE-2의 특허에는 AR prior에 대한 설명이 개시되어 있지 않습니다.

 

(3)획득된 이미지 인코딩 벡터로부터 결과물 이미지를 획득(decoder)

 

[DALLE-2 논문의 그림 2의 일부]

 

마지막으로, DALLE는 제 1 디퓨전 모델을 통해 획득된 이미지 인코딩 벡터를 조건(condition)으로 결과물 이미지를 획득하는 제 2 디퓨전 모델(decoder)을 포함하고 있습니다. 

 

이와 관련하여, 제 2 디퓨전 모델은 결과물의 성능을 높이기 위해 2개의 업샘플러 모델(upsampler)을 추가적으로 활용하고 있습니다. 이때, 업샘플러 모델이란 작은 해상도의 데이터를 더 큰 해상도로 변환하는 모델을 의미합니다. 

 

[이해를 돕기위한 그림]

 

처음부터 디퓨전 모델을 통해 이미지 특징 벡터로부터 곧바로 1024x1024 크기의 이미지를 생성하려면 모델의 크기와 복잡도가 증가하여 연산량이 매우 커질 수 있습니다. 또한, 이러한 경우 디퓨전 모델은 모델의 과도해진 복잡도로 인해 특정 데이터에 과적합될 가능성이 높아질 수 있습니다. 

 

반면, 디퓨전 모델을 통해 이미지 특징 벡터로부터 상대적으로 작은 64x64 크기의 이미지를 먼저 생성한 뒤 256x256 크기의 이미지로 업샘플링을 수행할 수 있습니다. 이후, 디퓨전 모델이 출력된 256x256 이미지를 다시 1024x1024 크기의 이미지로 업샘플링 한다면 모델의 크기와 복잡도를 줄이면서도 높은 품질의 이미지를 획득할 수 있습니다. 따라서, DALLE-2는 64x64 크기의 이미지를 획득한 후 2번의 업샘플링 과정을 통해 최종적으로 1024x1024 크기의 이미지를 획득하는 구조로 구성되어 있습니다.

 

그렇다면, 해당 특허의 권리범위를 나타내는 등록 청구항은 어떻게 작성되어 있을까요?

 

    3. 특허 청구항 분석

 

OpenAI의 DALLE-2 모델에 대한 등록 특허(18/193,427)의 독립항 제 1 항을 살펴보겠습니다.

 

 

[청구항 1]                                                                                                         ⬤ 특허등록 포인트

  A system comprising:

at least one memory storing instructions;

at least one processor configured to execute the instructions to perform operations for generating an image corresponding to a text input, the operations comprising:

① accessing a text description and inputting the text description into a text encoder;  

receiving, from the text encoder, a text embedding;

② inputting at least one of the text description or the text embedding into a first sub-model configured to generate, based on at least one of the text description or the text embedding, a corresponding image embedding;

③ inputting at least one of the text description or the corresponding image embedding, generated by the first sub-model, into a second sub-model configured to generate, based on at least one of the text description or the corresponding image embedding, an output image; 

wherein the second sub-model includes a first upsampler model and a second upsampler model configured for upsampling prior to generating the output image, 

the second upsampler model trained on images corrupted with blind super resolution (BSR) degradation; wherein the second sub-model is different than the first sub-model; and

making the output image, generated by the second sub-model, accessible to a device, wherein the device is at least one of:

configured to train an image generation model using the output image; or

associated with an image generation request.

 

 

[DALLE-2 특허의 Fig.1B]

 

등록 청구항 제1항을 보시면, OpenAI는 DALLE-2에 대한 특허에서

① 텍스트 설명을 텍스트 인코더에 입력하여 텍스트 임베딩을 획득하고, 

② 텍스트 설명 또는 텍스트 임베딩을 제 1 서브 모델에 입력하여 이미지 임베딩을 획득하며, 

③ 텍스트 설명 또는 제 1 서브 모델로부터 획득된 이미지 임베딩을 제 2 서브 모델에 입력하여 이미지를 획득하는 구성을 주요 구성으로 포함시켜 출원했으나, 해당 구성들 만으로는 진보성이 인정되지 않아 최종적으로 “출력 이미지를 생성하기 전 제 1 및 제 2 업샘플러 모델을 활용하는 구성”을 추가 한정하여 등록받았습니다.

 

이와 관련하여, DALLE-2의 청구항의 표현 자체에 디퓨전 모델(Diffusion model)의 고유한 특징을 기재하지 않고 단순히 제 1 서브 모델 및 제 2 서브 모델 등의 표현을 사용하였습니다. 따라서, DALLE-2의 특허에서 이러한 청구항의 표현만으로는 텍스트 임베딩을 통해 이미지를 생성하는 기존의 GAN 기반, VAE 기반의 텍스트-이미지 생성 모델과 유사한 구성으로 해석될 수 있어 진보성이 인정되지 않은 것으로 사료됩니다. 

 

그렇다면, DALLE-2의 계속출원(CA)의 청구항은 본 출원의 청구항과 어떻게 다르게 작성되었을까요?

 

2024.01.23.자에 출원된 CA 특허(18/419,675)의 청구항1항을 살펴보겠습니다.

 

[청구항 1]

A system comprising:

at least one memory storing instructions;

at least one processor configured to execute the instructions to perform operations for generating an image corresponding to a text input, the operations comprising:

generating, by a first sub-model, an image embedding based on at least one of a text description or a text embedding, wherein the text embedding is an encoding of the text description; and

generating, by a second sub-model, an output image based on at least one of the text description or the image embedding, wherein the second sub-model is different than the first sub-model.

 

 

청구항 1항을 보시면, 원출원의 등록 청구항 제1항과의 차이점은 “텍스트 임베딩을 획득하는 과정”을 간략화하였으며, 출력 이미지를 생성하기 전 제 1 및 제 2 업샘플러 모델을 활용하는 구성과 관련된 내용은 삭제하고, 제 2 서브 모델은 제 1 서브 모델과 상이하다는 내용으로 권리범위를 다소 확장한 형태로 등록을 시도하고 있습니다.


만약 현재 CA 출원의 청구항이 그대로 등록된다면, 추후 기술의 발전에 따라 인공지능의 연산 속도가 증가할 수 있고, 더 큰 연산량을 처리할 수 있게되는 경우 업샘플러 모델이 활용되지 않을 경우의 권리범위도 확보할 수 있습니다.

 

[목차]로 돌아가기

 

8번 특허: (이미지 처리) 이미지 인페인팅(In-Painting) 특허

 

발명의 명칭: Systems and methods for image generation with machine learning models

출원번호: US 18/458,907 (2023.08.30)

등록번호: US 11,983,806 B1 (2024.05.14)

발명 요약: 앞서 이미지를 생성하는 것에서 더 나아가 이미 존재하는 이미지의 수정이 필요한 일부분에 대해 해당 부분만 다시 생성하여 수정된 이미지를 생성하는 일명 인페인팅(in-painting)과 관련된 특허를 소개해드리겠습니다. 해당 특허는 2023.08.30.에 출원되어 2024.05.14에 등록되었습니다.

 

    1. 이미지의 일부분만 자연스럽게 수정할 수는 없을까?

 

기존의 이미지 편집과 관련하여 다양한 방법들이 존재하였지만, 이미지 내의 일부분을 수정하는 경우 수정된 부분 외의 주위 부분, 수정된 부분이 이미지의 다른 영역에 영향을 미치는 경우 영향을 미치는 모든 부분을 수정해야 하므로 이미지의 일부분을 나머지 부분과 잘 어우러지도록 자연스럽게 수정하기는 매우 어려웠습니다.

 

   

 

예를 들어, “테이블 위에 사과가 올려진 사진”에서 “사과”를 “배”로 변경하는 경우 둘의 부피 차이로 인해 변경된 사진에는 일부 공백이 존재할 수 있고, 해당 공백 부분을 채우기 위해서는 주위 정보를 함께 이용하여 자연스러운 이미지를 생성해야 합니다.

 

따라서, 이렇게 특정 객체를 다른 객체로 대체하는 것과 같이 이미지 일부분을 수정하는 경우 빛, 텍스처, 공백 등 편집된 부분 이외의 나머지 이미지의 다양한 요소들을 고려하여야 하므로, 이미지 편집은 전문적으로 어려운 작업으로 분류되었습니다.

 

오픈AI의 인페인팅 특허(18-458,907)는 인공지능을 이용해서 이미지의 일부분을 자연스럽게 수정하여 더욱 고품질의 이미지를 만들 수 있지 않을까하는 배경에서 탄생하게 되었습니다.

    2. 인페인팅 특허(18-458,907)에서 인페인팅이 수행되는 과정

먼저, 인페인팅 특허(18-458,907)에서 설명하고있는 인페인팅이 실행되는 과정에 대해 구체적으로 살펴보겠습니다.

 

[인페인팅 특허(18/458,907)의 도 2, 3, 5]

 

(1)이미지에 대해 마스킹된 영역을 제거

 

[인페인팅 특허(18/458,907)의 도 3]

 

[마스킹(masking)의 이해를 돕기위한 도면]

 

 

우선, 이미지에 대해 마스킹된 영역을 제거하여 마스킹된 이미지를 생성합니다. 이때, 이미지 마스킹(Image Masking)이란 특정 영역을 선택하거나 제외하여 이미지의 일부를 처리하거나 편집하는 기술을 의미할 수 있으며, 마스크(Mask)는 위의 도면과 같이 이미지와 동일한 크기를 가진 이진 이미지(Binary Image)로, 각 픽셀에 대해 "활성(1)" 또는 "비활성(0)" 상태를 지정하여 어떤 픽셀을 포함하고 제외할지 정의할 수 있습니다. 


예를 들어, 인페인팅 특허(18-458,907)의 도 3에서 격자무늬로 표시된 302 영역이 마스킹된 영역으로
표현될 수 있습니다. 이때, 해당 특허의 상세한 설명의 예시에서 마스킹 영역은 사용자가 인터페이스를 통해 선택할 수 있다고 개시하고 있습니다.

 

(2)수정된 이미지를 생성하기 위해 텍스트 입력을 수신

 

[인페인팅 특허(18/458,907)의 도 1]

 

이후, 이미지 향상 프롬프트에 대응하는 텍스트 입력을 수신하는 동작을 수행합니다. 이때, 이미지 향상 프롬프트란 이미지를 생성하거나 이미지를 편집처리하기 위한 임의의 명령어를 의미할 수 있습니다. 또한, 해당 특허의 실시예에서는 이미지 또는 이미지의 편집된 영역을 위한 텍스트 설명에 포함된 정보를 통해 획득될 수 있습니다.

 

또한, 이렇게 획득된 텍스트 입력, 입력 이미지, 또는 마스킹된 영역 중 적어도 하나는 학습된 텍스트-이미지 생성 모델에 입력 데이터로 입력될 수 있습니다. 

 

(3)마스킹된 영역을 새로 생성된 이미지 부분으로 대체하여 수정된 이미지를 생성

 

[인페인팅 특허(18/458,907)의 도 5]

 

마지막으로, 해당 특허(18-458,907)는 입력 이미지 또는 마스킹된 이미지로부터 수정된 이미지로 픽셀 값들을 복제하고, 마스킹된 이미지의 마스킹된 영역을 학습된 텍스트-이미지 생성 모델의 출력으로 획득된 새로 생성된 이미지 부분으로 대체함으로써 수정된 이미지를 획득하는 구성을 포함하고 있습니다.

 

   

[인페인팅 특허(18/458,907)의 도 7 및 도8]

 

한편, 해당 특허(18/458,907)는 이미지 내부의 일부분을 수정하는 실시예 외에도 이미 존재하는 이미지를 확장하여 수정된 이미지를 획득하는 실시예에 대해서도 개시하고 있습니다. 

 

구체적으로, 마스킹 영역을 원본 이미지의 일부를 포함하는 확장 영역이 되도록 설정하고, 원본 이미지와 중첩된 영역의 픽셀로부터 원본 이미지에 대한 맥락(context) 정보를 획득하고, 이에 기초해서 확장된 이미지를 획득할 수 있습니다.  이와 관련하여, 해당 특허에서는 원본 이미지와 마스킹 영역의 중첩된 영역이 클수록 이미지 생성 모델이 참조할 수 있는 원본 이미지에 대한 맥락(context) 정보가 많아지므로 사용자의 선호에 더욱 부합하는 수정 이미지를 획득할 수 있다고 추가적으로 설명하고 있습니다.  

 

그렇다면, 해당 특허의 권리범위를 나타내는 등록 청구항은 어떻게 작성되어 있을까요?

 

    3. 특허 청구항 분석

 

OpenAI의 인페인팅 특허(18/458,907)의 등록된 청구항 제 1 항을 살펴보겠습니다.

 

[청구항 1]

  A system comprising:

at least one memory storing instructions;

at least one processor configured to execute the instructions to perform operations for regenerating a region of an image with a machine learning model based on a text input, the operations comprising:

accessing a digital input image, the input image having a plurality of pixel values;

② generating a masked image by removing a masked region from the input image, wherein the removing comprises masking pixel values corresponding to the masked region;

accessing a text input corresponding to an image enhancement prompt;

④ providing at least one of the input image, the masked region, or the text input to a machine learning model configured to generate an enhanced image, wherein the machine learning model comprises a text-to-image model trained on a set of images; and

generating, with the machine learning model, the enhanced image based on at least one of the input image, the masked region, or the text input; wherein the generation of the enhanced image comprises:

replicating pixel values from the input image or the masked image to the enhanced image;

generating, with the machine learning model, an image segment based on at least one of the text input or the pixel values from the masked image; and

inserting the image segment into the enhanced image by replacing the masked region.

 

 

등록 청구항 제1항을 보시면, OpenAI는 인페인팅 특허(18/458,907)에서

① 복수의 픽셀값을 갖는 입력 이미지에 엑세스하고, 

② 입력 이미지에 대해 마스킹 영역을 삭제하여 마스킹 이미지를 생성하며, 

③ 이미지를 개선하기 위한 텍스트 입력에 엑세스하고,

④ 입력 이미지, 마스킹 영역, 텍스트 입력 중 적어도 하나에 기초해서 개선된 이미지를 생성하는 구성을 주요 구성으로 포함시켜 출원하여 등록받았습니다.


해당 특허(18-458,907)와 관련하여, 청구항 1항에서는 입력 이미지, 마스킹 영역, 텍스트 입력 중 적어도 하나에 기초해서 개선된 이미지를 생성하는 구성에 대해 개시하고 있으며, 이는 발명을 실행하기위한 최소 요건에 대해서만 기재하고 있는 것으로 사료됩니다.

 

[청구항 2]

The system of claim 1, wherein the providing comprises providing at least two of the input image, the masked region, or the text input to the machine learning model.

 

[청구항 3]

The system of claim 2, wherein the providing comprises providing the input image, the masked region, and the text input to the machine learning model.

 

 

반면, 청구항 2항에서는 입력 이미지, 마스킹 영역, 텍스트 입력 중 적어도 두개에 기초해서 개선된 이미지를 생성하는 구성에 대해 개시하고 있고, 청구항 3항에서는 입력 이미지, 마스킹 영역, 텍스트 입력 모두에 기초해서 개선된 이미지를 생성하는 구성에 대해 개시하고 있습니다.

 

이는 가장 권리범위가 넓은 발명을 실행할 수 있는 최소 구성에 대해 청구항 1항에 기재하고, 구성의 갯수를 점차 늘리면서 권리범위를 좁혀 기재함으로써, 청구항 3항에서는 발명의 원래 목적인 입력 이미지, 마스킹 영역, 텍스트 입력 3개를 모두 활용하는 구성에 대해 권리범위를 확보하고 있는 것으로 사료됩니다. 


 이러한 오픈 AI의 전략은 심사 과정 중 “A, B 또는 C”로 택일적인 구성으로 작성된 청구항에서 A, B, C의 택일적 구성 중 적어도 하나가 진보성이 인정되지 않으면 해당 청구항 전체가 진보성이 인정되지 않는 리스크를 극복하기 위한 전략으로 판단되며, 청구항의 배치를 발명의 깊이에 따라 구성하여 다양한 권리 범위를 확보할 수 있는 전략이라고도 볼 수 있습니다.

 

[목차]로 돌아가기

 

9번 특허: (UI/UX) 이미지의 시각적 정보를 함께 활용하는 모델1

 

발명의 명칭: Systems and methods for interacting with a multimodal machine learning model

출원번호: US 18/475588 (2023.09.27)

등록번호: US 12,039,431 B1 (2024.07.16)

발명 요약: 텍스트에 대한 정보와 시각적인 정보를 함께 활용하여 멀티모달(Multi-modal) 인공지능과 상호 작용하기 위한 방법에 대한 특허를 소개해드리겠습니다. 해당 특허는 2023.09.27.에 출원되어 2024.07.16에 등록되었습니다.

 

    1. 텍스트 말고도 인공지능과 상호 작용할 수 있는 방법은 없을까?

 

작년에 언어 모델 분야에서 혁신을 일으켰던 챗-GPT와 같은 거대 언어 모델(Large Language model)을 통해 사용자들은 텍스트 입력 및 출력과 같은 상호 작용을 통해 목표하는 정보를 획득할 수 있게 되었습니다. 하지만, 사용자들은 텍스트 외에도 특정 이미지나 특정 비디오와 같은 시각적 영상 매체와 관련해 인공지능과 상호 작용하기 위한 수요가 존재하였습니다.

 

[이해를 돕기위한 도면]

 

그러나, 위의 도면과 같이 사용자가 인공지능과 시각적 영상 매체에 대해 텍스트 입력만을 통해 상호 작용하는 경우 정확한 맥락을 반영하기 어려워 비효율적일 수 있었습니다. 예를 들어, 이미지에서 “오른쪽 위의 특정 영역”에 대해 인공지능에게 설명하고 싶은데 이를 위해 “오른쪽 위의 특정 영역”이 이미지에서의 좌표가 어떻게 설정되었는지 및 어느정도 크기의 영역인지 등을 텍스트로 설명하기에는 다소 모호한 부분이 존재하고, 만약 설명할 수 있다고 하더라도 설명이 과도하게 길어질 수 있습니다.

 

오픈AI의 인공지능과의 상호작용 특허(18/475,588)는 텍스트 외의 입력으로 맥락(context) 정보를 획득할 수 있고, 이를 인공지능에 대한 입력 데이터로 이용해서 인공지능과 상호작용할 수 있지 않을까하는 배경에서 탄생하게 되었습니다.

 

   2. 인공지능과의 상호작용 특허(18/475,588)에서 인공지능과 상호작용하는 과정

 

먼저, 인공지능과의 상호작용 특허(18/475,588)에서 설명하고 있는 사용자가 인공지능과 상호작용하는 과정에 대해 구체적으로 살펴보겠습니다. 

 

[인공지능과의 상호작용 특허(18-475,588)의 도 3B, 3C]

 

(1)이미지 내의 강조의 영역을 나타내는 맥락(context) 프롬프트를 생성할 수 있도록 구성된 그래픽 사용자 인터페이스를 제공하고, 사용자로부터 맥락 프롬프트를 수신

 

[인공지능과의 상호작용 특허(18-475,588)의 도 3A]

 

     

[좌측부터 인공지능과의 상호작용 특허(18/475,588)의 도 3B 내지 3E]

 

우선, 위의 도 3A과 같이 이미지 내의 강조 영역을 나타낼 수 있도록 사용자 인터페이스가 제공됩니다. 이때, 사용자는 마우스 클릭, 터치 스크린 누르기 등의 상호작용을 통해 이미지 내의 강조 영역을 지정할 수 있습니다. 

 

또한, 위의 도 3D, 3E와 같이 사용자가  클릭, 터치 등의 상호작용을 통해 이미지 내의 강조 영역을 지정하는 경우, 해당 영역에 대한 정보를 맥락 프롬프트로 수신할 수 있습니다. 이때, 사용자는 상기 도 3B, 3C와 같이 강조 영역의 크기를 축소 혹은 확대하여 모델이 집중할 수 있는 영역의 크기를 조정할 수 있습니다.

 

(2)이미지 및 맥락 프롬프트를 멀티모달 모델에 입력하고, 이미지에 대한 텍스트 응답을 생성하여 사용자에게 제공

 

[인공지능과의 상호작용 특허(18/475,588)의 도 3F]

 

이어서, 이미지 및 맥락 프롬프트를 멀티모달 모델에 입력 데이터로 입력하는 동작이 수행됩니다. 이때, 맥락 프롬프트와 이미지가 모두 토큰화되어 LLM과 같은 멀티모달 모델에 입력 데이터로 입력될 수 있습니다. 또한, 해당 특허의 실시예에서는 위의 도 3F와 같이 사용자가 지정한 영역에서 응답에 불필요한 정보를 삭제하고 사용자가 더욱 관심있는 객체에 대한 정보를 추출하기 위해 세그먼테이션(segmentation) 도구가 사용될 수 있다고 개시되어 있습니다.

 

[인공지능과의 상호작용 특허(18/475,588)의 도 5A, 5B]

 

이후, 입력 데이터에 대한 멀티모델 모델의 출력으로 이미지에 대한 텍스트 응답이 생성될 수 있고, 생성된 텍스트 응답이 사용자에게 제공될 수 있습니다. 

 

한편, 텍스트 응답이 사용자에게 제공되는 과정에서는 사용자가 다음 질문할 텍스트 프롬프트에 대한 제안이 제공될 수 있고, 사용자는 인터페이스를 통해 제공된 프롬프트 제안을 선택할 수 있는 실시예에 대해서도 개시하고 있습니다. 

 

구체적으로, 사용자가 도 5A의 사진에 대해 도 5B와 같이 특정 식물에 대한 영역을 지정하는 경우 멀티모달 모델은 사용자가 다음 질문할 텍스트 프롬프트에 대한 제안으로 “이 바질은 무슨 종류의 바질이야?”, 또는 “바질이 요리에 사용되는 예시”와 같은 예시가 출력될 수 있고, 사용자는 인터페이스를 통해 제공된 프롬프트 제안을 선택할 수 있습니다.  

 

그렇다면, 해당 특허의 권리범위를 나타내는 등록 청구항은 어떻게 작성되어 있을까요?

 

    3. 특허 청구항 분석

 

OpenAI의 인공지능과의 상호작용 특허(18/475,588)의 등록된 청구항 제 1 항을 살펴보겠습니다. 

 

[청구항 1]                                                                                                         ⬤ 특허등록 포인트

  A method of interacting with a pre-trained multimodal machine learning model, the method comprising:

providing a graphical user interface configured to enable a user to interact with an image to generate a contextual prompt that indicates an area of emphasis in the image;

receiving the contextual prompt;

② generating input data using the image and the contextual prompt;

generating a textual response to the image by applying the input data to a multimodal machine learning model configured to condition the textual response to the image on the contextual prompt; and

providing the textual response to the user,

wherein the textual response comprises:

a prompt suggestion and providing the textual response comprises displaying a selectable control in the graphical user interface configured to enable the user to select the prompt suggestion.

 

[인공지능과의 상호작용 특허(18/475,588)의 도 5B]

 

등록 청구항 제1항을 보시면, OpenAI는 인공지능과의 상호작용 특허(18-475,588)에서

① 이미지를 사용자 인터페이스에 디스플레이하고, 이미지에 대해 맥락 프롬프트를 수신하고, 

② 멀티모달 모델에 이미지 및 맥락 프롬프트를 입력하여, 이에 대한 출력으로 텍스트 응답을 획득하고, 사용자에게 제공하는 구성을 주요 구성으로 포함시켜 출원했으나, 해당 구성들 만으로는 진보성이 인정되지 않아 최종적으로 “선택가능한 프롬프트 제안을 사용자 인터페이스를 통해 출력하는 구성”을 추가 한정하여 등록받았습니다.

 

이와 관련하여, 오픈 AI는 인공지능과의 상호작용 특허(18/475,588)의 청구항 표현에 터치, 클릭 등을 통해 이미지 자체에 직접 영역을 지정하는 특징에 대해 구체적으로 기재하지 않고 단순히 “이미지에 대한 맥락 프롬프트를 수신” 등의 표현을 사용하였으므로, 청구항의 표현만으로는 텍스트 입력을 통해 이미지에 대한 영역을 지정하는 기존의 기술들과 유사한 구조로 해석될 수 있어 진보성이 인정되지 않은 것으로 사료됩니다.

 

[Google의 Gemini의 답변 예시]

 

다만,  진보성이 인정된 “선택가능한 프롬프트 제안을 사용자 인터페이스를 통해 출력하는 구성”의 경우 시중에 공개된 여러 회사의 언어 모델의 답변 마지막에 “다음 입력 프롬프트의 제안을 출력”하는

일반적인 실시예에 적용될 수 있어, 비록 진보성 거절이유 극복을 위한 보정을 통해 인공지능과의 상호작용 특허(18/475,588)의 권리범위가 이전보다는 협소해졌으나 UI와 관련하여 여전히 상당히 넓은 범위의 권리범위를 확보한 것을 확인할 수 있습니다.

 

[목차]로 돌아가기

 

10번 특허: (UI/UX) 이미지의 시각적 정보를 함께 활용하는 모델 2

 

발명의 명칭: Systems and methods for interacting with a large language model

출원번호: US 18/475,722 (2023.09.27)

등록번호: US 12,051,205 B1 (2024.07.30)

발명 요약: 텍스트에 대한 정보와 시각적인 정보를 함께 활용하여 멀티모달(Multi-modal) 인공지능과 상호 작용하기 위한 또다른 방법에 대한 특허를 소개해드리겠습니다. 해당 특허는 2023.09.27.에 출원되어 2024.07.30에 등록되었습니다.

 

  1. 인공지능이 텍스트로부터 이미지에 대한 정보를 이해할 수 있는 방법은 없을까?

 

작년에 언어 모델 분야에서 혁신을 일으켰던 챗-GPT와 같은 거대 언어 모델(Large Language model)을 통해 사용자들은 텍스트 입력 및 출력과 같은 상호 작용을 통해 목표하는 정보를 획득할 수 있게 되었습니다. 하지만, 사용자들은 텍스트 외에도 특정 이미지나 특정 비디오와 같은 시각적 영상 매체와 관련해 인공지능과 상호 작용하기 위한 수요가 존재하였습니다. 

 

이와 관련하여, 사용자는 인터페이스를 통해 이미지 자체에 대한 터치, 클릭 등의 입력으로 맥락(context) 정보를 획득할 수 있고, 이를 인공지능에 대한 입력 데이터로 이용해서 인공지능과 상호작용할 수 있을 수도 있으나, 색맹 등과 같은 시력 관련 문제를 가진 사용자는 이미지로부터 특정 요소를 위치하거나 선택하기 어려운 경우도 존재하였습니다.

 

 

따라서, 오픈AI의 인공지능과의 상호작용 특허 2(18/475,722)는 텍스트 입력을 통해 이미지에 대한 맥락(context) 정보를 획득하고, 이를 인공지능에 입력하여 사용자가 원하는 정보를 시각적으로 출력함으로써 인공지능과 상호작용할 수 있지 않을까하는 배경에서 탄생하게 되었습니다.

 

  2. 인공지능과의 상호작용 특허 2(18/475,722)에서 인공지능과 상호작용하는 과정

 

먼저, 인공지능과의 상호작용 특허 2(18/475,722)에서 설명하고 있는 사용자가 인공지능과 상호작용하는 과정에 대해 구체적으로 살펴보겠습니다. 

 

(1)그래픽 사용자 인터페이스에서 이미지를 사용자에게 디스플레이하고, 사용자로부터 텍스트 프롬프트를 수신

 

[인공지능과의 상호작용 특허 2(18/475,722)의 도 4A]

 

우선, 위의 도 4A과 같이 이미지를 사용자에게 디스플레이하고, 사용자로부터 텍스트 프롬프트를 수신할 수 있도록 사용자 인터페이스가 제공됩니다. 이때, 디스플레이된 체스판의 이미지와 관련해서 사용자는 자판에 대한 클릭, 터치 등의 상호작용을 통해 “백이 어디로 이동할 수 있어?”와 같은 텍스트 프롬프트를 입력할 수 있습니다.

 

(2)이미지 및 텍스트 프롬프트를 멀티모달 모델에 입력하고, 이에 대한 출력으로 이미지 상에 위치 표시를 포함하는 응답을 생성

 

[인공지능과의 상호작용 특허 2(18/475,722)의 도 4A]

 

이어서, 이미지 및 텍스트 프롬프트가 입력 데이터로 멀티모달 모델에 입력되고, 이에 대한 출력으로 도 4A의 “백은 D4로 폰을 움직일 수 있습니다.”는 응답이 체스판의 D4 위치에 “손가락 모양의 강조 표시”와 함께 디스플레이됩니다.

 

[인공지능과의 상호작용 특허 2(18/475,722)의 도 4A]

 

이와 관련해서, 멀티모달 모델이 입력된 이미지에 대한 공간적인 정보를 더욱 잘 이해할 수 있도록 “공간 인코딩(spatial encoding)”이 이미지와 함께 결합되어 입력 데이터가 생성될 수 있습니다. 이때, 공간 인코딩은 도 4A에서 가로 0~1000px, 세로 0~1000px의 좌표를 나타내는 “점선으로 표시된 격자선”을 의미할 수 있습니다.

 

 

[인공지능과의 상호작용 특허 2(18-475,722)의 도5A]

[인공지능과의 상호작용 특허 2(18/475,722)의 도8]

 

이를 통해, 공간 좌표에 대한 정보를 포함하고 있는 “공간 인코딩”이 이미지와 함께 결합되어 멀티모달 모델에 입력됨으로써 멀티모달 모델은 이미지에 대해 보다 정확한 위치에 응답을 출력할 수 있게 되었으며, 도 5A와 같이 강아지에게 모자를 씌우는 경우 “모자”와 “머리 위치”을 연관시켜 정확한 위치에 출력하며, 도 8과 같이 여러 보트들을 크기 순으로 표시할 수 있게 되어 인공지능과 이미지의 시각적 정보와 관련해서도 텍스트를 통해 상호 작용할 수 있게 되었습니다. 

 

그렇다면, 해당 특허의 권리범위를 나타내는 등록 청구항은 어떻게 작성되어 있을까요?

 

    3. 특허 청구항 분석

 

OpenAI의 인공지능과의 상호작용 특허 2(18/475,722)의 등록된 청구항 제 1 항을 살펴보겠습니다. 

 

[청구항 1]                                                                                                         ⬤ 특허등록 포인트

  A method of interacting with a multimodal machine learning model, the method comprising:

providing a graphical user interface associated with a multimodal machine learning model;

displaying an image to a user in the graphical user interface;

② receiving a textual prompt from the user;

generating input data using the image and the textual prompt;

generating an output at least in part by applying the input data to the multimodal machine learning model, the multimodal machine learning model configured using prompt engineering to identify a location in the image conditioned on the image and the textual prompt, wherein the output comprises a first location indication; and

displaying, in the graphical user interface, an emphasis indicator at the indicated first location in the image,

wherein displaying the emphasis indicator at the indicated first location in the image comprises placing a cursor of the graphical user interface at the first location in the image.

 

[인공지능과의 상호작용 특허 2(18/475,722)의 도 4A]

 

등록 청구항 제1항을 보시면, OpenAI는 인공지능과의 상호작용 특허 2(18/475,722)에서,

① 이미지를 사용자 인터페이스에 디스플레이하고, 

② 사용자로부터 텍스트 프롬프트를 수신하고, 이미지 및 텍스트 프롬프트를 이용해서 입력 데이터를 생성하며,

이에 대한 출력으로 이미지 상에 위치 표시를 포함하는 응답을 생성하는 구성을 주요 구성으로 포함시켜 출원했으나, 해당 구성들 만으로는 진보성이 인정되지 않아 최종적으로 “그래픽 사용자 인터페이스의 커서를 이미지 상에 위치에 대한 강조 표시로 출력하는 구성”을 추가 한정하여 등록받았습니다.

 

이와 관련하여,  진보성이 인정된 “그래픽 사용자 인터페이스의 커서를 이미지 상에 위치에 대한 강조 표시로 출력하는 구성”의 경우 “커서”외에 “색을 다르게 표시하는 강조 표시”와 같이 일반적인 구성만으로도 권리범위에 대한 회피가 가능해 보이므로, 해당 특허(18/475,722)는 OpenAI의 다른 이미지 관련 특허들의 권리범위보다 다소 협소하게 해석될 수 있습니다. 

 

[목차]로 돌아가기

 

11번 특허: (비디오 처리) VPT(Video PreTraining) 특허

 

발명의 명칭: Using machine learning to train and use a model to perform automatic interface actions based on video and input datasets

출원번호: US 18/303,552 (2023.04.19)

등록번호: US 11,887,367 B1 (2024.01.30)

발명 요약: OpenAI는 인터넷 영상을 학습에 이용하기 위해 Video PreTraining (VPT) 라는 반지도 모방 학습(semi-supervised imitation learning) 방법을 고안 하였습니다. 2022년 논문 “Video PreTraining(VPT): Learning to Act by Watching Unlabeled Online Videos”을 통해 공개 되었으며, 이와 관련한 특허를 2023.04.19.자에 출원하였고, 2024.01.30.자에 등록되었습니다.

 

    1. 반지도 모방 학습이란?

 

모방 학습과 반지도 학습을 결합한 반지도 모방 학습은 강화 학습 및 기계 학습 분야에서 사용됩니다. 반지도 모방 학습이 뭔지, 왜 등장했는지를 설명하기에 앞서 강화 학습, 모방 학습, 반지도 학습 각각의 개념을 살펴보도록 하겠습니다.

 

컴퓨터가 로봇의 움직임이나 자율주행 경로 찾기와 같은 특정 작업을 하기 위해 강화 학습 방법이 사용됩니다. ‘강화 학습’은 에이전트가 행동(Action)을 수행하고 그 결과로 얻은 보상(Reward)과 새로운 상태(State)를 바탕으로 정책(Policy)을 학습하는 학습 방식입니다. 

 

‘강화 학습’에는 에이전트가 환경과 실시간으로 상호작용하면서 데이터를 생성하고 동시에 학습이 진행되는 ‘온라인 강화 학습’과, 환경과의 실시간 상호작용 없이 미리 수집된 고정 데이터를 기반으로 학습하는 ‘오프라인 강화학습’이 있습니다. 대부분의 온라인 강화 학습은 시뮬레이터라는 가상 환경을 활용합니다. 오프라인 강화 학습은 시뮬레이터 없이 이미 사람이 플레이 한 비디오 게임의 유저 로그나 자율주행 차량의 운전 로그 등을 활용하는 방식입니다. 

 

이러한  오프라인 강화학습은 실제 환경에서 수집된 데이터를 사용하기 때문에 현실에 더 적합한 모델을 만들 수 있다는 장점이 있지만,  로그 데이터를 구하기 어렵다는 문제가 있습니다. 인터넷에 게임 영상과 같은 방대한 데이터가 존재하지만 대부분 라벨이 없는 비디오 형태로 존재할 뿐이어서, 무슨 일이 일어났는지에 대한 기록만 제공할 뿐 마우스 움직임이나 키눌림과 같은 사용자 조작이 정확히 어떤 순서로 수행되었는지를 알 수 없습니다. 즉, 라벨이 없는 비디오 데이터의 경우 각 프레임에서 취해진 행동 정보가 없기 때문에 강화 학습에 필요한 행동을 계산하기가 어렵습니다.

 

해당 특허는 라벨이 없는 대량의 비디오 데이터를 학습에 이용하기 위해서 고안된 반지도 모방 학습 방법인 Video PreTraining(VPT)에 관한 것입니다.

 

‘모방 학습’은 초기 학습 단계에서 전문가 데이터를 기반으로 기본 정책을 학습하는 방식이며 일종의 지도 학습의 한 형태로 볼 수 있습니다. 에이전트는 보상 없이 전문가 시연(expert demonstration)을 관찰하고 이를 모방하여 특정 작업을 수행하는 방법을 배우게 됩니다.

 

‘반지도 학습’은 소량의 라벨이 지정된 데이터를 사용하여 학습 초기의 정확도를 높이고, 대량의 라벨이 없는 데이터를 사용하여 모델이 일반화를 학습하도록 하는 방식입니다. 라벨링 된 데이터가 부족할 때 활용되는 학습 방식입니다.

 

‘반지도 모방 학습’은 모방 학습에서 완전한 전문가 시연 데이터가 부족할 때 이를 보완하기 위해 사용될 수 있습니다. 즉, 소량의 전문가 시연 데이터(라벨 데이터)를 사용하여 초기 학습을 진행하고, 비라벨 데이터(전문가 행동 없이 관찰된 데이터)를 사용하여 추가적인 학습을 진행합니다. 이를 통해 에이전트는 제한된 전문가 데이터만으로도 더 높은 성능과 일반화 능력을 갖출 수 있습니다. 이 때, 소량의 전문가 데이터를 활용하여 초기 정책(policy)을 학습하는 방식을 ‘Behavior Cloning’이라고 합니다.

 

반지도 모방 학습 방법인 Video PreTraining(VPT) 방법에 따르면, 에이전트가 인터넷에 존재하는 라벨이 없는 비디오를 관찰하면서 ‘behavioral prior’를 학습할 수 있습니다. 여기서, ‘behavioral prior’란 에이전트가 새로운 환경에 직면했을 때 어떤 행동이 적절한지를 예측하는 데 힌트를 제공하는 사전에 학습된 지식이나 경험을 의미합니다. 

그럼, Video PreTraining(VPT) 방법을 구체적으로 살펴보겠습니다.

 

    2. Video PreTraining(VPT) 방법

 

 

[그림 1]은 Video PreTraining(VPT) 방법을 나타내는 도면입니다.

 

[그림 1 - 출처: Video PreTraining (VPT) 논문]

 

[그림 1]을 참조하면, IDM(Inverse Dynamics Model) 모델이 라벨이 없는 비디오 데이터를 관찰하고, 비디오 데이터의 각 타임 스텝에서 사람이 취한 행동을 예측해서 임시로 라벨을 생성합니다. 이렇게 임시로 라벨이 추가된 비디오 데이터를 사용하여, 사람이 했던 행동을 따라하는 방법을 배우거나(→behavioral cloning) 또는 더 나은 행동을 스스로 찾도록 학습하는 방식(→강화학습)으로 Video PreTraining(VPT) 기본 모델을 학습합니다. 즉, IDM 모델이 비디오를 보면서 사람의 행동(또는 조작 정보)을 예측하고, 그 예측을 기반으로 라벨을 만들어서, AI가 라벨링 된 데이터를 가지고 특정 작업을 잘 배우도록 훈련한다는 과정입니다. 

 

그럼, IDM 모델은 어떻게 학습될까요? IDM 모델은 소량의 라벨링 된 데이터로 라벨이 없는 데이터에 행동을 라벨링하도록 학습됩니다. 여기서 소량의 라벨링 된 데이터는 행동과 관찰 쌍으로 구성된 데이터이며, 행동은 키 누름, 버튼 누름, 터치스크린 입력, 조이스틱 움직임, 마우스 클릭 등(조작 데이터)의 실제 사용자 동작을 포함할 수 있습니다.

 

IDM 모델은 과거와 미래 프레임을 모두 참조하여 현재 행동을 예측하는 비인과적(non-causal) 방식으로 학습합니다. 비인과적 방식은 데이터 셋의 과거 및 미래 정보를 모두 활용함으로써 레이블이 지정된 데이터가 덜필요하면서도 보다 쉽고 효율적으로 학습할 수 있습니다. 

 

IDM 모델이 비인과적 방식으로 학습되는 것과 달리, PreTraining(VPT) 기본 모델은 behavioral cloning 또는 강화학습 방식으로 학습됩니다. VPT 기본 모델은 행동을 예측힐 때 미래를 볼 수 없다는 점에서 인과적(causal) 방식이라고 볼 수 있습니다.

 

[그림 2]는 샌드박스 형식의 비디오 게임인 마인크래프트(Minecraft)에서 VPT 모델을 검증한 결과 및 미세 조정의 결과를 나타냅니다. 

 

[그림 2- 출처: OpenAI 블로그]

 

[그림 2]에서 주황색 네모는 추가적인 학습 없이 VPT 기본 모델 자체만으로 달성한 성능을 나타냅니다. 이를 VPT 제로 샷(zero-shot) 성능이라고 합니다. VPT 모델은 나무를 베어 목재를 모으고, 그 목재를 판자로 제작한 뒤, 다시 그 판자로 제작 테이블을 만드는 작업을 학습했습니다. 초록색 네모는 behavioral cloning을 활용하여 미세 조정된 모델이 달성한 성능을 나타냅니다. 이 모델은 나무 곡괭이, 돌 곡괭이를 제작하는 등 점점 더 높은 수준의 작업을 수행할 수 있음을 나타냅니다.

보라색 네모는 보상을 제공하는 강화 학습을 활용하여 미세 조정된 모델이 달성한 성능을 나타냅니다. 이 모델은 다이아몬드 곡괭이의 선행 아이템들(나무 곡괭이, 돌 곡괭이 등)을 하나씩 만들 때마다 소정의 보상 값을 부여하고, 철 곡괭이와 같은 상위 아이템을 만들수록 더 큰 보상을 받도록 설계함으로써 고난이도의 작업인 다이아몬드 곡괭이 만들기를 달성했음을 나타냅니다. 

 

    3. 특허 청구항 분석

 

해당 특허의 독립항 제 1항은 아래와 같습니다.

 

독립항 제 1 항

[청구항 1]

 A method for training a machine learning model to perform automated actions, comprising:

receiving unlabeled digital video data;

generating pseudo-labels for the unlabeled digital video data, the generating comprising:

receiving labeled digital video data;

training a first machine learning model including an inverse dynamics model (IDM) using the labeled digital video data; and

generating at least one pseudo-label for the unlabeled digital video data, wherein:

the at least one pseudo-label is based on a prediction, generated by the IDM, of one or more actions that mimic at least one timestep of the unlabeled digital video data, and

the prediction of the one or more actions is generated based on a non-causal combination of past information and future information within the unlabeled digital video data, the past and future information being relative to one or more reference frames within the unlabeled digital video data;

adding the at least one pseudo-label to the unlabeled digital video data to form pseudo-labeled digital video data; and

further training the first machine learning model or a second machine learning model using the pseudo-labeled digital video data to generate at least one additional pseudo-label for the unlabeled digital video.

 

 

[그림 3 - ‘552 특허의 도 1]

 

독립항 제 1항은 출원 시에 라벨이 없는 비디오 데이터를 수신하여 의사 라벨을 생성하고, 의사 라벨을 포함한 데이터를 활용하여 모델을 추가 훈련 시키며, 여기서 의사 라벨을 생성하는 IDM 모델은 라벨이 있는 데이터를 이용해 훈련되는  과정을 권리화하였습니다(① 내지 ).

 

그러나, 등록 포인트는 밑줄 친 부분과 같이 IDM 모델은 라벨이 없는 데이터의 특정 시점을 모방하는(mimic) 행동을 예측함으로써 의사 라벨을 생성하고, 이러한 예측은 과거 정보와 미래 정보의 ‘비인과적인(non-causal)’ 결합으로 생성된다는 내용입니다.

 

    4. 계속출원


2023.12.19.자에 CA 출원된 공개 특허(18/545,722)의 독립항 제21항을 살펴보겠습니다. 해당 특허는 현재 심사중입니다.

 

[청구항 21]

 A method comprising:

receiving unlabeled digital video data;

generating, via machine learning model, pseudo-labels for the unlabeled digital video data, the generating comprising:

predicting one or more actions that mimic at least one timestep of the unlabeled digital video data;

the prediction being based on a non-causal combination of past information and future information within the unlabeled digital video data, the past and future information being relative to one or more reference frames within the unlabeled digital video data; and

adding the pseudo-labels to the unlabeled digital video data to form pseudo-labeled digital video data.

 

 

립항 21항을 보시면, 원출원의 등록 청구항 제1항과의 차이점은 등록 청구항에서 IDM 모델의 학습 및 추가 학습에 관한 내용을 삭제하고, 의사 라벨의 생성은 라벨이 없는 데이터의 특정 시점을 모방하는(mimic) 행동을 예측하는 것이고, 이러한 예측은 과거 정보와 미래 정보의 ‘비인과적인(non-causal)’ 결합에 기초한다는 내용으로 등록을 시도하고 있습니다. 즉, 원출원의 등록 청구항의 권리범위보다 더 넓은 권리범위를 갖도록 해당 특허의 등록을 시도하고 있습니다. 

 

[목차]로 돌아가기

 

 

12번 특허: (오디오 처리) Whisper 특허

 

발명의 명칭: Multi-task automatic speech recognition system

출원번호: US 18/302,289 (2023.04.18)

등록번호: US 12,079,587 B1 (2024.09.03)

발명 요약: Whisper는 OpenAI에서 제작하고 2022년 9월에 오픈 소스 소프트웨어로 처음 출시된 음성 인식 및 전사를 위한 머신러닝 모델입니다. Whisper는 영어를 포함한 여러 언어의 음성을 전사하거나 번역할 수 있습니다. 2022년 논문 “Robust Speech Recognition via Large-ScaleWeak Supervision”을 통해 공개 되었으며, 이와 관련한 특허는 2023.04.18.에 출원되었고, 2024.09.03.자에 등록되었습니다.

 

    1. 음성 인식 시스템이란?

 

음성 인식 시스템이란 음성을 텍스트로 변환하는 기술입니다. 음성 인식 시스템에서 사용되는 대표적인 기술 중 하나로 Wave2Vec2.0이 있습니다. Wave2Vec2.0은 비지도 사전 학습(unsupervised pre-training) 방식을 사용하여 음성의 특징을 잘 나타내는 표현 벡터를 추출하는 기술입니다. 비지도 사전 학습이란  정답(label)을 알려주지 않고 음성 데이터를 분석하여 인공지능이 스스로 데이터를 학습하는 방법입니다. 그럼, 어떻게 인공지능이 스스로 음성의 특징을 추출하도록 학습할 수 있는 것일까요?  

 

[그림 1]의 Wave2Vec2.0 프레임워크를 구체적으로 살펴보겠습니다.

 

[그림 1 - Wave2Vec2.0 논문]

 

[그림 1]을 살펴보면, CNN(Convolutional neural network)이라는 네트워크를 통해 원시 오디오 신호 X의 중요한 정보를 추출한 음성 표현 Z을 출력합니다. 음성 표현 Z는 숫자가 쭉 이어진 연속적인 데이터이고,  이를 좀 더 간단한 형태인 불연속적인 형태의 데이터로 변환합니다. 이를 양자화 표현 qt이라고 합니다. 음성 표현 Z는 트랜스포머 네트워크로 전달되어 오디오의 문맥을 반영한 표현 ct가 생성됩니다. 이 과정에서 랜덤으로 일부 시간 구간의 데이터를 가리고, 가려진 부분을 맞추는 훈련을 하게 됩니다. 이를 마스킹이라고 합니다. 마스킹 된 부분을 예측하는 과정에서 정답 양자화 표현 qt과 여러 방해 요소들q’ 중에서 정답을 찾아내는 대조 학습을 수행합니다. 대조 학습이란 정답 qt와 ct의 유사도는 높이고 방해 요소q’와 ct의 유사도는 낮추도록 학습되는 방식을 의미합니다. 

 

이렇게 다양한 오디오 데이터를 미리 학습시켜 기본적인 소리의 패턴이나 특징을 추출하도록 사전 학습된 오디오 인코더들은 음성 인식이나 번역과 같은 사용자가 원하는 특정 작업에 맞게 조정(fine-tuning)하는 작업을 거쳐 실질적으로 사용 가능한 결과를 만들어 냅니다. 그러나, 사전 학습된 모델을 조정하는 과정은 특정 작업에 특화된 데이터가 부족하고, 모델 최적화가 어렵다는 문제가 있습니다.

 

또한, 음성 인식 시스템에는 사람의 음성의 유무를 검출하는 음성 활동 감지(voice activity detection), 화자를 구분하는 화자 분리(speaker diarization), 역 텍스트 정규화(inverse text normalization)와 같은 다양한 기능이 들어가기 때문에 상대적으로 시스템이 복잡해집니다. 참고로, 역 텍스트 정규화란 음성 인식 결과를 사람이 더 정확하고 쉽게 이해할 수 있도록 변환하는 과정으로서, 음성 인식 결과가 “one hundred kilometers per hour”라면 역 텍스트 정규화 결과는 “100km/h”로 변환됩니다. 따라서, 역 텍스트 정규화는 사용자 경험(UX)을 개선할 수 있는 효과가 있습니다.

 

또한, 동일한 입력 오디오 신호에 번역(translation), 전사(transcription), 음성 활동 감지, 시간 정렬(time alignment), 언어 식별(language identification)과 같이 사용자가 다양한 작업을 수행하고 싶을 때 각 작업을 수행하기 위해 별도의 인터페이스나 설정이 필요하다면 음성 인식 시스템의 인터페이스 또한 복잡해질 수 있습니다.

 

해당 특허는 음성 인식 시스템과 인터페이스의 복잡성을 줄이고, 특정 작업에 맞는 디코더의 조정 없이도 다양한 환경에서 “즉시 사용할 수 있는” 신뢰성을 갖는 자동 음성 인식 시스템에 관한 것입니다. 해당 특허의 주요 기술적 특징은 하나의 모델이 여러 작업을 수행하는 멀티 태스크가 가능하다는 것입니다.

 

그럼, 멀티 태스크가 가능한 음성 인식 시스템에 대해서 구체적으로 살펴보도록 하겠습니다.

 

    2. 모델 아키텍처 및 학습 방법

 

[그림 2]는 해당 특허의 모델의 아키텍처를 나타냅니다.

 

[그림 2 - 해당 논문의 Figure 1]

 

[그림 2]에 도시된 바와 같이, 해당 특허의 자동 음성 인식 시스템은 기존 트랜스포머의 인코더-디코더 구조, 어텐션 메커니즘, 위치 임베딩을 사용합니다. 여기에 추가적으로 디코더 입력에 작업(task)을 지정하는 특수 토큰 등을 추가함으로써 멀티 태스크가 가능하도록 합니다. 

 

구체적으로 살펴보면, 해당 특허의 자동 음성 인식 시스템은  음성 데이터를 직접 처리할 수 있도록 하기 위하여 두개의 1D 컨볼루션 레이어를 포함하고, 로그-멜 스펙트로그램을 입력으로 사용합니다. 음성 데이터와 같은 시계열적인 입력 데이터는 데이터의 시간적 또는 순서적 관계를 학습하는 1D 컨볼루션을 사용하고, 두개의 1D 컨볼루션 레이어를 사용하여 더 고차원적이고 추상적인 특징을 학습하게 됩니다. 

 

하나의 모델이 여러 작업을 수행하는 멀티 태스크가 가능하도록 하기 위하여, 디코더 입력에 작업(task)을 지정하는 특수 토큰을 추가합니다. 특수 토큰이란 모델에게 특정 작업을 수행하라고 지시하는 심볼을 의미합니다. 따라서, 특수 토큰을 사용하여 하나의 모델에서 작업을 지정하면, 작업마다 별도의 인터페이스가 필요하지 않으므로 인터페이스가 단순해집니다. 또한, 작업마다 다른 모델을 사용하지 않아도 되기 때문에 시스템도 단순해집니다. 또한, 특정 작업에 맞는 조정 과정도 불필요하므로 학습 프로세스도 간소화될 수 있습니다. 

 

특수 토큰의 예로, “SOT(Start of Transcript)”는 전사의 시작을 나타내고, “ Language token”는 입력 음성의 예측된 언어를 나타내고, “ Transcription”은 음성을 텍스트로 변환하는 작업을 나타내고, “Translation”은  언어 번역 작업을 나타내고, “Voice Activity Detection”은 음성 활동 감지 작업을 나타내고, “NOSPEECH”는 음성이 발생하지 않음을 나타내고, “NOTIMESTAMP”는 시간 정렬된 전사를 생성하는데 사용할 타임 스탬프를 예측하지 않음을 나타내고, “EOT”는  전사의 끝을 나타냅니다.

 

디코더 입력 중 타임스탬프 토큰은 오디오의 어느 부분에서 작업을 시작해야하는지에 대한 정보를 나타내고, 디코더 입력 중 텍스트 토큰은 이전 텍스트 문맥을 추가하여 이전 오디오에서 생성된 텍스트를 참조하여 현재 오디오 데이터의 텍스트를 예측하기 위해 활용됩니다.

 

그럼 해당 특허의 독립항 제 1항을 살펴보겠습니다.

 

    3. 특허 청구항 분석

 

해당 특허의 독립항 제 1항은 아래와 같습니다.

 

독립항 제 1 항

1.  A system comprising:

at least one memory storing instructions; and

at least one processor configured to execute the instructions to perform operations for multi-language, multi-task speech recognition, the operations comprising:

obtaining a transformer model including an encoder and a decoder, the transformer model trained to transcribe or translate audio data in multiple languages using labeled audio data, the labeled audio data including first audio segments associated with first same-language transcripts of the first audio segments and second audio segments associated with second different-language transcripts of the second audio segments; and

generating an output transcript from an input audio segment using the transformer model, generation including:

configuring a decoder input with a language token corresponding to a first language;

configuring the decoder input with a task token; and

autoregressively configuring the decoder input with a first timestamp token predicted by the decoder based on an absence of a notimestamp token in the decoder input.

 

독립항 제 1 항은 크게 1) 트랜스포머 모델을 획득하는 과정2) 출력 스크립트를 생성하는 과정으로 구성됩니다. 밑줄 친 부분이 특허청에서 발행된 1차 거절이유를 극복하기 위해 추가된 구성요소입니다.

 

(1) 트랜스포머 모델 획득

 

트랜스포머 모델은 인코더와 디코더를 포함하고, 레이블링 된 오디오 데이터를 사용하여 여러 언어로 오디오 데이터를 전사하거나 번역하도록 학습된 모델입니다. 여기서 레이블링 된 오디오 데이터를 사용하여 모델을 학습하는 방법에 대해서 살펴보겠습니다.

 

[그림 3]은 자동 음성 인식 모델을 학습하기 위한 데이터 셋을 생성하는 과정을 나타냅니다.

 

[그림 3 - ‘289 특허의 도 1A]

 

먼저, 인터넷에서 오디오-전사(audio-transcripts) 페어 데이터 수집하고(101), 데이터 품질을 높이기 위해 노이즈를 제거합니다(103, 105). 예를들어, 수집된 데이터에서 기계에 의해 생성된 데이터나, 오디오의 언어와 관련없는 잘못된 전사로 구성된 데이터를 제거합니다. 노이즈가 제거된 데이터에서 오디오 데이터를 세그먼트 단위로 나누어 학습 샘플을 구성합니다(107).

 

즉, 모델은 레이블링 된 오디오 데이터를 사용하여 음성을 바로 텍스트로 변환할 수 있도록 엔드투엔드(end-to-end) 방식으로 훈련될 수 있습니다. 따라서, 역 텍스트 정규화를 모델 내에서 직접 수행할 수 있으므로, 음성 인식 시스템의 파이프라인을 간소화할 수 있습니다. 

 

또한, 라벨이 지정된 오디오 데이터에는 오디오 구간의 언어와 전사의 언어가 동일한 경우 뿐만 아니라, 오디오 구간의 언어와 전사의 언어가 서로 다른 경우도 포함되므로, 이러한 데이터로 음성 인식 시스템을 학습시키면 여러 언어로 오디오 데이터를 전사하거나 번역하도록 학습될 수 있습니다.



(2) 출력 스크립트 생성

 

트랜스포머는 디코더 입력을 구성하여 입력 오디오 세그먼트로부터 출력 전사를 생성합니다. 그럼, 디코더 입력을 구성하는 방법에 대해서 구체적으로 살펴보겠습니다.

 

[그림 4]는 다국어(multilingual) 및 다중 작업(multitask)을 위한 모델을 훈련하는 데 사용되는 예시적인 입력 시퀀스를 나타냅니다.

 

[그림 4 - 해당 논문의 Figure 1]

 

입력 시퀀스는 특수 토큰(special tokens), 이전 전사 내용인 텍스트 토큰(previous text tokens), 오디오 구간의 시작과 끝을 나타내는 타임 스탬프 토큰(timestamp tokens)을 포함합니다. 전사 시작을 나타내는 “SOT” 특수 토큰을 통해 모델은 훈련 샘플의 오디오 데이터를 처리하기 시작합니다. 훈련 샘플의 오디오 언어를 감지하고, 감지된 언어를 기반으로 “LANGUAGE” 특수 토큰을 지정합니다. 오디오에 음성이 없으면 “NOSPEECH” 특수 토큰을 지정합니다. “NOSPEECH” 특수 토큰을 포함하는 입력 시퀀스는 이 특수 토큰 뒤에 “전사 종료(EOT)” 특수 토큰이 올 수 있습니다.

 

훈련 샘플이 “번역” 훈련 샘플에서 추출되면 “TRANSLATE” 특수 토큰이 지정될 수 있고, 아니면 “TRANSCRIBE” 특수 토큰이 지정될 수 있습니다. “NOTIMESTAMPS” 특수 토큰을 지정하면, 타임스탬프를 예측하지 않고 순수 텍스트 토큰을 생성할 수 있습니다.  “NOTIMESTAMPS” 특수 토큰이 없다면, 모델은 각 텍스트 토큰에 오디오 구간의 시작 시간과 끝 시간을 매핑하여 시간 정렬 전사(time-aligned transcription)를 생성할 수 있습니다.  


여기서, 등록 청구항에서 추가된 부분이 바로 밑줄 친 부분인 “디코더 입력에 NOTIMESTAMPS” 토큰이 없음을 기반으로, 디코더가 예측한 첫 번째 타임스탬프 토큰으로 디코더 입력을 자기회귀적으로(autoregressively) 구성한다”는 부분입니다. 다시 말해, 디코더는 첫번째로 예측한 타임 스탬프 토큰인 오디오 구간의 시작 시간을 다시 디코더의 입력에 추가하고, 이를 기반으로 다음 타임 스탬프와 관련 텍스트를  예측하도록 작업합니다.

 

 

    4.계속 출원

 

 

2024.06.07.자에 CA 출원되고, 2024.08.30.자에 자진보정된 공개 특허(18/737,621)의 독립항 제21항을 살펴보겠습니다. 해당 특허는 현재 심사중입니다.

 

 

21. A system comprising:

at least one memory storing instructions; and

at least one processor configured to execute the instructions to perform operations for multi-language, multi-task speech recognition, the operations comprising:

obtaining a transformer model including an encoder and a decoder, the transformer model trained to transcribe or translate audio data in multiple languages using labeled 

audio data, the labeled audio data including first audio segments associated with first same-language transcripts of the first audio segments and second audio segments associated with second different-language transcripts of the second audio segments; and

generating an output transcript from an input audio segment using the transformer model, generation including:

configuring a decoder input with at least two special tokens, the at least two special tokens being autoregressively generated or assigned special tokens.

 

립항 21항을 보시면, 원출원의 등록 청구항 제1항과의 차이점은 디코더 입력을 구성하는 language token, task token, timestamp token과 관련된 내용은 삭제하고, 디코더 입력을 구성하는 적어도 두개의 특수 토큰들이 자기 회귀적으로 생성되거나 할당될 수 있다는 내용으로 권리범위를 다소 확장한 형태로 등록을 시도하고 있습니다.

 

[목차]로 돌아가기

 

결론

 

이번 리포트에서는 현재까지 공개/등록된 OpenAI의 특허들을 하나씩 소개해드렸습니다. 

 

OpenAI는 현재 12건의 원출원에 대해 8건의 계속 출원을 진행하며, 계속 출원 제도를 활발하게 활용하고 있습니다. 미국 특허에서 계속 출원 제도란, 원출원에 포함된 발명 내용의 범위 내에서 청구항을 새롭게 설정하여 출원할 수 있는 제도를 의미합니다. 일반적으로, 계속 출원은 원출원의 등록 청구범위보다 더욱 넓은 권리범위를 확보하기 위해 활용됩니다. 이러한 계속 출원 제도는 특허 발명에 대한 권리범위를 강화하면서, 장래 분쟁 시에 강력한 무기가 될 수 있다는 점에서, 미국 기업들이 매우 활발하게 활용하는 제도입니다. 그러나, 상대적으로 국내 기업들의 활용이 많지 않아서 아쉬운 부분입니다.

 

OpenAI는 보다 넓은 권리범위를 확보하기 위함 뿐만 아니라, 학습 프로세스추론 프로세스 각각에 대해 권리를 확보(CPT 특허, API 특허 참고)하거나 발명이 적용될 수 있는 데이터 형식들(예컨대, 자연어 텍스트와 컴퓨터 코드) 각각에 대해 권리를 확보(Codex 특허 참고)하기 위해 계속 출원을 활용하며 인공지능 관련 발명에 최적화된 특허 전략을 보여주었습니다.

 

또한, 이번 리포트에서 분석한 바와 같이 OpenAI의 특허들 중 상당수는 상대적으로 넓은 권리범위로 등록되었음을 확인할 수 있었습니다. 향후 OpenAI가 이렇게 확보된 강력한 특허들을 어떤 식으로 행사할지는 유심히 지켜보아야겠습니다.

 

OpenAI의 특허들을 종합적으로 고려해볼 때, 다음 버전의 ChatGPT에서는 UI 상에서 하나의 프롬프트를 입출력 창으로 활용하여 사용자의 입력에 따라 실시간으로 답변을 생성 및 수정하는 기능(텍스트 수정 특허, 텍스트 삽입 특허 참고), 자유롭게 third party의 외부 API를 호출하여 답변을 생성해내는 기능(API 연동 특허 참고), 이미지의 특정 영역을 입출력으로 하여 사용자와 상호 작용하는 기능(UI/UX 특허 1, UI/UX 특허 2 참고) 등의 더욱 사용자 친화적인 환경이 조성될 것이라 예측됩니다.

 

한편, 특허의 경우, 출원 이후 1년 6개월 뒤에 공개되거나, 우선심사신청으로 인해 1년 6개월보다 일찍 등록된 경우 등록일에 공개되게 됩니다. 이에 따라, 현재까지 공개된 텍스트 처리, 이미지 생성 등의 생성형 AI의 초기 태스크 뿐만 아니라 비디오 생성과 같은 더욱 발전된 태스크와 관련된 특허도 순차적으로 공개될 것 입니다. 특히, 비디오 처리 모델의 학습 데이터를 생성하기 위한 비디오 라벨링과 관련된 특허(VPT 특허 참고)를 등록받아둔 것으로 미루어보아, OpenAI가 2024년 2월 15일에 공개하여 같은 해 12월 9일에 출시한 비디오 생성 모델Sora에 대해서도 분명 관련 특허를 출원해두었을 것으로 생각이 됩니다.

 

저희 파이특허는 지속적인 모니터링을 통해 새롭게 공개/등록되는 주요 빅테크 기업들의 특허들을 분석하고 빠르게 변화하는 인공지능 트렌드를 파악해나가고 있으며, 향후 새롭게 공개/등록되는 OpenAI의 특허들이나 빅테크 기업들의 주요 특허들 중 주목할만한 특허들을 소개해드리도록 하겠습니다.

분석특허인공지능 & 로보틱스리포트소프트웨어뉴스

"질문이 있으세요?"