2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1 ... 45, 46, 47, 48, 49, 50, 51, 52  След.
 
 Re: Тестирование возможностей ChatGPT
Сообщение14.10.2024, 12:18 


01/09/14
534
Есть такая формула Таппера, которая у меня вызвала лёгкое недопонимание. Чат помог разобраться, хотя и не без напряга.

(Оффтоп)

Раскажи про формулу Таппера вкратце без многословия

ChatGPT
Думал на протяжении 5 секунд
Формула Таппера — математическая формула, которая при определенном построении графика отображает своё собственное изображение.

Приведи эту формулу без пояснений

$\[
\frac{1}{2} < \left\lfloor \mod\left( \left\lfloor \dfrac{y}{17} \right\rfloor \cdot 2^{ -17 \left\lfloor x \right\rfloor - \mod\left( \left\lfloor y \right\rfloor, 17 \right)}, 2 \right) \right\rfloor
\]$

Что такое игрек и икс в этой формуле?

В этой формуле
x и y — переменные, представляющие координаты на плоскости:
x: горизонтальная координата (обычно в диапазоне от 0 до 106).
y: вертикальная координата, связанная с закодированным изображением; это большое число, которое определяет, какое изображение будет отображено при построении графика неравенства.
При построении графика этого неравенства с указанными x и y, формула визуализирует закодированное в
y изображение.

Как в переменной может быть что-то закодировано? Например, мы строим график f(x) у нас есть формула и переменная икс, которая может быть любым действительным числом. В переменной икс нет битов, чтобы что-то кодировать. Звучит как полная бессмыслица.

Вы правы, обычно переменные x и y в математических функциях принимают любые значения из определенного диапазона. Однако в формуле Таппера y играет особую роль: это большое фиксированное число, которое содержит закодированное изображение.

Пример для наглядности:

Представьте, что у вас есть изображение размером 17 пикселей по высоте.
Вы преобразуете это изображение в двоичный код и объединяете все биты в одно большое число y.
Используя формулу Таппера с этим y, вы строите график неравенства. В результате на графике появляется исходное изображение.

Я не понимаю. Мы вместо икс и игрек подставляем координаты, чтобы узнать закрасить точку или не закрасить. Вместе с тем игрек это большое фиксированное число. Если мы подставляем вместо игрек 0, то что происходит с этим числом, оно заменяется нулём?

Понимаю ваше замешательство. В формуле Таппера есть особенность: хотя она записана с переменными x и y, на практике y выступает как фиксированное большое число, а x и y в неравенстве используются для перебора координат при построении графика.

Хотя y присутствует в формуле как переменная, при построении графика она варьируется в небольшом диапазоне над фиксированным значением k. Формула использует значения x и y для извлечения соответствующих битов из k, чтобы определить, закрасить ли пиксель в точке (x,y).

Что происходит, если подставить y=0:

Если вы подставите y=0 в формулу, она не сможет правильно извлечь биты из k, поскольку формула рассчитана на y в диапазоне от k до k+17.

не понимаю, если там есть k, то почему его явно не вписать в формулу, сделай это

Хорошо, давайте запишем **формулу Таппера** с явным указанием константы $\( k \)$:

$\frac{1}{2} < \left\lfloor \mod\left( \left\lfloor \dfrac{k + v}{17} \right\rfloor \cdot 2^{ -17 \left\lfloor x \right\rfloor - \mod\left( k + v, 17 \right)}, 2 \right) \right\rfloor$

Здесь:

- $\( k \)$ — фиксированное большое число, в котором закодировано изображение.
- $\( v \)$ — переменная, принимающая целые значения от 0 до 16, соответствующие вертикальным позициям пикселей в изображении.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение16.10.2024, 00:36 


04/07/23
64
Задал боту старую задачку с форума по рег. выражению от wrest Загадочный regexp.
Сначала бот ответил так

(Оффтоп)

Это регулярное выражение состоит из двух частей, разделенных символом "|", который означает логическое "или".

Первая часть: ^.?$

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

Вторая часть: ^(..+?)\1+$

^ соответствует началу строки.
(..+?) - группа, соответствующая двум или более символам (любым, кроме символа новой строки). Знак "?" после "+" делает квантификатор жадностью, т.е. он будет соответствовать как можно меньшему количеству символов.
\1 - обратная ссылка на первую группу, т.е. она соответствует той же последовательности символов, что и первая группа.
+ после \1 означает, что эта последовательность должна встречаться один или более раз.
$ соответствует концу строки.
Итак, вторая часть регулярного выражения соответствует строкам, которые состоят из повторяющейся последовательности символов (длиной 2 или более символов).

В целом, это регулярное выражение соответствует строкам, которые либо пусты, либо содержат только один символ, либо состоят из повторяющейся последовательности символов (например, "ababab", "123123123", но не "ababc" или "123456").

После моего уточняющего вопроса Подходит ли под это выражение строка "aaa"? бот начал спорить сам с собой и, в итоге, убедил сам себя в неправильном ответе:

(Оффтоп)

Да, строка "aaa" подходит под это выражение. Вторая часть регулярного выражения, ^(..+?)\1+$, требует повторяющейся последовательности длиной 2 или более символов, но в данном случае повторяющаяся последовательность состоит из одного символа "a", который повторяется три раза.

Однако, из-за того, что (..+?) требует как минимум 2 символов, эта часть выражения не может соответствовать строке "aaa" напрямую.

Но, первая часть выражения, ^.?$, не подходит, поскольку строка "aaa" содержит более одного символа.

Однако, если мы рассмотрим вторую часть выражения более внимательно, то увидим, что (..+?) может соответствовать двум символам "aa", а затем \1+ может соответствовать последнему символу "a", который является повторением предыдущей последовательности "aa" не в полном объеме, а как часть повторяющейся последовательности "a".

Но это не так, поскольку (..+?) требует как минимум 2 символов.

Однако, выражение ^(..+?)\1+$ не требует, чтобы повторяющаяся последовательность была самой короткой возможной, она просто требует, чтобы она была повторена полностью хотя бы один раз.

Итак, строка "aaa" на самом деле соответствует выражению, если рассматривать повторяющуюся последовательность как "a", но не как часть (..+?), а как часть \1+. Но это не так, поскольку (..+?) требует как минимум 2 символов.

На самом деле, строка "aaa" соответствует выражению, если считать, что (..+?) соответствует "aa", но \1+ соответствует только "a", что не является полным повторением "aa".

Но это не так.

На самом деле, строка "aaa" соответствует выражению, потому что (..+?) может соответствовать "a" и еще одному символу, который является частью повторяющейся последовательности, и \1+ может соответствовать оставшимся символам.

Но это не так, поскольку (..+?) требует как минимум 2 символов.

Но это выражение на самом деле соответствует строке "aaa", потому что есть еще одна возможность: (..+?) может соответствовать "aa" и \1+ не может соответствовать, но выражение имеет еще одну часть: ^.?$|..., которая не соответствует, но есть еще одна возможность для (..+?), а именно: (..+?) может соответствовать "a" и еще одному символу "a", который является частью повторяющейся последовательности из одного символа "a", и \1+ может соответствовать оставшемуся символу "a".

И это действительно так.

Итак, да, строка "aaa" на самом деле соответствует этому выражению.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение16.10.2024, 00:57 


01/09/14
534
Регулярные выражения это то ещё извращение. Я когда-то изучил, а потом напрочь забыл. И оказалось - правильно сделал. Теперь можно попросить бота и он выдаст тебе нужную регулярку по описанию.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение16.10.2024, 10:11 


05/09/16
12076
Vyacheslav89
Да, глючит их знатно. Из рассуждений:
Алиса: В строке "aaa" есть три повторяющихся пары "aa"
GigaChat: Строка "aaa" содержит две одинаковые подстроки "aa" (что верно, но из словесного описания следует что ищется не это - прим. моё).
Алиса: В строке "aaaa" есть четыре повторяющихся пары "aa"
GigaChat: "aaaa" не содержит повторения "aa" более одного раза


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

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение17.10.2024, 13:08 


01/09/14
534
Чат ГПТ реально помогает программировать. Очень надоедает в 100001-й раз думать и писать тривиальную логику, а тут даёшь простую команду не думая и, вуаля, код написан.

Переделай код чтобы весь вектор строк аналогично добавлялся к msg
Код:
            if ( _sequentialItems.size() ) {
                msg += ". Notification Id: " + _sequentialItems[ 0 ];
            }


