Tecnologia além do código.
Régys Borges da Silveira
Início / Acervo

Tag: Otimização

3 resultado(s)

Ilustração conceitual de um fluxo de texto passando por tokenização, vetores, atenção e geração em um projeto Delphi.

Do zero ao LLM com Delphi: compreender modelos de linguagem construindo um

Quando um modelo de linguagem é usado por uma API, a experiência parece direta: envia-se um texto, definem-se algumas instruções e recebe-se uma continuação ou uma resposta. Para quem precisa integrar recursos de IA a um sistema, essa simplicidade é útil.

Ver resumo completo

Quando um modelo de linguagem é usado por uma API, a experiência parece direta: envia-se um texto, definem-se algumas instruções e recebe-se uma continuação ou uma resposta. Para quem precisa integrar recursos de IA a um sistema, essa simplicidade é útil. Mas ela também oculta quase todo o mecanismo que torna a saída possível.

Entre uma frase de entrada e a próxima palavra gerada existem decisões sobre como dividir texto, como representar símbolos numericamente, como calcular transformações entre vetores, como medir erros e como atualizar parâmetros. Há ainda regras arquiteturais que impedem o modelo de consultar indevidamente tokens futuros durante o treinamento de geração. Sem enxergar essas etapas, é fácil tratar o modelo como uma caixa-preta: algo que “entende” texto porque responde de maneira plausível.

Construir um modelo pequeno muda o foco. Não se trata de disputar qualidade, escala ou abrangência com modelos comerciais. Trata-se de converter conceitos abstratos em objetos, rotinas, dados de entrada, cálculos e testes que possam ser inspecionados. Um LLM educacional funciona, nesse sentido, como um laboratório: sua utilidade está menos no tamanho da resposta que produz e mais na clareza que oferece sobre o caminho até ela.

Conheça o livro e leia uma degustação: acesse a página oficial de Do Zero ao LLM com Delphi.

· Régys Borges da Silveira
Ler artigo →

RadIA 2.3.0: como compactar o contexto da IA pode mudar a forma de programar no Delphi

Se você acompanha o RadIA, já sabe que a proposta do projeto não é colocar apenas mais uma janela de chat dentro do Delphi. O objetivo é permitir que a inteligência artificial participe de fluxos reais de desenvolvimento: inspecionar o projeto aberto, localizar símbolos, alterar arquivos, compilar, executar testes, analisar diffs e apresentar evidências verificáveis.

Ver resumo completo

Se você acompanha o RadIA, já sabe que a proposta do projeto não é colocar apenas mais uma janela de chat dentro do Delphi. O objetivo é permitir que a inteligência artificial participe de fluxos reais de desenvolvimento: inspecionar o projeto aberto, localizar símbolos, alterar arquivos, compilar, executar testes, analisar diffs e apresentar evidências verificáveis.

Esse tipo de experiência tem um desafio que normalmente aparece somente quando o agente começa a executar tarefas longas: o volume de contexto cresce muito rápido.

Uma compilação pode produzir centenas de hints. Uma suíte de testes pode repetir milhares de linhas de sucesso. Um diff pode ter centenas de kilobytes. Uma busca na base de conhecimento pode retornar trechos extensos. Se todo esse conteúdo continuar sendo reenviado integralmente ao modelo a cada nova decisão, a IA passa a gastar contexto, tempo e possivelmente dinheiro relendo informações que já foram processadas.

O RadIA 2.3.0 enfrenta esse problema com um RTK interno, escrito em Delphi e integrado diretamente ao Agent Runtime.

RTK, neste contexto, é uma camada de compactação de resultados de ferramentas. Em vez de entregar ao modelo todo o payload bruto em cada passo, o RadIA cria uma projeção menor, determinística e orientada às evidências que realmente importam. O resultado original não é apagado: ele permanece armazenado e pode ser recuperado por resumo ou por faixa sem executar a ferramenta novamente.

O efeito esperado é simples de explicar: menos ruído no contexto, mais espaço para raciocínio, menos repetição e maior capacidade de sustentar tarefas longas.

A versão 2.3.0 do RadIA reduz o volume de resultados reenviado aos modelos sem descartar a evidência original. Em dez execuções Release, o benchmark controlado mediu 96,71% de redução no corpus completo e 75,65% quando removemos o stress test de 1 MiB. Este artigo explica o que esses números realmente demonstram, o que eles não demonstram e por que tratar contexto como recurso pode ser uma evolução importante na programação assistida por IA.

Mas antes de falar em economia, precisamos responder à pergunta mais importante: os benchmarks são reais e confiáveis?

· Régys Borges da Silveira
Ler artigo →

Performance em Strings no Delphi: O Guia Definitivo entre Concatenação e TStringBuilder

O uso de strings é uma das operações mais elementares em qualquer aplicação Delphi. No entanto, a forma como manipulamos esses dados pode ser a diferença entre um sistema fluido e um que sofre com latência excessiva e fragmentação de memória.

Ver resumo completo

O uso de strings é uma das operações mais elementares em qualquer aplicação Delphi. No entanto, a forma como manipulamos esses dados pode ser a diferença entre um sistema fluido e um que sofre com latência excessiva e fragmentação de memória.

Neste artigo, vamos descer ao nível dos bits para entender o comportamento do gerenciador de memória do Delphi e estabelecer critérios técnicos sobre quando utilizar a concatenação tradicional e quando migrar para o TStringBuilder.

· Régys Borges da Silveira
Ler artigo →