Обновить

Как заработать на LLM, перестав писать «правильные промпты»

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.7K
Всего голосов 19: ↑10 и ↓9+5
Комментарии49

Комментарии 49

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

Великолепно :)

А метрики вы снимали? Как анализировалось качество, и в течение какого времени? Остался ли нужен человек в этом процессе, или все полностью автоматизировано?

Статья идеальный пример наверное всех практик применения ЛЛМ, которые я считаю крайне порочными и даже местами опасными.

Грубо говоря «мы непонятно как сделали что-то (шайтан-машина!), что работает непонятно как, непонятно как расширяется, и с непонятно каким результатом, но главное — мы довольны».

Как будто требуемый результат — это исключительно довольство заказчика, а не что нибудь типо надежно (желательно — плюс-минус измеримо) работающей системы, которую можно просто (дешево) обслуживать и расширять.

Я не хочу писать шайтан-машины (мне бы, наверное, даже было бы стыдно назвать результат своей работы таким образом), и тем более их поддерживать, но может я просто луддит-извращенец, конечно.

Человек нужен в этом процессе, просто всё происходит теперь значительно быстрее. Нужен всего лишь один человек (вместо двух), и делается за минуты времени этого человека вместо часов.

Измерялся процент ошибок и возможность их автоматизированного определения и исправления.

А можете, пожалуйста, поделиться метриками? Какой там процент ошибок при каком количестве обработанных документов?

Честно, без цифр это все выглядит не очень убедительно и сухо.

В большинстве документов ошибок нет вообще. В среднем заполняется правильно около 99 % ячеек. Это при первом запуске, без проверок и повторных запусков.

А цифры, цифры у вас есть? Что такое «большинство документов»? Это сильно, прям сильно широкая категория, от 50% + 1, до 100% - 1 от всей выборки.

Большинство тут - больше половины. С каждого нужно 78 ячеек.

Человек также нужен в процессе исправления, который происходит быстро.

Ключевая метрика была - процент правильно заполненных ячеек.

То есть, теперь один человек вместо двух исправляет меньше половины ошибочно заполненных ячеек, а для того, чтобы оценить, правильно ли заполнены все ячейки, ему все равно нужно проверить их все (а потом еще и исправить)?

А точно общая производительность такой системы стала выше? Вы измеряли количество обработанных за день документов, оно выросло?

Ну да, на то что нужны было несколько часов вдвоём, а потом ещё сверка и контроль, теперь за 15 минут.

Ошибочно заполненных ячеек около 1 %.

Там больше половины строк были правильные целиком.

Т.е. смотрите.

  1. Измеряли метрику - процент ячеек с ошибками. Там около 1 процента.

  2. При этом строк полностью правильных больше половины, но точно не измеряли. В каждой строке 78 ячеек.

  3. Ошибок при извлечении данных промптом не было, если использовать Gemini. Все ошибки были связаны с несовершенством правил кода.

Следующий этап — разработка системы управления АЭС. Её разработает один человек за месяц вместо 500 за три года. Круто же, какая экономия. После тестирования сразу в прод?

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

Главное там, чтобы их много было и как минимум некоторые очень надежные.

В Чернобыле и на СШГЭС тоже были. Но был нюанс...

Зато какой годный человеческий промпт был на Фак-ю-шиме, взяли и построили главный кабельный узел в доступном подземелье и пожлобились вынести аварийные дизель-генераторы от причальной стенки на холмик. Это ж Япония, тут землетрясений и цунами не бывает, а те, что и бывают, строго по распоряжению самого императора! (сарказм выкл).

Выдающаяся глупость может испортить всё, да.

Чел (автор) про себя пишет Data Scientist :)

там "я не понимаю" совсем не тоже самое, что "я не понимаю" от домохозяйки :)

(хотя я не понимаю, с таким профилем у автора, можно было попросить нейронку "причесать" код, чтобы он был понятнее, но видимо надо было "быстро и вчера")

