Pull to refresh
19
7
Send message

какой объем данных был?
я давно думаю, что критические части кода на быстрый язык переписать, но руки не доходят(

вообще интересно, что такие методы (алгоритмические/эврестические/классическое NLP) довольно хорошо решают реальные проблемы, даже во время нейросетей всяких. Хотя у них есть граница применимости и времени они требуют больше на настройку

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

ну python тут даже не рассматривается, он очень медленный

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

А почему нейросети не рассматриваете для семантического поиска?

я как раз наоборот, не знаю других способов семантики, кроме bertов. вообще они дают неплохой результат. Иногда так делаем: берем список -> для каждого элемента LLM делает описание -> векторизация -> далее уже кластеризация для или k-NN и графовый анализ

куп. раздел. верх 2 черепа - купе раздельное верхняя полка 2 места, Череповец))

мы обычно явно отделяем неточный поиск от семантического поиска. На удивление, много задач именно неточный поиск требуют. например, данные вводились с клавиатуры разными людьми, надо найти опечатки, ошибки. Обычно строчки состоят из 2-5 слов, т.е. ngram довольно хорошо позволяют найти то, что нужно

если возникает семантика, тогда применяем нейросети, тоже перевод в вектора. классика на русском языке - intfloat/multilingual-e5-large. Иногда с дообучением. Иногда кросс-энкодерный подход, вместо би-энкодерного.

а вообще тема поиска близких объектов действительно обширная и глубокая)

просто для интереса сделал:
до 9999 года нашел еще такую формулу, 22 бита.

static inline bool is_leap22(uint32_t y)
{
return ((y * 1648277u) & 0x3FFFFFu) <= 5103u;
}

" Берём 400-летний период Григорианского календаря, формулируем условие «((y × M) & MASK) ≤ T ⇔ високосный» как задачу выполнимости для 400 остатков. Далее отдаём её SMT-решателю Z3 с критерием «минимизировать сумму 22-битных констант M, MASK, T». Z3 за доли секунды подбирает первую модель, потом скрипт автоматически проверяет её на всём диапазоне 0 – 9 999 лет — получаем три нужных числа. "

спросил grok, он как обычно всё мне объяснил)
реально, первое ощущение, что 10 мышей - недостаточный объем данный. Но прочитав ниже я прямо понял! почему это достаточно и как работает

# grok

Простое объяснение

Представь, что каждая колба имеет уникальный «код» из 10 бит (0 или 1), как номер в двоичной системе. Мы используем 10 мышей, и каждая мышь отвечает за один бит:

  • Мышь 1 пьёт из всех колб, у которых в коде на первой позиции стоит 1.

  • Мышь 2 — для второй позиции, и так далее.

  • Через час смотрим, какие мыши умерли. Если мышь умерла, значит, в её бите стоит 1, если жива — 0. Это даёт нам 10-битный код отравленной колбы.

Почему 10? Потому что 2¹⁰ = 1024, а нам нужно закодировать 1000 колб, и 10 бит — это минимальное число, чтобы хватило уникальных кодов (2⁹ = 512 — уже мало).

я раньше думал, что портрет графа = визуализация графа (года 3 так думал)
сейчас обсудил с grok, оказывается это не так)))
имел ввиду, конечно, просто визуализацию
Спасибо за комментарий!

сама статья писалась руками)

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

Именно относительно создания прототипов/драфтов - удобно, что и микроменеджмента нет. Можно быстро проверять свои идеи. Да, некоторые моменты нейросеть сделает по-своему, но это обычно не критично

не совсем, в задаче "Математика из telegram" нейросеть заменила мне скорее научного консультанта и преподавателя по линалу

Согласен, самые интересные моменты начинаются после слов: "а давайте проверим...", "а что если...", "ну а предположим, что ...", и после этих слов любопытства, начинается проверка самых интересных и порой безумных идей :)

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

Есть такое)

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

На самом деле довольно редко переформатирую. Т.к. время потраченное на переформатирование, не всегда окупается качеством). И обычно только выделяю разделы логические.

Отдельный запрос (а-ля GPTs) рассматривал, но не стал так делать. Опять же - экономия времени. За это же время, я успею получить ответ и задать уточняющий вопрос/изменить подход. Скорость итераций пока важнее оказывается

GPTs у меня такой был:

Below is description of the task. You should make it more structured.
While restructuring follow the rules:

  • break down task into basic logical steps in order to support succesful completion of the task;

  • use markdown language markup;

  • step sequence is important. Reorder steps if needed;

  • clearly state inputs and outputs of the task (format, size, etc.);

  • task should be consice and short;

  • use only valid words and terms;

  • correct grammar errors and semantic errors;

  • you should only reformulate task;

  • DO NOT solve task;

Такие объемы кода и сложность кода - это будущее, согласен
У меня запросы проще, базовая математика, статистика, python. Объемы кода на вход/выход не более ~2000 строк. В этих случаях все работает хорошо. А это сейчас основные потребители нейросетей (high level python + простые и средненькие по сложности алгоритмы, обычно data analysis + базовая автоматизация)

на моих запросах perplexity ищет средне по качеству. А в каком надо искать? Единственное, что нашел лучше - grok и open ai.

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

Согласен
При использовании английского есть минусы, но их не много:
- его надо знать
- если текст очень специфический (спец. термины/сокращения/аббревиатуры) или запрос связан с русскоязычными источниками, то лучше русский

обычно плюсы английского перевешивают, но зависит от запроса, конечно

На самом деле все верно - 71 минута, там под спойлерами большие промты и ответы нейросетей))

В некоторых случаях - да, еще пользуюсь гуглом. Но кардинально меньше.
Вспоминаю, как было 2-3 года назад - совершенно другой подход. Там как раз дефолтом был - гугл и stack overflow.

Ну и в целом, я думаю, что нейросети сильно изменят наш мир.

я не уверен, что в python такой цикл будет быстрее (я только на python пишу). networkx вроде на плюсах написан, так что по скорости может и выиграть у двойного цикла питона
А сама идея понятна, алгоритмическая сложность у вашего алгоритма лучше, конечно

Код понял, логичный. В целом canonical переменная не нужна даже. Можно и так было, наверное даже логичнее.

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

1

Information

Rating
1,404-th
Registered
Activity

Specialization

Business Analyst, Data Analyst
Senior
Python
Neural networks
Data Analysis