С развитием искусственного интеллекта (ИИ) перед человечеством открывается все больше возможностей. Неудивительно, что сегодня современные технологии активно внедряются во многие сферы, в том числе в риск-менеджмент. Сегодня речь пойдет о том, как моделировать риски без специализированного программного обеспечения (ПО) с использованием искусственного интеллекта.
Как показывают опросы профессионального сообщества, искусственный интеллект пока не очень активно используется в процессах риск-менеджмента.
Предлагаю поразмышлять над следующими вопросами о пользе ИИ в риск-ориентированном подходе. Как бы вы ответили на эти вопросы?
Как практик, уже использующий ИИ, могу ответственно сказать, что ИИ уже способен собирать статистику, доступную в интернете, и обрабатывать ее. Он имеет доступ к множеству источников – описанию разных отраслей, отчетов о риск-менеджменте, рисках и так далее. Это значит, что вы можете спрашивать искусственный интеллект о рисках, он способен идентифицировать их в тех или иных направлениях, отраслях, проектах, задачах. Также ИИ может выявлять причины и последствия. Ему под силу анализировать риски, строить галстуки-бабочки в виде графического отображения на основе открытых источников.
ИИ может самостоятельно моделировать простые модели и зачастую рекомендовать какие‑то подходы, даже оптимизационные, подсказывать логику. Но решения остаются за человеком.
Выходит ИИ – помощник, который может выполнять часть рутинных работ и технических функций риск-менеджмента. На данный момент в практике риск-менеджмента ИИ может решать 60–80% задач.
ИИ – помощник, который может выполнять часть рутинных работ и даже технических функций риск-менеджмента. На данный момент в нашей практике ИИ может решать 60–80% задач риск-менеджмента.
Для каких‑то небольших задач, простых моделей Excel, состоящих из нескольких строчек, искусственный интеллект может прочитать формулы модели, понять ее логику и пересчитать такие модели самостоятельно, то есть, по сути, выполнить сценарное, а также имитационное моделирование полностью самостоятельно.
Однако практика показывает, что те модели, которые есть у бизнеса, даже простые, имеют много ограничений: в них представлена чувствительная для бизнеса коммерческая информация или уникальная логика расчетов, разработанных специально для решения отдельных задач. В этой связи может возникнуть вопрос: стоит ли использовать тот же Chat GPT для коммерческой информации, для стратегической модели бизнеса? Забегая вперед, скажу: можно, далее рассмотрим механизмы, как можно использовать ИИ, чтобы ни модели, ни коммерческая информация не сгружались в ИИ, но при этом чтобы ИИ оказал нам большую помощь.
Для начала напомню: когда мы говорим об имитационном моделировании, речь идет о каких‑то существующих планах, прогнозах, оформленных в виде финансовых моделей (см. рисунок ниже).
На самом деле моделей может быть огромное количество, и они могут быть абсолютно разные по своей логике расчета и решаемым задачам. Это могут быть модели расходов, доходов, расчета IRR (Internal Rate of Return, внутренняя норма доходности), рентабельности и так далее. Они могут касаться целиком бизнеса, холдинга, компании, консолидированной отчетности, также это могут быть планы конкретных отделов, подразделений, производственных цехов. Это не обязательно в чистом виде финансовая модель, это все, что так или иначе моделируется, планируется в деятельности организации и не зависит от рода этой деятельности. Речь может идти о заводе либо о сервисной компании. То есть везде, где существуют планы в виде моделей, можно проводить имитационное моделирование.
Чтобы учесть риски в любом плане и любой модели, надо посмотреть на ее входные параметры. Если мы говорим о бизнес-плане или стратегии того или иного бизнеса компании, это могут быть цены продукции, объем продаж, задержка выпуска нового продукта на рынок, курс доллара, евро, уход ключевого персонала и многие другие риски, которые могут повлиять на планы компании. Вместо входных показателей внутри модели мы можем взять диапазоны и посмотреть ситуацию в виде распределений, то есть диапазонов с учетом вероятности.
Плотность распределения цены продукции в следующем месяце
Возвращаясь, например, к цене продукции. Она, по оценкам аналитиков и экспертов, может быть в следующем месяце или году от 30 до 40 рублей, но наиболее вероятно, что цена будет 38 рублей за единицу продукции. Можно и другие вероятности выставить по разным точкам в этом диапазоне. Соответственно, это приводит к виду некой плотности распределения, то есть мы получим разные значения цены с учетом вероятности того, что она в действительности будет такой в этом периоде (см. рис. выше).
Возвращаясь к технике: по каждому из параметров, в котором видим наличие неопределенности, надо вставить ее в виде плотности распределения, с тем чтобы в дальнейшем промоделировать множество сценариев из этого диапазона значений с учетом вероятностей. Но это не единственная задача. В данном случае в имитационном моделировании есть задача оценки бизнеса и его перспектив с точки зрения оценки всех рисков, которые действуют на тот или иной бизнес в будущем. То есть необходимо в виде плотностей распределения включить в модель множество неопределенных параметров, с тем чтобы понять, как вся эта совокупность неопределенностей/рисков влияет на бизнес-план и его ключевые показатели в целом.
График Тренд «Выручка»
Результаты моделирования на слайде представлены в виде графика Тренда, где отражается диапазон возможных значений ключевых показателей: денежных потоков, прибыли, выручки, производства единиц продукции. Этот диапазон характеризует то, что с учетом действия рисков может варьироваться итоговый результат. И это может быть любой ключевой показатель эффективности (КПЭ), любая стратегическая или операционная цель, поставленная перед бизнесом. Получается, технически для имитационного моделирования нам нужно подставлять разные значения для цены продукции, объема продаж, задержки выпуска, курса доллара, евро, вероятности ухода ключевого персонала и возникновения конфликтов.
Все эти неопределенности нужно предусмотреть внутри модели в виде нескольких ситуаций: например, либо риск происходит/либо нет и, соответственно, есть последствия, или неопределенность/риск отражаются в определенных сценариях значений входных параметров, например, конкретные сценарии цены продукции или объема ее выпуска. Все эти сценарии нужно вставить и пересчитать в модели – желательно, чтобы моделирование состояло из 5–10 тысяч итераций/сценариев, то есть нужно посмотреть разные комбинации показателей, которые мы считаем в виде неопределенности и в виде рисков. Допустим, на рынке увеличивается цена, но объем продаж падает, у нас имеются сложности с организацией производства и так далее. Надо посмотреть, что будет происходить с нашими итоговыми показателями при разных комбинациях этих возможностей и угроз. Например, по показателю остатки денежных средств на конец периода.
График плотности распределения
График Торнадо
Второй график, который приведен на рисунке, – график плотности распределения итоговых результатов и третий – График Торнадо. Опираясь на них, сможем принять какие‑то управленческие решения, понять, куда стоит обратить свое внимание – контролировать изменение цены нового оборудования или постараться как можно быстрее заключить контракт и зафиксировать эту цену. Задача – обеспечить наивысшие шансы в достижении целевых показателей, которые поставил перед собой бизнес, – это, к примеру, может быть прибыль с доходностью IRR не менее 20% годовых.
Переходим к практике
Давайте посмотрим на примере простой модели, что можно сделать с помощью искусственного интеллекта и насколько это легко. Уточню: речь пойдет о технологии, которую сейчас можно применять в России. Не секрет, что многие программные продукты для имитационного моделирования, которыми ранее пользовались риск-менеджеры, теперь недоступны. Более того, возникают сложности, связанные с тем, что многие компании переходят на российское ПО, и есть ограничения, в том числе по использованию Excel. Я расскажу об одном из подходов, позволяющем самостоятельно, без специализированных продуктов, решать задачи моделирования без ограничений.
Шаги встраивания в модель рисков
Итак, шаг первый – знакомство с моделью и ее аудит. Это классическая история, когда вы берете любую модель, в которую хотели бы вставить какие‑то риски. Возьмите за правило: прежде чем куда‑то что‑то встраивать, нужно разобраться, является ли инструментарий рабочим, нет ли там каких‑то ошибок расчетов и разрывов формульных связок. Важно, чтобы модель была реально работающей, и, после того как мы туда вставим различные значения входных параметров, она пересчиталась и на выходе получились другие результаты.
Второй шаг – сделать механизм подстановки в модель вместо входных параметров значений из наших диапазонов, пересчета модели и сбора значения итогового показателя. Так как нет специализированного ПО, ввиду существующих ограничений, мы взяли то, которое доступно для всех, – это код Python, но, забегая вперед, уточню: никакого кодинга самостоятельно нам делать не придется. В этом и прелесть использования искусственного интеллекта – нам не надо становиться профессионалами в области программирования, ИИ все сделает за нас.
Третий шаг – создать SIP-файл для входных параметров, то есть файл со множеством сгенерированных значений, скажем, для 1000 сценариев. Это как раз те значения входных параметров, которые будем подставлять в модель. К примеру, если это цена нашей продукции на рынке в следующем году, то это последовательность разных цифр: 10, 11, 20 рублей и так далее. В соответствии с тем диапазоном, который мы хотели бы учесть, в рамках него мы должны сгенерировать ряд значений. В данном случае будем генерировать 1000 значений 1000 сценариев, то есть нам нужно подставить и посчитать тысячу сценариев по всем показателям. Здесь поможет ИИ. Я создал специализированный Chat GPT, обученный для того, чтобы формировать эти SIP-файлы. Вы сможете сформулировать запрос простым языком: например, сгенерируй параметры с такими‑то распределениями. Даже если не знаете распределения, с помощью Chat GPT можно подобрать их. Он сгенерирует этот SIP-файл со всеми вашими параметрами. Подробнее, как им пользоваться, я расскажу в отдельной статье в следующем номере журнала.
Примечание: Для доступа и использования специализированного Chat GPT необходима подписка к платной версии Chat GPT.
Четвертый шаг – проверка исходных данных, обязательная после работы с Chat GPT, вообще с искусственным интеллектом. Я рекомендую проверять на выходе: то ли он сгенерировал, какие цифры в итоге получились, чтобы потом можно было спокойно подставлять их в модель.
Пятый шаг – запуск моделирования, то есть запуск кода Python на исполнение.
Шестой шаг – проверка и анализ результатов, которые получились.
Седьмой шаг – подготовка управленческого решения.
В этой статье мы разберемся с техникой шагов 2 и 5 на конкретном примере. Заходим в Chat GPT, четко понимая задачу – нужно сделать механизм подстановки в модель (см. Исходная модель в Excel) вместо входных параметров значений из наших диапазонов. Так и пишу в чате: «напиши код Python для подмены трех параметров из модели Excel». Можем даже установить конкретные ячейки. Так в ячейке B3 у нас первый показатель – цена продукции, дальше ячейки B5 и B9. Уточняем для ИИ задачу: «напиши код Python для подмены трех параметров в модели Excel B3, B5, B9, значения для замены нужно будет подгрузить из CSV-файла». CSV-файл – это простой текстовый файл Excel, где в первом столбце указаны значения для параметра 1, во втором – для параметра 2 и так далее (см. пример на рисунке ниже «SIP-файл с тремя параметрами (первые 20 строк файла)»).
Что важно: например, в качестве выходного параметра нам надо выгрузить результаты моделирования из ячейки D12 – я знаю заранее, что итоговый результат – прибыль третьего прогнозного периода в ячейке D12 файла Excel. Следовательно, нужно записать отдельный файл Excel в виде всех значений после пересчета модели. К слову, вся модель у нас на одном листе, это простенькая модель, которую вы можете специфицировать как угодно. Для Chat GPT поясняю, что требуется написать код Python для подмены трех параметров из модели Excel и указываю конкретный лист – Model, чтобы ИИ не искал данные на других листах. Запускаем ИИ и ждем некоторое время, пока Chat GPT пишет специализированный код.
Запрос в Chat GPT
Код Python, созданный ChatGPT в результате реализации запроса
Важно: если нам непонятно, что написал ИИ, можем его переспросить: «скажи, пожалуйста, что делает этот код?» То есть можно попросить объяснить по шагам, что последовательно выполняет данный код.
Алгоритм работы кода Pyhton следующий. Шаг первый – чтение данных из CSV-файла, то есть нужно будет указать здесь наш CSV-файл (//Documents/ISAR/2024/April/sip_file_(3).csv). Шаг второй – открытие нашей модели, т.е. файла Excel (//Documents/ISAR/2024/April/SimpleModel_1.xlsx). Затем запускается цикл, в рамках которого подставляются значения из файла CSV в нашу модель, и модель пересчитывается. Результаты пересчетов при каждой подстановке записываются в итоговый файл Excel (//Documents/ISAR/2024/April/Results_11.xlsx). При формировании запроса для создания кода Python можно сразу указать пути к этим файлам (см. Запрос в Chat GPT.
Исходная модель в Excel
Далее нам нужно подготовить модель и сделать SIP-файл. Сохраняем ее под названием «SimpleModel_1.xlsx». Она представлена в виде нескольких строчек, три прогнозных периода, показатели по выручке, себестоимости и прибыли по итогу за каждый год (см. рисунок выше). В данном примере три входных параметра: цена одной услуги, объем продаж и себестоимость одной услуги (выделены желтым фоном). Для моделирования нам нужно подставить вместо входных параметров значения из диапазонов, где, например, для цены одной услуги должны быть подставлены значения от 50 до 65 при наиболее вероятном значении 55 рублей; для объема продаж услуг – от 10 до 20 штук с наиболее вероятным значением 12; для себестоимости – от 5 до 9 рублей с наиболее вероятным значением 8.
Теперь нам нужно создать массив данных, например, из 1000 итераций для каждого из значений с учетом диапазонов. Получается три параметра со следующими характеристиками.
Характеристики трех входных параметров
Я воспользуюсь уже созданным файлом SIP, который выглядит следующим образом.
SIP-файл с тремя параметрами (первые 20 строк файла)
По сути, в данном SIP-файле подобраны 1000 сценариев со значениями входных параметров для подстановки в исходную модель на основе характеристик диапазонов этих параметров из таблицы выше. Сохраняем этот файл под именем «sip_file_ (3).csv».
Итак, у нас есть исходная модель и CSV-файл со сценариями для подстановки в модель. Важно, чтобы при запуске кода Python эти файлы находились в соответствующих папках и были доступны для чтения. Запускаем в Visual Studio Code наш код «run without debugging» (запуск без отладки). В результате выполнения кода модель будет пересчитываться автоматически, подставляя наши значения из файла CSV для входных параметров. Результаты пересчета из ячейки D12 буду сохранены в новом Excel-файле «//Documents/ISAR/2024/April/Results_11.xlsx».
Вернусь к SIP-файлу. Каждая строка в нем – это один сценарий подстановки значений трех параметров модели. Сколько их там будет – 10, 20, неважно. Одна строка – это значения для сценария номер один, вторая строка – сценарий номер 2, третья – сценарий номер 3 и так далее, до указанного количества сценариев. В нашем примере это 1000 сценариев (согласно количеству строк в SIP-файле).
Создавать SIP-файлы можно не только с помощью инструмента «Distribution, SIPs generation assistance». Этот инструмент сделан специально, чтобы облегчить жизнь риск-менеджерам, но можно делать SIP-файлы через Excel Random Numbers и другие приложения. Можно самим вручную генерировать. В действительности вариантов, как создать SIP-файл, множество. В том числе через приложения для имитационного моделирования. Чтобы пользоваться «Distribution, SIPs generation assistance», потребуется платная подписка на Chat GPT.
Итоговые результаты в файле «Results_11.xlsx» (первые 20 строчек для примера)
Получив результаты моделирования, можем работать с этой статистикой с помощью обычных функций Excel, искать персентили, минимум, максимум, вероятность достижения целевого показателя и так далее.
Статистика итогового показателя Прибыль в 3‑й прогнозный год
Далее на основе этого анализа можно готовить презентацию для принятия управленческого решения. Например, с учетом вероятности достижения цели 39%, возможно, потребуется пересмотр и доработка планов с целью повысить шансы достижения целевого показателя.
Я рассказал о самом простом и понятном инструменте, который можно создать с помощью искусственного интеллекта. При этом заметьте, что не пришлось делиться никакими коммерческими данными и отправлять модель искусственному интеллекту, боясь, что она будет доступна широкому кругу лиц. В примере использовались только общедоступные программные продукты. Для каких‑то компаний в России это может послужить вполне работающим инструментом в текущих условиях. Конечно, у этого инструмента есть свои ограничения, в частности скорость пересчета итераций в случае больших моделей. Но могу уже сейчас сказать, что проводится работа над улучшением этого решения и над новыми инструментами и, возможно, скоро будет представлена продвинутая версия. Будущее уже рядом.
Наш новый курс «Будущее управления рисками на основе искусственного интеллекта»
Константин ДОЖДИКОВ, автор курсов по управлению рисками, преподаватель АНО ДПО «ИСАР», Ph.D., CRMP, C31000, CT31000