Там проблема в очень запутанных и многочисленных правилах определения, какие данные считывать из таблиц и в какие ячейки вставлять. Ведь при распознавании, хотя и удалось добиться безошибочного извлечения всех данных без пропусков, полученные таблицы могут выглядеть сильно по-разному.

Так то функции обработки разных ячеек были разделены, но это не сильно помогает понять полностью, почему это должно так работать.

Как будто требуемый результат — это исключительно довольство заказчика

Да, именно так. А заказчику нужно максимально быстро и дёшево решить свою конкретную проблему, а не масштабировать, расширять или делать тому подобное.

А заказчику нужно максимально быстро и дёшево решить свою конкретную проблему

Быстро и дёшево в 95% случаев означает ещё и низкокачественно (хотя, честно говоря, быстро и дёшево нужно всем, я не встречал заказчика, кому было нужно медленно и дорого :) ). И как раз в таких задачах, где качество не особо важно, LLM действительно хороши -> написал одноразовый скрипт -> запустил -> перепроверил -> выкинул и забыл.

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

а не масштабировать, расширять или делать тому подобное.

ну_это_пока.jpg

Всяких задач по перекладыванию бумажек и заполнению документов, переписыванию чисел из таблицы в таблицу - полным полно.

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

Да много таких задач, где текст и цифры один человек перебивает из файла в программу, или из одной программы в другую.

Просто тратить время дорогих программистов, чтобы автоматизировать работу одного человека - это очень не рационально. Вообще конечно правильнее было бы перестроить архитектору и избавиться в целом от необходимости что-то куда-то копировать в принципе, но вот такие накопленные пласты данных ведь всё равно надо обработать и внести а общую систему.

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

Задачи попроще такого рода часто решаются просто прямыми вопросами к LLM, что облегчает людям жизнь. Иногда для этого полезно написать промпт.

А тут пример задачи. где может помочь целая шайтан-машина.

Я думаю, что нужно разработать какой-то подход, например эволюционное программирование + LLM (на эту тему как раз статьи из тех, на какие ссылки в конце текста оставил), который позволит решать подобные задачи.

Вы противоречите себе: пишите, что задачу сложно решить программой, и при этом предлагаете решать её программой.

А как еще решать?

В том то и дело, что сложно придумать алгоритм, но решать как-то надо. LLM может написать такой вот "шайтан-код", на принципе обратной связи, который как-то задачу решает.

Я бы предложил просто не решать и всё. Всё равно ценность вашего решения нулевая (если не отрицательная) ибо код получился предельно некрасивый и некорректный (работает с ошибками).

Ценность решения измеряется не красотой кода и безошибочностью, а количеством экономии человеко-часов специалистов в год.

Это не ценность, это польза. Польза от вашего решения есть, но это важно только для заказчика, всем остальным включая вас должно быть на неё плевать.

А вот ценность которую код несёт в этот мир — это совсем другое дело. Ценность напрямую связана с его красотой, с корректностью, с приближением к идеалу.

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

Если рассматривать решение как программу, то выглядит плохо, но если рассматривать как обучение модели - просто мы пишем не в веса, а в промпт и питоний скрипт -, то это типичный ML

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

На Гемини есть ошибки - платное приложение. На аи-студио прошло нормально.

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

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

Это интересный вопрос, за счет чего именно удалось сделать так, чтобы LLM перестал забывать те или иные данные с pdf документа.

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

Если дать ему промпт короткий, он обязательно что-нибудь не перенесет.

А вот DeepSeek, к примеру, даже с этим промптом извлекал с ошибками, например букву О и цифру 0 путал друг с другом или даже с буквой D. У Gemini таких проблем не было.

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

Но и тут есть нюанс....

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

Хохма в том, что они предусмотрели все нюансы. Но был нюанс...

LLM сильнее всего там, где для человека слишком много взаимосвязей

Соглашусь и подтверждаю практическую применимость данного тезиса.

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

LLM нормальный и полезный инструмент , если использовать для задач для которых LLM предназначены.

P.S. Например , для прогнозирования нейросети очень плохо приспособлены.

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

Как заработать на LLM, перестав писать «правильные промпты»

так а в чем заключается заработок? И длинные запутанные промпты - не обязательно неправильные

