95.95K
AI

Prezentaciya

1.

УЧЕБНЫЙ ПРОЕКТ · 2026
Конвейер генерации кода
на базе малой языковой модели
Интеллект вне модели: поиск, рецепты и детерминированная проверка
14B параметров · 12 ГБ видеопамяти · 8 тыс. токенов контекста
~1100 методов реестра · 6 рецептов · 8 этапов · 3 варианта кода

2.

ИНТЕРАКТИВНАЯ НАВИГАЦИЯ
Содержание
01
02
03
04
Проблема и гипотеза
Формальная модель
Поиск методов
Рецепт и скелет
Почему модель не должна думать
Задача, реестр, рецепт, конвейер
BM25, словоформы, топ-10
Форма вместо архитектуры
05
06
07
08
Валидация
Архитектура и этапы
Два примера
Масштабирование
Предикат вместо самооценки
Шесть инструментов, восемь шагов
C# и Python, по три варианта
Путь к 1000 сценариев

3.

ПОСТАНОВКА
Проблема: малая модель ошибается предсказуемо
Ограниченный контекст
Выдуманные API
8 тыс. токенов не вмещают задачу, реестр и правила
одновременно
Модель уверенно вызывает методы, которых не существует
Невоспроизводимость
Дорогая разметка
Один и тот же запрос даёт разный результат
Готовый .docx — 39 тыс. токенов разметки на документ
Оба первых недостатка — свойства модели, а не задачи. Значит, исправлять их нужно не в модели.

4.

01
Гипотеза
Интеллект располагается вне модели
Качество системы определяется не ёмкостью модели,
а качеством трёх механизмов вокруг неё.
← содерж.

5.

ГИПОТЕЗА
Три механизма вместо одного
Извлечение
Рецепт
Валидатор
Выбор 10 методов из ~1100
Скелет скрипта и правила
Вердикт «принято / переделать»
Почему не модель:
Почему не модель:
Почему не модель:
Модель не помнит реестр и путает
похожие имена
Модель произвольно меняет структуру
файла
Модель не умеет оценивать свой код
Самопроверка модели совещательна: она систематически отвечает «всё хорошо».

6.

02
Формальная модель
Задача, реестр, рецепт, конвейер
F:Z→C
Z = (t, L, D) — задача: текст, язык, домен
V(c) = 1
— корректность как проверяемый предикат
← содерж.

7.

ФОРМАЛЬНАЯ МОДЕЛЬ
Модель — функция без состояния
M : (p, π, R, ρ) → c
p
задача человека
π
план из четырёх строк
R⊆M
предъявленные методы, не больше 10
ρ
рецепт: скелет, правила, пример
c
порождённый текст
M(t+1) = M(t) — память модели не используется, контекст подаётся заново каждый раз

8.

03
Поиск методов
BM25, словоформы русского языка, топ-10 из ~1100
← содерж.

9.

ПОИСК
BM25 и расширение запроса
score(D,Q) = Σ IDF(qᵢ) · f(qᵢ,D)·(k₁+1) / ( f(qᵢ,D) + k₁·(1 − b + b·|D|/avgdl) )
k₁ = 1.5 b = 0.75
Словоформы
Синонимы
«камеру» → «камера» · нормализация + префикс от 4 символов
RU → EN в два уровня · сильный 0.8 / слабый 0.3
Приоритет имени
Ограничение
имя метода × 3.0 · имя класса × 1.5
не больше 2 записей · с одним именем в топе
P@5 = 1.0 на трёх контрольных задачах — все пять предъявленных методов пригодны

10.

04
Рецепт и скелет
Форма вместо архитектуры
← содерж.

11.

РЕЦЕПТ
Скелет снимает неопределённость
public class EnemySpawner : MonoBehaviour
{
// <1> точки спавна: Transform[]
// <2> префаб врага: GameObject
// <3> интервал между волнами: float
void Start()
{
// <5> запустить периодический спавн
}
void SpawnWave()
{
// <6> выбрать точку и создать врага
}
H(Sk) ≪ H(S)
энтропия структуры падает
4–7 пропусков
каждый с комментарием
«Заполни»
вместо «придумай»
}
Перевод задачи из режима «придумай архитектуру» в режим «заполни помеченные места»

12.

05
Валидация
Предикат вместо самооценки
← содерж.

13.

