Задать вопрос
  • Как бюджетно собрать минисервер для ml?

    @rPman
    Не гадай - считай.

    Берешь размер моделей, которые тебя интересуют, умножаешь на 4 (размер моделей в весах, каждый вес это 2-4 байта, сильно зависит от алгоритма, и часто есть оверхед по требованиям) - и тогда ты сможешь делать обучение (не только finutuning но делать с нуля свою модель). Для просто использования можно пользоваться квантизацией, уменьшающей потребление памяти в разы (8bit - 1байт на вес, 4bit - пол байта на вес).

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

    Потребительские видеокарты быстрее современного процессорного железа в задачах ML - в лучшем случае в 10 раз, точно читал что при использовании хороших интел процессоров (инструкции avx512...) можно добавить прироста в тех же llm чуть ли не 2х..3х, но придется сильно ковыряться с софтом, по простому там начинаются конфликты версий (у меня не получилось по простому собрать transformer чтобы использовать ускорения просто intel avx2, есть готовые докер образы от интел но внутри другие проблемы лезли), но почти наверняка в простых ситуациях все будет хорошо.

    Для finetuning потребительские видеокарты вполне подходят, народ арендуют железо на vast.ai и вроде бы довольны.

    Итого, если твое время не слишком высоко стоит (т.е. ты готов вместо нескольких часов обучения тратить недели) то тебе хватит и процессора (не скупись на процессор, а вот оперативную память не обязательно брать топовую), особенно если альтернатива тратить 100х больше денег (не шучу) на a100 80GB железки и получать да может 20х прирост к скорости, но стоит ли?

    И наоборот, если тебе не надо крутить модели сложнее 1b-5b, то почему бы и не задействовать для этого GPU. Но для ML подходят пока только nvidia (в этом мире правит тот, подо что есть эффективный софт, amd тут догоняющие, причем в 2-3 раза хуже)

    p.s. точно есть fpga железки, например в слот ddr3, в теории их можно использовать для и вычислений, но вот лучше-хуже это будет я не смог понять, надо покупать и тестировать.
    Ответ написан
    Комментировать
  • Для чего нужно маскирование токенов в Transformer Decoder?

    @rPman
    Если я верно понимаю.

    Таблица self-attention в общем случае описывает весь контекст, т.е. все окно контекста (квадратная табличка - где размер это количество токенов в окне контекста - максимальной длины сообщения, которое принимает модель на вход, все что больше - отбрасывают)

    'Вы' в данном случае - это имеется в виду модель. Сокрытие - это установка в позицию искомых слов -inf, чтобы они никак не влияли на слова в контексте (они же не известны), напоминаю - слова в self-attention влияют друг на друга вне зависимости от положения лево-право

    В примере "Я пью зеленый " в таблице self-attention 4-ый и больше токены будут значения -inf
    Ответ написан
    Комментировать
  • В windows form на c# медленно отправляет данные по serial Бод на 921600 даже в асинхронным Как сделать можно чтоб шустро?

    @rPman
    о какой скорости идет речь, если ты по одному символу туда пишешь? пиши сразу блоками по несколько килобайт
    Ответ написан
    Комментировать
  • Как убрать предупреждение при использовании ajax?

    @rPman
    ошибка говорит что в $_POST нет значения name

    впервые вижу чтобы в jquery ajax в data вручную кодировали данные строкой, и да в документации так можно но зачем так извращаться?

    передай свои данные в формате объекта или массива
    data:{"name":"Andrew","nickname":"Aramis"}
    Ответ написан
  • Что такое справочник в ИС и какой доступ необходимо организовывать к ним?

    @rPman
    Справочник - это понятие относительное, определяет вид отношений одного типа данных к другим.

    Для человека справочником будет например его пол, адрес (если он не в виде строки а полноценная многоуровневая структура) и т.п.

    Но в то же время для другой объект, например статья, использует человека как справочник (автор).

    Отсюда вытекают и бизнеспроцессы, при редактировании объекта возможно давать доступ на редактирование справочника - плохая идея. НО! реалии таковы что информация о реальном мире в базе данных почти всегда не полна, и часто принимают решение при разработке системы о постепенном ее наполнении в процессе жизни системы.

    Два противоположных подхода по наполнению справочников:
    1. Только специально выделенное лицо имеет доступ к редактированию справочников
    плюсы - четкая зона ответственности, выше качество данных
    минусы - большой интервал времени между началом ввода данных и их окончании (чтобы запись появилась в базе возможно понадобится сначала нужно обновить справочники), требуется промежуточный этап через общение людей (письма, телефонные переговоры), которые плохо формализуются и инофрмация о них не машиночитаема
    Прекрасно помню плохо спроектированные системы, где в полях 'комментарий', велись целые обсуждения чего не хватает и что нужно добавить.
    2. Все имеют доступ к редактированию справочников
    плюсы - короткое время, необходимое для ввода данных, ведь сам оператор забивает всю необходимую информацию
    минусы - размазанная зона ответственности (особенно когда много операторов), большое количество ошибок и низкое качество результата.
    Особенно большую проблему создают дубликаты, записи имеющие один смысл но разное наименование, чем дольше такие существуют тем сложнее потом базу выверять.

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

    На практике, реценденты должны иметь инструменты, облегчающие им к примеру объединение дублирующих данных, а для принятия решения операторы должны предоставлять всю необходимую информацию по теме.
    Ответ написан
    Комментировать
  • Возможно ли на C# выполнить перевод криптовалюты и её трату?

    @rPman
    Мой тебе совет - найми знающего человека.
    Самоучиться на продакшене своими/чужими деньгами - плохая идея.

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

    p.s. куда ты переводить криптовалюту собрался, если ты ее принимаешь? продавать сразу как получил? - отдельная задача на миллион, завести на бирже аккаунт, держать там некоторый буфер, обменивать ту же сумму что получил от клиента и оперативно выводить излишки и пополнять недостаток. Все это отдельными скриптами, которые должны быть максимально далеко от игрового 'сервера'. На c# красивых универсальных библиотек мало, для других языков настоятельно рекомендую ccxt
    Ответ написан
    4 комментария
  • Чем обновить Windows 7?

    @rPman
    Настоятельно рекомендую, пока официальные обновления еще ходят, использовать NTLite, он и обновления скачает (файлы можно вручную скопировать, запустить и т.п.), и в дистрибутив/установленную систему интегрирует, и даже пропустит пару 'злых' обновлений (по желанию)

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

    А вот качать с варезов какие то паки, приложения и т.п. я бы не рекомендовал
    Ответ написан
    Комментировать
  • Уязвим ли плагин CKEditor в Django к XSS атакам?

    @rPman
    Идеологически, любой контент от пользователя нужно считать опасным и проводить проверку. Самое простое - запретить все что не разрешено (т.е. буквально проводить анализ контента пользователя не на предмет поиска скриптов, а на список разрешенных элементов), да это сложно но иначе гарантий ты не получишь.

    p.s. как минимум script тег блокируется (вроде бы можно разрешить), остаются еще куча мест где может быть активное содержимое типа css, svg, xslt,... в общем вопрос неплохого такого исследования.
    Ответ написан
    Комментировать
  • Как интерпретировать значения FLOPs модели ML и FLOPS различных устройств (snapdragon процессор, например), GPU?

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

    p.s. Китайцы делают франкенштейнов, заворачивают мобильные чипы в корпус-переходник и продают как дешевые десктопные процессоры (само собой разблокировав там лимиты по питанию и температуре).
    -----------

    К сожалению помимо FLOPS железа нужно смотреть еще и на софт, умеет ли он оптимально использовать мощности оборудования, и есть ли у него такая возможность в принципе (да, смартфоны могут быть очень мощными устройствами но доступ ко всей этой мощи может быть ограничен функционалом игр)
    Ответ написан
    Комментировать
  • С чего начать изучение Linux?

    @rPman
    Виртуальную машину (не мучайся на старте с реальным железом), советую бесплатный VirtualBox. В windows есть штатный инструмент виртуализации, менее удобный но тоже рабочий (при его наличии virtualbox не будет работать).

    Дистрибутив - семейства ubuntu (настоятельно рекомендую xubuntu или хотя бы kubuntu, отличаются интерфейсами и его философией, но по сути внутри это одно и то же и все эти интерфейсы можно доустановить поверх любой другой) версии lts (long team support), именно под эти версии ориентируется сторонний софт, сейчас это 22.04 Jammy Jellyfish и чуть более старый 20.04 Focal Fossa (есть софт который работает все еще только под этой версией), остальные версии дадут много проблем, решать которые новичку будет тяжело.

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

    На основе ubuntu есть к примеру сборка mint, со старым интерфейсом gnome (дело в том что canonical перелопатили gnome до неузнаваемости, сломали философию gnome и linux и сделали unity, на основе которого построен ubuntu), внутри он так же по сути тот же ubuntu но есть оговорки с совместимостью.
    Ответ написан
  • Как сделать узконаправленным ChatGPT api python?

    @rPman
    Эти и другие задачи, решаемые с помощью chatgpt, требуют использования технологии под названием prompt engineering (пора, я думаю, тег на хабре добавлять, чем это хуже какого-нибудь c++ или lisp?).

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

    Для классификации можно использовать более простые языковые модели, включая открытые, которые будут хоститься на твоем железе, правда их использова уже не так просто но что не сделаешь ради экономии.
    Ответ написан
    4 комментария
  • Надо ли что-то еще делать для избежания SQL инъекций?

    @rPman
    Конкретно для защиты от одной из многих атак - sql injection, да
    А еще нужно проверять на ошибки, проверять на валидность самих значений соответственно бизнес модели и состояний (например пользователь редактирует запись, указывая идентификатор связанной таблицы, так вот нужно проверить имеет ли он права в принципе указывать полученный id)
    Ответ написан
    4 комментария
  • Хочу сделать сервер (который будет отвечать) и клиент, можете помочь?

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

    'соцсеть' и 'просто будет строка принимающая string' мягко говоря недостаточно для понимания.

    Попробуй сесть и записать тезисно, что будет видеть пользователь, что он сможет сделать, что ожидает в ответ и т.п.
    Ответ написан
    Комментировать
  • Как правильно сделать таблицу в бд?

    @rPman
    Хранить и использовать картинки в файлах просто по техническим причинам удобнее - быстрее, где то проще (особенно если у тебя веб сервер - который файлы на диске легко отдает статикой наиболее эффективным способом, есть оговорки про ограничение прав доступа но легко решаемые) и очень эффективно по хранению. База данных должна хранить метаинформацию, включая имена, а файлы пусть хранятся на диске с техническими именами (например идентификаторы pk из базы), с оговоркой про количество файлов в каталоге (больше 10к не рекомендую, лучше делить по подкаталогам).

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

    Не советую. Но если файлов мало, требований высоких скоростей и нагрузок не ожидается, база будет расти не заметно, то хранение в базе файлов вполне неплохой юзкейс, на старте кодить это где то проще.
    Ответ написан
    Комментировать
  • Как полностью отключить прокси-сервер в Windows 10?

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

    Ну и рекомендация, чтобы конкретное приложение не затрагивало настроек остальных (те что на скрине), запускать это приложение под специально созданном для него профиле пользователя, а чтобы не вводить пароль каждый раз, завести для этого задачу в Планировщике задач.
    Ответ написан
    Комментировать
  • Что важнее CL или MHz?

    @rPman
    Нужно тайминг считать в миллисекундах, грубо говоря чем меньше значение cl/mhz тем лучше (cl это количество тактов, которых в секунду твои гигагерцы частоты).

    Есть ещё пропускная способность и количество каналов, т.е. сколько гигабайт можно скопировать из памяти но этот параметр актуален для небольшого количества задач
    Ответ написан
    Комментировать
  • Заработает ли видеокарта через интерфейс usb3.0 не тандерболт?

    @rPman
    с вероятностью 99.(9)% нет

    Причина в прослойке usb -> nvme (я вообще считал что таких не существует и не гуглится, но допускаю, китайцы молодцы могли что то придумать), она должна и сможет инкапсулировать только sata команды, т.е. видеокарта тупо не получит нужных команд даже на инициализацию

    и даже если на аппаратном уровне вдруг внезапно препятствий не обнаружиться, нужны драйвера, которые бы понимали это садамаза
    Ответ написан
  • Бесплатные или бюджетные VPS?

    @rPman
    lowendstock.com
    Поисковик по хостингам с ценами от 2$ в год (за какой-нибудь 128ram со 100мбит сетью), не обслуживаемые, слабая надежность (в зависимости от хостера)....
    Мне кажется нормальные начинаются где то от 2-3$ в месяц (с 1GB ram), пользуюсь buyvm(frantech) с оплатой в bitcoin lightning network.

    настоятельно рекомендую выбирать kvm версии, в них ты сможешь поставить любую ос, настроить свою файловую систему и т.п., когда как более дешевые lxc/openvz ничего этого не позволят.
    Ответ написан
    2 комментария
  • Бот не работает в путти, что делать?

    @rPman
    Версия питона на хостинге случайно не 2?
    попробуй запускать скрипт python3 script.pyобычно 3 питон уже стоит, так как половина ОС на него завязана
    Ответ написан
  • Как отслеживать изменение локального файла в директории через js?

    @rPman
    Сама идея приложения у тебя максимально неправильная но да ладно.

    В тегах у тебя php, на нем обычно пишут бакэнд - серверную часть, вот и отслеживай изменения в файле через него. Т.е. к примеру на javascript из браузера по таймеру (setInterval) раз в 1-10 секунд делаешь запрос на сервер вида - выдай мне изменения в файле начиная с такой то даты (например новые строки) или пустой ответ. А на php код должен проверять дату последнего изменения в файле метод filemtime (осторожно, результаты кешируются, поэтому перед проверкой сбрасывай кеш) и сравнивать с датой, которую запросил браузер.

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