Ну как в чем, получить деньги от заказчика. Такую задачу непонятно как иначе еще решить можно, там же нет единого формата паспортов.

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

. Представьте себе, что вам поступает много технических паспортов оборудования, которые не оформлены по единым правилам. 

Может упростить задачу и заставить тех, кто делает паспорта загонять их в формат?

Ваши примеры уже кто-то загонял в стандарт, но не закончил...

Не получится, единых стандартов нет, а заказчики все очень разные.

При извлечении таблиц куча сложностей: нужное число может быть под нужным описанием, справа или даже в той же клетке. А в таблице посреди всего этого может стоять логотип, график или рисунок, что тоже затрудняет.

Промпт по извлечению таблиц добился того. чтобы разные данные, написанной в одной и той же клетке таблицы pdf (то есть число и его описание, как правило), попадали все-таки в разные клетки таблицы.

Далее сложности: как правильно во всех случаях считывать именно нужное число, ведь там могут быть другие числа рядом, а еще может перенести в соседнюю таблицу. И для этого как раз LLM придумывает огромную кучу эмпирических правил, опираясь на обратную связь и примеры того, как его правила работают в конкретных случаях.

В этих правилах также используются известные данные о том, в каком диапазоне могут быть числа, какие бывают марки того или иного оборудования и т.п., это всё скармливалось в LLM.

Или, например, оказалось, что во всех образцах паспортов данные не разрываются на странице, то есть если есть данные для чего-то (например, вентилятора), то они все на одной странице находятся, исключений из этого не было. Это позволило использовать информацию о том, с какой страницы извлечена таблица, в этих правилах.

Я про себя. Я всегда пытаюсь изучить надсистему.

Из текста не понял зачем вам нужны данные. Как они используются.

Для продажников 78 параметров - излишни. На складе - тоже не понятно. Для производства - в вентиляции нюансов намного больше и приписка словами "загнуть по месту" приносит больше проблем, чем остальные данные.

По опыту - вреде все прописал как надо, а потом манагер привез то, что смогли сделать. Случаев немного, но бывают. В общем работа творческая.

Они нужны для начального этапа подбора оборудования.

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

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

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

Я могу делать и то, и другое, если будет что-то такое нужно - можете обращаться.

На pdf один из возможных вариантов, как они делают эти паспорта. Таблицы могут быть по-другому устроены и иначе расположены. Но, конечно, сильно помогает, что надписи одни и те же используются, технические термины, обозначения.

Разрешите поинтересоваться:
Модель была онлайновая или оффлайновая?
Какая именно?
Если оффлайновая, то какого размера?
Сколько суммарно времени вы потратили на изготовление конечного продукта?
Если понадобится внести изменения - по вашим оценкам, сколько времени это может занять? Например, если надо будет учесть какие-то новые параметры или проигнорировать старые?
Какие дополнительные телодвижения потребовалось сделать заказчику? Например: установить такую-то библиотеку, такую-то версию какого-нибудь языка, установить новую версию ОС, купить новый компьютер (ТТХ?), вложиться в инфраструктуру, обучить людей использовать ваше творение, оплатить абонемент(ы) и тому подобное.

  1. Нужен выход в интернет с ВПН, чтобы запускать Gemini для первичного распознавания с промптом.

  2. Скрипты собираются в готовое приложение, инструкция была

  3. Есть инструкция, один человек всему научился, который со мной взаимодействовал. Можно легко быстро научить другого, но вроде как у них больше нет в этом потребности (достаточно одного). Все дополнительные вложения - затраты времени этого человека ( он собирал файлы, оформлял договоры, объяснял что и как нужно заполнять, контролировал качество работы) . Никаких подписок и дополнительных устройств не нужно.

  4. Могу больше подробностей в личку. Напишите личное сообщение.

Хороший пример правильного приложения нейросети. Действительно сила в оперировании множеством параметров, а не в точном выполнении написанных инструкций (промтов)

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

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

Святые отцы давно об этом предупреждали.

Собрался заминусовать - открой SICP.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации