Habr AI→ original

Habr mostrou como treinar uma mini-LLM em C# usando ILGPU e gráficos AMD integrados

Habr apresentou um ciclo completo de construção de uma micro-LLM em C# sem Python e sem exigir uma placa NVIDIA. O autor usou ILGPU e OpenCL, treinou o…

Processado por IA de Habr AI; editado por Hamidun News
Habr mostrou como treinar uma mini-LLM em C# usando ILGPU e gráficos AMD integrados
Fonte: Habr AI. Colagem: Hamidun News.
◐ Ouvir artigo

Um detalhamento prático completo foi publicado na Habr, que mostra um cenário raro para a comunidade local de IA: um pequeno modelo de linguagem pode ser montado e treinado do zero em C#, sem Python e sem placas NVIDIA obrigatórias, e então salvo em GGUF e executado em LM Studio. O autor usou a biblioteca ILGPU e OpenCL, apoiando-se em gráficos integrados AMD, e obteve um protótipo funcional, embora muito limitado, de LLM com cerca de 422 KB. O projeto foi concebido como uma demonstração educacional do ciclo completo, não como uma tentativa de competir com grandes modelos de código aberto.

O artigo discute a arquitetura básica de um transformador: tokenização, camada de embedding, self-attention, feed-forward, normalização e projeção de saída. Para o treinamento, o autor preparou dois pequenos conjuntos de dados: um corpus de pré-treinamento curto com fatos gerais sobre o mundo e uma amostra de ajuste de instruções com perguntas e respostas. O objetivo não era obter um modelo forte, mas passar manualmente por todos os estágios — do vocabulário à inferência.

A configuração final se mostrou extremamente compacta: vocabulário de 512 tokens, comprimento de contexto de 64, embedding de 64, camada oculta de 128, uma camada transformadora 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 perda de pré-treinamento caiu para aproximadamente 0,212, e após o ajuste fino para formato de diálogo, a perda de ajuste fino caiu para 0,3926. Para essa escala, isso é mais uma indicação de que o esquema funciona tecnicamente do que uma prova da qualidade das respostas.

A lógica do treinamento em si também é importante. Primeiro, o modelo passa por uma fase de pré-treinamento em um corpus curto de dezenas de sentenças, depois um estágio separado de ajuste de instruções em exemplos de diálogo. A interface do programa tem um menu para retreinamento, teste do tokenizador, salvamento de pesos e lançamento de um bate-papo interativo.

Para a resposta, o autor adicionou um filtro de confiança primitivo: se a confiança mínima entre tokens cair abaixo do limiar, o sistema exibe não uma resposta, mas a frase "não sei responder". Esta é uma maneira grosseira, mas compreensível, de ocultar lixo óbvio, que é quase inevitável em um modelo deste tamanho. Isso torna a demonstração adequada pelo menos para validação básica do pipeline.

A parte mais difícil acabou sendo não o passe direto e nem o treinamento em si, mas a compatibilidade com o ecossistema llama.cpp. O autor primeiro tentou construir o modelo em uma configuração mais similar ao LLaMA, mas esbarrou em erros ao carregar e incompatibilidades na contagem de tensores.

No final, ele teve que simplificar a arquitetura, reconstruir o tokenizador com base em Microsoft.ML.Tokenizers e descrever cuidadosamente metadados GGUF: arquitetura, comprimento de contexto, parâmetros de atenção, tokens especiais e template de chat.

Uma nuance técnica separada — o modelo na verdade não mantém um histórico de diálogo longo, então para chat usa-se um template com apenas a última mensagem do usuário, caso contrário o contexto minúsculo quebra rapidamente a inferência. O resultado prático é modesto, mas indicativo. O modelo responde consultas simples, abre em LM Studio e pode funcionar através de uma pilha compatível, porém llama.

cpp avisa sobre degradação da qualidade de geração, e o autor afirma diretamente que o treinamento ainda não é bom o suficiente. Além disso, a inferência quebra em algumas consultas com pontos de interrogação e exclamação, então o projeto permanece um experimento e um campo de treinamento. Mas o trabalho em si é importante por outro motivo: ele mostra que o limite de entrada para experimentos de baixo nível com LLM pode ser significativamente reduzido.

Para desenvolvedores do mundo .NET, este é um exemplo claro de como montar um modelo mínimo, verificar um cenário OpenCL fora do monopólio CUDA e entender quais detalhes realmente compõem a execução local de um modelo de linguagem.

ZK
Hamidun News
Notícias de AI sem ruído. Seleção editorial diária de mais de 400 fontes. Produto de Zhemal Khamidun, Head of AI na Alpina Digital.

Quer parar de ler sobre IA e começar a usar?

AI News é um feed curado de notícias de IA. A Hamidun Academy ensina você a usar IA no trabalho.

O que você acha?
Carregando comentários…