이글은 towardsdatascience.com의 내용임. (링크)
If you know SQL, you probably understand Transformer, BERT and GPT.
Query와 검색에 관한 모든것이다.
2017/17이후 NLP(Natural Language Processing)이 어떻게 발달했는지 따라오고 있는 사람들은 Transformer/BERT가 낮설지 않을 것이다. Alexander Rush, Jay Alammar 그리고 최근에 Peter Bloem에 의해 많은 상세한 소개가 되었기 때문에 이 글에서는 내부를 보지 않을 것이다. 대신 첫번째 원칙을 찾고 데이터베이스와 메모리 같은 더 이해하기 쉽게 만드려 노력했다.
만약 SQL 쿼리를 이해할 수 있다면 아마도 Transformer 구조(architecture)의 본질을 알 수 있을 것이다. 모른다해도 이해하기 어렵지 않다. - (저자는) 단지 'Paperbase'에서 모든 NLP 논문의 저자와 제목을 추출한다.
범주가 'NLP'인 Paperbase로부터 저자, 제목을 선택
데이터베이스로의 쿼리는 모든종류의 키(Category = 'NLP')와 값(저자와 제목)을 유연하게 수용해야 한다. 동시에 해당 키와 값은 사용자가 만들고 있는 쿼리가 무엇이든간에 유용하게 제공되어야 한다. SQL 뒤에 유효한 레코드는 상호 교환하여 사용될 있도록 모든 아이템을 포함한다.
둘 다 사실 쿼리이다.(Both are Queries in Nature)
쿼리가 컴퓨터로 전달되었을 때 두단계 과정이 있다.
- 첫번째, 컴퓨터는 쿼리를 검색하고 키와 일치시켜야 한다.
- 두번째, 컴퓨터는 키와 동일한 레코드의 값을 반환해야 한다.
이는 놀랍게도 Tranformer의 뼈대(backbone)인 'Attention Mechanism'과 매우 유사하다.
- QKt($QK^T$)는 쿼리와 키를 일치시킨다. 수학적으로, Q와 K간 코사인 유사도(cosine similarity)를 측정한다. 더 높은 유사도일수록 더 관계있는 레코드이다.
- Softmax(.)V는 키와 관련된 레코드의 값을 반환한다. 수학적으로 softmax 함수는 확률을 반환한다. 즉 모든 레코드는 확률적 가중치라는 것을 의미한다.
Formula 1 in Transformer (Vaswani et al., 2017)
강조하고 싶은 두가지가 있다.
- 퀴리-키 매칭 그리고 데이터 검색 단계는 IF/ELSE/AND/OR 논리에서 확률기반으로 갑자기 바뀐다. 이는 어떻게 고전적인(classical)/규칙(rule) 기반 AI가 확률기반 AI로 발전되었는지를 보여준다. 결국에는 어떤 조건에서 모든 규칙 기반을 작성하는 것은 불가능하다 그래서 가장 좋은 정책(policy)은 확률로 표현(encode)하는 것이다.
- 저장되는 값은 정수(integer - 유리수의 배열) 대신 벡터(vector)이다. 정수와 유리수(rational number)는 큰 차이가 있다. 결국 0에서 1(2개의 정수)와 사실상 무산한 수(0.1, 0.11, ....). 이는 만약 각 유리수를 레코드와 연관시민다면 잠재적으로 0과 1사이에 많은 레코드를 기록할 수 있다는 것을 의미한다.
아래는 SQL과 Attention Mechanism간 비교이다.
Name | SQL | Attention Mechanism |
---|---|---|
대체 용어(Alternative Term) | 결정적(deterministic) 데이터베이스 | 확률적(Probablistic) 데이터베이스 |
데이터 스키마(schema) | 쿼리와 키가 테이블의 어떤 컬럼이다 | 쿼리와 키 모두 벡터이다 |
쿼리-키 매칭 | 규칙(rule)기반 논리(즉, IF/ELSE/AND/OR) | 유사도 점수(similarity score) |
반환 값 | 규칙에 맞는 레코드 | 모든 레코드의 확률적인 추정값 |
메모리 | 행(row)에 걸쳐진 각 레코드 | 많은 레코드가 약간의 컬럼에 포함(embed)될 수 있다 |
쿼리 작성자 | 대부분 사람이 작성 | 대부분 기계(machine)가 작성 |
반환 결과 사용자 | 대부분 사람 | 대부분 기계 |
결과의 통합(integration) | 사람이 많은 보고서를 분석 | 기계가 다양한 보고서를 자동으로 처리 |
쿼리는 이해를 높인다.
Attention mechanism에 대한 다른 좋은 것은 묵시적으로 기계가 쿼리를 작성하고 반환된 결과를 사용하며 다른 의미있는 쿼리와 결과를 형성하기 위해 다른 반환된 결과를 통합하는 것등을 하도록하는 것이다.
Queries enhance understanding
만약 CV가 무엇인지 이해하지 못한다면, "CV"를 쿼리할 것이고 모든 컴퓨터 비젼 논문이 반환되어 질 것이다. 따라서 CV가 컴퓨터 비젼(computer vision)을 나타내는 것을 알게 된다. 만약 논문이 무엇에 대해 이야기하는지 이해하지 못한다면 제목으로 쿼리하여 분류를 반환하는 것으로 논문이 NLP에 대한 것임을 알 수 있다. 철저하지 않다면 반복적으로 쿼리를 통해 레코드간 연관성을 구축하는 것으로 레코드를 더 잘 이해할 수 있다.
비슷한게 변환(transformer)에서도 모든 레코드를 쿼리한다. 그러면 모든 다른 레코드(word)에 대한 각 레코드(word)의 관계가 반횐된다. 예를 들어 확률적으로 '논문'을 쿼리하면 가장 가능성있는 "읽기(read)"를 포함하는 확률적 추정을 반환한다. 모든 단어(word)에 대한 철저한 쿼리를 통해 기계(machine)은 모든 단어에 대한 이해와 관계를 발전시킬 수 있다.
변환은 여러개의 어텐션(attention) 헤더를 갖고 어텐션에 어텐션을 쌓는다. 그래서 변환이 엄청나게 대규모 데이터베이스로부터 통찰력을 찾기 위해 공동으로 발전된 시멘틱 SQL(semantic SQL)을 사용하는 똑똑한 분석가의 그룹처럼 상상할 수 있다. 다수의 중간 관리자가 그들의 직접적인 보고로부터 통찰력을 얻을 때 그들은 조사결과를 CEO에게 보고하기 전에 극단적으로 요약하는 관리자에게 제시한다(이중보고보다 강함).
변환(Transformer)에서 BERT와 GPT까지
유명한 BERT와 GPT는 대규모 말뭉치(corpus)로부터 단어(word)간 의미론적 관계를 캡쳐하고 저장하기 위해 변환(Transformer) 구조를 사용한다. 기본적으로 대부분의 다른 최신 언어 모델은 변환의 데이터베이스같은 구조가 검색을 더 잘하기 때문에 변환에 기초한다. 그래서 언어같은 더큰 규모의 데이터에서 더 복잡한 관ㄱ례를 저장한다.
그리고 이 데이터베이스는 변환가능하다. 사전훈련된 모델을 압축된 훈련 데이터로써 생각할 수 있다. 정말로, 이 사전훈련된 모델을 탐색하는 것은 대부분의 실무자에게 사실상의(de facto) 실습이 된다.
이것이 쿼리와 검색에 관한 모든것이다.
좋은 메모리(즉, 데이터베이스)는 지능에 필수적이다. 모든 생각은 실제로 뇌의 데이터베이스에 쿼리를 만드는 것이다 그러면 관련있는 언어, 이미지 그리고 지식을 반환한다. 이는 효율적인 쿼리와 검색없이는 불가능하다. 결과로써 더 나은 쿼리와 검색을 위한 효과적인 데이터 구조를 찾는 것이 항상 AI 연구에서 초점이다. 그리고 그것은 점점 더 새로운 ML구조를 갖는 이유이다.