ВАЛИДАЦИЯ
V(c) — конъюнкция предикатов
V(c) = Balance(c) ∧ White(c) ∧ Mono(c) ∧ Rep(c)
Balance
White
Mono
Rep
Скобки с вырезанием
комментариев и строк
Все .Name( из разрешённого
списка или whitelist
class X : MonoBehaviour и не
new MonoBehaviour
compile() для Python и
проверка импортов
White(c) = 1 ⟺ ∀ x ∈ Calls(c) : x ∈ A ∪ B
A — методы из RAG и рецепта, B — встроенные члены языка.
Именно этот предикат ловит выдуманный API — главный дефект малых моделей.

14.

ВАЛИДАЦИЯ
Вердикт, победитель и повторы
3 варианта
v1 реестр · v2 наполовину · v3
с нуля
Проверка
→
V(cᵢ) для каждого варианта
Победитель
→
первый принятый: v1 → v2 →
v3
P(acc) = 1 − Π (1 − pᵥ)
При полном провале: файлы неудачной попытки удаляются, ошибки передаются в повтор.
Без конкретного списка ошибок повтор воспроизводит тот же дефект.
Повтор
→
со списком ошибок, не более
2 раз

15.

06
Архитектура
Шесть инструментов и два реестра
← содерж.

16.

АРХИТЕКТУРА
Шесть инструментов, два реестра
miniRag
recipes
validator
отбор 10 из ~1100
домен и скелет
предикат V(c)
pipeline
docxUtils
fileSystemUtils
8 этапов
.docx из текста
создание файлов
registries/unityEngine/
registries/domains/
~1100 имён · 9 файлов · 181 КБ
6 рецептов · 4 домена
отвечает: какие методы существуют
отвечает: как собрать скрипт

17.

АРХИТЕКТУРА
Восемь этапов конвейера
1
2
2b
3-4
Задача
План
Рецепт
RAG · 10
человек
модель
код
код
5
6
7
8
3 варианта
Файлы
Проверка
Вердикт
модель
код
код
код
Проверка (7) идёт ДО записи (6 в плане было после): мусор не появляется на диске вовсе.

18.

07
Два примера
C# и Python, по три варианта кода
← содерж.

19.

ПРИМЕР 1
C#: «спавнить врагов волнами»
домен enemies → рецепт EnemySpawner · вес 4.5 · RAG: Object.Instantiate, Random.Range, InvokeRepeating
v1_registry — принят
public class EnemySpawner : MonoBehaviour
{
public Transform[] points;
public GameObject prefab;
v1_registry
принят
v2_half
void Start() { InvokeRepeating("SpawnWave", 1f, interval); }
void SpawnWave()
{
Instantiate(prefab, p.position, p.rotation);
}
}
принят
v3_scratch
отклонён
v3 отклонён: Метод '.RotateTowardsAngle(' отсутствует в реестре — похоже на выдуманный API

20.

ПРИМЕР 2
Python: «прогноз цены акции»
домен stocks → рецепт StockForecast · правило: только стандартная библиотека
v1_registry — принят
def slope(values):
k = Σ(i−x̄)(v−ȳ) / Σ(i−x̄)²
return k, ȳ − k·x̄
v1_registry
def forecast(values, steps):
return [k·(n+i)+b for i in range(steps)]
v2_half
принят
принят
def backtest(values, train_ratio=0.7):
...средняя абсолютная ошибка
v3_scratch
отклонён
v3 отклонён: Импорт 'requests' вне разрешённого списка стандартной библиотеки

21.

РЕЗУЛЬТАТ
Экономия токенов: инструмент вместо разметки
39 400
6 200
токенов — если модель пишет OOXML сама
токенов — модель пишет только текст
T(raw) / T(tool) ≈ 6.3 — инструмент окупается на втором документе
Round-trip: 13 из 13 маркеров на месте, потеряно 0 слов содержания.

22.

08
Масштабирование
Путь к 1000 сценариев
← содерж.

23.

МАСШТАБИРОВАНИЕ
Цикл роста без дообучения
Новая задача
→
Порождение
→
Проверка
Враги, патрулирование
Низкая
Инвентарь
Средняя
HTTP-запросы
Высокая
HTML-страницы
Высокая
Прогноз котировок
Наивысшая
→
Успех → рецепт
→
Провал → повтор
Узкое место — не модель
а труд описания рецептов.
Черновик рецепта пишет та же модель,
человек проверяет глазами.

24.

ЗАКЛЮЧЕНИЕ
Интеллект системы не обязан
находиться в модели.
Перенос ответственности за выбор, форму и приёмку в код даёт систему,
которая воспроизводима, проверяема и не зависит от удачи.
Проверена обвязка. Качество модели — следующий обязательный шаг.
Документ: «Теория и обобщение» · 20 страниц · Times New Roman 14 · 26 формул
English     Русский Rules