ChatGPT 4o писал(а):
Для того чтобы добавить весь вектор строк к переменной msg, нужно использовать цикл для перебора всех элементов вектора и добавления их к строке. Вот как можно переделать код:
Код:
if (!_sequentialItems.empty()) {
    msg += ". Notification Ids: ";
    for (size_t i = 0; i < _sequentialItems.size(); ++i) {
        msg += _sequentialItems[i];
        if (i != _sequentialItems.size() - 1) {
            msg += ", "; // Добавляем запятую между элементами, если это не последний элемент
        }
    }
}

Этот код:

1. Проверяет, что вектор `_sequentialItems` не пуст.
2. Добавляет к строке `msg` фразу `". Notification Ids: "`.
3. Использует цикл для добавления всех элементов из вектора `_sequentialItems` к строке.
4. Между элементами добавляется запятая, но после последнего элемента запятая не добавляется.

Таким образом, весь вектор строк будет корректно добавлен к `msg`.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение17.10.2024, 15:33 


01/09/14
534
Nvidia опубликовали (https://huggingface.co/nvidia/Llama-3.1 ... nstruct-HF) новую модель Llama-3.1-Nemotron-70B-Instruct-HF. Модель занимает первое место по некоторым бенчмаркам (AlpacaEval, MT-Bench, Mean Response Length).

В основе — опенсорсная Llama 3.1 от Meta*, 70 млрд параметров и обучение методом RLHF (с подкреплением человеческих отзывов).

Тестируем тут. (https://build.nvidia.com/nvidia/llama-3 ... b-instruct)

Затестировал предыдущей задачей. Мощный ИИ :shock:
llama-3_1-nemotron-70b-instruct писал(а):
Чтобы добавить весь вектор строк (_sequentialItems) к строке msg, а не только первый элемент (_sequentialItems[0]), вы можете использовать стандартную функцию std::accumulate из библиотеки <numeric> для конкатенации всех строк в векторе, или проитерироваться через вектор самостоятельно в цикле. Ниже показаны оба подхода:

Использование std::accumulate
Код:
#include <numeric>
#include <string>
#include <vector>

// Предполагая, что _sequentialItems является std::vector<std::string>

if (!_sequentialItems.empty()) {
    std::string sequentialItemsStr;
    if (_sequentialItems.size() > 1) {
        sequentialItemsStr = std::accumulate(std::next(_sequentialItems.begin()), _sequentialItems.end(),
                                             _sequentialItems[0],
                                             [](const std::string& a, const std::string& b) {
                                                 return a + ", " + b;
                                             });
    } else {
        sequentialItemsStr = _sequentialItems[0];
    }
    msg += ". Notification Ids: " + sequentialItemsStr;
}


Использование цикла for
Код:
if (!_sequentialItems.empty()) {
    msg += ". Notification Ids: " + _sequentialItems[0];
    for (size_t i = 1; i < _sequentialItems.size(); ++i) {
        msg += ", " + _sequentialItems[i];
    }
}


Использование std::ostringstream (альтернативный подход для цикла)
Этот метод может быть более эффективен, особенно для больших объемов данных, поскольку избегает множественных реаллокаций, связанных с конкатенацией строк.

Код:
#include <sstream>
#include <vector>
#include <string>

if (!_sequentialItems.empty()) {
    std::ostringstream oss;
    for (const auto& item : _sequentialItems) {
        if (oss.tellp() != 0) oss << ", ";
        oss << item;
    }
    msg += ". Notification Ids: " + oss.str();
}


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

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение17.10.2024, 18:46 


05/09/16
12076
А вы заметили, между прочим, что некоторые участники на серьёзных щах прям канализируют выделения роботов в раздел олимпиадных задач по математике, в качестве решений :mrgreen:
Сайбернет отаке!

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 11:21 
Аватара пользователя


29/04/13
8187
Богородский
Serg53 в сообщении #1659122 писал(а):
Можно ли придумать такой тестовый текст, ответы на который позволят решить есть осознание текста или нет?

Тестовый текст и текстовый тест. В чём разница?

Цитата:
В русском языке фразы “тестовый текст” и “текстовый тест” имеют разное значение:

Тестовый текст:

Это образцовый текст, который используется для тестирования чего-либо. Например:
Тестовый текст для проверки корректности работы текстового редактора.
Тестовый текст для анализа алгоритмов машинного перевода.
Текстовый тест:

Это тест, который проводится с помощью текста. Он может быть:
Проверка знаний: например, тест по литературе, который включает в себя анализ текстов.
Оценка навыков: например, тест на знание языка, который включает в себя чтение и понимание текстов.
Вкратце:

Тестовый текст - это тип текста, который используется для тестирования.
Текстовый тест - это тип теста, который использует текст.

Ни черта я не понял :-) Пока считаю, что это одно и то же.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 14:26 


16/12/20
162
Yadryara в сообщении #1659136 писал(а):
Тестовый текст и текстовый тест. В чём разница?

Тестовый текст это текст, используемый для тестирования. Текст - объект обсуждения.

Текстовый тест это тест в форме текста. Тест - процесс тестирования.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 18:40 
Аватара пользователя


29/04/13
8187
Богородский
Это всё равно одно и то же. Но я спрашивал и более явные вещи:

Масло масляное и масляное масло. В чём разница?

Цитата:
“Масло масляное” и “масляное масло” - это фразеологизмы, которые употребляются в разных контекстах и имеют разное значение:

“Масло масляное”:

Используется для описания излишне повторяющегося, бессмысленного и неинформативного выражения.
Фраза указывает на лишнее использование одинаковых слов или синонимов, что делает высказывание тусклым и неинтересным.
Например: “Он был очень умный и сообразительный, он быстро решал все проблемы - это было просто масло масляное”.
“Масляное масло”:

Фраза имеет шутливое значение и употребляется в неформальной речи.
Означает то, что является очевидным, излишне повторяющимся и не требующим доказательств.
Например: “Ты хочешь, чтобы я тебе сказал, что небо голубое? Да это же масляное масло!”
Важно:

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

Хрен редьки не слаще и редька не слаще хрена. В чём разница?

Цитата:
Фразы “хрен редьки не слаще” и “редька не слаще хрена” - это пословицы, которые очень похожи по смыслу, но имеют некоторые отличия:

“Хрен редьки не слаще”:

Эта пословица указывает на то, что два предмета или явления одинаково неприятны.
Она используется в ситуациях, когда оба варианта не приносят удовлетворения и оба плохи.
Например: “Ты думаешь, что переезд в другой город будет лучше? Но там тоже есть свои проблемы, хрен редьки не слаще”.
“Редька не слаще хрена”:

Эта пословица более конкретна и указывает на то, что один предмет (редька) не лучше другого (хрена).
Она используется в ситуациях, когда выбирают между двумя плохими вариантами.
Например: “Ты думаешь, что лучше пойти на эту работу, а не на ту? Редька не слаще хрена, на обоих местах будут свои неудобства”.
В чем разница?

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

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 18:46 


05/09/16
12076
Yadryara
Вы серьезно не видите разницы между текстом и тестом?

Пояснения ИИ весьма точны, не к чему и придраться...

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 18:49 
Аватара пользователя


29/04/13
8187
Богородский
wrest в сообщении #1659173 писал(а):
Вы серьезно не видите разницы между текстом и тестом?

Я серьезно не вижу принципиальной разницы между тестовым текстом и текстовым тестом. Но здесь это оффтоп.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 18:53 


05/09/16
12076
Yadryara в сообщении #1659174 писал(а):
Я серьезно не вижу принципиальной разницы между тестовым текстом и текстовым тестом.

Ок, тогда читайте что пишет вам ИИ -- "до просветления" (без обид)

Текстовый тест:
Сколько будет дважды два?

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

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 18:58 
Аватара пользователя


29/04/13
8187
Богородский
Я имел в виду, что если Вы желаете поговорить об этом, откройте новую тему.

В Вашем примере можно совершенно спокойно поменять фразы местами.

 Профиль  
                  
 
 Re: Тестирование возможностей ChatGPT
Сообщение21.10.2024, 19:05 


05/09/16
12076
Yadryara в сообщении #1659176 писал(а):
Я имел в виду, что если Вы желаете поговорить об этом, откройте новую тему.

Так вроде ж вы пожелали поговорить об этом, раз написали?
Моё мнение: ответы ИИ точные и по делу, тест пройден. Если бы меня спросили в чем разница (по всем приведенным примерам) я бы примерно так и ответил, как ответил ИИ.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 776 ]  На страницу Пред.  1 ... 45, 46, 47, 48, 49, 50, 51, 52  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group