ИИ продолжает быть одной из самых хайповых тем в мире разработки и информационных технологий. Его развитие волнует не только умы разработчиков, но и привлекает большое внимание широкой общественности. Искусственный интеллект давно уже перешел за рамки частного применения и интегрировался в повседневную жизнь, оказывая влияние на различные сферы деятельности.
Использование решений на базе ИИ больше похоже на работу человека с неким напарником, обладающим большой базой знаний. В будущем предполагается, что ключевыми навыками специалистов станут умение эффективно взаимодействовать с искусственным интеллектом, правильно формулировать задачу и интерпретировать те результаты, которые ему предоставит система.
Мы, в компании «Автомакон», понимаем важность, а в какой-то степени и неизбежность грамотного применения ИИ, поэтому уже активно внедряем его в свои рабочие процессы. Недавно провели встречу, на которой наши коллеги Анатолий Антипов (разработчик MS SQL, из направления «ВкусВилл») и Ильдар Лукманов (тимлид PHP из направления «Фулстек») поделились своим опытом. Они активно используют решения на базе ИИ как в рабочих процессах, так и в разработке в целом.
Делимся главными тезисами и полезной информацией, в том числе и решениями, которые можно уже сейчас использовать для автоматизации рабочих процессов и сокращения времени на решение рутинных задач. Например, из статьи вы узнаете, чем заменить классические поисковые системы и получите рекомендации по работе с ChatGPT и созданию промтов. Надеемся для читателей Хабра эта информация окажется ценной и интересной.
Разбираемся в терминологии
Уверены, многие из вас уже не только наслышаны, но и активно пользуются нейросетями и большими языковыми моделями, например, GPT-3, GPT-4 (чат GPT от OpenAI), Google Bard и Claude. То, что сейчас называют AI или искусственным интеллектом, в подавляющем большинстве случаев представляет из себя нейросети. А сервисы, предназначенные для генерации и классификации текстов, — это LLM-сети. При этом они имеют мало общего с классическим пониманием искусственного интеллекта. Они не обладают каким-то самосознанием, критическим мышлением, оценочным суждением, не умеют «думать», анализировать, не обладают реальными знаниями, поэтому не способны генерировать какие-то реальные факты. Подобные большие языковые модели умеют только «угадывать» какое слово по смыслу больше всего подходит к следующему на основе полученного контекста.
Пытаясь перенести ответственность за принятие решений, «очеловечивая» искусственный интеллект и слепо доверяя выданным результатам, можно попасть в ловушку. При использовании сервисов AI важно держать в голове мысль о том, что это не более, чем инструменты для работы или решения каких-либо вопросов на бытовом уровне. Искусственный интеллект не имеет собственных знаний о мире, а лишь анализирует существующие тексты. У него нет понимания морали и, самое главное, последствий тех или иных действий. Принимать серьезные решения должны люди, опираясь на свой опыт, здравый смысл и этические принципы. Искусственный интеллект может помочь проанализировать ситуацию, но окончательный выбор должен оставаться за человеком.
Мы живем в интересное время развития искусственного интеллекта, что одновременно и сложно, и увлекательно. Никто не знает, как именно стоит использовать AI-сервисы, поэтому пользователи сами придумывают новые промты и находят новые возможности. Далее рассмотрим некоторые готовые решения и расскажем, в каких ситуациях мы используем их и как они нам помогают.
AI-решения для разработчиков и не только
Copilot: друг разработчика, на которого точно можно положиться
Copilot от GitHub — один из ярких примеров практического применения искусственного интеллекта в разработке. Copilot использует мощь нейросетей для автоматизации рутинных задач разработчика. Он интегрируется в среду разработки кода и работает как виртуальный помощник программиста. Когда разработчик пишет код, Copilot в реальном времени генерирует контекстные предложения по продолжению кода, используя имеющийся опыт из миллионных строк исходного кода в репозиториях GitHub. Таким образом, Copilot экономит время разработчика, автоматизируя рутинные задачи вроде реализации базовой логики или обработки ошибок. При этом разработчик сохраняет полный контроль и может при необходимости отклонить и изменить предложенный код.
Еще одна полезная функция инструмента Copilot — это автоматическое документирование кода. Помимо генерации исходного кода, Copilot способен самостоятельно добавлять комментарии, описывающие назначение различных фрагментов кода. Например, если разработчик создает новую функцию, Copilot может сгенерировать комментарий прямо над ее объявлением. Назначение функции определяется контекстно, то есть не только по ее очевидному названию, но и по назначению схожих или соседних функций в коде, и по ее содержимому, если оно уже написано. Такие актуальные и понятные комментарии значительно упрощают работу с кодом в дальнейшем как самим разработчикам, так и другим членам команды. Это экономит много времени, которое обычно уходит на ручное документирование кода.
Copilot не просто предлагает отдельные строки кода, но может генерировать и целые блоки и фрагменты программы там, где логика очевидна из контекста. Например, если разработчик начинает писать цикл for, Copilot может автоматически дополнить всю необходимую структуру цикла, основываясь на именах переменных и логике, расположенной в непосредственной близости с объявляемым циклом или при объявлении переменной он может сразу предложить инициализацию подходящего значения. Такое автодополнение значительно ускоряет написание типовых конструкций в коде. Разработчику нужно лишь в нескольких словах обозначить свое намерение, а искусственный интеллект предложит готовое техническое решение. Уникальная особенность Copilot заключается еще и в том, что он может генерировать код не только по контексту существующей программы, но и на основе текстового описания желаемой функциональности. Аналогично он может генерировать веб-разметку страницы на основе описания структуры и элементов, что существенно сокращает время на реализацию новых функций и компонентов.
Вместо рутинной работы разработчик может сосредоточиться больше на творческой части и архитектуре решения.
Сервис Fireflies.ai для автоматической расшифровки аудио- и видеозаписи
Fireflies интегрируется с популярными платформами для онлайн-конференций и звонков, например, с Zoom, Skype, Google Meet. Он может записывать разговоры, а затем за считанные минуты переводить аудио в текст с помощью технологии распознавания речи. Полученные транскрипты позволяют быстро находить нужные фрагменты беседы, цитаты, факты, цифры. Это существенно экономит время при подготовке отчетов, протоколов и аналитики. Благодаря возможностям искусственного интеллекта, сервис Fireflies.ai не просто расшифровывает записи собраний и встреч, а также создает краткие смысловые выжимки, структурируя информацию по ключевым моментам. Такое краткое структурирование резюме позволяет быстро освежить в памяти ключевые моменты обсуждения.
Следующая удобная фишка сервисов по типу Fireflies — это генерация интерактивного оглавления беседы с метками времени. При клике на любой пункт оглавления воспроизведение переходит на соответствующий момент в записи. Это позволяет быстро перемещаться по длинным записям, находя нужные фрагменты. Такая автоматизация экономит много ценного времени и повышает удобство работы с аудио- и видеоконтентом. Чтобы эффективно использовать сервис Fireflies AI для автоматизации работы с аудио и видео, стоит настроить сразу несколько параметров:
- выбрать основной язык распознавания для повышения точности расшифровки речи (хорошая новость — сервис поддерживает русский язык);
- подключить бота Fireflies к собственному календарю встреч или приглашать его на встречи на поддерживаемых платформах для конференций, чтобы он мог вести запись сразу в онлайне;
- использовать дополнительные опции, например, генерацию кратких резюме, оглавлений и поиска по ключевым словам.
У данного сервиса есть и прямые аналоги, самый популярный — Otter AI. Основным различием является то, что Otter больше заточен под представление транскриптов в реальном времени и лучше идентифицирует участников беседы, в то время как Fireflies может работать с различными видами записи. Помимо Otter есть и множество иных, как платных, так и бесплатных сервисов, основным назначением которых является фиксация и анализ текста в голосовых беседах. Например, Spinach.io, speak.ai.co, C-Meet, GodmodeMeeting и многие другие.
Еще один полезный сервис для работы с аудиозаписями — это audionotes.ai
Он поможет эффективно использовать голосовые заметки в рабочих процессах. Удобным преимуществом сервиса AudioNotes является наличие мобильных приложений для iOS и Android. Это позволяет делать аудиозаметки в любом месте. Например, если пришла в голову какая-то идея, можно быстро записать голосовое сообщение по дороге, во время встречи, просто отойдя от рабочего места. Audionotes мгновенно распознает речь и переведет заметку в текстовый формат. Ее можно сохранить, отредактировать и сразу переслать в нужное приложение. При этом сервис не просто распознает отдельные слова, но и понимает общий смысл текста. На основе этого AudioNotes умеет исправлять ошибки, выносить правки и в итоге преобразовывать даже не идеально распознанный текст в грамотный и читабельный вид. Это позволяет максимально эффективно перевести устную речь в структурированный текстовый формат, минимизируя ручное редактирование. Помимо полноценного резюмирования, сервис AudioNotes умеет представлять информацию из аудиозаметок в виде кратких сводок и списков, что удобно, когда нужно получить структурированный план действий на основе длинной аудиозаписи. При этом в любой момент можно переключиться обратно в полнотекстовый режим и отредактировать неточности распознавания. Такая гибкость позволяет максимально эффективно работать с аудиоинформацией, представляя ее в наиболее подходящем для задачи виде.
DeepL: переведется все
Сервис DeepL представляет собой мощный переводчик с интегрированным искусственным интеллектом, который может в корне изменить работу с иноязычным контентом. Благодаря нейросетевым алгоритмам DeepL не просто заменяет слова, а анализирует контекст и улавливает тончайшие смысловые нюансы. Это позволяет достигать естественности и точности перевода на уровне человека. При этом сервис предлагает несколько вариантов перевода сложных фраз и слов, чтобы можно было из них выбрать оптимальный. Замена даже одного слова перестраивает структуру и перевод всей остальной части предложения. DPL умеет обрабатывать целиком документы всех популярных форматов. Есть и другие полезные функции, вроде пользовательского глоссария и настройки перевода специализированных терминов. Все это делает DPL более удобным и эффективным инструментом в переводе сложных технических инструкций и документаций. Языковые модели отлично подходят в роли переводчиков, поскольку они оперируют не на уровне отдельных слов и их позиций, как в случае с машинным переводом, а на уровне общего смысла текста и семантики слов в контекстах. Они переводят не сам текст, что позволяет, во-первых, иметь большую гибкость в выборе стиля и в строении текста, а во-вторых, гарантированно придерживаться оригинального смысла, заложенного в исходном варианте. Одним из интересных примеров использования такого перевода можно отметить общение на веб-площадках и социальных сетях, таких как Reddit или Discord. Расширение может переводить не только интересующие нас сообщения на русский, но и также набираемые ответы на любой другой иностранный язык. В режиме расширения можно получить словарное определение слова, что упрощает мультиязычное взаимодействие.
Claude — ассистент ИИ
Благодаря возможностям обрабатывать большие массивы информации, Claude автоматизирует такие процессы, как, например, перевод сложных технических и научных текстов, создание аналитических обзоров и бизнес-планов, извлечение данных из отчетов и документации, сравнительный анализ контрактов, подготовка документации и справочных материалов на основе кодовых баз длинных текстов и формирование прогнозов и выявление тенденций. Claude может работать как самостоятельно, так и в тандеме с человеком, предлагая варианты текста, отвечая на вопросы и уточняя детали. Это позволяет в разы ускорить аналитическую работу и значительно экономить человеческие усилия. Claude обладает собственной спецификой, отличающей его от аналогов, но практически все в той или иной степени применимо ко всем современным виртуальным ассистентам. Например, умеет предлагать варианты решения конкретных бизнес-задач, а не просто отвечать на вопросы. Claude может проанализировать ситуацию и дать сразу полезный совет. Также автоматически определяется язык запроса пользователя, и ответ происходит сразу же на том же языке. Учитывается весь контекст предыдущего диалога, а не только текущий вопрос. Поэтому ответы получаются более точными и релевантными. Другим интересным и полезным способом применения подобного ассистента является генерация скриптов и макросов на незнакомых языках. Например, можно написать сложные Excel-формулы, просто описав структуру таблицы и функциональные значения ячейки или столбца, или можно создать макрос для парсинга входящей почты в Google-лаборатории, совершенно не будучи знакомым с используемым языком скриптования. При этом важно понимать, что искусственный интеллект хорошо справляется только с относительно простыми и типовыми задачами. Для успешной реализации более сложной логики могут потребоваться ручные доработки полученных скриптов.
Прочие примеры эффективного применения ИИ
Инструмент код-ревью
Использование искусственного интеллекта в процессе код-ревью – это один из важнейших трендов в современной разработке программного обеспечения.
Инструменты код-ревью позволяют:
проводить автоматизированную проверку на соответствие кода заданным стандартам и правилам оформления. ИИ может проверять форматирование, наличие комментариев, переменных.
проводить поиск потенциальных уязвимостей и багов, ошибок и утечек. ИИ может выявлять распространенные ошибки, утечки памяти, небезопасные функции.
проанализировать анализ сложности и оптимальности кода. Модели ИИ способны оценивать цикломатическую сложность кода, наличие дублирования, возможности оптимизации.
А также искусственный интеллект предложит оптимизацию и автоматический рефакторинг. Все это приводит к сокращению ручного труда при код-ревью и повышению качества и безопасности самой разработки.
В качестве “живого” примера подобного инструмента приведем Critique от Google. Как нынешние, так и бывшие сотрудники Google высоко оценивают эффективность Critique и их степень удовлетворенности процессом код-ревью внутри компании, что само по себе большая редкость в связи со сложностями и особенностями этого процесса. Минус в том, что Critique закрыта. Она была разработана в Google именно для внутреннего пользования с учетом специфики, правил разработки и ревью именно для их команд. Несмотря на недоступность сервиса, все же отметим ключевые моменты, которые отличают Critique от общедоступных аналогов. Например, использование нейросетей для автоматической проверки кода на соответствие внутренним стандартам, правилам оформления, а также автоматическая генерация предложений по исправлению или форматированию кода. Разработчикам не нужно уделять внимание подобным мелочам, и они могут фокусироваться на проверке самой логики и архитектуры кода. Автор доработки получает мгновенный фидбэк от системы искусственного интеллекта и может применить те изменения, с которыми он согласен, одним кликом сразу же в окне ревью без ручного переписывания кода или переотправки запроса после обновлений.
Замена классических поисковых систем
Преимущество поиска при помощи искусственного интеллекта — это возможность задавать вопросы на своем языке и получать готовые ответы, не тратя время на анализ сайтов и результатов поиска. Но пока такие системы не лишены недостатков, как, например, нехватка фактических знаний, риск генерации неверной информации и отсутствие прозрачности и сложность проверки самих результатов. К эффективным сценариям применения можно отнести поиск контекстной информации по сложным темам, объяснение научных концепций каких-то событий, поиск практических рекомендаций: как выбрать правильный подход, как выбрать оптимальный процесс в работе среди перечисленных, как выполнить какой-то ремонт, приготовить и многое другое.
Примеры AI-поисковиков:
ChatGPT — уже довольно популярный диалоговый ИИ от OpenAI, который может давать развернутые ответы на вопросы.
You.com — поисковик с интерфейсом чата, который предлагает сразу несколько видов ответов на запрос: текст, видео, таблицы данных.
Google сервис Bard — недавно анонсированный Google чат-бот на основе модели LaMDA.
Прочие бизнес-роли
Искусственный интеллект может провести анализ статистических данных, в частности, спрогнозировать спрос и продажи. ИИ анализирует данные о продажах, экономике, поведении покупателей и делает точные прогнозы для планирования. На основе данных о клиенте искусственный интеллект может генерировать персональные рекомендации и предложения. С помощью AI-инструментов можно автоматизировать рутинные процессы, например, распознать документы, заполнить базу, помочь в подготовке в отчетах. Также боты могут отвечать на типовые вопросы и тем самым разгрузить сотрудников.
Сегодня многие компании очень заинтересованы в интеграции системы искусственного интеллекта в рабочие процессы. Однако потенциальный эффект сложно предсказать. Недавно крупная консалтинговая фирма Boston Consulting Group приняла участие в масштабном исследовании влияния искусственного интеллекта на качество выполнения рабочих процессов. Более 700 сотрудников компании были разделены на две группы: специалисты первой группы использовала искусственный интеллект в 18 различных видов рабочих задач, а участники второй не пользовались подобными инструментами. Среди группы, использующей GPT-4, были также выделены две подгруппы: те, для кого инструмент был в новинку, и те, кто предварительно прошел ознакомительное обучение по работе с ним. Результаты получились интересными и показательными. Группа, использующая искусственный интеллект, решала больше рабочих задач, справлялась с решениями быстрее, но самое главное, качество их решений оказывалось значительно выше. Интересно отметить, что эта группа разделилась на два стиля применения искусственного интеллекта, которые условно обозначили как «кентавры» и «киборги». «Кентавры» делили свои задачи между собой и нейросетью: часть выполняли самостоятельно, а часть передавали искусственному интеллекту. «Киборги» использовали GPT-4 для решения фактически всех рабочих задач.
Учимся вести диалог с нейросетью: GPT для новичков и не только
Наш тимлид PHP провел эксперимент: представил, что он забыл все, что касается PHP. Хотел на PHP рассчитать расстояние между двумя координатами, но вот беда, не может вспомнить, как это делать. Чат GPT без проблем справился с этой задачей и предоставил функцию для расчета расстояния между двух точек.
ChatGPT – этой нейропротез для головного мозга, помогающий принимать решения, анализировать информацию и выполнять рутинные процессы, практически в любой интеллектуальной деятельности.
Мы уже не раз слышали от начинающих пользователей нейросетей, что им не понравился результат — написанный код неоптимальный. GPT — не волшебная палочка. Главная рекомендация — не надо торопиться. Нужно правильно научиться общаться с чат-GPT. Основная ошибка многих начинающих пользователей — это то, что они используют чат-GPT как Google. Всегда необходимо писать развернутые подробные запросы и указывать, какой конкретный результат ожидается получить.
С ChatGPT можно вступить в диалог как с реальным человеком, задавать какие-то вопросы, указывать новые критерии и получать на выходе более качественный результат. Для улучшения качества выдаваемого результата можно задавать уровень профессионализма нейросети, подсказывать, какими принципами руководствоваться при выполнении задач. ChatGPT понимает контекст и помнит историю в рамках одного диалога, что очень удобно.
ChatGPT можно использовать для консультации и выбора правильной стратегии. В рамках примера с расчетом попросили чат предложить несколько способов расчета расстояния между двумя точками, а также указать, какой способ является самым точным. В итоге получили развернутый ответ с возможными вариантами. Затем уточнили, есть ли готовый модуль. Чат выдал список различных модулей с описанием, что эти модули умеют делать. ChatGPT можно использовать для второстепенных действий после написания кода, согласно регламенту команды. Например, попросить его адаптировать код под новые стандарты, фреймворки и языки. Он даже способен выдать готовые тест-кейсы для QA-специалиста.
ChatGPT удобно использовать для обобщения либо выделения главного. Предполагаем, что многие из вас добавлены в различные рабочие группы, чаты и не всегда успевают за ними следить. Можно скопировать информацию, которую постили в группах и чатах за определенный небольшой период, например, за последние 3 дня, «скормить» нейросети и попросить ее очень кратко рассказать о самых главных новостях. Нейросеть проанализирует информацию и выделит основные пункты. Эта фишка очень удобна, если, например, вы зашли в BookStack, столкнулись с какой-то очень длинной статьей и пытаетесь в ней что-то найти, вчитываться, тратите на это время. А можно просто текст всей статьи скопировать в ChatGPT и попросить найти что-то определенное, или какие-то ключевые моменты.
ChatGPT не только сокращает информацию и выделяет главное, но может и расширить, дать дополнительную информацию, «додумать», рассказать, какую можно пользу из этого получить. Например, нашли в документации какую-то нужную для вас информацию, но она недостаточно подробно расписана. Вы хотите знать больше деталей, но не можете нагуглить эти детали. Вы можете эту информацию «скормить» нейросети и попросить более подробно расписать эту тему. Еще один вариант использования ChatGPT — предоставить какой-то материал и попросить с этим материалом произвести какие-либо действия. Например, проанализировать код на наличие уязвимостей с точки зрения хакерских атак и тоже предложить различные рекомендации. При этом бывают ситуации, когда нейросеть страдает галлюцинациями и где-то может добавить от себя что-то ненужное или даже серьезно ошибиться. В любом случае, если нейросеть ошибается и вы видите какую-то ошибку, вы можете скопировать текст описания этой ошибки и уточнить у нейросети, как исправить ошибки. Если она «почувствует» какие-то риски, то не будет помогать пользователю решить проблему. В таком случае можно ee обмануть. Например, написать ей, что вы и есть специалист и вам нужна техническая инструкция по диагностике и устранению ошибок. После этого она выдаст подробнейшую инструкцию.
Удачные кейсы применения ChatGPT в компании
Самый первый удачный кейс произошел, когда мы переходили в MS SQL с JSON на table value переменной. От бизнеса стояла задача избавиться от JSON и как можно скорее перейти на TVP, а у нас никак не получалось это сделать. Команда разработчиков потратила 3-4 дня, чтобы реализовать эту логику, но логика не работала. Передали эту задачу техлиду команды. Он попробовал, тоже не смог. В итоге решили обратиться к нейросети. Пришлось задать 50+ уточняющих вопросов, чтобы решить эту проблему. Проблема оказалась максимально банальная. В настройках стояла дефолтная база данных, потом попросили от этого отказаться. И именно в этой единственной настройке была причина, почему вся эта логика не работала. Но мы никак не могли самостоятельно это понять. Только по наводке нейросети удалось решить эту проблему.
Второй кейс — это разработка нагрузочных тестов с продвинутой логикой. Если есть необходимость написать какую-то логику на незнакомом мне языке, можно обратиться за помощью к ChatGPT.
Третий кейс — сравнение различных технических решений при внедрении веб-сокетов. Была задача проанализировать, что лучше использовать для веб-сокетов, для реал-тайм-чата в мобильном приложении. Решили сравнить два стека PHP Plus Opensource и Go. Но для того, чтобы провести сравнение, нужно было написать код и обернуть все это в Docker Compose, что требовало минимум 8 часов рабочего времени. Благодаря нейросети удалось все сделать за час. При этом чат написал два варианта для разных языков и все необходимые конфигурации.
Рекомендации по работе с ChatGPT
Всегда пишите нейросети, кем она является, и указывайте, кем являетесь вы. То есть вы можете попросить рассказать про что-то как школьнику, как начинающему разработчику, как сеньор-разработчику или как архитектору. Если вы обсуждаете какие-то вопросы, связанные с разработкой, а потом переключаетесь на архитектурные вопросы, то указывайте новую роль в нейросети. Пишите, нейросеть должна отвечать как профессиональный архитектор или, например, архитектор из Google. ChatGPT перестраивается и дает более точные и профессиональные ответы. Вторая рекомендация — это «пиши, как я». Если вам не нравится, как пишет нейросеть, какие ответы она дает, вы можете ей задать пример — какой-то класс, отрывок кода или просто описать то, как обычно делаете это вы, и она повторит и выполнит это примерно так же. Третья рекомендация — это указывать температуру. При общении с ChatGPT можно задать температуру от 0 до 1. Про это многие, даже кто часто работает с нейросетью, не знают. 0 — это прямолинейный точный ответ, а 1 — это максимальная свобода. При разработке кода рекомендуем указывать около нуля (0-02), иначе нейросеть будет фантазировать и добавлять много ненужного, либо давать не самые точные ответы. Также рекомендуем указывать формат, в котором вы хотите получать ответ. Например, можете написать: «хочу получить результат в виде кода таблицы, HTML или списка».
На момент написания этой статьи готовых инструкций и сценариев по интеграции искусственного интеллекта в работу не существует, единственный способ обучиться работе с ними, это уже начинать его использовать. В каких-то задачах ИИ чрезвычайно эффективен, а в других терпит фиаско. При этом довольно сложно определить, когда он «обманывает» и дает ложную информацию. Из-за возможных взломов, утечек информации, поэтому рекомендуем использовать ИИ для решения рутинных задач, которые не критичны с точки зрения безопасности для компании.
Считаем, что всем пользователям предстоит сделать выбор, как использовать искусственный интеллект, чтобы делать работу более продуктивной, интересной и значимой. И этот выбор необходимо сделать как можно скорее, чтобы начать активно использовать искусственный интеллект этичными, ценными способами, адекватно реагировать на происходящие технологические изменения, а не просто занимать пассивную позицию.