Кто каким ИИ пользуется для написания скетчей?

У меня сейчас, после общения с чатиком жпт выпала челюсть.

Даю ему код (это после дизассемблирования и декомпилирования + восстановлены имена функций в табличке phyFuns) и говорю буквально следующее: “Чатик, что это за магия тут и вычисления“


/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void dc_iq_est_test(undefined1 param_1,uint param_2,int *param_3,int *param_4)

{
  phyFuns *ppVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  
  (*(code *)g_phyFuns->ram_iq_est_enable)(param_1,param_2 & 0xffff);
  iVar2 = (param_2 & 0xffff) + 1;
  memw();
  iVar4 = (_DAT_6000615c >> 6) / iVar2;
  *param_3 = iVar4;
  memw();
  iVar5 = (_DAT_60006160 >> 6) / iVar2;
  param_3[1] = iVar5;
  memw();
  memw();
  memw();
  iVar6 = (_DAT_60006164 / iVar2) * 8 - (iVar4 * iVar4 + iVar5 * iVar5);
  iVar3 = (_DAT_60006168 / iVar2) * 4 - iVar4 * iVar4;
  iVar4 = (_DAT_6000616c / iVar2) * 4 - iVar5 * iVar5;
  iVar2 = (*(code *)g_phyFuns->rom_linear_to_db)((uint)(-1 < iVar6) * iVar6,0);
  *param_4 = iVar2;
  param_3[2] = iVar2 + 8 >> 4;
  iVar2 = (*(code *)g_phyFuns->rom_linear_to_db)((uint)(-1 < iVar3) * iVar3,0);
  ppVar1 = g_phyFuns;
  param_4[1] = iVar2;
  iVar2 = (*(code *)ppVar1->rom_linear_to_db)((uint)(-1 < iVar4) * iVar4,0);
  ppVar1 = g_phyFuns;
  param_4[2] = iVar2;
  (*(code *)ppVar1->rom_iq_est_disable)();
  return;
}


Чатик: “да тут все просто:” (полтора кб матана). Хочешь, перепишу функцию с нормальными именами? Конечно хочу.

(Тут, надо заметить, Чатик был в курсе контекста (WiFi, регистры))

Чатик:

О, это прям вкусный кусок PHY-магии :grinning_face_with_smiling_eyes: Давай разберём, что тут происходит — на самом деле это довольно классическая процедура оценки DC offset + IQ imbalance.


:brain: Общая идея функции

dc_iq_est_test() делает примерно следующее:

  1. Включает измерение IQ (ram_iq_est_enable)

  2. Читает накопленные статистики из регистров

  3. Нормализует их по количеству сэмплов

  4. Вычисляет:

    • DC offset (I и Q)

    • мощность сигнала

    • дисбаланс I/Q

  5. Переводит энергию в dB

  6. Выключает измерение


:magnifying_glass_tilted_left: Разбор по шагам

1. Включение измерения

Ну и кот прислал: Типа, улучшил.


/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void dc_iq_est_test(undefined1 param_1,uint samples_count,int *out_DC,int *out_dB)

{
  int tmp;
  int I_var;
  int I;
  int Q;
  int tot_pow_dc;
  phyFuns *_phyFuns;
  
                    /* Registers:
                           uint32_t sum_I      = _DAT_6000615c;  // ΣI
                           uint32_t sum_Q      = _DAT_60006160;  // ΣQ
                           uint32_t sum_IQ2    = _DAT_60006164;  // Σ(I² + Q²)
                           uint32_t sum_I2     = _DAT_60006168;  // Σ(I²)
                           uint32_t sum_Q2     = _DAT_6000616c;  // Σ(Q²) */
  (*(code *)g_phyFuns->ram_iq_est_enable)(param_1,samples_count & 0xffff);
                    /* +1 to prevent division by zero */
  tmp = (samples_count & 0xffff) + 1;
  memw();
                    /* I_avg = sum(I) / N_samples */
  I = (_DAT_6000615c >> 6) / tmp;
  *out_DC = I;
  memw();
                    /* Q_avg = sum(Q) / N_samples */
  Q = (_DAT_60006160 >> 6) / tmp;
  out_DC[1] = Q;
  memw();
  memw();
  memw();
                    /* 0x60006164 — sum(I² + Q²)
                       0x60006168 - sum(I²) ?
                       0x6000616c - sum(Q²) ?
                       
                       E[I² + Q²] - (E[I]² + E[Q]²)
                       total signal power without DC */
  tot_pow_dc = (_DAT_60006164 / tmp) * 8 - (I * I + Q * Q);
                    /* I_var = E[I^2] - E[I]^2 */
  I_var = (_DAT_60006168 / tmp) * 4 - I * I;
                    /* Real name: Q_var = E[Q^2] - E[Q]^2
                       reused by the compiler */
  I = (_DAT_6000616c / tmp) * 4 - Q * Q;
  tmp = (*(code *)g_phyFuns->rom_linear_to_db)((uint)(-1 < tot_pow_dc) * tot_pow_dc,0);
                    /* Total signal power */
  *out_dB = tmp;
                    /* RSSI-like ? */
  out_DC[2] = tmp + 8 >> 4;
  tmp = (*(code *)g_phyFuns->rom_linear_to_db)((uint)(-1 < I_var) * I_var,0);
  _phyFuns = g_phyFuns;
                    /* I_var dB */
  out_dB[1] = tmp;
  tmp = (*(code *)_phyFuns->rom_linear_to_db)((uint)(-1 < I) * I,0);
  _phyFuns = g_phyFuns;
                    /* Q_var dB */
  out_dB[2] = tmp;
  (*(code *)_phyFuns->rom_iq_est_disable)();
  return;
}


Хм…

Уж не буду здесь захламлять, если кому-то любопытно, зайдите на fitToE24.js - master - EugenePL/fitToE24 - Gitverse и нажмите там кнопку “О чём код?

В общем-то, не самая тривиальная программ на JavaScript, с рекурсией, объектами и т.п. Расписал же он вполне толково. Я заметил только несколько мелких ошибок.

Оно, конечно, в этом же репозитории лежит PDF файл, в котором основные идеи описаны. Вот у меня и возник вопрос, как вы думаете:

Он настолько умный, что нашёл этот PDF и подсмотрел там, или он настолько умный, что во всём разобрался сам?

Что-то мне сдаётся, что, всё же, второе.
:slight_smile:

Спросил у GigaChat и Алисы что за флаг изображён на этом фото:

Облажались оба, но Алиса – эпичнее.

а вот

================================================================

После некоего “пристыжения”, Алиса передумала и ответила ещё смешнее (подчёркивание моё, мне это место очень доставило :slight_smile: ):

А если спросить её: “Может быть это крепостной флаг?”, то вполне вероятно, что она расскажет как крепостные с этим флагом боролись против помещиков.

А чему удивляться? Как научили так и говорит…а может зрение у неё плохое.

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

Да? Интересно, что ИИ тут рассмотрит?


Вопрос не праздный. Делать из картинки пиксельные изображения в виде каши конверторы умеют :slight_smile:
А вот реальный пиксельарт?

Дочь спросила ещё у двух.

GPT сказал, что “На фото — флаг Великобритания, его ещё называют Union Jack”.

И, наконец, Gemini оказался таки малатком: “На фотографии запечатлён Гюйс Военно-морского флота Российской Федерации”.

Gemini – чемпион!

1 лайк

Речь не о рассмотрении, а о классификации объектов. Т.е. об отнесении объекта к тому или иному классу. ИНС это отлично делают – это в их природе.

Т.е. реально напишет - на картинке Дед Мороз с ёлкой за спиной?

Если в его обучабельном наборе данных было много новогодних открыток, то вне всякого сомнения.

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

Понятно, надо много картинок и на каждую её пиксельное отображение в представлении художника или ребёнка…а потом эти пары в базу для ИИ и вот уж тогдааа… дело пойдёт :slight_smile:

Пока ты не написал ответ - сколько человек это поняло? Я - нет!

Конечно, в этом и особенность пиксельная :), надо от монитора на 3 метра отойти и смотреть на картинку. ИИ не отойдёт.

А помните была такая картинка… Там женщина голая, если прищюриться - мужик волосатый с гвоздями ?

Это пиксель-арт изображение Санта-Клауса (Деда Мороза) :santa_claus:
Характерные признаки:
красная шапка с белой окантовкой
белая борода
красный костюм с ремнём
жёлтые элементы (пряжка/украшения)
зелёный мешок или подарок сбоку
Сделано в виде сетки — похоже на схему для вышивки, мозаики или пиксельного рисунка.


Вполне очевидный ответ от чатжпт. Ёлку он не узнал. Другие “калчерал референсез”.

сейчас спросил у алисы:
черные снаружи, красные внутри. кто это?
ответила неправильно.
ии вообще не умный.

По мне так то что Алиса правильно опознала мост - куда круче. После моста флаг узнать не так сложно

Тем не менее, она его не узнала, а понесла какую-то чушь про “декоративные и туристические цели” :slight_smile:

Кто-то знает носителя "естественного " интеллекта, который со случайного взгляда на триколор сразу поймет, что перед ним: Россия, Нидерланды, Сербия, Словакия, Хорватия, Люксембург или даже Франция? :wink: :wink: ;). Тут ИИ скорее сообразит, я полагаю, чем человек.