Pull to refresh
15
0.1
Максим @SabMakc

User

Send message

Т.е. ждать будем столько же, но энергопотребление будет ниже )

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

У меня 2х канальная память - и по скорости вывода разницы нет, что 8 ядер обрабатывают, что 4 ядра (у меня 16 ядер с учетом HT, без GPU).
Правда скорость обработки запроса (prompt) меняется (падает в 2 раза), но и процессор не так греется - для меня это допустимый компромисс.

Если сейчас в память упирается - то как расширенный набор инструкций процессора поможет (AMX или AVX512)?
Максимум - меньше нагрузка на ядра будет.

Может на редактирование реагирует адекватно, а на изменения через git - нет?

В свое время MS сделали очень много для того, чтобы разработчики ушли c Windows...
И эта тенденция стала так заметна, что они встроили Linux в Windows )
И получился WSL )

Хм... А двух процессорная сборка приведет к удвоению скорости?
В 2 раза больше каналов памяти будет... А по деньгам, насколько я понимаю, сравнимо.

Статья оставила двоякое впечатление... С одной стороны - достаточно интересная тема... А с другой - осталось впечатление, что просто в рабочем проекте, "на коленках", поиграли с технологией, что-то получили, и решили по-быстрому оформить в виде статьи.

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

Зачем тут spring? Main-класса было бы достаточно. Инъекция зависимостей ради пары зависимостей?
Зачем lombok? Пару геттеров-сеттеров можно и руками написать.
Чем обусловлен выбор testcontainers для БД? Есть полноценные встраиваемые БД. А то и просто в RAM/файлах можно было хранить.

Как бы да, это все "лучшие практики" в Java, но в таком маленьком проекте они просто избыточны - руками все сделать не сильно сложнее, а то и проще было бы.

Ну и главное - а где собственно семантический поиск? Получили просто индекс близости статей к друг другу.

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

P.S. ну или просто кто-то с ИИ для кодинга игрался - что тоже нельзя исключать. Ну или лабораторная работа какая...

Это немного другой прикол с defer - изменение возвращаемых значений:

package main

import "fmt"

func main() {
	fmt.Println("Hello, 世界", test())
}

func test() (n int) {
	defer func() {
		fmt.Println(n)
		n = 2
	}()

	return 1
}

https://go.dev/play/p/oCpFl6trX_6

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

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

У меня LiFePo4 сборка до 25А выдает (1 акб), что урезало ИБП на 450VA примерно вдвое (если очень грубо считать).
Но мне пиковые показания и не нужны были - так что я мало что потерял в итоге.

Вроде читал что и работу с неполным зарядом они переносят хорошо, но за это не подпишусь.

Да, хорошо (как и все литий-ионные), другое дело что при полном заряде они деградируют быстрее, но с LiFePo4 это не так критично вроде )

И с LiFePo4 есть другой нюанс - из-за ровной кривой разряда нельзя определить (по напряжению) степень заряда батареи (только "полностью заряжено" и "полностью разряжено") - для этого надо считать "сколько ушло" и "сколько пришло". Поэтому при неполном заряде расчетные показания могут уплывать со временем. Но для подобного подсчета надо и продвинутую BMS иметь.

если напряжение ЗУ ИБП предназначенного для свинца окажется выше чем рекомендуемое для LiFePo4

Для свинца (на 12В) напряжение чуть ниже чем у сборки с LiFePo4 (на 12В) - так что замена безопасной должна быть. Как раз поэтому LiFePo4 и используют активно как простую замену свинцовым батареям.

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

Но ни кто не мешает параллельно батареи цеплять - и 10А превращаются в 20А, 30А и т.д.
Правда с BMS могут возникнуть нюансы - не всегда допустимы параллельные или последовательные соединения сборок батарей.

Можно подумать, что реально все 3kVA используются. В предельных режимах ИБП обычно держит считанные минуты - если ИБП не просто для "успеть сохраниться", то и смысла в пиковом потреблении нет.

Да и большой вопрос к состоянию свинцовых батарей - не факт, что все 3kVA выдадут даже на несколько минут.

Ноутбук + док-станция - довольно неплохая замена ПК.
Когда нужно - в режиме ПК работаешь, со всеми удобствами (клавиатура, мышь, мониторы и т.д.). Когда нужно - появляется портативность и компактность.

Перешел со свинцовых на LiFePO4 в своих ИБП (для ПК и сетевого оборудования).
Да, дороже. Да, емкость меньше. Да, токоотдача меньше (ограничение из-за дешевой BMS). Но пиковую нагрузку все равно не использовал, а надежность важнее - поставил и забыл. Играть в лотерею с покупкой свинцового не захотел - отзывы практически у всех от "работает годами" до "не проработал и пары месяцев".

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

Но размеры сборки могут быть чуть выше свинцового аккумулятора для ИБП - надо это учитывать (разница в несколько мм). В итоге я взял меньшей емкости, но с гарантированно "правильными" размерами - и не прогадал, лишнего места в ИБП не было.

P.S. свинцовые при работе могут выделять кислоту в воздух. Даже герметичные, необслуживаемые и специальные для ИБП - у них просто выделяется меньше и реже. Так что с переходом на LiFePO4 ушел и характерный запах работы ИБП.

Думаю причина сухого глаза в частоте предыдущих экранов в 60 Гц. А на новом 144 Гц, отсюда и повышение удобства.

И второй фактор - VA-матрица. VA-матрицы считаются комфортнее для глаз за счет более глубокого черного цвета и высокой контрастности. Но темные объекты могут сливаться с черным - особенности матрицы.

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

P.S. впрочем, это хороший подарок для тех, у кого "все уже есть" )

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

Туда бы еще встроить мониторинг качества воздуха )

Масштабирование бывает двух видов: горизонтальное и вертикальное. Горизонтальное также делится на два типа:

  • репликация, которая отвечает за масштабирование вычислений;

  • шардинг, который используется для масштабирования данных.

Оригинальное определение репликации и шардингу.

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

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

Отличная статья!

Я бы еще добавил, что алгоритмы консенсуса распределенных систем (тот же Raft) хорошо на CQRS+Event Sourcing ложатся - что может быть полезно для повышения отказоустойчивости.

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

1
23 ...

Information

Rating
3,789-th
Location
Россия
Registered
Activity