반업주부의 일상 배움사
[요약] 트랜스포머에 대해 설명합니다: GPT, BERT, T5의 기본 모델 이해하기 :: with AI 본문
[ 요약 ]
트랜스포머는 머신 러닝 분야에서 획기적인 발견으로 떠오른 신경망의 한 유형입니다.
텍스트를 번역하고 컴퓨터 코드를 생성할 수 있으며 생물학과 같은 분야에서 잠재력을 발휘할 수 있습니다.
트랜스포머를 활용하는 대표적인 머신러닝 모델로는 BERT, GPT-3, T5가 있습니다.
트랜스포머는 텍스트와 같은 복잡한 데이터 유형을 분석하는 데 효과적이며, 한 번에 한 단어씩 순차적으로 처리하는 RNN 모델에 대한 대안으로 긴 텍스트 세그먼트를 처리하는 데 어려움을 겪던 기존 모델에 대한 대안을 제공합니다.
이 트랜스포머는 어순을 고려할 수 있으며 언어 분석에 최적화되어 있습니다.
머신 러닝 분야에서 최신 정보를 얻으려면 트랜스포머를 이해하는 것이 필수적입니다.
트랜스포머는 병렬 처리 효율이 높고 대규모 데이터 세트를 처리할 수 있어 자연어 처리 분야에 혁명을 일으켰습니다.
RNN과 달리 트랜스포머는 방대한 데이터 세트에 대해 학습할 수 있으므로 놀라운 결과를 얻을 수 있습니다.
트랜스포머를 효과적으로 만드는 세 가지 핵심 혁신은 위치 인코딩, 주의, 자기 주의입니다.
위치 인코딩은 각 단어의 위치에 따라 번호를 할당하여 네트워크가 데이터 자체에서 단어 순서의 중요성을 학습할 수 있도록 합니다.
주의는 네트워크가 입력 시퀀스를 처리하는 동안 입력 시퀀스의 특정 부분에 집중할 수 있게 해주며, 자기 주의는 모델이 입력 시퀀스의 여러 위치를 연관시켜 시퀀스의 표현을 계산할 수 있게 해줍니다.
이러한 개념을 이해함으로써 실무자는 번역 및 텍스트 생성과 같은 작업을 수행할 수 있는 강력한 NLP 모델을 구축할 수 있습니다.
주의 메커니즘은 신경망의 중요한 부분으로, 모델이 텍스트 출력을 처리하고 생성할 때 입력 텍스트의 특정 세그먼트에 집중할 수 있게 해줍니다.
트랜스포머의 자기 주의 혁신은 문장 내 단어의 문맥과 의미를 이해하는 데 특히 효과적입니다.
자기 주의를 통해 신경망은 언어를 효과적으로 이해하고, 품사를 인식하고, 단어 시제를 식별하고, 단어를 모호하게 만들 수 있습니다.
결과적으로 네트워크의 언어 이해 능력이 향상될수록 다양한 언어 작업을 더 효과적으로 완수할 수 있습니다.
따라서 자기 주의는 언어 처리 작업에서 신경망의 기능을 향상시키는 데 중요한 도구입니다.
Transformers, explained: Understand the model behind GPT, BERT, and T5
https://www.youtube.com/watch?v=SZorAJ4I-sA
[ 한글 전체 ]
DALE MARKOWITZ: 머신러닝 분야에서 일하면서 흥미로운 점 중 하나는 우리의 가능성에 도전하는 혁신적인 기술이 자주 등장한다는 점입니다.
예를 들어, 바둑을 두거나 놀랍도록 생생한 얼굴을 만들어내는 모델이 있습니다.
오늘날 모두를 놀라게 하는 획기적인 발견은 신경망의 일종인 트랜스포머입니다.
트랜스포머는 텍스트를 번역하고, 시와 논설을 작성하며, 심지어 컴퓨터 코드를 고안할 수도 있습니다.
트랜스포머는 단백질 폴딩 문제를 해결하는 데 도움을 줄 수 있는 생물학 같은 분야에서 엄청난 잠재력을 가지고 있습니다.
기본적으로 트랜스포머는 마법의 머신러닝 망치와 같아서 문제를 해결할 수 있는 못으로 바꿔줍니다.
트랜스포머를 활용하는 인기 있는 머신러닝 모델로는 BERT, GPT-3, T5가 있습니다.
머신 러닝, 특히 자연어 처리 분야에서 최신 기술을 유지하려면 트랜스포머에 대해 잘 알고 있어야 합니다.
이 동영상에서는 트랜스포머가 무엇인지, 어떻게 작동하는지, 왜 그렇게 영향력이 큰지에 대해 설명합니다.
그렇다면 트랜스포머란 정확히 무엇일까요?
트랜스포머는 일종의 신경망 아키텍처입니다.
요약하자면, 신경망은 이미지, 동영상, 오디오, 텍스트와 같은 복잡한 데이터 유형을 분석하는 데 매우 효과적인 모델입니다.
하지만 데이터 유형에 따라 최적화된 신경망은 다릅니다.
예를 들어, 이미지를 분석할 때는 시각 정보를 처리하는 인간의 두뇌를 모방하도록 의도적으로 설계된 컨볼루션 신경망을 사용하는 것이 일반적입니다.
2012년경부터 신경망은 사진 속 물체 식별과 같은 비전 작업을 해결하는 데 탁월한 성능을 발휘했습니다.
하지만 번역, 텍스트 요약, 텍스트 생성 등 언어 분석에는 오랫동안 그에 필적할 만한 기술이 없었습니다.
언어가 인간 커뮤니케이션의 주요 수단이라는 점에서 이는 중요한 문제입니다.
트랜스포머가 등장하기 전의 딥러닝은 한 번에 한 단어씩 순차적으로 처리하는 방식으로 작동하는 순환신경망(RNN)이라는 모델을 기반으로 했습니다.
예를 들어, 영어 문장을 프랑스어로 번역하기 위해 RNN은 영어 문장을 입력으로 받아 그에 해당하는 프랑스어 단어를 순차적으로 생성했습니다.
여기서 핵심 키워드는 "순차적"입니다. 언어에서 단어의 순서는 매우 중요하며 단순히 재배열할 수 없습니다.
예를 들어 "제인이 문제를 찾으러 갔다"는 문장은 "문제가 제인을 찾으러 갔다"는 문장과는 다른 의미를 전달합니다. 따라서 모든 언어 모델은 단어 순서를 고려해야 하며, 순환 신경망(RNN)은 한 번에 한 단어씩 순차적으로 검사하여 이를 달성합니다.
하지만 RNN은 몇 가지 문제에 직면했습니다.
첫째, 긴 문단이나 에세이와 같은 큰 텍스트 부분을 처리하는 데 어려움을 겪었습니다.
단락의 끝에 도달하면 더 이상 시작 부분을 기억하지 못했습니다.
또한 RNN은 단어를 순차적으로 처리하기 때문에 훈련하기가 어려웠고, 병렬 처리가 어려웠기 때문에 GPU를 더 추가해도 처리 속도를 높일 수 없었습니다.
또한 훈련 속도가 느린 모델은 많은 데이터로 훈련할 수 없었습니다.
바로 이 부분에서 트랜스포머가 모든 것을 바꿨습니다.
트랜스포머는 2017년 Google과 토론토 대학교의 연구진이 개발한 모델로, 원래는 번역을 위해 설계되었습니다.
순환 신경망과 달리 트랜스포머는 병렬화에 매우 효율적입니다.
즉, 올바른 하드웨어만 있으면 매우 큰 모델을 훈련할 수 있습니다.
얼마나 큰가요?
엄청나게 큽니다.
시와 코드를 작성하고 대화를 나누는 모델인 GPT-3를 기억하시나요?
이 모델은 거의 모든 공개 웹을 포함하여 거의 45테라바이트에 달하는 텍스트 데이터로 학습되었습니다.
[휘파람] 트랜스포머에 대해 기억하는 것이 있다면 바로 이것입니다.
확장성이 뛰어난 모델을 방대한 데이터 세트와 결합하면 놀라운 결과를 얻을 수 있습니다.
그렇다면 이러한 모델은 어떻게 작동할까요?
백서의 다이어그램을 보면 명확하게 알 수 있지만, 실제로는 생각보다 간단합니다.
이 모델을 효과적으로 만드는 세 가지 핵심 혁신은 위치 인코딩, 주의력, 특히 자기 주의력입니다.
먼저 위치 인코딩에 대해 알아보겠습니다.
영어 텍스트를 프랑스어로 번역한다고 가정해 봅시다.
위치 인코딩은 단어를 순차적으로 고려하는 대신 신경망에서 처리하기 전에 문장의 각 단어에 위치에 따라 1, 2, 3 등의 숫자를 할당하는 것을 말합니다.
즉, 단어 순서에 대한 정보를 네트워크의 구조가 아닌 데이터 자체에 저장합니다.
많은 텍스트 데이터로 네트워크를 훈련시키면 네트워크는 이러한 위치 인코딩을 해석하는 방법을 학습합니다.
신경망은 데이터에서 어순의 중요성을 학습합니다.
이는 위치 인코딩을 이해하는 고차원적인 방법이지만, RNN보다 트랜스포머를 더 쉽게 훈련할 수 있도록 도와주는 혁신입니다.
이 논문의 다음 혁신은 요즘 머신 러닝에서 널리 사용되는 주의력이라는 개념입니다.
사실 원래 트랜스포머 논문의 제목은 "주의력만 있으면 됩니다."입니다.
"그래서 1992년 8월에 유럽 경제 지역에 대한 협정이 체결되었습니다.
알고 계셨나요?
이것이 원본 논문에 제공된 예시 문장입니다.
원본 변압기는 번역용으로 설계되었다는 점을 기억하는 것이 중요합니다.
이제 이 문장을 프랑스어로 번역하려고 한다고 상상해 보세요.
텍스트를 번역하는 잘못된 방법 중 하나는 각 단어를 개별적으로 번역하는 것입니다.
그러나 프랑스어에서는 유럽이 경제 앞에 오는 프랑스어 번역과 같이 특정 단어의 순서가 뒤바뀝니다.
또한 프랑스어는 단어와 단어 사이에 성별이 일치하는 언어입니다.
따라서 [프랑스어]라는 단어는 [프랑스어]와 일치하려면 여성형이어야 합니다.
주의 메커니즘은 텍스트 모델이 출력 문장의 단어를 번역할 방법을 결정할 때 원본 문장의 각 단어를 면밀히 조사할 수 있도록 하는 신경망 구조입니다."
실제로 이 논문에는 모델이 출력 문장의 단어를 예측할 때 입력 문장에서 어떤 단어에 주의를 기울이는지 보여주는 멋진 시각화 자료가 있습니다.
예를 들어, 모델이 [프랑스어]라는 단어를 생성할 때 입력 단어인 유럽과 경제를 고려하고 있습니다.
이 다이어그램은 히트 맵으로 볼 수 있습니다.
하지만 모델이 어떤 단어에 주의를 기울여야 하는지 어떻게 알 수 있을까요?
이는 모델이 수천 개의 프랑스어와 영어 문장 쌍의 예를 검토하여 성별, 어순, 복수 및 모든 문법적 측면에 대해 학습함으로써 시간이 지남에 따라 데이터에서 학습하는 것입니다.
지금까지 위치 인코딩과 주의라는 두 가지 근본적인 트랜스포머 혁신에 대해 살펴봤습니다.
그러나 주의는 사실 이 논문이 작성되기 전에 발명된 개념입니다.
트랜스포머의 진정한 혁신은 기존의 주의력과는 다른 자기 주의력을 구현한 것이었습니다.
후자는 영어나 프랑스어와 같은 언어의 단어를 정렬하는 것으로, 번역에서 매우 중요한 역할을 합니다.
하지만 다양한 언어 작업을 수행할 수 있는 네트워크를 구축하기 위해 언어의 근본적인 의미를 이해하는 것이 목표라면 어떨까요?
트랜스포머와 같은 신경망의 흥미로운 기능은 방대한 양의 텍스트 데이터를 평가하면서 언어의 내부 표현이나 이해를 자동으로 개발한다는 점입니다.
예를 들어 프로그래머, 소프트웨어 엔지니어, 소프트웨어 개발자라는 용어가 모두 서로 바꿔 사용할 수 있다는 것을 학습할 수 있습니다.
또한 문법, 성별, 시제 등에 적용되는 규칙도 자연스럽게 학습하게 됩니다.
네트워크의 언어에 대한 내부 이해도가 높을수록 주어진 언어 작업을 더 효과적으로 수행할 수 있습니다.
특히 신경망이 입력 텍스트 자체에 집중하는 경우 주의 집중은 신경망이 언어를 이해하는 데 매우 효과적인 방법이라는 것이 밝혀졌습니다.
예를 들어 보겠습니다.
다음 두 문장을 생각해 보세요: "서버, 수표 좀 줄래요?" 대 "방금 서버를 다운시킨 것 같네요."입니다. 이 문장들에서 "서버"라는 단어는 두 가지 다른 의미를 담고 있습니다.
주변 단어의 문맥을 통해 이를 인식할 수 있습니다.
자기 주의는 신경망이 단어를 둘러싼 단어의 맥락에서 단어를 이해할 수 있게 해줍니다.
따라서 모델이 첫 번째 문장에서 "서버"라는 단어를 처리할 때 "확인"이라는 단어에 주의를 기울여 사람 서버와 메일 서버를 구분할 수 있습니다.
두 번째 문장에서 모델은 "크래시"라는 단어에 주의를 기울여 서버가 기계라는 것을 추론할 수 있습니다.
또한 자기 주의는 신경망이 단어를 명확히 구분하고, 품사를 인식하고, 시제를 식별하는 데 도움이 될 수 있습니다.
이것이 자기 주의의 중요성을 요약한 것입니다.
트랜스포머는 위치 인코딩, 주의, 자기 주의로 축소할 수 있습니다.
물론 이것은 트랜스포머에 대한 조감도입니다.
하지만 실제로는 어떻게 활용될까요?
가장 널리 사용되는 트랜스포머 기반 모델 중 하나는 제가 2018년에 Google에 입사할 무렵에 개발된 BERT입니다.
BERT는 방대한 텍스트 말뭉치를 학습하여 텍스트 요약, 질문 답변, 분류, 문장 유사성 식별 등 다양한 작업에 적용할 수 있는 다용도 NLP 도구로 발전했습니다.
Google 검색에서 검색 쿼리의 이해를 돕기 위해 사용되며, Google Cloud AutoML Natural Language와 같은 많은 Google Cloud의 NLP 도구를 지원합니다.
또한 BERT는 Wikipedia나 Reddit에서 스크랩한 텍스트와 같이 레이블이 지정되지 않은 데이터를 사용하여 우수한 모델을 구축할 수 있음을 입증했습니다.
이 접근 방식을 준지도 학습이라고 하며 현재 머신 러닝의 주요 트렌드입니다.
애플리케이션에서 트랜스포머를 사용하는 데 관심이 있는 경우, TensorFlow Hub는 앱에 쉽게 통합할 수 있는 여러 언어로 된 BERT와 같은 사전 학습된 트랜스포머 모델을 얻을 수 있는 훌륭한 리소스입니다.
또한 Hugging Face에서 개발한 인기 있는 트랜스포머 Python 라이브러리는 트랜스포머 모델을 훈련하고 활용하는 데 있어 커뮤니티에서 인기가 높습니다.
더 많은 트랜스포머 팁은 아래 링크된 제 블로그 게시물을 참조하세요.
시청해 주셔서 감사합니다!
[ English Summary ]
Transformers are a type of neural network that has emerged as a breakthrough discovery in the field of machine learning.
They can translate text and generate computer code, and have potential in fields like biology.
Popular machine learning models that utilize transformers include BERT, GPT-3, and T5.
Transformers are effective at analyzing complex data types, such as text, and offer an alternative to RNN models, which process one word at a time, sequentially, and struggle to handle long text segments.
This transformer can take word order into account and is optimized for linguistic analysis.
Understanding transformers is essential to staying current in the field of machine learning.
Transformers have revolutionized the field of natural language processing because they are highly parallel and can handle large data sets.
Unlike RNNs, transformers can learn on massive datasets, which can yield amazing results.
The three key innovations that make transformers so effective are positional encoding, attention, and self-attention.
Positional encoding assigns each word a number based on its position, allowing the network to learn the importance of word order from the data itself.
Attention allows the network to focus on specific parts of the input sequence while processing it, and self-attention allows the model to compute a representation of the sequence by associating multiple locations in the input sequence.
By understanding these concepts, practitioners can build powerful NLP models that can perform tasks such as translation and text generation.
Attention mechanisms are an important part of neural networks, allowing models to focus on specific segments of input text as they process and generate text output.
Transformers' self-attention innovation is particularly effective at understanding the context and meaning of words in a sentence.
Self-attention allows neural networks to effectively understand language, recognize parts of speech, identify word tenses, and disambiguate words.
As a result, the better the network's ability to understand language, the more effectively it can complete various language tasks.
Self-attention is therefore an important tool for improving the capabilities of neural networks in language processing tasks.
[ English Full Text ]
DALE MARKOWITZ: One of the fascinating aspects of working in machine learning is the frequent emergence of innovative technologies that challenge our notions of possibility.
For instance, there are models capable of playing Go or creating remarkably lifelike faces.
Today, a groundbreaking discovery that has everyone reeling is the transformer, a type of neural network.
Transformers can translate text, compose poetry and opinion pieces, and even devise computer code.
They hold enormous potential in fields like biology, where they could help solve the protein folding problem.
Essentially, transformers are like a magical machine learning hammer, transforming problems into nails that they can solve.
The BERT, GPT-3, and T5 are popular ML models that utilize transformers.
If you want to remain current in the fields of machine learning, particularly in natural language processing, you need to be familiar with the transformer.
In this video, I will discuss what transformers are, how they function, and why they're so influential.
So, what exactly is a transformer?
It is a type of neural network architecture.
To recap, neural networks are highly effective models for analyzing complex data types such as images, videos, audio, and text.
However, different neural networks are optimized for various data types.
For instance, when analyzing images, it's common to use a convolutional neural network that is intentionally designed to imitate human brain processing of visual information.
Since around 2012, neural networks have excelled in solving vision tasks, such as object identification in photos.
However, for a long time, there was no comparable technology for language analysis, whether for translation, text summarization, or text generation.
This is a significant issue because language is the primary method of human communication.
Prior to the advent of transformers, deep learning was based on a model called a Recurrent Neural Network or RNN, which worked by processing words one at a time in sequence.
For example, to translate an English sentence into French, an RNN would take the English sentence as input and sequentially produce the corresponding French words.
The keyword here is "sequential." In language, the order of words is significant, and they cannot simply be rearranged.
For instance, the sentence "Jane went looking for trouble" conveys a distinct meaning from the sentence "Trouble went looking for Jane." Therefore, any language model must account for word order, which recurrent neural networks (RNNs) achieve by examining one word at a time sequentially.
However, RNNs encountered some issues.
Firstly, they struggled with processing large segments of text, such as long paragraphs or essays.
By the time they reached the end of a paragraph, they no longer remembered the beginning.
Additionally, RNNs were challenging to train, as they processed words sequentially, and were therefore difficult to parallelize, meaning that adding more GPUs couldn't speed up the process.
And when you have a model that is slow to train, you cannot train it on as much data.
This is where the transformer changed everything.
They are models developed in 2017 by researchers at Google and the University of Toronto, originally designed for translation.
Unlike recurrent neural networks, transformers are highly efficient to parallelize.
This means that with the correct hardware, you can train really big models.
How big?
Really big.
Remember GPT-3, the model that writes poetry and code and has conversations?
It was trained on almost 45 terabytes of text data, including almost the entire public web.
[WHISTLES] So if you remember anything about transformers, let it be this.
Combining a model that scales well with a huge dataset can result in mind-blowing outcomes.
So how do these models work?
The diagram in the paper may make it clear, but it's actually simpler than you might think.
There are three key innovations that make this model effective: positional encodings, attention, and specifically, self-attention.
Let's begin by discussing positional encodings.
Suppose we're translating English text to French.
Positional encodings suggest that instead of considering words sequentially, each word in the sentence is assigned a number, 1, 2, 3, etc., based on its position before being processed by the neural network.
In other words, you store information about word order in the data itself rather than in the structure of the network.
As you train the network on lots of text data, it learns how to interpret those positional encodings.
The neural network learns the importance of word order from the data.
This is a high-level way to understand positional encodings, but it's an innovation that really helps make transformers easier to train than RNNs.
The next innovation in this paper is a concept called attention, which is used widely in machine learning these days.
In fact, the title of the original transformer paper is "Attention Is All You Need."
"So, the agreement for the European Economic Area was signed in August 1992.
Did you know that?
That's the example sentence provided in the original paper.
It's important to remember that the original transformer was designed for translation.
Now, imagine attempting to translate that sentence into French.
One incorrect way to translate text is to try to translate each word individually.
In French, however, certain words are reversed, like in the French translation where European comes before economic.
Additionally, French is a language that incorporates gendered agreement between words.
Therefore, the word [FRENCH] must be in the feminine form to match with [FRENCH].
The attention mechanism is a neural network structure that enables a text model to scrutinize each word in the original sentence when determining how to translate a word in the output sentence."
In fact, there is a nice visualization in that paper that shows which words in the input sentence the model attends to when making predictions about a word for the output sentence.
For instance, when the model produces the word [FRENCH], it is considering the input words European and economic.
You can view this diagram as a heat map for attention.
but how does the model know which words to attend to?
This is something that the model learns over time from data by examining thousands of examples of French and English sentence pairs, through which it learns about gender, word order, plurality and all grammatical aspects.
So we have discussed two fundamental transformer innovations: positional encoding and attention.
However, attention had actually been invented prior to the creation of this paper.
The true innovation in transformers was the implementation of self-attention, which differs from traditional attention.
The latter involves aligning words in languages such as English and French, which is crucial in translation.
However, what if the goal is to comprehend the fundamental meaning of language, in order to build a network capable of completing various language tasks?
The fascinating capability of neural networks, such as transformers, is that as they evaluate vast amounts of textual data, they develop an internal representation or comprehension of language automatically.
They may learn, for instance, that the terms programmer, software engineer, and software developer are all interchangeable.
Additionally, they will naturally learn rules governing grammar, gender, tense, and so on.
The more advanced the network's internal comprehension of language, the more effective it will be at any given language task.
And it turns out that attention can be a very effective way to help a neural network understand language, especially if it is focused on the input text itself.
Let me provide you with an example.
Consider these two sentences: "Server, can I have the check?" versus "Looks like I just crashed the server." The word "server" carries two distinct meanings in these sentences.
I am able to recognize this due to the context of the surrounding words.
Self-attention allows a neural network to comprehend a word within the context of the words that surround it.
Therefore, when a model processes the word "server" in the first sentence, it is likely paying attention to the word "check", which helps it differentiate between a human server and a mail server.
In the second sentence, the model may be using attention on the word "crashed" to infer that the server is a machine.
Self-attention can also aid neural networks in disambiguating words, recognizing parts of speech, and identifying word tense.
This summarizes the significance of self-attention.
Transformers can be reduced to positional encodings, attention, and self-attention.
Of course, this is a bird's-eye view of transformers.
However, how are they practically employed?
One of the most popular transformer-based models is BERT, which was invented around the time I joined Google in 2018.
BERT was trained on an enormous text corpus and has evolved into a versatile tool for NLP that can be adapted to various tasks such as text summarization, question answering, classification, and sentence similarity identification.
It is used in Google Search to aid in understanding search queries and powers many of Google Cloud's NLP tools, such as Google Cloud AutoML Natural Language.
BERT has also demonstrated that excellent models can be built using unlabeled data, such as text scraped from Wikipedia or Reddit.
This approach is known as semi-supervised learning and is currently a major trend in machine learning.
If you're interested in using transformers in your application, TensorFlow Hub is an excellent resource to obtain pretrained transformer models such as BERT in multiple languages that can be easily incorporated into your app.
Additionally, the popular transformers Python library, developed by Hugging Face, is a community favorite for training and utilizing transformer models.
For more transformer tips, please refer to my blog post linked below.
Thank you for watching!