Mergulhe em como funcionam os modelos generativos de IA, o que eles podem ou não fazer e as implicações de todos esses elementos.
A IA generativa, um subconjunto da inteligência artificial, emergiu como uma força revolucionária no mundo da tecnologia. Mas o que é exatamente? E por que está ganhando tanta atenção?
Este guia detalhado abordará como funcionam os modelos generativos de IA, o que eles podem ou não fazer e as implicações de todos esses elementos.
Este guia detalhado abordará como funcionam os modelos generativos de IA, o que eles podem ou não fazer e as implicações de todos esses elementos.
O que é IA generativa?
IA generativa, ou genAI, refere-se a sistemas que podem gerar novos conteúdos, sejam eles textos, imagens, músicas ou até vídeos. Tradicionalmente, IA/ML significava três coisas: aprendizagem supervisionada, não supervisionada e por reforço. Cada um fornece insights com base na saída do cluster.
Os modelos de IA não generativos fazem cálculos com base em informações (como classificar uma imagem ou traduzir uma frase). Em contraste, os modelos generativos produzem “novos” resultados, como escrever ensaios, compor música, desenhar gráficos e até criar rostos humanos realistas que não existem no mundo real.
Os modelos de IA não generativos fazem cálculos com base em informações (como classificar uma imagem ou traduzir uma frase). Em contraste, os modelos generativos produzem “novos” resultados, como escrever ensaios, compor música, desenhar gráficos e até criar rostos humanos realistas que não existem no mundo real.
As implicações da IA generativa
A ascensão da IA generativa tem implicações significativas. Com a capacidade de gerar conteúdo, setores como entretenimento, design e jornalismo estão testemunhando uma mudança de paradigma.
Por exemplo, as agências de notícias podem usar IA para redigir relatórios, enquanto os designers podem obter sugestões de gráficos assistidas por IA. A IA pode gerar centenas de slogans publicitários em segundos – se essas opções são boas ou não, é outra questão.
A IA generativa pode produzir conteúdo personalizado para usuários individuais. Pense em algo como um aplicativo de música que compõe uma música única com base no seu humor ou um aplicativo de notícias que elabora artigos sobre tópicos de seu interesse.
A questão é que, à medida que a IA desempenha um papel mais integral na criação de conteúdos, as questões sobre autenticidade, direitos de autor e o valor da criatividade humana tornam-se mais prevalecentes.
Por exemplo, as agências de notícias podem usar IA para redigir relatórios, enquanto os designers podem obter sugestões de gráficos assistidas por IA. A IA pode gerar centenas de slogans publicitários em segundos – se essas opções são boas ou não, é outra questão.
A IA generativa pode produzir conteúdo personalizado para usuários individuais. Pense em algo como um aplicativo de música que compõe uma música única com base no seu humor ou um aplicativo de notícias que elabora artigos sobre tópicos de seu interesse.
A questão é que, à medida que a IA desempenha um papel mais integral na criação de conteúdos, as questões sobre autenticidade, direitos de autor e o valor da criatividade humana tornam-se mais prevalecentes.
Como funciona a IA generativa?
A IA generativa, em sua essência, trata de prever o próximo dado em uma sequência, seja a próxima palavra em uma frase ou o próximo pixel em uma imagem. Vamos detalhar como isso é conseguido.
Modelos estatísticos
Os modelos estatísticos são a espinha dorsal da maioria dos sistemas de IA. Eles usam equações matemáticas para representar a relação entre diferentes variáveis.
Para IA generativa, os modelos são treinados para reconhecer padrões nos dados e depois usar esses padrões para gerar dados novos e semelhantes.
Se um modelo for treinado em sentenças em inglês, ele aprende a probabilidade estatística de uma palavra seguir a outra, permitindo gerar sentenças coerentes.
Para IA generativa, os modelos são treinados para reconhecer padrões nos dados e depois usar esses padrões para gerar dados novos e semelhantes.
Se um modelo for treinado em sentenças em inglês, ele aprende a probabilidade estatística de uma palavra seguir a outra, permitindo gerar sentenças coerentes.
Coleta de dados
Tanto a qualidade como a quantidade de dados são cruciais. Os modelos generativos são treinados em vastos conjuntos de dados para compreender padrões.
Para um modelo de linguagem, isso pode significar a ingestão de bilhões de palavras de livros, sites e outros textos.
Para um modelo de imagem, isso pode significar a análise de milhões de imagens. Quanto mais diversificados e abrangentes forem os dados de treinamento, melhor o modelo gerará diversos resultados.
Para um modelo de linguagem, isso pode significar a ingestão de bilhões de palavras de livros, sites e outros textos.
Para um modelo de imagem, isso pode significar a análise de milhões de imagens. Quanto mais diversificados e abrangentes forem os dados de treinamento, melhor o modelo gerará diversos resultados.
Como funcionam os transformadores e a atenção
Os transformadores são um tipo de arquitetura de rede neural introduzida em um artigo de 2017 intitulado “ Atenção é tudo que você precisa ”, de Vaswani et al. Desde então, eles se tornaram a base para a maioria dos modelos de linguagem de última geração. ChatGPT não funcionaria sem transformadores.
O mecanismo de “atenção” permite que o modelo se concentre em diferentes partes dos dados de entrada, da mesma forma que os humanos prestam atenção a palavras específicas ao compreender uma frase.
Este mecanismo permite que o modelo decida quais partes da entrada são relevantes para uma determinada tarefa, tornando-o altamente flexível e poderoso.
O código abaixo é uma análise fundamental dos mecanismos do transformador, explicando cada peça em inglês simples.
class Transformer:
# Convert words to vectors
# What this is: turns words into "vector embeddings" –basically numbers that represent the words and their relationships to each other.
# Demo: "the pineapple is cool and tasty" -> [0.2, 0.5, 0.3, 0.8, 0.1, 0.9]
self.embedding = Embedding(vocab_size, d_model)
# Add position information to the vectors
# What this is: Since words in a sentence have a specific order, we add information about each word's position in the sentence.
# Demo: "the pineapple is cool and tasty" with position -> [0.2+0.01, 0.5+0.02, 0.3+0.03, 0.8+0.04, 0.1+0.05, 0.9+0.06]
self.positional_encoding = PositionalEncoding(d_model)
# Stack of transformer layers
# What this is: Multiple layers of the Transformer model stacked on top of each other to process data in depth.
# Why it does it: Each layer captures different patterns and relationships in the data.
# Explained like I'm five: Imagine a multi-story building. Each floor (or layer) has people (or mechanisms) doing specific jobs. The more floors, the more jobs get done!
self.transformer_layers = [TransformerLayer(d_model, nhead) for _ in range(num_layers)]
# Convert the output vectors to word probabilities
# What this is: A way to predict the next word in a sequence.
# Why it does it: After processing the input, we want to guess what word comes next.
# Explained like I'm five: After listening to a story, this tries to guess what happens next.
self.output_layer = Linear(d_model, vocab_size)
def forward(self, x):
# Convert words to vectors, as above
x = self.embedding(x)
# Add position information, as above
x = self.positional_encoding(x)
# Pass through each transformer layer
# What this is: Sending our data through each floor of our multi-story building.
# Why it does it: To deeply process and understand the data.
# Explained like I'm five: It's like passing a note in class. Each person (or layer) adds something to the note before passing it on, which can end up with a coherent story – or a mess.
for layer in self.transformer_layers:
x = layer(x)
# Get the output word probabilities
# What this is: Our best guess for the next word in the sequence.
return self.output_layer(x)
No código, você pode ter uma classe Transformer e uma única classe TransformerLayer. É como ter uma planta de um andar em vez de um edifício inteiro.
Este trecho de código do TransformerLayer mostra como funcionam componentes específicos, como atenção de vários cabeçotes e arranjos específicos.
O mecanismo de “atenção” permite que o modelo se concentre em diferentes partes dos dados de entrada, da mesma forma que os humanos prestam atenção a palavras específicas ao compreender uma frase.
Este mecanismo permite que o modelo decida quais partes da entrada são relevantes para uma determinada tarefa, tornando-o altamente flexível e poderoso.
O código abaixo é uma análise fundamental dos mecanismos do transformador, explicando cada peça em inglês simples.
class Transformer:
# Convert words to vectors
# What this is: turns words into "vector embeddings" –basically numbers that represent the words and their relationships to each other.
# Demo: "the pineapple is cool and tasty" -> [0.2, 0.5, 0.3, 0.8, 0.1, 0.9]
self.embedding = Embedding(vocab_size, d_model)
# Add position information to the vectors
# What this is: Since words in a sentence have a specific order, we add information about each word's position in the sentence.
# Demo: "the pineapple is cool and tasty" with position -> [0.2+0.01, 0.5+0.02, 0.3+0.03, 0.8+0.04, 0.1+0.05, 0.9+0.06]
self.positional_encoding = PositionalEncoding(d_model)
# Stack of transformer layers
# What this is: Multiple layers of the Transformer model stacked on top of each other to process data in depth.
# Why it does it: Each layer captures different patterns and relationships in the data.
# Explained like I'm five: Imagine a multi-story building. Each floor (or layer) has people (or mechanisms) doing specific jobs. The more floors, the more jobs get done!
self.transformer_layers = [TransformerLayer(d_model, nhead) for _ in range(num_layers)]
# Convert the output vectors to word probabilities
# What this is: A way to predict the next word in a sequence.
# Why it does it: After processing the input, we want to guess what word comes next.
# Explained like I'm five: After listening to a story, this tries to guess what happens next.
self.output_layer = Linear(d_model, vocab_size)
def forward(self, x):
# Convert words to vectors, as above
x = self.embedding(x)
# Add position information, as above
x = self.positional_encoding(x)
# Pass through each transformer layer
# What this is: Sending our data through each floor of our multi-story building.
# Why it does it: To deeply process and understand the data.
# Explained like I'm five: It's like passing a note in class. Each person (or layer) adds something to the note before passing it on, which can end up with a coherent story – or a mess.
for layer in self.transformer_layers:
x = layer(x)
# Get the output word probabilities
# What this is: Our best guess for the next word in the sequence.
return self.output_layer(x)
No código, você pode ter uma classe Transformer e uma única classe TransformerLayer. É como ter uma planta de um andar em vez de um edifício inteiro.
Este trecho de código do TransformerLayer mostra como funcionam componentes específicos, como atenção de vários cabeçotes e arranjos específicos.
class TransformerLayer:
# Multi-head attention mechanism
# What this is: A mechanism that lets the model focus on different parts of the input data simultaneously.
# Demo: "the pineapple is cool and tasty" might become "this PINEAPPLE is COOL and TASTY" as the model pays more attention to certain words.
self.attention = MultiHeadAttention(d_model, nhead)
# Simple feed-forward neural network
# What this is: A basic neural network that processes the data after the attention mechanism.
# Demo: "this PINEAPPLE is COOL and TASTY" -> [0.25, 0.55, 0.35, 0.85, 0.15, 0.95] (slight changes in numbers after processing)
self.feed_forward = FeedForward(d_model)
def forward(self, x):
# Apply attention mechanism
# What this is: The step where we focus on different parts of the sentence.
# Explained like I'm five: It's like highlighting important parts of a book.
attention_output = self.attention(x, x, x)
# Pass the output through the feed-forward network
# What this is: The step where we process the highlighted information.
return self.feed_forward(attention_output)
Uma rede neural feed-forward é um dos tipos mais simples de redes neurais artificiais. Consiste em uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída.
Os dados fluem em uma direção – da camada de entrada, passando pelas camadas ocultas e até a camada de saída. Não há loops ou ciclos na rede.
No contexto da arquitetura do transformador, a rede neural feed-forward é utilizada após o mecanismo de atenção em cada camada. É uma transformação linear simples de duas camadas com uma ativação ReLU entre elas.
# Scaled dot-product attention mechanism
class ScaledDotProductAttention:
def __init__(self, d_model):
# Scaling factor helps in stabilizing the gradients
# it reduces the variance of the dot product.
# What this is: A scaling factor based on the size of our model's embeddings.
# What it does: Helps to make sure the dot products don't get too big.
# Why it does it: Big dot products can make a model unstable and harder to train.
# How it does it: By dividing the dot products by the square root of the embedding size.
# It's used when calculating attention scores.
# Explained like I'm five: Imagine you shouted something really loud. This scaling factor is like turning the volume down so it's not too loud.
self.scaling_factor = d_model ** 0.5
def forward(self, query, key, value):
# What this is: The function that calculates how much attention each word should get.
# What it does: Determines how relevant each word in a sentence is to every other word.
# Why it does it: So we can focus more on important words when trying to understand a sentence.
# How it does it: By taking the dot product (the numeric product: a way to measure similarity) of the query and key, then scaling it, and finally using that to weigh our values.
# How it fits into the rest of the code: This function is called whenever we want to calculate attention in our model.
# Explained like I'm five: Imagine you have a toy and you want to see which of your friends likes it the most. This function is like asking each friend how much they like the toy, and then deciding who gets to play with it based on their answers.
# Calculate attention scores by taking the dot product of the query and key.
scores = dot_product(query, key) / self.scaling_factor
# Convert the raw scores to probabilities using the softmax function.
attention_weights = softmax(scores)
# Weight the values using the attention probabilities.
return dot_product(attention_weights, value)
# Feed-forward neural network
# This is an extremely basic example of a neural network.
class FeedForward:
def __init__(self, d_model):
# First linear layer increases the dimensionality of the data.
self.layer1 = Linear(d_model, d_model * 4)
# Second linear layer brings the dimensionality back to d_model.
self.layer2 = Linear(d_model * 4, d_model)
def forward(self, x):
# Pass the input through the first layer,
#Pass the input through the first layer:
# Input: This refers to the data you feed into the neural network. I
#First layer: Neural networks consist of layers, and each layer has neurons. When we say "pass the input through the first layer," we mean that the input data is being processed by the neurons in this layer. Each neuron takes the input, multiplies it by its weights (which are learned during training), and produces an output.
# apply ReLU activation to introduce non-linearity,
# and then pass through the second layer.
#ReLU activation: ReLU stands for Rectified Linear Unit.
# It's a type of activation function, which is a mathematical function applied to the output of each neuron. In simpler terms, if the input is positive, it returns the input value; if the input is negative or zero, it returns zero.
# Neural networks can model complex relationships in data by introducing non-linearities.
# Without non-linear activation functions, no matter how many layers you stack in a neural network, it would behave just like a single-layer perceptron because summing these layers would give you another linear model.
# Non-linearities allow the network to capture complex patterns and make better predictions.
return self.layer2(relu(self.layer1(x)))
# Positional encoding adds information about the position of each word in the sequence.
class PositionalEncoding:
def __init__(self, d_model):
# What this is: A setup to add information about where each word is in a sentence.
# What it does: Prepares to add a unique "position" value to each word.
# Why it does it: Words in a sentence have an order, and this helps the model remember that order.
# How it does it: By creating a special pattern of numbers for each position in a sentence.
# How it fits into the rest of the code: Before processing words, we add their position info.
# Explained like I'm five: Imagine you're in a line with your friends. This gives everyone a number to remember their place in line.
pass
def forward(self, x):
# What this is: The main function that adds position info to our words.
# What it does: Combines the word's original value with its position value.
# Why it does it: So the model knows the order of words in a sentence.
# How it does it: By adding the position values we prepared earlier to the word values.
# How it fits into the rest of the code: This function is called whenever we want to add position info to our words.
# Explained like I'm five: It's like giving each of your toys a tag that says if it's the 1st, 2nd, 3rd toy, and so on.
return x
# Helper functions
def dot_product(a, b):
# Calculate the dot product of two matrices.
# What this is: A mathematical operation to see how similar two lists of numbers are.
# What it does: Multiplies matching items in the lists and then adds them up.
# Why it does it: To measure similarity or relevance between two sets of data.
# How it does it: By multiplying and summing up.
# How it fits into the rest of the code: Used in attention to see how relevant words are to each other.
# Explained like I'm five: Imagine you and your friend have bags of candies. You both pour them out and match each candy type. Then, you count how many matching pairs you have.
return a @ b.transpose(-2, -1)
def softmax(x):
# Convert raw scores to probabilities ensuring they sum up to 1.
# What this is: A way to turn any list of numbers into probabilities.
# What it does: Makes the numbers between 0 and 1 and ensures they all add up to 1.
# Why it does it: So we can understand the numbers as chances or probabilities.
# How it does it: By using exponentiation and division.
# How it fits into the rest of the code: Used to convert attention scores into probabilities.
# Explained like I'm five: Lets go back to our toys. This makes sure that when you share them, everyone gets a fair share, and no toy is left behind.
return exp(x) / sum(exp(x), axis=-1)
def relu(x):
# Activation function that introduces non-linearity. It sets negative values to 0.
# What this is: A simple rule for numbers.
# What it does: If a number is negative, it changes it to zero. Otherwise, it leaves it as it is.
# Why it does it: To introduce some simplicity and non-linearity in our model's calculations.
# How it does it: By checking each number and setting it to zero if it's negative.
# How it fits into the rest of the code: Used in neural networks to make them more powerful and flexible.
# Explained like I'm five: Imagine you have some stickers, some are shiny (positive numbers) and some are dull (negative numbers). This rule says to replace all dull stickers with blank ones.
return max(0, x)
# Multi-head attention mechanism
# What this is: A mechanism that lets the model focus on different parts of the input data simultaneously.
# Demo: "the pineapple is cool and tasty" might become "this PINEAPPLE is COOL and TASTY" as the model pays more attention to certain words.
self.attention = MultiHeadAttention(d_model, nhead)
# Simple feed-forward neural network
# What this is: A basic neural network that processes the data after the attention mechanism.
# Demo: "this PINEAPPLE is COOL and TASTY" -> [0.25, 0.55, 0.35, 0.85, 0.15, 0.95] (slight changes in numbers after processing)
self.feed_forward = FeedForward(d_model)
def forward(self, x):
# Apply attention mechanism
# What this is: The step where we focus on different parts of the sentence.
# Explained like I'm five: It's like highlighting important parts of a book.
attention_output = self.attention(x, x, x)
# Pass the output through the feed-forward network
# What this is: The step where we process the highlighted information.
return self.feed_forward(attention_output)
Uma rede neural feed-forward é um dos tipos mais simples de redes neurais artificiais. Consiste em uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída.
Os dados fluem em uma direção – da camada de entrada, passando pelas camadas ocultas e até a camada de saída. Não há loops ou ciclos na rede.
No contexto da arquitetura do transformador, a rede neural feed-forward é utilizada após o mecanismo de atenção em cada camada. É uma transformação linear simples de duas camadas com uma ativação ReLU entre elas.
# Scaled dot-product attention mechanism
class ScaledDotProductAttention:
def __init__(self, d_model):
# Scaling factor helps in stabilizing the gradients
# it reduces the variance of the dot product.
# What this is: A scaling factor based on the size of our model's embeddings.
# What it does: Helps to make sure the dot products don't get too big.
# Why it does it: Big dot products can make a model unstable and harder to train.
# How it does it: By dividing the dot products by the square root of the embedding size.
# It's used when calculating attention scores.
# Explained like I'm five: Imagine you shouted something really loud. This scaling factor is like turning the volume down so it's not too loud.
self.scaling_factor = d_model ** 0.5
def forward(self, query, key, value):
# What this is: The function that calculates how much attention each word should get.
# What it does: Determines how relevant each word in a sentence is to every other word.
# Why it does it: So we can focus more on important words when trying to understand a sentence.
# How it does it: By taking the dot product (the numeric product: a way to measure similarity) of the query and key, then scaling it, and finally using that to weigh our values.
# How it fits into the rest of the code: This function is called whenever we want to calculate attention in our model.
# Explained like I'm five: Imagine you have a toy and you want to see which of your friends likes it the most. This function is like asking each friend how much they like the toy, and then deciding who gets to play with it based on their answers.
# Calculate attention scores by taking the dot product of the query and key.
scores = dot_product(query, key) / self.scaling_factor
# Convert the raw scores to probabilities using the softmax function.
attention_weights = softmax(scores)
# Weight the values using the attention probabilities.
return dot_product(attention_weights, value)
# Feed-forward neural network
# This is an extremely basic example of a neural network.
class FeedForward:
def __init__(self, d_model):
# First linear layer increases the dimensionality of the data.
self.layer1 = Linear(d_model, d_model * 4)
# Second linear layer brings the dimensionality back to d_model.
self.layer2 = Linear(d_model * 4, d_model)
def forward(self, x):
# Pass the input through the first layer,
#Pass the input through the first layer:
# Input: This refers to the data you feed into the neural network. I
#First layer: Neural networks consist of layers, and each layer has neurons. When we say "pass the input through the first layer," we mean that the input data is being processed by the neurons in this layer. Each neuron takes the input, multiplies it by its weights (which are learned during training), and produces an output.
# apply ReLU activation to introduce non-linearity,
# and then pass through the second layer.
#ReLU activation: ReLU stands for Rectified Linear Unit.
# It's a type of activation function, which is a mathematical function applied to the output of each neuron. In simpler terms, if the input is positive, it returns the input value; if the input is negative or zero, it returns zero.
# Neural networks can model complex relationships in data by introducing non-linearities.
# Without non-linear activation functions, no matter how many layers you stack in a neural network, it would behave just like a single-layer perceptron because summing these layers would give you another linear model.
# Non-linearities allow the network to capture complex patterns and make better predictions.
return self.layer2(relu(self.layer1(x)))
# Positional encoding adds information about the position of each word in the sequence.
class PositionalEncoding:
def __init__(self, d_model):
# What this is: A setup to add information about where each word is in a sentence.
# What it does: Prepares to add a unique "position" value to each word.
# Why it does it: Words in a sentence have an order, and this helps the model remember that order.
# How it does it: By creating a special pattern of numbers for each position in a sentence.
# How it fits into the rest of the code: Before processing words, we add their position info.
# Explained like I'm five: Imagine you're in a line with your friends. This gives everyone a number to remember their place in line.
pass
def forward(self, x):
# What this is: The main function that adds position info to our words.
# What it does: Combines the word's original value with its position value.
# Why it does it: So the model knows the order of words in a sentence.
# How it does it: By adding the position values we prepared earlier to the word values.
# How it fits into the rest of the code: This function is called whenever we want to add position info to our words.
# Explained like I'm five: It's like giving each of your toys a tag that says if it's the 1st, 2nd, 3rd toy, and so on.
return x
# Helper functions
def dot_product(a, b):
# Calculate the dot product of two matrices.
# What this is: A mathematical operation to see how similar two lists of numbers are.
# What it does: Multiplies matching items in the lists and then adds them up.
# Why it does it: To measure similarity or relevance between two sets of data.
# How it does it: By multiplying and summing up.
# How it fits into the rest of the code: Used in attention to see how relevant words are to each other.
# Explained like I'm five: Imagine you and your friend have bags of candies. You both pour them out and match each candy type. Then, you count how many matching pairs you have.
return a @ b.transpose(-2, -1)
def softmax(x):
# Convert raw scores to probabilities ensuring they sum up to 1.
# What this is: A way to turn any list of numbers into probabilities.
# What it does: Makes the numbers between 0 and 1 and ensures they all add up to 1.
# Why it does it: So we can understand the numbers as chances or probabilities.
# How it does it: By using exponentiation and division.
# How it fits into the rest of the code: Used to convert attention scores into probabilities.
# Explained like I'm five: Lets go back to our toys. This makes sure that when you share them, everyone gets a fair share, and no toy is left behind.
return exp(x) / sum(exp(x), axis=-1)
def relu(x):
# Activation function that introduces non-linearity. It sets negative values to 0.
# What this is: A simple rule for numbers.
# What it does: If a number is negative, it changes it to zero. Otherwise, it leaves it as it is.
# Why it does it: To introduce some simplicity and non-linearity in our model's calculations.
# How it does it: By checking each number and setting it to zero if it's negative.
# How it fits into the rest of the code: Used in neural networks to make them more powerful and flexible.
# Explained like I'm five: Imagine you have some stickers, some are shiny (positive numbers) and some are dull (negative numbers). This rule says to replace all dull stickers with blank ones.
return max(0, x)
Como funciona a IA generativa – em termos simples
Pense na IA generativa como o lançamento de um dado ponderado. Os dados de treinamento determinam os pesos (ou probabilidades).
Se o dado representar a próxima palavra em uma frase, uma palavra que frequentemente segue a palavra atual nos dados de treinamento terá um peso maior. Portanto, “céu” pode seguir “azul” com mais frequência do que “banana”. Quando a IA “joga os dados” para gerar conteúdo, é mais provável que escolha sequências estatisticamente mais prováveis com base no seu treinamento.
Então, como os LLMs podem gerar conteúdo que “parece” original?
Vamos pegar uma lista falsa – os “melhores presentes de Eid al-Fitr para profissionais de marketing de conteúdo” – e ver como um LLM pode gerar essa lista combinando dicas textuais de documentos sobre presentes, Eid e profissionais de marketing de conteúdo.
Antes do processamento, o texto é dividido em pedaços menores chamados “tokens”. Esses tokens podem ter apenas um caractere ou uma palavra.
Exemplo: “Eid al-Fitr é uma celebração” torna-se [“Eid”, “al-Fitr”, “é”, “uma”, “celebração”].
Isso permite que o modelo trabalhe com pedaços de texto gerenciáveis e compreenda a estrutura das frases.
Cada token é então convertido em um vetor (uma lista de números) usando embeddings. Esses vetores capturam o significado e o contexto de cada palavra.
A codificação posicional adiciona informações a cada vetor de palavras sobre sua posição na frase, garantindo que o modelo não perca essas informações de ordem.
Em seguida, usamos um mecanismo de atenção : isso permite que o modelo se concentre em diferentes partes do texto de entrada ao gerar uma saída. Se você se lembra do BERT, isso é o que mais entusiasmou os Googlers em relação ao BERT.
Se o nosso modelo viu textos sobre “ presentes ” e sabe que as pessoas dão presentes durante as celebrações , e também viu textos sobre o “ Eid al-Fitr ” ser uma celebração significativa , prestará “ atenção ” a estas ligações.
Da mesma forma, se tiver visto textos sobre “ profissionais de marketing de conteúdo ” que precisam de ferramentas ou recursos específicos , pode conectar a ideia de “ presentes ” a “ profissionais de marketing de conteúdo ”.
Se o dado representar a próxima palavra em uma frase, uma palavra que frequentemente segue a palavra atual nos dados de treinamento terá um peso maior. Portanto, “céu” pode seguir “azul” com mais frequência do que “banana”. Quando a IA “joga os dados” para gerar conteúdo, é mais provável que escolha sequências estatisticamente mais prováveis com base no seu treinamento.
Então, como os LLMs podem gerar conteúdo que “parece” original?
Vamos pegar uma lista falsa – os “melhores presentes de Eid al-Fitr para profissionais de marketing de conteúdo” – e ver como um LLM pode gerar essa lista combinando dicas textuais de documentos sobre presentes, Eid e profissionais de marketing de conteúdo.
Antes do processamento, o texto é dividido em pedaços menores chamados “tokens”. Esses tokens podem ter apenas um caractere ou uma palavra.
Exemplo: “Eid al-Fitr é uma celebração” torna-se [“Eid”, “al-Fitr”, “é”, “uma”, “celebração”].
Isso permite que o modelo trabalhe com pedaços de texto gerenciáveis e compreenda a estrutura das frases.
Cada token é então convertido em um vetor (uma lista de números) usando embeddings. Esses vetores capturam o significado e o contexto de cada palavra.
A codificação posicional adiciona informações a cada vetor de palavras sobre sua posição na frase, garantindo que o modelo não perca essas informações de ordem.
Em seguida, usamos um mecanismo de atenção : isso permite que o modelo se concentre em diferentes partes do texto de entrada ao gerar uma saída. Se você se lembra do BERT, isso é o que mais entusiasmou os Googlers em relação ao BERT.
Se o nosso modelo viu textos sobre “ presentes ” e sabe que as pessoas dão presentes durante as celebrações , e também viu textos sobre o “ Eid al-Fitr ” ser uma celebração significativa , prestará “ atenção ” a estas ligações.
Da mesma forma, se tiver visto textos sobre “ profissionais de marketing de conteúdo ” que precisam de ferramentas ou recursos específicos , pode conectar a ideia de “ presentes ” a “ profissionais de marketing de conteúdo ”.
Agora podemos combinar contextos: à medida que o modelo processa o texto de entrada através de múltiplas camadas do Transformer, ele combina os contextos que aprendeu.
Assim, mesmo que os textos originais nunca tenham mencionado “presentes de Eid al-Fitr para profissionais de marketing de conteúdo”, o modelo pode reunir os conceitos de “Eid al-Fitr”, “presentes” e “profissionais de marketing de conteúdo” para gerar esse conteúdo.
Isso ocorre porque aprendeu os contextos mais amplos em torno de cada um desses termos.
Depois de processar a entrada através do mecanismo de atenção e das redes feed-forward em cada camada do Transformer, o modelo produz uma distribuição de probabilidade sobre seu vocabulário para a próxima palavra na sequência.
Pode-se pensar que depois de palavras como “melhor” e “Eid al-Fitr”, a palavra “presentes” tem uma grande probabilidade de vir a seguir. Da mesma forma, pode associar “presentes” a destinatários potenciais, como “profissionais de marketing de conteúdo”.
Assim, mesmo que os textos originais nunca tenham mencionado “presentes de Eid al-Fitr para profissionais de marketing de conteúdo”, o modelo pode reunir os conceitos de “Eid al-Fitr”, “presentes” e “profissionais de marketing de conteúdo” para gerar esse conteúdo.
Isso ocorre porque aprendeu os contextos mais amplos em torno de cada um desses termos.
Depois de processar a entrada através do mecanismo de atenção e das redes feed-forward em cada camada do Transformer, o modelo produz uma distribuição de probabilidade sobre seu vocabulário para a próxima palavra na sequência.
Pode-se pensar que depois de palavras como “melhor” e “Eid al-Fitr”, a palavra “presentes” tem uma grande probabilidade de vir a seguir. Da mesma forma, pode associar “presentes” a destinatários potenciais, como “profissionais de marketing de conteúdo”.
Como grandes modelos de linguagem são construídos
A jornada de um modelo básico de transformador para um sofisticado modelo de linguagem grande (LLM), como GPT-3 ou BERT, envolve ampliar e refinar vários componentes.
Aqui está uma análise passo a passo:
LLMs são treinados em grandes quantidades de dados de texto. É difícil explicar quão vastos são esses dados.
O conjunto de dados C4 , ponto de partida para muitos LLMs, tem 750 GB de dados de texto. São 805.306.368.000 bytes – muita informação. Esses dados podem incluir livros, artigos, sites, fóruns, seções de comentários e outras fontes.
Quanto mais variados e abrangentes forem os dados, melhores serão as capacidades de compreensão e generalização do modelo.
Embora a arquitetura básica do transformador continue sendo a base, os LLMs têm um número significativamente maior de parâmetros. O GPT-3, por exemplo, possui 175 bilhões de parâmetros. Neste caso, os parâmetros referem-se aos pesos e vieses da rede neural que são aprendidos durante o processo de treinamento.
No aprendizado profundo, um modelo é treinado para fazer previsões ajustando esses parâmetros para reduzir a diferença entre suas previsões e os resultados reais.
O processo de ajuste desses parâmetros é chamado de otimização, que utiliza algoritmos como gradiente descendente.
Aqui está uma análise passo a passo:
LLMs são treinados em grandes quantidades de dados de texto. É difícil explicar quão vastos são esses dados.
O conjunto de dados C4 , ponto de partida para muitos LLMs, tem 750 GB de dados de texto. São 805.306.368.000 bytes – muita informação. Esses dados podem incluir livros, artigos, sites, fóruns, seções de comentários e outras fontes.
Quanto mais variados e abrangentes forem os dados, melhores serão as capacidades de compreensão e generalização do modelo.
Embora a arquitetura básica do transformador continue sendo a base, os LLMs têm um número significativamente maior de parâmetros. O GPT-3, por exemplo, possui 175 bilhões de parâmetros. Neste caso, os parâmetros referem-se aos pesos e vieses da rede neural que são aprendidos durante o processo de treinamento.
No aprendizado profundo, um modelo é treinado para fazer previsões ajustando esses parâmetros para reduzir a diferença entre suas previsões e os resultados reais.
O processo de ajuste desses parâmetros é chamado de otimização, que utiliza algoritmos como gradiente descendente.
Pesos: são valores da rede neural que transformam os dados de entrada nas camadas da rede. Eles são ajustados durante o treinamento para otimizar a saída do modelo. Cada conexão entre neurônios em camadas adjacentes possui um peso associado.
Vieses: Esses também são valores na rede neural que são adicionados à saída da transformação de uma camada. Eles fornecem um grau adicional de liberdade ao modelo, permitindo que ele se ajuste melhor aos dados de treinamento. Cada neurônio em uma camada possui um viés associado.
Esse dimensionamento permite que o modelo armazene e processe padrões e relacionamentos mais complexos nos dados.
O grande número de parâmetros também significa que o modelo requer poder computacional e memória significativos para treinamento e inferência. É por isso que o treinamento de tais modelos consome muitos recursos e normalmente usa hardware especializado, como GPUs ou TPUs.
O modelo é treinado para prever a próxima palavra em uma sequência usando recursos computacionais poderosos. Ajusta seus parâmetros internos com base nos erros que comete, melhorando continuamente suas previsões.
Mecanismos de atenção como os que discutimos são fundamentais para os LLMs. Eles permitem que o modelo se concentre em diferentes partes da entrada ao gerar a saída.
Ao pesar a importância de diferentes palavras num contexto, os mecanismos de atenção permitem ao modelo gerar texto coerente e contextualmente relevante. Fazer isso em grande escala permite que os LLMs funcionem da maneira que funcionam.
Como um transformador prevê texto?
Os transformadores prevêem texto processando tokens de entrada através de múltiplas camadas, cada uma equipada com mecanismos de atenção e redes feed-forward.
Após o processamento, o modelo produz uma distribuição de probabilidade sobre seu vocabulário para a próxima palavra na sequência. A palavra com a maior probabilidade é normalmente selecionada como previsão.
Vieses: Esses também são valores na rede neural que são adicionados à saída da transformação de uma camada. Eles fornecem um grau adicional de liberdade ao modelo, permitindo que ele se ajuste melhor aos dados de treinamento. Cada neurônio em uma camada possui um viés associado.
Esse dimensionamento permite que o modelo armazene e processe padrões e relacionamentos mais complexos nos dados.
O grande número de parâmetros também significa que o modelo requer poder computacional e memória significativos para treinamento e inferência. É por isso que o treinamento de tais modelos consome muitos recursos e normalmente usa hardware especializado, como GPUs ou TPUs.
O modelo é treinado para prever a próxima palavra em uma sequência usando recursos computacionais poderosos. Ajusta seus parâmetros internos com base nos erros que comete, melhorando continuamente suas previsões.
Mecanismos de atenção como os que discutimos são fundamentais para os LLMs. Eles permitem que o modelo se concentre em diferentes partes da entrada ao gerar a saída.
Ao pesar a importância de diferentes palavras num contexto, os mecanismos de atenção permitem ao modelo gerar texto coerente e contextualmente relevante. Fazer isso em grande escala permite que os LLMs funcionem da maneira que funcionam.
Como um transformador prevê texto?
Os transformadores prevêem texto processando tokens de entrada através de múltiplas camadas, cada uma equipada com mecanismos de atenção e redes feed-forward.
Após o processamento, o modelo produz uma distribuição de probabilidade sobre seu vocabulário para a próxima palavra na sequência. A palavra com a maior probabilidade é normalmente selecionada como previsão.
Como um grande modelo de linguagem é construído e treinado?
Construir um LLM envolve coletar dados, limpá-los, treinar o modelo, ajustar o modelo e testes vigorosos e contínuos.
The model is initially trained on a vast corpus to predict the next word in a sequence. This phase allows the model to learn connections between words that pick up patterns in grammar, relationships that can represent facts about the world and connections that feel like logical reasoning. These connections also make it pick up biases present in the training data.
After pre-training, the model is refined on a narrower dataset, often with human reviewers following guidelines.
Fine-tuning is a crucial step in building LLMs. It involves training the pre-trained model on a more specific dataset or task. Let's take ChatGPT as an example.
If you’ve played with GPT models, you know that prompting is less “write this thing” and more like
Prompt: Once upon a time
Continuação: Havia um bruxo malvado no topo de uma torre.
Dica : Por que a galinha entrou para uma banda?
Continuação : Porque tinha as baquetas!
Chegar ao ChatGPT a partir desse ponto envolve muito trabalho mal remunerado. Essas pessoas criam imensos corpora para identificar o peso das respostas da GPT e dos comportamentos esperados. Esses trabalhadores criam toneladas de textos de prompt/continuação que são como:
Dica : Termine esta história: “Era uma vez..”
Continuação : Claro! Era uma vez, numa terra muito, muito distante, uma pequena aldeia aninhada entre duas majestosas montanhas.
Dica : Conte-me uma piada sobre uma galinha.
Continuação : Por que a galinha entrou para uma banda? Porque tinha as baquetas!
Este processo de ajuste fino é essencial por vários motivos:
Especificidade: Embora o pré-treinamento proporcione ao modelo uma compreensão ampla da linguagem, o ajuste fino restringe seu conhecimento e comportamento para se alinhar mais com tarefas ou domínios específicos. Por exemplo, um modelo ajustado com base em dados médicos responderá melhor às perguntas médicas.
Controle: o ajuste fino dá aos desenvolvedores mais controle sobre os resultados do modelo. Os desenvolvedores podem usar um conjunto de dados selecionado para orientar o modelo a produzir as respostas desejadas e evitar comportamentos indesejados.
Segurança: Ajuda a reduzir resultados prejudiciais ou tendenciosos. Ao usar diretrizes durante o processo de ajuste fino, os revisores humanos podem garantir que o modelo não produza conteúdo impróprio.
Desempenho: o ajuste fino pode melhorar significativamente o desempenho do modelo em tarefas específicas. Por exemplo, um modelo que foi ajustado para suporte ao cliente será muito melhor nisso do que um modelo genérico.
Você pode dizer que o ChatGPT foi aprimorado em alguns aspectos.
Por exemplo, “raciocínio lógico” é algo com que os LLMs tendem a ter dificuldades. O melhor modelo de raciocínio lógico do ChatGPT – GPT-4 – foi intensamente treinado para reconhecer explicitamente padrões em números.
Em vez de algo assim:
Dica : Quanto é 2+2?
Processo : Muitas vezes em livros didáticos de matemática para crianças 2+2 =4. Ocasionalmente, há referências a "2+2=5", mas geralmente há mais contexto relacionado a George Orwell ou Star Trek, quando for o caso. Se isto fosse nesse contexto o peso seria mais a favor de 2+2=5. Mas esse contexto não existe, então neste caso o próximo token é provavelmente o 4.
Resposta : 2+2=4
O treinamento faz algo assim:
treinamento: 2+2=4
treinamento: 4/2=2
treinamento: metade de 4 é 2
treinamento: 2 de 2 é quatro
…e assim por diante.
Isso significa que para os modelos mais “lógicos”, o processo de treinamento é mais rigoroso e focado em garantir que o modelo compreenda e aplique corretamente os princípios lógicos e matemáticos.
O modelo é exposto a vários problemas matemáticos e suas soluções, garantindo que possa generalizar e aplicar esses princípios a problemas novos e inéditos.
A importância deste processo de ajuste fino, especialmente para o raciocínio lógico, não pode ser exagerada. Sem ele, o modelo pode fornecer respostas incorretas ou sem sentido a questões lógicas ou matemáticas simples.
The model is initially trained on a vast corpus to predict the next word in a sequence. This phase allows the model to learn connections between words that pick up patterns in grammar, relationships that can represent facts about the world and connections that feel like logical reasoning. These connections also make it pick up biases present in the training data.
After pre-training, the model is refined on a narrower dataset, often with human reviewers following guidelines.
Fine-tuning is a crucial step in building LLMs. It involves training the pre-trained model on a more specific dataset or task. Let's take ChatGPT as an example.
If you’ve played with GPT models, you know that prompting is less “write this thing” and more like
Prompt: Once upon a time
Continuação: Havia um bruxo malvado no topo de uma torre.
Dica : Por que a galinha entrou para uma banda?
Continuação : Porque tinha as baquetas!
Chegar ao ChatGPT a partir desse ponto envolve muito trabalho mal remunerado. Essas pessoas criam imensos corpora para identificar o peso das respostas da GPT e dos comportamentos esperados. Esses trabalhadores criam toneladas de textos de prompt/continuação que são como:
Dica : Termine esta história: “Era uma vez..”
Continuação : Claro! Era uma vez, numa terra muito, muito distante, uma pequena aldeia aninhada entre duas majestosas montanhas.
Dica : Conte-me uma piada sobre uma galinha.
Continuação : Por que a galinha entrou para uma banda? Porque tinha as baquetas!
Este processo de ajuste fino é essencial por vários motivos:
Especificidade: Embora o pré-treinamento proporcione ao modelo uma compreensão ampla da linguagem, o ajuste fino restringe seu conhecimento e comportamento para se alinhar mais com tarefas ou domínios específicos. Por exemplo, um modelo ajustado com base em dados médicos responderá melhor às perguntas médicas.
Controle: o ajuste fino dá aos desenvolvedores mais controle sobre os resultados do modelo. Os desenvolvedores podem usar um conjunto de dados selecionado para orientar o modelo a produzir as respostas desejadas e evitar comportamentos indesejados.
Segurança: Ajuda a reduzir resultados prejudiciais ou tendenciosos. Ao usar diretrizes durante o processo de ajuste fino, os revisores humanos podem garantir que o modelo não produza conteúdo impróprio.
Desempenho: o ajuste fino pode melhorar significativamente o desempenho do modelo em tarefas específicas. Por exemplo, um modelo que foi ajustado para suporte ao cliente será muito melhor nisso do que um modelo genérico.
Você pode dizer que o ChatGPT foi aprimorado em alguns aspectos.
Por exemplo, “raciocínio lógico” é algo com que os LLMs tendem a ter dificuldades. O melhor modelo de raciocínio lógico do ChatGPT – GPT-4 – foi intensamente treinado para reconhecer explicitamente padrões em números.
Em vez de algo assim:
Dica : Quanto é 2+2?
Processo : Muitas vezes em livros didáticos de matemática para crianças 2+2 =4. Ocasionalmente, há referências a "2+2=5", mas geralmente há mais contexto relacionado a George Orwell ou Star Trek, quando for o caso. Se isto fosse nesse contexto o peso seria mais a favor de 2+2=5. Mas esse contexto não existe, então neste caso o próximo token é provavelmente o 4.
Resposta : 2+2=4
O treinamento faz algo assim:
treinamento: 2+2=4
treinamento: 4/2=2
treinamento: metade de 4 é 2
treinamento: 2 de 2 é quatro
…e assim por diante.
Isso significa que para os modelos mais “lógicos”, o processo de treinamento é mais rigoroso e focado em garantir que o modelo compreenda e aplique corretamente os princípios lógicos e matemáticos.
O modelo é exposto a vários problemas matemáticos e suas soluções, garantindo que possa generalizar e aplicar esses princípios a problemas novos e inéditos.
A importância deste processo de ajuste fino, especialmente para o raciocínio lógico, não pode ser exagerada. Sem ele, o modelo pode fornecer respostas incorretas ou sem sentido a questões lógicas ou matemáticas simples.
Modelos de imagem vs. modelos de linguagem
Embora os modelos de imagem e de linguagem possam usar arquiteturas semelhantes, como transformadores, os dados que eles processam são fundamentalmente diferentes:
Modelos de imagem
Esses modelos lidam com pixels e geralmente funcionam de maneira hierárquica, analisando primeiro pequenos padrões (como bordas), depois combinando-os para reconhecer estruturas maiores (como formas) e assim por diante até compreenderem a imagem inteira.
Modelos de linguagem
Esses modelos processam sequências de palavras ou caracteres. Eles precisam compreender o contexto, a gramática e a semântica para gerar um texto coerente e contextualmente relevante.
Como funcionam as interfaces generativas de IA proeminentes
Dall-E + meio da jornada
Dall-E é uma variante do modelo GPT-3 adaptado para geração de imagens. Ele é treinado em um vasto conjunto de dados de pares texto-imagem. Midjourney é outro software de geração de imagens baseado em um modelo proprietário.
Entrada: você fornece uma descrição textual, como "um flamingo de duas cabeças".
Processamento: Esses modelos codificam esse texto em uma série de números e depois decodificam esses vetores, encontrando relações com pixels, para produzir uma imagem. O modelo aprendeu as relações entre descrições textuais e representações visuais a partir de seus dados de treinamento.
Saída: uma imagem que corresponde ou se relaciona com a descrição fornecida.
Dedos, padrões, problemas
Por que essas ferramentas não conseguem gerar mãos que pareçam normais de forma consistente? Essas ferramentas funcionam observando pixels próximos uns dos outros.
Você pode ver como isso funciona ao comparar imagens geradas anteriormente ou mais primitivas com imagens mais recentes: os modelos anteriores parecem muito confusos. Em contraste, os modelos mais recentes são muito mais nítidos.
Esses modelos geram imagens prevendo o próximo pixel com base nos pixels já gerados. Este processo é repetido milhões de vezes para produzir uma imagem completa.
As mãos, especialmente os dedos, são complexas e possuem muitos detalhes que precisam ser capturados com precisão.
O posicionamento, comprimento e orientação de cada dedo podem variar muito em imagens diferentes.
Ao gerar uma imagem a partir de uma descrição textual, o modelo tem que fazer muitas suposições sobre a pose e estrutura exatas da mão, o que pode levar a anomalias.
Entrada: você fornece uma descrição textual, como "um flamingo de duas cabeças".
Processamento: Esses modelos codificam esse texto em uma série de números e depois decodificam esses vetores, encontrando relações com pixels, para produzir uma imagem. O modelo aprendeu as relações entre descrições textuais e representações visuais a partir de seus dados de treinamento.
Saída: uma imagem que corresponde ou se relaciona com a descrição fornecida.
Dedos, padrões, problemas
Por que essas ferramentas não conseguem gerar mãos que pareçam normais de forma consistente? Essas ferramentas funcionam observando pixels próximos uns dos outros.
Você pode ver como isso funciona ao comparar imagens geradas anteriormente ou mais primitivas com imagens mais recentes: os modelos anteriores parecem muito confusos. Em contraste, os modelos mais recentes são muito mais nítidos.
Esses modelos geram imagens prevendo o próximo pixel com base nos pixels já gerados. Este processo é repetido milhões de vezes para produzir uma imagem completa.
As mãos, especialmente os dedos, são complexas e possuem muitos detalhes que precisam ser capturados com precisão.
O posicionamento, comprimento e orientação de cada dedo podem variar muito em imagens diferentes.
Ao gerar uma imagem a partir de uma descrição textual, o modelo tem que fazer muitas suposições sobre a pose e estrutura exatas da mão, o que pode levar a anomalias.
ChatGPT
ChatGPT é baseado na arquitetura GPT-3.5, um modelo baseado em transformador projetado para tarefas de processamento de linguagem natural.
Entrada: um prompt ou uma série de mensagens para simular uma conversa.
Processamento: ChatGPT utiliza seu vasto conhecimento de diversos textos da Internet para gerar respostas. Considera o contexto fornecido na conversa e tenta produzir a resposta mais relevante e coerente.
Saída: uma resposta de texto que continua ou responde à conversa.
Especialidade
A força do ChatGPT reside na sua capacidade de lidar com vários tópicos e simular conversas humanas, tornando-o ideal para chatbots e assistentes virtuais.
Entrada: um prompt ou uma série de mensagens para simular uma conversa.
Processamento: ChatGPT utiliza seu vasto conhecimento de diversos textos da Internet para gerar respostas. Considera o contexto fornecido na conversa e tenta produzir a resposta mais relevante e coerente.
Saída: uma resposta de texto que continua ou responde à conversa.
Especialidade
A força do ChatGPT reside na sua capacidade de lidar com vários tópicos e simular conversas humanas, tornando-o ideal para chatbots e assistentes virtuais.
Bard + Experiência Gerativa de Pesquisa (SGE)
Embora detalhes específicos possam ser proprietários, Bard é baseado em técnicas de IA de transformadores, semelhantes a outros modelos de linguagem de última geração. SGE é baseado em modelos semelhantes, mas combina outros algoritmos de ML que o Google usa.
A SGE provavelmente gera conteúdo usando um modelo generativo baseado em transformador e, em seguida, extrai respostas difusas das páginas de classificação na pesquisa. (Isso pode não ser verdade. Apenas um palpite baseado em como parece funcionar ao brincar com ele. Por favor, não me processe!)
Entrada: Um prompt/comando/pesquisa
Processamento: Bard processa a entrada e funciona da mesma forma que outros LLMs. O SGE usa uma arquitetura semelhante, mas adiciona uma camada onde busca seu conhecimento interno (adquirido a partir de dados de treinamento) para gerar uma resposta adequada. Ele considera a estrutura, o contexto e a intenção do prompt para produzir conteúdo relevante.
Saída: Conteúdo gerado que pode ser uma história, resposta ou qualquer outro tipo de texto.
A SGE provavelmente gera conteúdo usando um modelo generativo baseado em transformador e, em seguida, extrai respostas difusas das páginas de classificação na pesquisa. (Isso pode não ser verdade. Apenas um palpite baseado em como parece funcionar ao brincar com ele. Por favor, não me processe!)
Entrada: Um prompt/comando/pesquisa
Processamento: Bard processa a entrada e funciona da mesma forma que outros LLMs. O SGE usa uma arquitetura semelhante, mas adiciona uma camada onde busca seu conhecimento interno (adquirido a partir de dados de treinamento) para gerar uma resposta adequada. Ele considera a estrutura, o contexto e a intenção do prompt para produzir conteúdo relevante.
Saída: Conteúdo gerado que pode ser uma história, resposta ou qualquer outro tipo de texto.
Aplicações de IA generativa (e suas controvérsias)
Arte e Design
A IA generativa agora pode criar obras de arte, músicas e até designs de produtos. Isso abriu novos caminhos para a criatividade e a inovação.
Controvérsia
A ascensão da IA na arte gerou debates sobre a perda de empregos em áreas criativas.
Além disso, existem preocupações sobre:
Violações trabalhistas, especialmente quando conteúdo gerado por IA é usado sem a devida atribuição ou compensação.
Executivos que ameaçam os escritores com sua substituição por IA é uma das questões que estimularam a greve dos escritores.
Controvérsia
A ascensão da IA na arte gerou debates sobre a perda de empregos em áreas criativas.
Além disso, existem preocupações sobre:
Violações trabalhistas, especialmente quando conteúdo gerado por IA é usado sem a devida atribuição ou compensação.
Executivos que ameaçam os escritores com sua substituição por IA é uma das questões que estimularam a greve dos escritores.
Processamento de linguagem natural (PNL)
Os modelos de IA são agora amplamente utilizados para chatbots, tradução de idiomas e outras tarefas de PNL.
Fora do sonho da inteligência artificial geral (AGI), este é o melhor uso para LLMs, uma vez que estão próximos de um modelo de PNL “generalista”.
Controvérsia
Muitos usuários consideram os chatbots impessoais e às vezes irritantes.
Além disso, embora a IA tenha feito progressos significativos na tradução de línguas, muitas vezes carece das nuances e da compreensão cultural que os tradutores humanos trazem, o que conduz a traduções impressionantes e imperfeitas.
Fora do sonho da inteligência artificial geral (AGI), este é o melhor uso para LLMs, uma vez que estão próximos de um modelo de PNL “generalista”.
Controvérsia
Muitos usuários consideram os chatbots impessoais e às vezes irritantes.
Além disso, embora a IA tenha feito progressos significativos na tradução de línguas, muitas vezes carece das nuances e da compreensão cultural que os tradutores humanos trazem, o que conduz a traduções impressionantes e imperfeitas.
Medicina e descoberta de medicamentos
A IA pode analisar rapidamente grandes quantidades de dados médicos e gerar potenciais compostos medicamentosos, acelerando o processo de descoberta de medicamentos. Muitos médicos já usam LLMs para escrever notas e comunicações aos pacientes
Controvérsia
Depender de LLMs para fins médicos pode ser problemático. A medicina exige precisão e quaisquer erros ou omissões da IA podem ter consequências graves.
A medicina também já tem preconceitos que só ficam mais fortes com o uso de LLMs. Existem também questões semelhantes, conforme discutido abaixo, com privacidade, eficácia e ética.
Controvérsia
Depender de LLMs para fins médicos pode ser problemático. A medicina exige precisão e quaisquer erros ou omissões da IA podem ter consequências graves.
A medicina também já tem preconceitos que só ficam mais fortes com o uso de LLMs. Existem também questões semelhantes, conforme discutido abaixo, com privacidade, eficácia e ética.
Jogos
Muitos entusiastas da IA estão entusiasmados com o uso da IA em jogos: eles dizem que a IA pode gerar ambientes de jogo, personagens e até mesmo enredos de jogo realistas, melhorando a experiência de jogo. O diálogo com os NPCs pode ser aprimorado com o uso dessas ferramentas.
Controvérsia
Há um debate sobre a intencionalidade no design de jogos.
Embora a IA possa gerar grandes quantidades de conteúdo, alguns argumentam que lhe falta o design deliberado e a coesão narrativa que os designers humanos trazem.
Watchdogs 2 tinha NPCs programáticos, o que pouco contribuiu para a coesão narrativa do jogo como um todo.
Controvérsia
Há um debate sobre a intencionalidade no design de jogos.
Embora a IA possa gerar grandes quantidades de conteúdo, alguns argumentam que lhe falta o design deliberado e a coesão narrativa que os designers humanos trazem.
Watchdogs 2 tinha NPCs programáticos, o que pouco contribuiu para a coesão narrativa do jogo como um todo.
Marketing e publicidade
A IA pode analisar o comportamento do consumidor e gerar anúncios personalizados e conteúdo promocional, tornando as campanhas de marketing mais eficazes.
Os LLMs têm contexto a partir da escrita de outras pessoas, o que os torna úteis para gerar histórias de usuários ou ideias programáticas mais diferenciadas. Em vez de recomendar TVs para alguém que acabou de comprar uma TV, os LLMs podem recomendar acessórios que alguém possa querer.
Controvérsia
O uso de IA em marketing levanta questões de privacidade. Há também um debate sobre as implicações éticas do uso da IA para influenciar o comportamento do consumidor.
Os LLMs têm contexto a partir da escrita de outras pessoas, o que os torna úteis para gerar histórias de usuários ou ideias programáticas mais diferenciadas. Em vez de recomendar TVs para alguém que acabou de comprar uma TV, os LLMs podem recomendar acessórios que alguém possa querer.
Controvérsia
O uso de IA em marketing levanta questões de privacidade. Há também um debate sobre as implicações éticas do uso da IA para influenciar o comportamento do consumidor.
Problemas contínuos com LLMS
Compreensão contextual e compreensão da fala humana
Limitação: Os modelos de IA, incluindo GPT, muitas vezes enfrentam dificuldades com interações humanas diferenciadas, como detecção de sarcasmo, humor ou mentiras.
Exemplo: Em histórias em que um personagem está mentindo para outros personagens, a IA pode nem sempre compreender o engano subjacente e pode interpretar as declarações pelo valor nominal.
Correspondência de padrões
Limitação: os modelos de IA, especialmente aqueles como o GPT, são fundamentalmente correspondentes de padrões. Eles se destacam em reconhecer e gerar conteúdo com base em padrões observados em seus dados de treinamento. No entanto, o seu desempenho pode degradar-se quando confrontados com situações novas ou desvios dos padrões estabelecidos.
Exemplo: Se um novo termo de gíria ou referência cultural surgir após a última atualização de treinamento do modelo, ele poderá não reconhecê-lo ou compreendê-lo.
Falta de compreensão do bom senso
Limitação: Embora os modelos de IA possam armazenar grandes quantidades de informações, muitas vezes carecem de uma compreensão do mundo de “senso comum”, levando a resultados que podem ser tecnicamente corretos, mas contextualmente absurdos.
Potencial para reforçar preconceitos
Consideração ética: os modelos de IA aprendem com os dados e, se esses dados contiverem preconceitos, o modelo provavelmente reproduzirá e até amplificará esses preconceitos. Isto pode levar a resultados sexistas, racistas ou preconceituosos.
Desafios na geração de ideias únicas
Limitação: os modelos de IA geram conteúdo com base nos padrões que observam. Embora possam combinar esses padrões de maneiras novas, eles não “inventam” como os humanos fazem. A sua “criatividade” é uma recombinação de ideias existentes.
Questões de privacidade de dados, propriedade intelectual e controle de qualidade:
Consideração ética : O uso de modelos de IA em aplicações que lidam com dados confidenciais levanta preocupações sobre a privacidade dos dados. Quando a IA gera conteúdo, surgem questões sobre quem detém os direitos de propriedade intelectual. Garantir a qualidade e a precisão do conteúdo gerado por IA também é um desafio significativo.
Código incorreto
Os modelos de IA podem gerar código sintaticamente correto quando usados para tarefas de codificação, mas funcionalmente falhos ou inseguros. Tive que corrigir o código que as pessoas adicionaram aos sites gerados usando LLMs. Parecia certo, mas não estava. Mesmo quando funciona, os LLMs têm expectativas desatualizadas em relação ao código, usando funções como “document.write” que não são mais consideradas práticas recomendadas.
Limitação: Os modelos de IA, incluindo GPT, muitas vezes enfrentam dificuldades com interações humanas diferenciadas, como detecção de sarcasmo, humor ou mentiras.
Exemplo: Em histórias em que um personagem está mentindo para outros personagens, a IA pode nem sempre compreender o engano subjacente e pode interpretar as declarações pelo valor nominal.
Correspondência de padrões
Limitação: os modelos de IA, especialmente aqueles como o GPT, são fundamentalmente correspondentes de padrões. Eles se destacam em reconhecer e gerar conteúdo com base em padrões observados em seus dados de treinamento. No entanto, o seu desempenho pode degradar-se quando confrontados com situações novas ou desvios dos padrões estabelecidos.
Exemplo: Se um novo termo de gíria ou referência cultural surgir após a última atualização de treinamento do modelo, ele poderá não reconhecê-lo ou compreendê-lo.
Falta de compreensão do bom senso
Limitação: Embora os modelos de IA possam armazenar grandes quantidades de informações, muitas vezes carecem de uma compreensão do mundo de “senso comum”, levando a resultados que podem ser tecnicamente corretos, mas contextualmente absurdos.
Potencial para reforçar preconceitos
Consideração ética: os modelos de IA aprendem com os dados e, se esses dados contiverem preconceitos, o modelo provavelmente reproduzirá e até amplificará esses preconceitos. Isto pode levar a resultados sexistas, racistas ou preconceituosos.
Desafios na geração de ideias únicas
Limitação: os modelos de IA geram conteúdo com base nos padrões que observam. Embora possam combinar esses padrões de maneiras novas, eles não “inventam” como os humanos fazem. A sua “criatividade” é uma recombinação de ideias existentes.
Questões de privacidade de dados, propriedade intelectual e controle de qualidade:
Consideração ética : O uso de modelos de IA em aplicações que lidam com dados confidenciais levanta preocupações sobre a privacidade dos dados. Quando a IA gera conteúdo, surgem questões sobre quem detém os direitos de propriedade intelectual. Garantir a qualidade e a precisão do conteúdo gerado por IA também é um desafio significativo.
Código incorreto
Os modelos de IA podem gerar código sintaticamente correto quando usados para tarefas de codificação, mas funcionalmente falhos ou inseguros. Tive que corrigir o código que as pessoas adicionaram aos sites gerados usando LLMs. Parecia certo, mas não estava. Mesmo quando funciona, os LLMs têm expectativas desatualizadas em relação ao código, usando funções como “document.write” que não são mais consideradas práticas recomendadas.
Designers são sempre melhores do que arte gerada por IA
A IA fez avanços significativos na arte, desde a geração de pinturas até a composição de música. No entanto, há uma diferença fundamental entre a arte feita pelo homem e a arte gerada pela IA:
Intenção, sentimento, vibração
A arte não se trata apenas do produto final, mas da intenção e da emoção por trás dele.
Um artista humano traz suas experiências, emoções e perspectivas para seu trabalho, dando-lhe profundidade e nuances que são um desafio para a IA replicar.
Uma obra de arte “ruim” de uma pessoa tem mais profundidade do que uma bela obra de arte de uma sugestão.
Intenção, sentimento, vibração
A arte não se trata apenas do produto final, mas da intenção e da emoção por trás dele.
Um artista humano traz suas experiências, emoções e perspectivas para seu trabalho, dando-lhe profundidade e nuances que são um desafio para a IA replicar.
Uma obra de arte “ruim” de uma pessoa tem mais profundidade do que uma bela obra de arte de uma sugestão.