Впервые использовал нейросетку для реальной практической пользы в коммерческом заказе.
У заказчика есть база данных, куда информация вносится кое-как. Представьте, что вы составляете каталог, например, книг, и в базе данных предусмотрены поля: "Автор книги", "Название книги", "Число страниц" и ещё десяток других полей с информацией. Но заполняют эту базу другие люди, которых вы не контролируете, поэтому информация может случайным образом лежать в любом произвольном поле, быть введена с ошибками, опечатками и так далее. В реальном заказе были не книги, я просто привожу пример такой же задачи.
Вот как это может выглядеть:
1. В поле "Автор" написано "Лондон, Дж. Белый Клык", поле "Название" при этом пустое.
2. В поле "Название" написано "150-страничный сборник рецептов", поле "Число страниц" пустое
3. В поле "Название" написано "джеклондон мартин иден", поле с автором пустое
4. В поле "Автор" написано "150-стр.3изд,доп.перераб инструкция по пользованию подстанциями типа ТП-13, М.Васильев москва 98"
...и так далее. А нужно искать нормально по автору, названию, числу страниц, городу и году издания. Никакими прямыми алгоритмами это не берётся: регулярки, поиск по ключевым словам, морфология, нечёткая логика — всё это либо даёт много ложноположительных результатов, либо (если подкрутить пороговые значения) вообще перестаёт искать.
И вот тут в какой-то момент мы решили попробовать запрашивать через API GPT. Нейросетке задаётся следующий промт:
"Есть следующая информация: «150-страничный роман джеклондон мартин иден». Если здесь есть то, что похоже на имя автора книги, напиши мне его, иначе ответь null". И, надо сказать, даже 3.5 справляется с этой работой очень хорошо. Получилось сравнительно без ошибок разметить около 80% данных (остальные с ошибками даже после нейросетки).
Но, важный нюанс. Сначала мы пытались поймать все данные одним запросом: "GPT, выведи мне JSON, в котором есть автор, название, число страниц...", но тесты показали, что значительно эффективнее будет отдельно спросить 5 раз про 5 разных типов данных. Да, это расходует больше токенов, но они и так сравнительно дёшевы.
Кстати, API у OpenAI безбожно глючит даже на платном тарифе. Обещанных 3500 запросов в минуту нет даже приблизительно. По факту удаётся отправлять около 200-300 запросов в минуту, потом оно вываливается в таймауты или ошибку 429, нужно делать какие-то умные паузы, ждать итд. Над этим всем пришлось повозиться, зато результат вполне ощутимый.
#dev
Как пелось в песне... не стареют душой ветераны.
А некоторые из них ещё духом и даже телом.
Один британский моряк-ветеран Второй Мировой подвергся нападению грабителей, когда ему было уже за 80. Двое молодых и наглых решили, что дедушка с тростью лёгкая добыча. Подойдя к нему они потребовали у него кошелек. Дед согласился, но попросил достать кошелек из кармана самим, так как ему трудно достать... Артрит там, артроз и всякая такая подагра. Когда один из грабителей наклонился, чтобы залезть в карман за кошельком, то получил от дедушки кулаком в нос. Затем и другому прилетел хук слева, а потом оба ещё получили тростью по жбану, после чего грабители, офигевшие от такого напора жертвы, сделали ноги. Не знали они, что дедушка после гибели своего корабля почти неделю провел в море со сломанной ногой и стал единственным выжившим из всего экипажа, потому что до службы занимался спортом. А после войны стал профессиональным боксером, дрался на ринге, как в перчатках, так и без. Конечно, кошелек не стоит жизни, но ветеран решил дать последний бой и победил. На принцип, видимо, пошёл.
#rn
И смех и грех. В море австралийский крейсер "Канберра" заметил британское судно "Драматик". Обнаружение было обоюдным, так как транспорт начал открыто радировать в эфир, что его преследует военный корабль с тремя трубами. Крейсер потратил десять минут, чтобы связаться с ним и приказал прекратить драматизировать и свернуть трагедию в эфире. #rn
Во время Второй Мировой британцы передали часть своих подводных лодок экипажам из союзных стран. Последние формировались из подводников, бежавших в Великобританию после оккупации их стран Германией, чтобы продолжить борьбу с Гитлером.
Союзные подлодки находились в оперативном подчинении Королевского флота, а в подводных силах метрополии была флотилия, состоявшая из союзных подлодок.
Британские субмарины были переданы норвежским, голландским, греческим, польским экипажам, а также французским из «Свободной Франции».
Но был нюанс. Всем перечисленным экипажам были переданы подлодки типа U, за исключением голландцев, которые получили подлодки типа Т.
Подлодки типа U по своим характеристикам не могли сравниться с типом Т, ни по вооружению, ни по автономности, ни по условиям жизни на борту.
Подлодки тип Т на тот момент были пиком вершины британского подплава - самыми грозными британскими подводными кораблями, способными разом атаковать цель десятью торпедами. Так почему же голландцы были удостоены доверия и получили возможность воевать на тип Т, а другие союзники нет?
Ваши соображения?)
#sub#rn
А документы, граждане, треба носить с собою (с)
Любопытный казус произошел в мае 1940-го, когда британская субмарина остановила в море судно в Норвежском море. Проверка документов выявила британского "купца", который направлялся в Мурманск. Судно было отпущено. Однако, британские подводники не догадались, кого они задержали. Это было британское судно-ловушка, привлекавшее к себе внимание немецких подлодок. Когда британская субмарина была замечена, то командир судна решил не раскрывать себя и ловушка притворилась обыкновенным транспортом. Липовые судовые документы проверку выдержали. ⚓️🇬🇧. #rn#sub
Храбрые итальянские моряки
Британская субмарина "Амбра" схлестнулась в бою с итальянским пароходом "Джима". Так как выходить в торпедную атаку на него было неудобно, британцы решили расправиться со старым судном с помощью 102-мм пушки. Но и у итальянцев тоже была пушка - 76-мм. "Амбра" открыла огонь с трех км, но уже после восьмого выстрела противника была вынуждена быстро смыться с помощью срочного погружения. Причина: итальянцы стреляли настолько метко, что британцами стало ясно - победы в артбою им не одержать. После этого "Амбра" всё-таки попыталась выйти в торпедную атаку, но "Джима", выжимая из своей машины что можно и нещадно тратя уголь, ушёл от ПЛ, которая так и не рискнула всплыть снова. В итоге, густо дымя, уходивший пароход, как бы дразнил противник, который беспомощно сидел под водой.
#rn#sub
"Трудная мишень"
Действуя у побережья Греции британская ПЛ "Торбей" обнаружила любопытный караван. Три буксира, идущие в кильватерной колонне, тащили за собой плавучий док в охранении шести небольших военных кораблей. Док был здоровый более 100 М длиной, плыл с небольшой скоростью. Практически, идеальная мишень, если бы не одно но - осадка целей была тоже небольшая. Командир ПЛ решил, что глубины хода торпед в метр будет достаточно и выпустил по буксирам и доку шесть торпед. И не дождался ни одного взрыва. Судя по всему, торпеды прошли под целями, так как дистанция до них была чуть более 1 км, а цели не меняли курса и скорости.
Потерпев неудачу, британцы плюнули и решили, что надо вообще пустить торпеды по поверхности, так как при такой дальности увернуться цели бы точно не успели. Тогда ПЛ выпустила две торпеды с углублением в 0 и они обе попали в док, потопив его.
#sub#rn
Британская ПЛ "Танталус" обнаружила у Малаккского полуострова и обстреляла небольшой японский каботажник. Первый выпущенный снаряд попал в цель и вызвал пожар в средней части судна, а последующие выстрелы - пламя в машинном отделении. После пяти выстрелов огонь был прекращен, и команда покинула судно. Затем было выпущено еще десять снарядов, чтобы прикончить его. Каботажник назывался "Паханг Мару", он направлялся из Куантана в Бангкок с 75 бочками мазута и 9 бочками смазочного масла. Затем он должен был загрузить 250 тонн риса в Бангкоке для возвращения в Куантан. После гибели судна следующие полчаса у британцев ушли на то, чтобы подобрать выживших, среди которых было девять малайцев, один китаец и один японский солдат. Последний уплыл далеко от остальных и поначалу отказывался от того, чтобы его поднимали. После безуспешной попытки утопиться он в конце концов схватился за трос и был поднят на борт. Японец обгорел и был очень напуган. Командир ПЛ лейтенант-коммандер Маккензи решил избавиться от местного экипажа как можно скорее. Он посадил местный экипаж на борт первой встретившейся китайской джонки. Японец, судя по всему, остался на борту лодки.
#sub#rn
Британский "Лунин".
9 ноября 1941-го командир британской ПЛ "Апхолдер" Д. Ванклин (по итогам войны самый результативный подводник Великобритании) оказался в схожей ситуации, что и командир К-21 Н. Лунин 5 июля 1942-го.
После разгрома британскими крейсерами и эсминцами итальянского конвоя "Дуйсбург" лодка Ванклина атаковала итальянские эсминцы проводивших подбор выживших с судов конвоя. Торпеды "Апхолдер" оторвали корму эсминцу "Libeccio", который после этого не затонул и был взят на буксир другим эсминцем. Позже в тот же день Ванклин атаковал два тяжелых крейсера класса "Trento" тремя торпедами. Согласно итальянским источникам, его целью была оперативная группа, состоявшая из тяжелых крейсеров "Trento" и "Trieste" в сопровождении эсминцев "Granatiere" , "Fuciliere", "Bersagliere" и "Alpino" . После торпедного залпа торпеды повели себя по разному: две пошли в сторону целей, а третья оказалась "бегуном по кругу", начав кружить над подлодкой, ушедшей после залпа на глубину. Там Ванклин услышал два взрыва и шумы тонущего корабля. Когда он подсплыл под перископ, то увидел два крейсера и эсминец. Так как перед торпедной стрельбой Ванклин видел рядом с крейсерами два эсминца, а уже после атаки был виден только один из них, то командир ПЛ решил, что торпеды поразили один из эсминцев, о чем и говорили шумы тонущего корабля. Поэтому Ванклин с чистой совестью посчитал, что в крейсера он не попал, но потопил один из сопровождавших их эсминцев. Что оказалось в реальности? Торпеды "Апхолдер" прошли мимо целей, а услышанные звуки тонущего корабля действительно были звуками тонущего эсминца, но это был поврежденный в предыдущей атаке эсминец "Libeccio", у которого как раз в момент нападения ПЛ на крейсера не выдержали переборки и он пошёл на дно. Вот такая интересная история. Схожесть случаев Ванклина и Лунин большая: оба атаковали группу тяжёлых кораблей, оба в в них не попали и оба предположили, что результатом их атак стало торпедирование эсминца.
#sub#rn
Батюшки, сколько "бегунов по кругу", да только не немецкие или американские, а британские! В сентябре 1941 британская ПЛ два раза выходила в атаку за свой поход и каждый раз в залпе оказывалась неисправная торпеда, начинавшая кружить вокруг лодки. Похоже, что и у британцев были серьёзные проблемы с гироскопами и, но про это известно куда меньше.
#sub#rn
Из любопытного.
Во время похода у побережья Суматры британская ПЛ искала пригодный сампан (азиатская лодка-плоскодонка), нужный для выполнения разведзадания. Сампан нашли. В нем было пять туземцев-сборщиков кокосов и обезьяна, обученная лазить за кокосами на дерево. Всю команду сампана сняли и перевели на ПЛ. Люди то перешли к британцами на борт без проблем, а вот с обезьяной пришлось повоевать, так как она отказалась сдаваться британцами в плен. Так что подводники Его Величества побегали за ней по сампану. Может даже кого-то из них покусали.
#rn#sub