Задать вопрос
  • Как стать провайдером через VDS/VPS?

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

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

    Технические вопросы - на машине (или рядом), которая будет подключена к интернету, нужно будет настроить NAT (не обсуждаем варианты выдачи каждому клиенту ip адрес, это бессмысленно в вашем случае) и собственно все... обычно любой роутер это может.

    p.s. Учтите, что предоставлять услуги выхода в интернет без лицензии (точнее разрешения от госсударства) - запрещено и вы можете понести наказание (штрафы от 1т.р. до 300т.р. и даже наказание лишение свободы до 6 месяцев, уточните текущее состояние законодательства)

    p.p.s. Учтите, что тот, кто заключит договор подключения к интернету, будет нести ответственность за действия остальных (если использовать vps то определять правила и наказывать будут в той стране, где запущен этот vps).
    Ответ написан
    5 комментариев
  • Влияет ли на общую скорость сети?

    @rPman
    Все зависит от того, что стоит на маршрутизаторах, которые подключены на разных концах радиомоста.

    Если никакого контроля за каналом нет, то он делится поровну по подключениям (точнее по пакетам), т.е. не зависимо от того, какие там подсети, сколько пользователей и т.п., пакеты складываются в очередь и пропускаются через узкий радиоканал.

    Условный пример, один клиент с torrent, с настройками по умолчанию (100 одновременных подключений) легко загрузит канал на 99%, и не важно, что у тебя еще 100 клиентов, все остальные будут ждать когда он загрузит свой файл (а еще раздача так же будет канал занимать)

    Чтобы было справедливо, нужно настраивать какое то лимитирование и резервирование канала на одном из маршрутизаторов
    Ответ написан
  • Подозрительное сообщение от неизвестного отправителя, которое невозможно удалить. Что это?

    @rPman
    Если симку вставить в другой смартфон, будет так же?
    Советую спросить от этом своего сотового оператора
    Ответ написан
  • Может ли нейросеть определить на изображении отсутствие всех объектов, кроме одного?

    @rPman
    У нейроситей коассификаторов, тех что используют для распознавания изображений не очень хорошо с понятием 'неизвестно' или 'все остальное'. Сеть должна при обучении видеть все объекты... Если с этим все нормально то можно обучить такой классификатор... Я принципы и методология вся та же самая
    Ответ написан
    Комментировать
  • Как называется слайсер с возможностью разделения?

    @rPman
    Мне кажется из открытых и многофункциональных слайсеров есть только cura и slic3r (он заброшен) и миллион его форков (prusa/orca/...) все остальные либо лимитированы в функционале одним типом принтера, так как выпускались под него либо просто в забвении, потому что проприетарные.

    Очень часто виду как производители принтера берут slic3r, переделывают его внешний вид и выпускают под видом своего.

    p.s. извиняюсь, я изучал только слайсеры fdm печати, а если у тебя речь идет о sla/sls принтерах, то я хз.
    Ответ написан
    Комментировать
  • 10к строк по базе размером 500кк?

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

    Если like используется чтобы искать части url, то храни в базе не целиком а разделенную по полям, в идеале чтобы поиск был на равенство (даже если база увеличится и станет сложнее, например тебе нужно искать по параметрам GET url, т.е. потребуется создать еще одну таблицу на них, скорость все равно будет хорошей)
    Ответ написан
    Комментировать
  • Почему открывается schtasks.exe при включении?

    @rPman
    Скачай майкрософтовский sysinternals autoruns и вдумчиво изучи все что там прописано в автозагрузку. Так же изучи все задачи в task scheduler (в пуск - служебные) там много майкрософтовской телеметрии но чужие видно сразу.
    Ответ написан
    Комментировать
  • Какая нейросеть умеет в веб-дизайн?

    @rPman
    Адекватных и универсальных мультимодальных ИИ (с модальностью - изображения) на текущий момент не существует.

    С очень большой натяжкой можно считать топовые openai/claude/google/(может китайский qwen но они совсем внизу), с поддержкой изображений подходящими, в интернете даже гуглятся тестовые helloworld, но проблема в том что когда доходишь до реального использования, сил на то чтобы объяснить ИИ что тебе нужно и исправлять его ошибки уходит БОЛЬШЕ чем если бы ты делал это сам.

    ИИ на текущий момент подходит как удобный помощник, делать что-либо что ты сам умеешь прекрасно делать, понимаешь как это понимает ИИ (мы в голове строим модель знаний нашего собеседника, чтобы не скатываться в объяснения алфавита, так вот то же самое и с ИИ, мы должны понимать что они понимают и до какой степени) и используешь его для ускорения./. плюс как замена поисковика (только не по всему интернету, а в пределах его знаний, очень мало какие продукты дают адекватный поиск в интернете).
    Ответ написан
    Комментировать
  • Как правильно использовать python скрипт через PHP backend?

    @rPman
    В общем случае технологии называются Interprocess communication.

    Изначально предлагались (php/python) механизмы очереди сообщений, shared memory и semaphores, как минимум на их основе делают высокоуровневые библиотеки по работе с сообщениями (и используют именно их, а не низкоуровневые, но знать про них обязан каждый, чтобы понимать недостатки)

    Второе и самое логичное, использовать socket-ы, как unix socket или pipes, так и tcp. Многие не заморачиваются, а поднимают полноценный асинхронный http сервер и организуют общение между приложениями по http или лучше websocket протоколу, так как это позволяет распределить приложения уже не в пределах одного сервера, а в сети, что дает очень высокую гибкость, но ценой значительных накладных расходов на сериализацию.

    Правда если используются разные языки программирования, в которых разные форматы для структур данных, так же придется сериализовать структуры, т.е. память копировать и кодировать/декодировать.
    Ответ написан
    2 комментария
  • Как подключаться без подтверждения и управлять Android Tv удалённо?

    @rPman
    2. Телевизор должен принимать подключение находясь в режиме "Кабельное ТВ" и переключаться в оболочку Android TV.
    боюсь это условие исключает решение только средствами самого телевизора, так как эти разные режимы обычно реализуют на аппаратном уровне, т.е. пока работает кабельное ТВ, android тупо не запущен или спит.

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

    p.s. как дешевая альтернатива, покупаешь совместимый пульт, разбираешь, 'нажимаешь кнопку' любым самым дешевым компьютером (например на базе платы от роутера или платы сетевой веб камеры, а если есть управление заслонкой ИК фильтра, то этот соленоид можно буквально на кнопку направить, т.е. даже паять ничего не придется и прошивки менять тоже, так как управление шторкой из веб интерфейса камеры) и закрепляешь его механически так чтобы он всегда 'смотрел' на телевизор. Решение слишком колхозное но максимально простое для реализации и очень дешевое.
    Ответ написан
  • Что лучше, множество запросов на вставку в одной транзакции или один запрос на вставку всех значений?

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

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

    Иначе, лучше второй вариант.
    Ответ написан
    Комментировать
  • Компьютер с какими характеристика требуется для комфортного использования llama3.1:405b?

    @rPman
    Нужны видеокарты, суммарным объемом 1024гб. тут только специализированные, найти в продаже в странах под санкциями нереал, рынок пустой был уже в 2020-ом. Цены тут 5х от мировых.

    Квантизация тут тоже есть, vllm самая эффективная реализация, поэтому если тебе не нужно дообучать, а только исполнение, то пойдет 8bit квантизация.
    -------

    На процессоре с помощью llama.cpp, где-нибудь 10-20 секунд на токен (кстати повышается в несколько раз при batch запросах, когда тебе нужно обработать сразу много prompt-ов).

    Тебе нужна серверная материнка (хоть прошлого поколения, важна оперативная память), размер памяти минимум 256гб (4битная квантизация, потеряешь в качестве), лучше 512гб. К сожалению рынок тут только БУ со всеми вытекающими от сюда ценами и гарантиями.
    --------

    Можно запускать на нескольких десктопах!
    Год назад в llama.cpp портировали MPI реализацию, поддержка запуска на нескольких нодах (как пример нам было 8 raspberrypi и llama65b) поэтому приобрести 4 компьютера по 64-128гб не проблема, процессор не самый топовый, какой-нибудь AMD Ryzen 5 9600X/7600X (6-ядерный, лучшая производительность singlethread дешевле $300/$200), на сколько я понял, упирается все в сеть, поэтому сверху 10Gb ethernet адаптеры в придачу (они относительно дешевые).

    Каждый из компьютеров обойдется примерно в 100т.р. (можно ужаться и набрать по 70т.р. но там и процессоры по слабее и память по медленнее, но не значительно), и таких нужно 3-4 штуки.

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

    Есть еще один экстремальный вариант, он не требует почти никаких особых затрат, любая даже самая слабая железка с любым количеством RAM (пусть условно 16гб-32гб будет, контекст хранить нужно) но с максимально быстрым ssd nvme диском (или несколькими в raid0). llama.cpp штатно умеет работать с моделями напрямую с диска (mlock режим), будет считывать всю модель по одному разу на каждый токен.

    Например 4 ssd диска (проходной apaser за 2.5т.р. но лучше что то по быстрее с pci-e 4.0) на скорости 2гбайта/с (само собой есть быстрее) с соответствующими pci-e контроллерами обойдутся в считанные 16-25т.р., полученный 'монстр' будет считывать всю модель с 8битной квантизацией за 30-15 секунд, и уже вопрос, успеет ли процессор на такой скорости модель считать.

    p.s. осторожно, ssd на 'чтение' тоже не бесплатно работает, это тоже изнашивает ресурс, только не так быстро как запись, может в тысячу раз медленнее, может в десятки тысяч.
    Ответ написан
    6 комментариев
  • Как загрузить файл через API в диалог Claude?

    @rPman
    превышается максимальное количество токенов

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

    Человек точно так же не сможет переварить за один раз большой объем информации, llm-ки тут наследовали эту ограниченность и невнимательность.

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

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

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

    Метод/класс/файл это не 'или', собирать информацию нужно параллельно на всех уровнях.

    Можно итеративно задавать ИИ вопросы, добавив, информацию о каком методе/классе/файле необходимо для ответа на вопрос, замена этот уменьшенный кусок на исходный файл. Речь не идёт о непрерывном чате, внутри каждый запрос это полное окно контекста и лучше самому выбрать, что именно в него должно попасть, т.е. каждый раз формируется новый запрос .. но так как облачные ИИ стали добавлять управление кешем, можно создать несколько сессий, одни собирают информацию по частям, задавая разные вопросы к одному и тому же стартовому контексту, другие работают с агрегированной информацией, третьим с человеком...
    Ответ написан
    2 комментария
  • Как предсказать отработку сетапа на бирже?

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

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

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

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

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

    Типичный 'аналитик' начинает рисовать на графиках какие то кривые, обычно по какому то не сложному алгоритму, вот и автоматизируй этот процесс не ИИ алгоритмами, и добавь результат в обучающую выборку, возможно это поможет?

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

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

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

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

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

    Использовать transformer возможно очень правильно (attention по уму для временных рядов подходит), но точно готовых решений не найти и придется с нуля решать все самому. Один токенизатор чего стоит.

    p.s. данные - это главное, не только количество но и их уникальность (разный тип данных а не только их объем). На рынке спекулятивной торговли все не могут победить, и действует очень сильная конкуренция, если решение простое то его уже нашли и эксплуатируют, а значит твое решение должно быть лучше... теперь этот принцип продли во времени и дай участниками огромные ресурсы... каждый новый участник станет кормом для остальных
    Ответ написан
  • Как отключить ядра процессора AMD Epyc 7352 в BIOS?

    @rPman
    Судя по скрину биос такого функционала не предоставляет, но можно ограничить количество ядер процессора с помощью опций загрузчика ОС
    * linux grub
    в файле /etc/default/grub к опциям ядра добавить что-нибудь про threads, smp или cpus:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,2"

    * в windows
    утилита msconfig в закладке boot - advanced - Number of processors...

    вообще то там много чего можно накрутить, вопрос больше ЗАЧЕМ?
    Ответ написан
  • Как пололучить int8 из байта?

    @rPman
    пакет struct метод unpack
    data=b'\xc8'
    struct.unpack('b', data)[0]

    data типа bytes, можно считывать из файла, открывая как бинарный файл, флаги 'rb'
    Ответ написан
    1 комментарий
  • Как произвести полное форматирование на Windows XP?

    @rPman
    Совет, для hdd, если на диске нет аппаратного шифрования, не надейся на нули, я читал что после них можно восстановить информацию, по остаточному магнитному полю (правда речь шла по старые диски до терабайтового размера, кажется плотность записи важна), а поэтому нужно записать случайный мусор, например
    dd if=/dev/urandom of=/dev/sda bs=1024k
    выполнив эту команду из linux загрузившись с livecd
    Ответ написан
    5 комментариев
  • Есть ли ощутимая разница между SSD m.2 Pci-3.0 от Pci-4.0?

    @rPman
    В слоте pci-e 4.0 этот ssd будет работать в режиме 3.0, т.е. не будет никакой разницы.

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

    НО! обыватель скорее всего в обычных задачах не заметит никакой разницы от понижения скорости чтения nvme ssd в 2-4 раза, кроме совсем уж простых типа копирование файлов, либо эта разница будет не существенная. Современные ssd давно не являются узким местом в компьютере (за исключением ситуаций, требующих большой объем записываемых данных или уж очень высокие iops, но это повторяю, не типичные задачи)
    Ответ написан
    Комментировать
  • Как включить автоматическое обновление антивируса Microsoft Defender при отключенных обновлениях Windows 11?

    @rPman
    Скриптом на powershell получаешь список не установленных обновлений, фильтруешь по имени и отправляешь на установку.
    chatgpt, не проверял, но идея верная
    $Session = New-Object -ComObject Microsoft.Update.Session
    $Searcher = $Session.CreateUpdateSearcher()
    $SearchResult = $Searcher.Search("IsInstalled=0")
    $DefenderUpdates = $SearchResult.Updates | Where-Object { $_.Title -like "*Windows Defender*" }
    $DefenderUpdates | Select-Object -Property Title, UpdateID

    $Downloader = $Session.CreateUpdateDownloader()
    $Downloader.Updates = New-Object -ComObject Microsoft.Update.UpdateColl
    
    foreach ($Update in $DefenderUpdates) {
        $Downloader.Updates.Add($Update)
    }
    
    $Downloader.Download()
    
    $Installer = $Session.CreateUpdateInstaller()
    $Installer.Updates = $Downloader.Updates
    $InstallationResult = $Installer.Install()
    
    # Вывод результатов установки
    foreach ($Update in $Installer.Updates) {
        Write-Output "Title: $($Update.Title)"
        Write-Output "Result: $($InstallationResult.GetUpdateResult($Installer.Updates.IndexOf($Update)).ResultCode)"
    }
    Ответ написан
    Комментировать