Восстание машин: Как роботы захватили бухгалтерию

Кнопочные войны в самом разгаре, роботы продолжают наступать, машины обучаются в разы быстрее людей, а вот Андрей, владелец одной московской кофейни, становится всё больше счастлив… В этот пятничный предпраздничный день мы решили поделиться с вами историей Кнопки, которая в прошлом году создала 42 робота для спасения бухагелтеров от рутинной работы, а сейчас занимается разитием искусственного бухгалтерского интеллекта.

900d818cb66b48f9855b7e89822bafd8.jpg

Кнопка — бэк-офис для предпринимателей. Ведём бухгалтерию, решаем юридические вопросы и забираем рутину.

В 2016 году разработчики Кнопки создали много роботов, всего их — 42. Это наши помощники, они забирают на себя рутину в работе бухгалтера: один распознаёт документы, второй их сортирует, третий проводит банковскую выписку. У каждого робота есть имя: Раскукожка, Сортировка, Проводник, есть даже робот Паникёр. Рассказываем, зачем нам помощники с искусственным интеллектом и как они работают.

Техническая вводная


Наши клиенты общаются с нами через веб-приложение или в мобильном приложении на Айфоне или Андроиде. Веб-приложение разработано на платформе .NET. Сначала была Java, но сейчас её почти не осталось. Недавно перенесли приложения в Azure.

Бухгалтеры ведут учёт тысячи клиентских баз в системе 1С. Для хранения баз используем технологию облачной системы 1сFresh, а многочисленные роботы живут кто где — часть в Azure, часть на наших серверах.

Так мы уверены, что все документы, базы клиентов и другие данные в безопасности.

Рассказывает разработчик Кнопки. Почему перешли с Java на .NET:

1. Наше приложение в тот момент — это наследие, которое мы получили после 5 лет разработки. Оно создавалось без применения каких-либо инженерных практик. Структура кода и отсутствие его тестирования создавали гигантские трудности в написании новых фич. Чтобы сделать хоть какое-то даже небольшое изменение, мы тратили кучу сил и времени. Кроме того, приложение было спроектировано таким образом, что любые тесты приходилось очень долго и неудобно писать. Модульного тестирования не существовало. Были только интеграционные тесты, которые использовали живую базу. По итогу, все тесты проходили часами.

2. В силу того, что в приложении был один Enterprise и он погонял другой Enterprise, наше приложение очень долго разворачивалось и собиралось. Долго — это до 40 минут. Приходилось очень много времени, чтобы собрать и развернуть приложение после малейшего изменения или чтобы просто посмотреть на то, как выглядит какая-то фича на форме в вёрстке. Появлялись билд-хобби. :)

3. Стало очевидно, что новые фичи мы должны писать в отдельном приложении сбоку. Наших компетенций в .NET в тот момент стало сильно больше — у нас поменялась команда. Команда единогласно признавала, что язык C# намного приятнее Java. Кроме того, в .NET есть такие технологии как Linq, которые позволяют иметь дело не с настоящей базой, а с полноценной её InMemory реализацией.

4. Большая часть нашего приложения работает с 1С. И делаем мы это очень спорным способом через COM API, COM — работает только в Windows среде и .NET имеет нативную поддержку COM-а. То есть у нас всё равно было уже много кода на .NET, и команда видела, что этот код приятнее.


Как было до роботов


1С умеет готовить любую отчётность, но для этого нужно постоянно поддерживать актуальное состояние бухгалтерской базы. Кто-то должен завести в систему первичные документы, импортировать и провести банковскую выписку, создать и провести учётные документы. А ещё исправить ошибки, возникшие во время работы. Это важные задачи, но они занимают много времени.

Например, чтобы обработать банковскую выписку, по каждому платежу нужно определить, к какому виду операции он относится: оплата поставщику, возврат покупателю, снятие наличных, выдача займа контрагенту и так далее. Бухгалтер, зная особенности клиента, точно определит вид операции и правильно проведёт платёж в 1С.

Но каждый обработанный бухгалтером платёж означает, что с ростом клиентской базы придётся увеличивать штат бухгалтеров. Мы посчитали, что будущего с таким подходом у нас не будет.

Решили развивать машинное обучение и создать искусственный бухгалтерский интеллект, чтобы с его помощью автоматизировать ведение бухгалтерии. 90% всех бухгалтерских операций система будет выполнять сама, и лишь в 10% понадобится участие человека.

Как теперь


