![Como gerenciar melhor aplicativos com estado no Kubernetes](https://optimuscloud.com.br/wp-content/uploads/2024/03/1709927231_Como-gerenciar-melhor-aplicativos-com-estado-no-Kubernetes-150x150.jpg)
Como gerenciar melhor aplicativos com estado no Kubernetes
8 de março de 2024![Como construir componentes incorporados com Astro, Qwik e StackBlitz](https://optimuscloud.com.br/wp-content/uploads/2024/03/1709994246_Como-construir-componentes-incorporados-com-Astro-Qwik-e-StackBlitz-150x150.jpg)
Como construir componentes incorporados com Astro, Qwik e StackBlitz
9 de março de 2024Estudar a matemática teórica usada na Inteligência Artificial (IA) pode ajudá-lo a fazer a transição para as habilidades que os desenvolvedores de IA usam. Ou, pelo menos, pode ajudá-lo a avaliar o que está acontecendo nos bastidores.
Há muita matemática (e a terminologia dela derivada) na IA – embora a maior parte dela seja conceitual, não algébrica. No entanto, não queremos nos aprofundar nisso, mas apenas dar uma olhada nas bordas, para que fiquemos um pouco menos surpresos com os white papers técnicos.
Andrei Andreevich Markov foi um matemático russo (e forte jogador de xadrez) cujo trabalho sobre processos e probabilidades precedeu a computação moderna, mas tem sido explorado com gratidão desde então.
Qualquer processo pode ser simplificado em estados e transições, e embora sejam naturalmente bons para computadores, é também assim que os humanos explicam as narrativas. Não tentamos explicar as coisas em tempo real, apenas saltamos para os eventos que importam. Por exemplo, se tomarmos a narrativa “João foi até as lojas, entrou na padaria, comprou um pão, entrou numa delicatessen e comprou um sanduíche, disse oi para um amigo, saiu das lojas e voltou para casa”, isso faz sentido para nós. Mas não há nenhuma informação de tempo, apenas uma ordem série de eventos.
Podemos resumir o estado de John a qualquer momento como um destes:
- Viajar (de e para lojas)
- Compras (comprar pão ou um sanduíche)
- Conversando com amigos)
E podemos resumir as transições como:
- De casa para as lojas e vice-versa.
- De uma loja para outra.
- Das compras ao bate-papo e de volta às compras.
Nós meio que criamos zonas onde John está fazendo a transição. Para John, tudo isso são coisas normais do dia a dia. Se um vizinho intrometido observasse uma série de viagens semelhantes de John, elas pareceriam aleatórias, mesmo que fossem feitas apenas a partir de um pequeno conjunto de opções. As viagens de João podem ser descritas como uma estocástico processo.
Vamos deixar John em casa por um momento. Aqui está uma definição da Wikipedia de uma cadeia de Markov: “Uma cadeia de Markov ou processo de Markov é um modelo estocástico que descreve uma sequência de eventos possíveis em que a probabilidade de cada evento depende apenas do estado alcançado no evento anterior.”
Em outras palavras, o que acontece a seguir depende apenas do que acontece antes. Agora, se considerarmos as viagens de John da perspectiva daquele vizinho intrometido, pareceria que tudo o que ele fez a seguir dependeu apenas do que ele estava fazendo no momento. Por exemplo, ele só encontrava um amigo e conversava se ele já estivesse perto das lojas.
![](https://optimuscloud.com.br/wp-content/uploads/2024/03/Guia-do-desenvolvedor-para-compreender-as-cadeias-de-Markov-em.png)
A jornada de João
Observe que existem diferentes chances de as opções ocorrerem em cada estado, mas se somarmos cada possibilidade de cada estado soma 100%. Observe que John pode ir de loja em loja, então a transição aponta para o estado que ele acabou de sair. E o mesmo para conversar. Quando o vizinho olha, João parece apenas ir de casa para as lojas, então essa transição é a única opção disponível — daí 100%.
Se eu produzir uma série de números aleatórios entre 1 e 100 e distribuir cada opção adequadamente, então poderemos “andar com John”, por assim dizer. Então pedi ajuda ao Claude 3:
Então aqui está a caminhada, começando de casa.
Número aleatório | Evento da jornada de John |
---|---|
42 | John vai às lojas |
87 | John vai de uma loja para outra |
16 | João volta para casa |
64 | John vai às lojas |
29 | John vai de uma loja para outra |
E uma última coisa; matemáticos gostam de converter esse tipo de modelo em um matriz. A chance percentual é sempre vista como um decimal entre 0 e 1.
viajando | compras | conversando | |
---|---|---|---|
viajando | 0 | 1 | 0 |
compras | 0,2 | 0,75 | 0,5 |
conversando | 0 | 0,85 | 0,15 |
- O matriz de transição é sempre uma matriz quadrada ou matriz n por n, onde o tamanho é determinado pelo número de estados possíveis.
- A linha representa o estado atual, a coluna representa o próximo estado.
- A probabilidade total para cada estado atual (ou seja, uma linha) é 1.
Então, quando uma cadeia de Markov é útil para resolver problemas? Basicamente, quando você deseja modelar algo que está em estados discretos, mas não entende como funciona.
Você pode muito bem pensar: “Mas John sabe o que está fazendo, não é?” Mas estamos observando John (talvez do vizinho intrometido) e do ponto de vista de um observador, as ações de John parecem aleatórias. A matemática não procura compreender nada, é apenas uma plataforma a partir da qual se podem fazer previsões.
Alguns desses princípios básicos foram vistos em máquinas de estado, embora normalmente modelem estados internos de software, não sistemas da vida real.
Como as cadeias de Markov são usadas na IA
Cadeias de Markov são usadas como design para previsão de texto. À medida que mais palavras são digitadas e obtidas pelo modelo, um novo conjunto de estatísticas é anexado a uma cadeia de Markov atualizada.
Observe que as letras do alfabeto não mudam mesmo quando palavras extras são adicionadas. Apenas as ponderações de probabilidade mudam e algumas novas transições aparecem. Ao fazer meu gerador de Shakespeare ruim, abordei um pouco disso. Usamos um corpus de sonetos de Shakespeare, e depois tentei calcular alguns pesos.
Quando usamos a previsão de texto no idioma inglês, é mais provável que olhemos para as duas letras atuais e trabalhemos com elas. Obtemos um modelo mais refinado permitindo que a probabilidade de escolher cada letra sucessiva dependa da letra ou letras anteriores. Portanto, usamos “tokens” e não letras únicas.
Portanto, um modelo de ordem de Markov 2 prevê que cada letra ocorre com uma probabilidade fixa, mas essa probabilidade pode depender das duas letras consecutivas anteriores (k– grama). Você também pode ter se deparado com o termo grama. Por exemplo, se nosso corpus inclui 100 ocorrências de “th”, com 60 ocorrências de “the”, 25 ocorrências de “thi”, 10 ocorrências de “tha” e 5 ocorrências de “tho”, o modelo prevê que o próximo a letra após o “th” de 2 gramas é “e” com probabilidade 0,6, “i” com probabilidade 0,25, “a” com probabilidade 0,1 e “o” com probabilidade 0,05.
![](https://optimuscloud.com.br/wp-content/uploads/2024/03/1709988244_979_Guia-do-desenvolvedor-para-compreender-as-cadeias-de-Markov-em.png)
o, isto, aquilo ou aquilo
No caso de completar frases na barra de pesquisa do Google, o corpus são os termos de pesquisa do mundo. Mas esse corpus é tão grande que também podem ser detectadas grafias incorretas – tornando o sistema um pouco diferente no geral.
![](https://optimuscloud.com.br/wp-content/uploads/2024/03/1709988244_859_Guia-do-desenvolvedor-para-compreender-as-cadeias-de-Markov-em.png)
Você me completa.
Se você tiver feito um desenvolvimento razoável, você se sentirá confortável com muito disso, já que cadeias interligadas de informações surgem em diferentes formas de tempos em tempos. Voltando à matemática, você descobrirá que os desenvolvimentos futuros da IA têm um passado menos misterioso.
A postagem Guia do desenvolvedor para entender as cadeias de Markov em IA apareceu pela primeira vez em The New Stack.