Habr mostra como treinar um mini-LLM em C# com ILGPU e gráficos AMD integrados
O Habr publicou o ciclo completo de construção de um micro-LLM em C#, sem Python e sem exigir placa NVIDIA. O autor usou ILGPU e OpenCL, treinou o modelo em gráficos AMD integrados, empacotou em GGUF e abriu no LM Studio. A qualidade é modesta, mas serve como prova de conceito para desenvolvedores .NET que querem um experimento local com LLM fácil de acompanhar.
Processado por IA de Habr AI; editado por Hamidun News
O Habr publicou uma análise prática e detalhada que mostra um cenário raro na comunidade de IA local: um modelo de linguagem pequeno pode ser montado e treinado do zero em C#, sem Python e sem exigir uma placa NVIDIA, e depois salvo em GGUF e executado no LM Studio. O autor usou a biblioteca ILGPU e o OpenCL, apoiando-se nos gráficos integrados da AMD, e chegou a um protótipo de LLM funcional, embora bastante limitado, de cerca de 422 KB. O projeto foi pensado como demonstração didática do ciclo completo, e não como tentativa de competir com os grandes modelos de código aberto.
O artigo percorre a arquitetura básica do transformer: tokenização, camada de embedding, self-attention, feed-forward, normalização e projeção de saída. Para o treinamento, o autor preparou dois conjuntos de dados pequenos: um corpus curto de pretrain com fatos gerais sobre o mundo e uma amostra de instruction tuning com perguntas e respostas. O objetivo não era obter um modelo forte, mas percorrer manualmente todas as etapas, do vocabulário à inferência.
A configuração final ficou extremamente compacta: vocabulário de 512 tokens, comprimento de contexto de 64, embedding de 64, camada oculta de 128, uma camada de transformer e duas cabeças de atenção. No total, são 103.744 parâmetros. Antes da exportação, o modelo pode ser salvo em um arquivo binário de aproximadamente 6,87 MB, mas o arquivo GGUF final ocupa cerca de 422 KB e é reconhecido como GGUF V3. Após o treinamento, a pretrain-loss caiu para cerca de 0,212 e, depois do ajuste fino para o formato de diálogo, a finetune-loss chegou a 0,3926. Nessa escala, é mais um sinal de que o esquema funciona tecnicamente do que uma prova da qualidade das respostas.
A lógica do treinamento também importa. Primeiro o modelo passa por uma fase de pré-treinamento em um corpus curto de dezenas de frases, depois por uma etapa separada de instruction tuning com exemplos de diálogo. A interface do programa tem menus para retreinar, testar o tokenizador, salvar os pesos e iniciar um chat interativo.
Para as respostas, o autor incluiu um filtro de confiança primitivo: se a confiança mínima por token cai abaixo de um limite, o sistema exibe a frase «tenho dificuldade para responder» em vez de uma resposta. É uma forma grosseira, mas compreensível, de esconder o lixo evidente que um modelo desse tamanho quase inevitavelmente produz. É isso que torna a demo útil, pelo menos para uma verificação básica do pipeline.
A parte mais difícil não foi o forward pass nem o treinamento em si, mas a compatibilidade com o ecossistema llama.cpp. O autor tentou primeiro montar o modelo numa configuração mais parecida com a do LLaMA, mas esbarrou em erros de carregamento e em uma divergência no número de tensores. No fim, precisou simplificar a arquitetura, refazer o tokenizador nos moldes do Microsoft.ML.Tokenizers e descrever com cuidado os metadados do GGUF: arquitetura, comprimento de contexto, parâmetros de atenção, tokens especiais e chat template. Outro detalhe técnico: na prática, o modelo não guarda um histórico longo de conversa, então o chat usa um template apenas com a última mensagem do usuário; do contrário, o contexto minúsculo quebra rapidamente a inferência.
O resultado prático é modesto, mas ilustrativo. O modelo responde a consultas simples e abre no LM Studio, onde pode funcionar por meio de uma stack compatível, mas o llama.cpp alerta para degradação da qualidade de geração, e o autor escreve abertamente que o treinamento ainda não é bom o suficiente. Além disso, a inferência falha em algumas consultas com pontos de interrogação e exclamação, ou seja, o projeto continua sendo um experimento e um laboratório didático.
Mas o trabalho importa por outro motivo: mostra que a barreira de entrada para experimentos de baixo nível com LLMs pode cair bastante. Para desenvolvedores do mundo .NET, é um exemplo claro de como montar um modelo mínimo, testar um cenário com OpenCL fora do monopólio do CUDA e entender de quais peças realmente se compõe a execução local de um modelo de linguagem.
- 1 de nov. de 2026Agente de vídeo StreamVibe, do Google, supera outros modelos em 10,7% em timing e qualidade das respostas
- 30 de out. de 2026Mistral abre os pesos do Large 4: forte em código, mas chineses marcam 32 pontos contra 26
- 30 de out. de 2026128 agentes de IA sem chefe passaram em 49% mais testes do que um só
- 29 de out. de 2026Ferramenta de IA de Stanford verificou parte do código do Signal em meio dia e com US$ 500, em vez de 5 meses
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.