Обновить
3

Пользователь

0,1
Рейтинг
Отправить сообщение

Это часть открытого контура. Что бы сделать качественную модель, нужно знать запросы пользователей и точность ответов на них своей модели. GPT, Gemini и пр., также дают бесплатные ответы на ваши запросы беря взамен ваши данные. Но, китайцы в дополнение еще и дообучают свои модели на ваших вопросах, беря ответы на них от грандов (т.н. дистилляция). Что многим уже открыто не нравится.

Если в микросервисах запущенных на Jdk25 в Virtual Threads, как минимум не уступают WebFlux, то почти все доклады, выложенные по теме на YouTube становятся архивными. Будем с интересом ждать новых.

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

Про подмес в контекст знаний, через запрос в RAG достаточно понятно. Интересно будет узнать про агентов и их работу через создание MCP инструментов (tools) в аналогичном минималистичном примере.

У вас закрытый плагин с нативными бинарниками. Эта опция не работает в офф-лайн с локальной моделью, пока плагину не предоставить доступ в интернет.

Ну так и в перфомансе – вы сами решаете, где нужна вам аллокация и копирование, – а где только временный объект. Но, никто не мешает создать чанки на стеке через alloca и спец объект (класс), но по принципу "Парето" простого решения достаточно в 80% случаев.
Например, если для целей логирования, то аллокации на стеке совсем будут не нужны. А для вставки, например, в map вы ее сделаете сами, возможно сразу в placement new выделенный буфер для ключей (чтобы сохранить локальность данных).

А если такой вариант протестировать (с сохранением типов std::string_view str_answer, int count в аргументах):

thread_local std::string buffer;

std::string format(std::string_view str_answer, int count) {
    buffer.clear(); // Очищаем содержимое, но сохраняем выделенную память
    if (buffer.capacity() < 1024) { 
        buffer.reserve(1024); // Минимальный размер (упрощенно, не в конструкторе)
    }

    buffer.append("The answer is ").append(str_answer).append(", count is ");
    std::format_to(std::back_inserter(buffer), "{}", count); // C++20: Пишем число в буфер без аллокаций

    return buffer;
}

К сожалению, нельзя работать в офф-лайн режиме со своим локальным OpenAI-compatible сервером даже в Community версии. В таком режиме, сложно что-то протестировать и оценить.

У JVM короткие стеки, их быстро копировать при монтировании/размонтировании виртуального контекста в реальный. А основное преимущество VirtualThread – как раз в отсутствии дополнительной обвязки async'ами вы пишите/запускаете стандартный многопоточный Thread-код, даете ему VirtualThread Pool (хоть в легаси) и он исполняется теперь на VirtualThread. Это позволяет не ломать то, что уже есть, и оставаться жить в привычной "тредовой" модели исполнения воркеров, без новых конструкций наподобие реактивности.

По возможности, конечно лучше пробрасывать и запускать нативный линукс.
В WSL2 один специальный GPU linux драйвер ходит в другой windows драйвер и теряет в перфомансе и стабильности. Это видо в референсе vLLM. А под капотом WSL2 будет тот же Hyper-V.

Хотелось бы и поддержку запуска через llama.cpp, там какие-то сложности с размером слоев, надеюсь, что оперативно разрулят.
Иначе, на кого эта большая модель.

Известно, что Nvidia не дает эффективно вычислять double на потребительских видеокартах, оставляя только float32 и int32 для работы в играх/CUDA, но, если int64 эмулировать достаточно просто на двух int32. То, интересно как насчет double.

Было бы классно, если бы Graal сборки тоже освещали. Уже актуальная 25-я есть с полными виртуальными потоками (включая синхронизацию), как там мониторить GC-паузы и reach to safepoint паузы, что бы не опасаться подводных камней при переезде.

Лучше не отключать встроенный iGPU в процессоре, а наоборот – сделать его устройством вывода по-умолчанию в биос. Windows будет отъедать память на основном видеоадаптере под свои нужды, независимо подключаете вы монитор или нет, отнимая ее у моделей. А контролировать запуск моделей на определенных GPU можно - или через переменные среды или через параметры запуска.
Также стоит сказать, что возможна работа в WSL2 и Linux через специальные драйверы предоставляемые Nvidia.

Было бы круто, если бы RDP прикрутили в сборку. Так, очень неудобно работать в виртуалке. Аналогично, и с удаленным хостом.

В Java давно есть компиляция в натив, включая Spring Boot. Что позволяет комплексно отлаживать большие и сложные системы в JVM и компилировать стабильные версии в натив, включая виртуальные потоки.

Сетевой адаптер, чья задача - отправить пакет, убедиться что не было коллизии и принять пакет и вызывать прерывание, и, концентратор - разные устройства.
До сих пор, топ сетевого оборудования делают - Циско, Хуавей и еще малая чать.

Аргументы про "нечего печатать" исчерпаны, Ок.

Да зачем все это в чип тащить, если это копеечная обвязка.
USB из PCI-e также получается платой за $10. А Ethernet синтезировался на 155-й серии еще со времен ЕС ЭВМ студентами 3-го курса за курсовую работу. Тут даже не Парето, а 99 на 1 в пересчете на современный процессор.

Ethernet, Wifi, Bluetooth - все в виде свистков в USB продается за $10. Остается DDR и PCI-e. Уже это то на RISC-V сделали.

Информация

В рейтинге
4 953-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Разработчик приложений
Старший
Java
C++
Разработка программного обеспечения
Многопоточность