В любой системе где есть хоть какой-то интеллект можно обнаружить так называемое концептуальное пространство.
Что это вообще такое и почему важно?
Совсем просто, на пальцах – прочитав сейчас вот это слово – "кресло", вы совершенно точно, однозначно представили себе какую-то штуку (скорее всего мягкую и удобную) на которую можно поместить свое тельце в сидячем положении.
А теперь – "красота", "любовь", или вот, еще лучше – "справедливость".
Про эти штуки можно с большой уверенностью сказать – сколько людей, столько и мнений. Эти идеи сильно зависят от культурных особенностей, убеждений и прочих ментальных напылений.
А важно, потому что зная про плотность смыслов можно:
- лучше проектировать AI системы
- научиться обращать свое внимание на любые "размытости"
Находя таки размытости мы получаем шанс избавиться от них.
***
Небольшое оступление:
Сильные и выразительные системы типов в языках программирования автоматически заставляют разработчика нагонять плотность в концептуальное пространство программы "наперед", во время смой разработки.
Но это история про Software 1.0, весь интеллект там был белковый, распределенный по головам людей.
Сейчас же, когда мы внедряем LLM в свои системы, по существую у нас есть одно единственное желание – пусть эта новая и умная система работает точно, отвечает на вопросы как надо и не путается! Ну... пожалуйста.
Мы берем большую модель, и как сову на глобус пытаемся натягивать ее на наш небольшой кусок мира, некоторую прикладную область.
Нет ни одной гарантии что в двух организациях, из вроде бы одной и той же прикладной области, сотрудники будут говорить на одном и том же "прикладном языке"
Как же мы тогда можем ожидать от LLM что они нас "поймут" и будут давать предсказуемый и нужный результат?
Короче говоря, нам нужен способ заставить "думать как надо" этот новый искуственный интеллект.
Нам нужен способ повысить плотность концептуального пространства.
Почему не работает подход "просто засунь все в контекст" я уже писал например здесь, где в заключении призывал думать прежде чем делать, приводя в пример короткий список заземляющих вопросов.
Но это все очень смешно и размыто. Легко сказать "думай давай", делать то что?
Если вы внедряете AI я предлагаю, нет, я настаиваю что вам нужно в обязательном порядке ознакомиться со Schema Guided Reasoning и попробовать применить в своих проектах.
Ринат Абдуллин формализатор и амбассадор SGR, на русском много полезного прочитать по теме и пообщаться с ним вы можете в его канале.
***
Другого надежного способа заставить LLM думать так как нам нужно сейчас попросту нет.
Возможно когда то у нас будут квантовые супер-компьютеры на которых мы сможем в день тысячи раз обучать, модели с сотнями миллиардов параметров, но это все таки пока еще далекий sci-fi
Structured Output сам по себе работает лучше любой другой техники промт инжиниринга просто потому что мы получаем возможность физически загнать результат работы модели в рамки и типы описанные в JSON схеме.
При этом, конечно же, не отбирая у нас системный промпт как источник дополнительного контекста.
А еще разрабатывая AI системы через SGR призму мы автоматически заставляем самих себя болььше и детальнее думать "наперед" про домен задачи, важные сущности нашей системы, важные знания, которые могут потребоваться для LLM при решении поставленных задач.
Мы именно что моделируем процесс мышления с помощью этой штуки. И это замечательно – превращать нечеткие требования в надежно работающие системы.
Если вы искали хороший материал про Context Engineering о котором сейчас пишет каждый первый AI журналист – вы наконец его прочитали.