Андрей — владелец небольшой кофейни в Москве. Каждый день он закупает продукты у поставщиков, кормит москвичей отменной выпечкой и угощает кофе.

Учёт ведёт в iiko, а бухгалтерию доверяет Кнопке. Первичные документы аккуратно собирает и раз в неделю привозит к нам в Московский офис. Мы работаем с первичкой: сканируем, сортируем и отправляем контрагентам. Клиенту документы доступны в облаке, оригиналы храним в несгораемых шкафах, а сканы сразу попадают на конвейер документов.

Первым делом первичку Андрея мы сканируем и получаем pdf со всеми документами в одном файле. Чтобы разделить документы, в работу вступает робот Раскукожка. Он превращает пдфку в 150 джипегов.

Потом робот Сортировщик смотрит на каждый скан и понимает, какой из документов — акт, какой — УПД, а какой — товарная накладная. Он аккуратно сортирует их и кладёт в нужную папку.

83a7f1d8a5c447f890e8f53307e2177f.jpg

Сканы бывают разные. Если документ вверх ногами или лежит на боку, Сортировщик их переворачивает, чтобы человеку было удобно читать.

Внутри Сортировщика живёт две свёрточных нейронных сети — одна для поворота, другая для классификации документов. Для обучения сетей потребовалось 40 тысяч размеченных вручную сканов.

Затем весь текст в документе распознаётся другим роботом. Он определяет название клиента, контрагента, дату, номер и всю фактурную часть. Для распознавания мы пользуемся решением от наших партнёров, которые, в свою очередь, используют софт ABBYY.

И только после этого скан попадает к бухгалтеру:

1d9d3fe6c9ec4858bd339580e9240975.jpg

Бухгалтер проверяет и нажимает кнопку «Сохранить».

Дальше в работу включается робот Проводник, он сохраняет каждый документ в 1С и проводит его.

После этого бухгалтер проверяет все поступления и списания с расчётного счёта компании. Для этого нужна выписка с банковского счёта клиента. Раньше нам приходилось её запрашивать у всех клиентов.

Теперь всё проще. Чтобы получать выписку без участия клиента, мы интегрировались с Альфой, Точкой и Тинькофф банком. Клиентам не нужно заходить в интернет-банк, качать выписку и высылать её бухгалтеру. А в 1С всегда актуальная информация по платежам. Также выписка из этих банков отображается в клиентских приложениях. Остальные банки пока обслуживаются вручную.

Но просто скопировать платёж из банка в 1С недостаточно. Каждый платёж нужно правильно провести — и это тоже делает специальный робот. Для обучения использовались несколько сотен тысяч платежей, проведённых вручную.

Но прежде нам нужно было договориться со всеми бухгалтерами компании, чтобы проводить выписку одинаково. Оказалось, в бухгалтерии присутствует творчество. :)

В итоге, получили точность проведения выписки 97% — это сравнимо с точностью человека.
Когда всё сделано и проверено, бухгалтер Ирина отправляет Андрею готовый отчёт и предварительную сумму налога. Андрей счастлив, заранее знает предварительную сумму налога и может её скорректировать. Как — подскажет бухгалтер.

6d0146bcbd6444df9ff6b82cba5b8e3b.jpg

Что всё это значит?


Использование алгоритмов машинного обучения позволяет нам увеличивать клиентскую базу и при этом не нанимать новых сотрудников.

Для бухгалтеров Кнопки рабочий процесс упрощается и позволяет за короткий срок проверить правильность выполненных операций и что-то поправить, если нужно. Алгоритм самообучающийся, каждое исправление бухгалтера совершенствует процесс и улучшает алгоритм.

Не так давно Минфин прогнозировал замену бухгалтеров на искусственный интеллект и постепенное исчезновение профессии бухгалтера. Не волнуйтесь, совсем без бухгалтеров не останемся, но отбор пройдут явно лучшие. Они и будут управлять роботами.

Мы считаем, это неплохо — зачем нам 5 миллионов бухгалтеров на население в 145 миллионов? Для сравнения, в США при населении в 300 миллионов насчитывается чуть больше миллиона бухгалтеров.

Мы верим, что в ближайшем будущем за счёт искусственного интеллекта качество бухгалтерского и налогового учёта вырастет в разы.

Благодарим за статью Максима Ахмадинурова movemind.

Комментарии (1)

  • 28 апреля 2017 в 13:26

    0

    Наша бухгалтерия традиционно «тяжелее» американской.

© Habrahabr.ru