Habr AI→ оригинал

На Habr показали, как обучить мини-LLM на C# через ILGPU и встроенную AMD-графику

На Habr показали полный цикл сборки микро-LLM на C# без Python и без обязательной NVIDIA-карты. Автор использовал ILGPU и OpenCL, обучил модель на встроенной AM

На Habr показали, как обучить мини-LLM на C# через ILGPU и встроенную AMD-графику
Источник: Habr AI. Коллаж: Hamidun News.

На Habr вышел подробный практический разбор, который показывает редкий для локального AI-сообщества сценарий: маленькую языковую модель можно собрать и обучить с нуля на C#, без Python и без обязательной NVIDIA-карты, а затем сохранить в GGUF и запустить в LM Studio. Автор использовал библиотеку ILGPU и OpenCL, опираясь на встроенную графику AMD, и получил работающий, пусть и очень ограниченный, прототип LLM размером около 422 КБ. Проект задуман как учебная демонстрация полного цикла, а не как попытка конкурировать с большими open-source моделями.

В статье разбирается базовая архитектура трансформера: токенизация, embedding-слой, self-attention, feed-forward, нормализация и выходная проекция. Для обучения автор подготовил два небольших набора данных: короткий pretrain-корпус с общими фактами о мире и instruction-tuning выборку с вопросами и ответами. Задача была не в том, чтобы получить сильную модель, а в том, чтобы руками пройти все этапы — от словаря до инференса.

Финальная конфигурация получилась предельно компактной: словарь на 512 токенов, длина контекста 64, embedding 64, скрытый слой 128, одна трансформерная прослойка и две attention-головы. В сумме это 103 744 параметра. До экспорта модель можно сохранять в бинарный файл размером примерно 6,87 МБ, но итоговый GGUF-файл занимает около 422 КБ и распознается как GGUF V3.

После обучения pretrain-loss опустился примерно до 0,212, а после дообучения под диалоговый формат finetune-loss — до 0,3926. Для такого масштаба это скорее признак того, что схема работает технически, чем доказательство качества ответов. Важна и сама логика обучения.

Сначала модель проходит фазу предварительного обучения на коротком корпусе из десятков предложений, затем отдельную стадию instruction tuning на диалоговых примерах. В интерфейсе программы есть меню для переобучения, теста токенизатора, сохранения весов и запуска интерактивного чата. Для ответа автор добавил примитивный фильтр уверенности: если минимальная уверенность по токенам падает ниже порога, система выводит не ответ, а фразу «затрудняюсь ответить».

Это грубый, но понятный способ скрыть очевидный мусор, который почти неизбежен у модели такого размера. Именно это делает демо пригодным хотя бы для базовой проверки пайплайна. Самой сложной частью оказался не forward pass и не само обучение, а совместимость с экосистемой llama.

cpp. Автор сначала пытался собрать модель в более похожей на LLaMA конфигурации, но уперся в ошибки при загрузке и несоответствие числа тензоров. В итоге пришлось упростить архитектуру, заново собрать токенизатор по мотивам Microsoft.

ML.Tokenizers и внимательно описать метаданные GGUF: архитектуру, длину контекста, параметры внимания, специальные токены и chat template. Отдельный технический нюанс — модель фактически не держит длинную историю диалога, поэтому для чата используется шаблон только с последним сообщением пользователя, иначе крошечный контекст быстро ломает инференс.

Практический результат скромный, но показательный. Модель отвечает на простые запросы, в LM Studio открывается и может работать через совместимый стек, однако llama.cpp предупреждает о деградации качества генерации, а автор прямо пишет, что обучение еще недостаточно хорошее.

Кроме того, инференс ломается на некоторых запросах с вопросительными и восклицательными знаками, то есть проект остается экспериментом и учебным стендом. Но сама работа важна по другой причине: она показывает, что порог входа в низкоуровневые эксперименты с LLM можно сильно снизить. Для разработчиков из .

NET-мира это наглядный пример того, как собрать минимальную модель, проверить OpenCL-сценарий вне CUDA-монополии и разобраться, из каких деталей на самом деле складывается локальный запуск языковой модели.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 400+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.
Загружаем комментарии…