Продолжаю заметки об ИИ на конец 2024 года.
В прошлых постах мы обсудили два тезиса:
Опираясь на эти тезисы, давайте посмотрим на текущее состояние индустрии.
Раз в год-два мне приходится вспоминать, что Python, ммм… не C++. Обычно, это происходит внезапно, как в этот раз.
Проведя вдумчивый анализ Надоело по 10 секунд ждать загрузки новостей в feeds.fun, поэтому я засучил рукава и полез оптимизировать. Сходу чуть не взялся за эпический рефакторинг, но вовремя вспомнил, что сначала надо измерить, а потом уже резать. Мерять в данном случае совет буквальный — взял профайлер — py-spy — и посмотрел, что конкретно тормозит.
Оказалось, тормозит не вся логика, а вполне конкретное место с извлечением из PostgreSQL таблицы ~100000 строк, плюс-минус 20000. Индексы на месте, тесты проводил с базой на RAM-диске, поэтому со стороны базы всё должно было быть ок.
Такому количеству строк не удивляйтесь:
Вооружившись py-spy и исходниками psycopg, я прошёл через три этапа оптимизации, уменьшив время выполнения целевой функции примерно в 4 раза только за счёт изменения формата запрашиваемых колонок в SELECT запросе и кода обработки результата.
Далее я расскажу про последовательность любопытных открытий, которые сделал в процессе.
Внимание!
Этот пост — не исследование производительностие Psycopg или Python, а описание конкретного опыта на конкретной задаче со специфическими данными.
Будет неверно судить о производительности Psycopg, или Python в целом, по одному частному случаю.
Как вы знаете, одна из фич моей читалки новостей — автоматическая генерация тегов с помощью LLM. Поэтому я периодически занимаюсь prompt engineering — хочу чтобы теги были лучше, а платить было меньше.
И вот дотюнил я промпты до состояния, когда вроде всё работает, но осадочек какой-то остаётся: правильные теги определяются, но кроме них создаётся ещё 100500 бесполезных, а иногда даже совсем неверных.
Вариантов действий в таких случаях кот наплакал:
На варианты 1 и 2 нет ни денег не времени. Моя текущая стратегия — использовать только готовые ИИ решения, так как в одиночку за отраслью не угнаться. Поэтому пришлось браться за третий.
Дело шло туго, но после недавнего поста про генеративные базы знаний в голове что-то щёлкнуло, задача вывернулась наизнанку, и за утро я накатал новый промп. который пока что показывает себя значительно лучше.
Давайте расскажу в чём была проблема со старым промптом и как её исправил новый.
Продолжаю заметки об ИИ на конец 2024 года.
Сегодня хочу поговорить о подрывной технологии, на которой стоят современные достижения в области ИИ. Или о концепции, или о мета-технологии — как вам будет удобнее.
Скорее всего вы не встречали в интернетах описанную далее логику (за исключением введения про подрывные технологии) — у технарей и математиков может слегка подгореть из-за упрощения и срезания углов. Но это та призма, через которую я смотрю на отрасль, сужу о возможном и маловозможном в ней и так далее. Мой блог — мои правила — мои термины :-D
В общем имейте в виду — это мой личный взгляд, не общепринятый.
Года полтора назад я опубликовал большой прогноз об искусственном интеллекте. Почитайте, если ещё не читали — пока что он хорошо себя показывает.
Недавно решил его дополнить, но большой целостный пост всё никак не выходит, поэтому будет серия заметок.
Начну с прозрачности индустрии: у текущей движухи с ИИ есть несколько крутых особенностей, о которых я хочу поговорить.