Information
- Rating
- 4,594-th
- Location
- Россия
- Registered
- Activity
Specialization
Инженер встраиваемых систем, Neurochip application
From 200,000 ₽
Assembler
C
Программирование микроконтроллеров
Встраиваемая система
ARM architecture
RISC-V
Операционная система реального времени
Разработка электроники
Разработка печатных плат
STM32
Шефы насмотрелись, что ИИ лучше их самих справляется, вот и результат.
Да, ещё одна пометка.
Автор статьи и Вы говорите про вероятности слов.
Если мы просто тренируем нейросеть, то так оно и есть.
Например, фраза : " я сегодня иду на работу". Сначала на вход подаём "я", на выходе должно быть "сегодня". Тренируем. Потом - на входе "я сегодня" на выходе: "иду". Тренируем. И так до конца. При инференсе сеть будет выдавать токен за токеном, пока все не выдаст, или не наступит ограничение.. Вот тут у логитов будет разная вероятность. Берём максимальную ("жадное декодирование"), четко можно извлечь все обученные фразы, без галлюцинаций.
Но это будет "попугай". А трансформер тем и отличается , что строит взаимосвязи, обобщения и некоторые ассоциации. И это - удивительно.
Например, в обучающих данных есть:
Он - кот
Она - собака
Кот пьет молоко
Собака пьет воду.
Потом спрашиваю
Он пьет - отвечает"молоко"
Она пьет - отвечает "воду"
Тут нету следования слов и вероятностей.
Косинусное сходство токенав "он" и "кот" примерно 0.7. "она" и "собака" тоже большое. А вот "он" и "собака" - маленькое.
Когда мы работаем на Python и с большими объемами данных, всё это отследить практически невозможно, а вот с маленькими объемами и на языке C это всё видно.
Это чтобы большему числу людей было понятно.
И дело тут не только в вероятностях, что за чем следует, а в механизмах внимания.
Сам трансформер у меня на языке C, и всё происходящее отлично отслеживается. Но для лучшего понимания термины заменены: вместо токена - объект и т.д.
Не вижу в этом проблемы, люди тоже говорят: "look what I'll say" и как увидеть сказанное?
В общем, не буду спорить и распространяться...
Очень верное утверждение.
Трансформер - это не попугай и больше, чем генератор цепочек слов.
В процессе обучения формируются признаки объектов. "Поднять камень" и "поднять небо" трансформер должен различать. То есть, у объекта "камень" и объекта "небо" в их векторах формируется нечто типа признака "поднимаемость", значение которого у камня будет стремиться к "1" по шкале 0...1, а у "неба" - к нулю. И это происходит при обучении, когда он много раз видит, что подняли камень и не встречает, что подняли небо.
Если кто в этом сомневается, он может сделать простейший трансформер, пообучать его, повыводить те или иные массивы признаков.
Вообще, не всё так просто.
В прошлой статье был тест. Я его видел как человек с нормальным цветовым зрением. Но у меня лёгкая дейтероанамалия.
То есть, коэффициенты матрицы, по идее, должны различаться от человека к человеку.
У одних может отсутствовать 50% колбочек, у других - 20% и т.д.
В идеале лучше сделать движки/ползунки чтобы двигая их, цвет фигуры и цвет фона становились бы неразличимы.
На эту тему можно написать диссертацию, надеюсь.
В таблицах на первом месте стоит английский, это, наверное, по популярности.
Но в том же английском очень много слов из латыни. А она вообще не упоминается (изредка приводится итальянский язык).
Интересно, как получилось, что электронной версии нет в наличии?
Электроны в розетках издательства закончились.
Давно это было, поэтому сразу и не вспомнил правильно.
Make: Books "Making Things See" by Greg Borenstein.
Есть несколько изданий.
Есть еще и такие:
Making Things Talk
Making Things Move DIY
Если интересно получать 3D то сейчас и камеры такие есть, у них каждый пиксель работает как ToF (Time of Flight) сенсор. Например, недорогие от ArduCam.
Вот ещё устройство - Microsoft Kinect. Работает примерно так: проектор создаёт картину точек, случайным образом распределенных по освещаемой поверхности. (Случайным, чтобы "не попасть" на регулярные структуры и легче понять, где какие точки). Эти точки попадают на две камеры, разнесенные в пространстве, и по углу параллакса определяется расстояние до каждой из этих точек. Есть описание, как это делать на Arduino и Processing в соответствующей книжке.
А насчёт знакомства с девушками - еще задолго до лазеров мы использовали зеркальца. Из дома напротив меня "слепили" зайчиками девчонки, а когда Солнце переходило на мою сторону, то я их в ответ. Как на грех, по соседству оказался писатель. Он написал новеллу о первой любви в местную газету...
Ещё делали как: сворачивали из ватмана большой (очень) рупор. Из открытого окна далеко на открытой местности через этот рупор говорили что-нибудь и девчонкам, и прохожим, например, что они обронили кошелек. Прохожие оглядывались по сторонам и ничего не понимали...
Кстати, на Rust и Python работает очень медленно, по сравнению с C. Например, у Карпаты на его Macbook с M4 (кажется) обучение было за минуту, На Raspberry Pi Zero 2W - 6 секунд.
Rust тоже "тормозил" нещадно.
Цель такая - сделать некоторую микроштуку, чтобы можно было с ней слегка общаться.
Монолитные модели не привлекают, поэтому сразу ориентировался на обучение "на лету".
То есть, вводим предложение, обучаем, модель потом уже знает эти данные. Словарь тоже можно дополнять в диалоге.
Кстати, Microsoft тоже задавалась вопросом о "минимальности" модели. Загнали Tiny Stories (сказки) в модель ~ 10 Мб.
Еще что - тут пишут, что модель будет знать только то, чему ее обучили. Но хотелось бы это немного дополнить.
Модель может "обобщать", это - один из критериев правильной работы.
Наппример, в исходных данных есть строки:
cat tom
tom cat
he tom
he cat
cat drinks milk
cat eats mouse
dog maga
maga dog
she maga
she dog
dog drinks water
dog eats meat
Кот (самец) по кличке Том пьет молоко и ест мышь
Собака (самка) Мага пьет воду и ест мясо
Причем написано, что кот ест и пьет, и что собака ест и пьет.
Модель выдает, что "он" (или "Том") пьет молоко, а "она" ( или "Мага") пьет воду.
Видно время обучения, косинусное сходство между "он" его кличкой, котом, собакой и ее кличкой. И про "нее" тоже. Потом модель делает инференс про "молодую девочку".
Программа ~ 71 Кбайт, текст - 500 строк.
Потом добавил настройку по инструкциям, Страны, города, столицы стран и животные из стран.
Capital of England | London
Capital of France | Paris
Capital of Italy | Roma
Это - образцы, символ "|" - разделитель инструкции (не участвует в обучении) и правильного ответа модели (обучается).
По этому шаблону из трех строк модель потом понимает и выдает столицы других стран. И животных из них. Причем, достаточно всего 64 строк обучающего текста!
В исходном RustGPT работает, мягко говоря, неправильно, не проводит аналогий.
Спасибо Вам и удачи!
P.S. Рабаотать с текстом на Хабре слегка непривычно, поэтому огрехи
Отличная статья, спасибо. Очень понятно написано. Мне не было ясно, как сделать доступ не по паролю, а по ключу. И параллельно вопрос: современные системы после ввода неверного пароля блокируют доступ на 10 минут, каким тогда образом взломщики могут его подобрать? На сервер я захожу из Far manager, это очень удобно. А если через терминал, то команды надо подавать вручную.
Хороший пример для подражания. Реклама с громким звуком имеет обратный эффект. Хочется ненавидеть то, что рекламируют. Обычно звук сразу выключаем, но в первый момент травмируем слух соседей и свой. И, конечно, обрушиваем массу негативной энергии на таких рекламщиков. Вот раньше была реклама, например, водки "Абсолют", где по залу проносят поднос с бутылкой и через нее проецируются люди и предметы, как бы они выглядели. Или реклама автомобиля "Fiat", где синьорина хлопает дверью, бьёт по колесу ногой и сумкой по капоту...
Тут речь не о ширине шины, а частоте, на которой она работала...
Вы упомянули процессор DX40, у меня был SX33 MHz. Было мнение, что 33 работал быстрее. Всё из-за частоты шины в 33 MHz. Процессор с тактовой частотой выбирал данные через 20 наносекунд, но они поставлялись через 33 наносекунды и процессору приходилось ждать ещё один цикл, то есть, ещё 20 наносекунд, всего 40 нс. В то же время 33 мегагерцовый процессор делал все за свои 33 наносекунды. Если это правда, то какой смысл в 40 MHz, кроме маркетинга, шина PCI тоже работала строго на 33 наносекундах.
А мессенджеры нужны разные. Я подумывал об IP-телефонии, но она у нас под запретом, похоже.
Да, давно это было.
Хотел бы добавить, что папку TEMP я тоже давно сделал на RAM диске.
Спасибо! Попробую.
Спасибо за ответ.
Время будет, всё -таки попробую запустить, возможно, если там на уровне API, то и пройдёт. Как вариант, ещё протестирую на Mac mini с Intel Core i7.
Интересно, можно ли запустить приложение Windows 11 для Intel - на ARM архитектуре, например на Raspberry Pi 5 с Debian Trixie. Как водится, в документации про это если и сказано, то не найти. (Что вообще за манера делать документацию, не выделяя главного).
Три месяца - это ещё мало. У сотни тысяч (это в интернете такие цифры были, насколько помню) Nexus 7 "окирпичился" после обновления. Навечно.
Интересно, свою Gemini они не привлекали к решению проблемы?
Ждём надувную...