Um LMS (Sistema de Gerenciamento de Aprendizagem) é uma plataforma digital que permite criar, gerenciar e distribuir conteúdo de aprendizagem online. Ele funciona como um ambiente virtual de aprendizagem, onde é possível disponibilizar materiais didáticos, realizar atividades, avaliações e interações entre os usuários.
Os LMSs são compostos por diversas funcionalidades, tais como: gerenciamento de usuários, gestão de cursos, criação e edição de conteúdo, avaliações e relatórios. Eles são amplamente utilizados em empresas, escolas e universidades para oferecer treinamentos e capacitações online.
Em filmes antigos de futuristas, como a Odisseia no Espaço de 2001, o computador principal (HAL) era capaz de falar com os humanos e entender o que eles diriam com grande facilidade. Na época, fazer com que os computadores entendessem e produzissem linguagem parecia uma tarefa impossível, mas os mais recentes modelos de linguagem grande (LLM) são capazes de fazer isso de uma maneira que torna quase impossível para um humano dizer se está falando com outro humano ou com um computador.
A tarefa por excelência do processamento de linguagem natural (NLP) é entender a linguagem humana. No entanto, há uma grande desconexão, os seres humanos falam em palavras e frases, mas os computadores só entendem e processam números.
Como podemos transformar palavras e frases em números de forma coerente? Uma atribuição de palavras a números é chamada de incorporação de palavras. Podemos pensar em uma incorporação de palavras como uma atribuição de pontuações às palavras, com algumas propriedades interessantes.
O que é uma incorporação de palavras?
Antes de entrarmos no que é uma incorporação de palavras, deixe-me testar sua intuição. Na Figura 1, localizei 12 palavras no avião. As palavras são as seguintes:
- Banana
- Basquete
- Bicicleta
- Prédio
- Carro
- Castelo
- Cereja
- Início
- Futebol
- Morango
- Tênis
- Caminhão
Agora, a questão é: onde você localizaria a palavra “Apple” neste avião? Há muitos lugares para onde poderia ir, mas estou permitindo 3 possibilidades rotuladas como A, B e C.
O que eu faria é localizá-lo no ponto C, porque faria sentido ter a palavra “Maçã” perto das palavras “Banana”, “Morango” e “Cereja”, e longe das outras palavras, como “Casa”, “Carro” ou “Ténis”. Esta é precisamente uma incorporação de palavras. E quais são os números que estamos atribuindo a cada palavra? Simplesmente as coordenadas horizontais e verticais da localização da palavra. Dessa forma, a palavra “Apple” é atribuída aos números [5,5], e a palavra “Bicicleta” às coordenadas [5,1].
Por uma questão de redundância, vamos enumerar algumas propriedades que uma boa incorporação de palavras deve ter:
- Palavras que são semelhantes devem corresponder a pontos próximos (ou equivalentemente, a pontuações semelhantes).
- Palavras diferentes devem corresponder a pontos distantes (ou equivalentemente, a pontuações significativamente diferentes).
Incorporações de Palavras Capturam Recursos da Palavra
A palavra incorporação acima satisfaz as propriedades 1 e 2. É isso? Ainda não. Há algo mais nessas incorporações de palavras, e é que elas não apenas capturam a semelhança das palavras, mas também capturam outras propriedades da linguagem. Na linguagem, as palavras podem ser combinadas para obter conceitos mais complicados. Em matemática, os números podem ser adicionados ou subtraídos para obter outros números. Poderíamos construir uma incorporação de palavras que capture relações entre palavras, como relações entre números?
Vamos olhar para quatro palavras, “Puppy”, “Dog”, “Calf” e “Cow”. Essas palavras estão claramente correlacionadas. Agora, para testar sua intuição novamente, vou localizar as palavras “Puppy”, “Dog” e “Calf” no avião, e vou pedir que você adicione a palavra “Cow”. Onde você o adicionaria, no local rotulado como A, B ou C?
Embora faça sentido localizá-lo em A, mais perto de “Besseo”, já que ambos são bovinos, ou em B, já que é um animal adulto, como “Cão”, o lugar onde eu colocaria isso é no ponto C, com coordenadas [3,4].
Por quê?
Porque o retângulo formado pelas quatro palavras captura algumas relações muito importantes entre elas.
Por exemplo, duas analogias são capturadas aqui. A analogia “Um filhote de cachorro é para um cachorro como um bezerro é para uma vaca” pode ser traduzida para “O caminho da palavra filhote para a palavra cachorro é o mesmo que o caminho da palavra bezerro para a palavra vaca”. A analogia “Um cachorro é para uma vaca como um filhote de cachorro é para um bezerro” também é capturada neste retângulo, como é mostrado na figura abaixo.
No entanto, esta nem é a ponta do iceberg. A principal propriedade das incorporações de palavras que está em vigor aqui é que os dois eixos (vertical e horizontal) representam coisas diferentes.
Se você olhar com cuidado, mover-se para a direita transforma o filhote em um cachorro e o bezerro em uma vaca, o que é um aumento na idade. Da mesma forma, mover-se para cima transforma um filhote em um bezerro e um cachorro em uma vaca, o que é um aumento no tamanho do animal. Parece que essa incorporação é entender que as palavras nela têm duas propriedades principais, ou características: idade e tamanho. A
lém disso, parece que a incorporação está localizando a idade no eixo horizontal e o tamanho no eixo vertical. Nesse caso, para onde você imaginaria que a palavra “baleia” vai? Provavelmente em algum lugar acima da palavra “vaca”. E se houvesse uma palavra para “cão realmente velho”? Essa palavra iria para algum lugar à direita da palavra “cão”.
Uma boa incorporação de palavras seria capaz de capturar não apenas a idade e o tamanho, mas também muito mais características das palavras. Como cada recurso é um novo eixo, ou coordenada, uma boa incorporação deve ter muito mais de duas coordenadas atribuídas a cada palavra. A incorporação cohere, por exemplo, tem 4096 coordenadas associadas a cada palavra.
Essas linhas de 4096 (ou quantas) coordenadas são chamadas de vetores, então muitas vezes falamos sobre o vetor correspondente a uma palavra e a cada um dos números dentro de um vetor como uma coordenada. Algumas dessas coordenadas podem representar propriedades importantes da palavra, como idade, sexo, tamanho. Alguns podem representar combinações de propriedades. Mas alguns outros podem representar propriedades obscuras que um ser humano pode não ser capaz de entender.
Mas, em tudo, uma incorporação de palavras pode ser vista como uma boa maneira de traduzir a linguagem humana (palavras) em linguagem de computador (números), para que possamos começar a treinar modelos de aprendizado de máquina com esses números.
Incorporações de frases
As incorporações de palavras parecem ser bastante úteis, mas, na realidade, a linguagem humana é muito mais complicada do que simplesmente um monte de palavras juntas. A linguagem humana tem estrutura, frases, etc. Como alguém seria capaz de representar, por exemplo, uma frase? Bem, aqui está uma ideia. Que tal as somas de pontuações de todas as palavras? Por exemplo, digamos que tenhamos uma incorporação de palavras que atribui as seguintes pontuações a essas palavras:
- Não: [1,0,0,0]
- I: [0,2,0,0]
- Am: [-1,0,1,0]
- Bom: [0,0,1,3]
Então a frase “Não, eu estou bem!” corresponde ao vetor [0,2,2,3]. No entanto, a frase “Eu não sou bom” também corresponderá ao vetor [0,2,2,3]. Isso não é uma coisa boa, já que o computador entende essas duas frases exatamente da mesma maneira, mas elas são bem diferentes, quase opostas! Portanto, precisamos de melhores incorporações que levem em conta a ordem das palavras, a semântica da linguagem e o significado real da frase.
É aqui que as incorporações de frases entram em jogo. Uma incorporação de frases é como uma incorporação de palavras, exceto que associa cada frase a um vetor cheio de números, de maneira coerente. Por coerente, quero dizer que satisfaz propriedades semelhantes à incorporação de uma palavra. Por exemplo, frases semelhantes são atribuídas a vetores semelhantes, frases diferentes são atribuídas a diferentes vetores e, o mais importante, cada uma das coordenadas do vetor identifica alguma propriedade (só clara ou obscura) da frase.
A incorporação Cohere faz exatamente isso. Usando transformadores, mecanismos de atenção e outros algoritmos de ponta, essa incorporação envia cada frase para um vetor formado por 4096 números, e essa incorporação funciona muito bem.
Como um pequeno exemplo, aqui está um mapa de calor das primeiras 10 entradas de algumas frases (escrever as 4096 entradas inteiras ocupará muito espaço, então nós a truncamos).
Observe que essas frases são todas muito semelhantes. Em particular, as três frases destacadas têm praticamente o mesmo significado. Se você olhar para os vetores correspondentes deles, eles também são muito semelhantes. Isso é exatamente o que uma incorporação deve fazer.
Como usar essas incorporações?
Agora que você aprendeu como essas incorporações são úteis, é hora de começar a brincar com elas e encontrar bons usos práticos para elas! O painel Cohere (dashboard.cohere.com) fornece uma interface muito amigável para usá-los. Aqui está um pequeno exemplo, com as seguintes frases:
- Eu gosto do meu cachorro
- Eu amo meu cachorro
- Eu adoro meu cachorro
- Olá, como você está?
- Ei, como vai?
- Oi, e aí?
- Adoro assistir futebol
- Eu gostei de assistir a copa do mundo
- Eu gosto de assistir a jogos de futebol
Para ver os resultados da incorporação de frases, vá para a guia “Incorporar” no painel Cohere e digite as frases (clique aqui para uma demonstração de incorporação com a qual você pode jogar).
Os resultados saem como vetores com 4096 entradas para cada frase. Estes são obviamente difíceis de visualizar, mas há uma maneira de reduzi-los a 2 entradas por frase para serem facilmente visualizados. Esta visualização está no enredo abaixo.
Observe que a incorporação parecia capturar a essência das frases, e há 3 grupos claros de frases. No canto superior esquerdo, você encontra as frases que cumprimentam uma pessoa, no meio, aquelas que falam sobre o cachorro de uma pessoa e, no canto inferior direito, aquelas que falam sobre futebol. Observe que frases como “Ei, e aí” e “Olá, como você está?” não têm palavras em comum, mas o modelo pode dizer que elas têm o mesmo significado.
Incorporações de Sentenças Multilíngues
A maioria das incorporações de palavras e frases depende da linguagem em que o modelo é treinado. Se você tentasse encaixar a frase francesa “Bonjour, comment ça va?” (significando: olá, como você está?) na incorporação da seção anterior, será difícil entender que deve estar perto da frase “Olá, como você está?” em inglês. Com o objetivo de unificar muitos idiomas em um e ser capaz de entender texto em todos esses idiomas, a Cohere treinou um grande modelo multilíngue, que mostrou resultados maravilhosos com mais de 100 idiomas. Aqui está um pequeno exemplo, com as seguintes frases em inglês, francês e espanhol.
- O urso vive na floresta
- El oso vive en el bosque
- L’ours vit dans la foret
- A copa do mundo é no Qatar
- El mundial es en Qatar
- La coupe du monde est au Qatar
- Uma maçã é uma fruta
- Una manzana es una fruta
- Une pomme est un fruit
- El cielo es azul
- O céu é azul
- Le ciel est bleu
O modelo retornou a seguinte incorporação.
Observe que o modelo conseguiu identificar as frases sobre o urso, o futebol, uma maçã e o céu, mesmo que estejam em idiomas diferentes.
As incorporações de palavras e frases são o pão com manteiga dos LLMs. Eles são o bloco de construção básico da maioria dos modelos de linguagem, uma vez que traduzem a fala humana (palavras) em fala de computador (números) de uma maneira que captura muitas relações entre palavras, semântica e nuances da linguagem, em equações em relação aos números correspondentes.
As incorporações de frases podem ser estendidas a incorporações de linguagem, nas quais os números anexados a cada frase são agnósticos. Esses modelos são muito úteis para tradução e para pesquisar e entender texto em diferentes idiomas.