YandexGPT против ChatGPT: сравнение возможностей
В этой статье мы сравниваем возможности YandexGPT и ChatGPT, чтобы проверить, стал ли продукт Яндекса полноценной заменой своего прародителя.
28К открытий36К показов
Неделю назад, 17 мая, Яндекс представил свою языковую модель — YandexGPT. Поскольку продукты OpenAI нельзя использовать в России без обходов вроде VPN, на YaGPT возложены большие надежды как на продукт, который закроет боль этих ограничений.
В этой статье мы сравниваем возможности YaGPT и ChatGPT, чтобы проверить, стал ли продукт Яндекса полноценной заменой своего прародителя.
Поскольку YaGPT использует GPT-3 в качестве модели, мы сравнили его с ботом, подключенным к GPT-3 OpenAI.
Языковые модели решали такие задачи:
- Написать код на Python.
- Найти ошибку в коде на Python.
- Решить задачку по Java.
- Перевести текст с множеством технических аспектов с английского на русский язык.
- Написать песенку про программистов. Just for fun.
TL;DR: YandexGPT справилась не со всеми задачами.
Написать код на Python
Промпт: “Напиши программу, которая принимает текст и выводит два слова: наиболее встречаемое и самое длинное. Программу надо написать на Python”.
YandexGPT
Вот пример программы на Python, которая принимает строку и выводит наиболее часто встречаемое слово и слово с наибольшей длиной:
ChatGPT
Конечно! Следующий код будет принимать слова через ввод пользователя, затем находит самое длинное и наиболее встречающееся слова и выводит их на экран:
Эта программа будет работать следующим образом:
- Принимает введенные слова от пользователя.
- Разделяет введенный текст на слова и сохраняет их в список.
- Ищет самое длинное слово в списке.
- Создает словарь, где ключом является слово, а значением – количество его вхождений в текст.
- Ищет наиболее встречающееся слово в словаре.
- Выводит самое длинное слово и наиболее встречающееся слово на экран.
Чей код на Python лучше?
YandexGPT
ChatGPT
Найти ошибку в коде на Python
Промпт: “Представь, что ты профессиональный QA. Пожалуйста, найди ошибку в этом коде на Python”.
Проблема была найдена на Stack Overflow.
YandexGPT
ChatGPT
В данном коде реализован обход файла “input.txt”, который содержит числа, и поиск минимального и максимального четного числа, больших или равных нулю. Но есть несколько проблем в данном коде:
- Переменные `mi` и `ma` инициализированы некорректно с неадекватными значениями. Несмотря на то, что в задании указано, что используемые значения в файле не превышают 1000000, переменные инициализированы значением, которое выходит за пределы этого диапазона.
- Неверно управляется счетчик. В текущей реализации все числа, проходящие проверку, увеличивают значение переменной counter, даже если не были использованы для обновления значений `mi` или `ma`.
- Если во входном файле не было четных чисел больших или равных нулю, не будет выведено никакого результата в выходной файл.
Предлагаемый вариант исправления ошибок:
В данном исправленном варианте используется инициализация mi и ma значением None, что позволяет проверить было ли обработано хотя бы одно число. В то время как в прошлой версии было использовано неадекватное значение для инициализации переменных.
Так же управление счетчиком и обновлениями переменных mi и ma согласованы, и не учитывают числа не удовлетворяющие условиям задания.
Решить задачку на Java
Промпт: “Напиши код на Java. В классе Solution реализуй метод printNumbers(), который выводит числа от 1 до 10 включительно с паузой между выводом каждого числа – 1,3 миллисекунды. В этом тебе поможет метод sleep(long, int) класса Thread”.
Задача взята здесь.
YandexGPT
Код на Java, который выводит числа от 1 до 10 с паузой 1,3 мс между каждым числом:
Метод `sleep()` используется для задержки выполнения программы на определенное количество миллисекунд. В данном случае, задержка 1,3 мс задается вторым параметром метода `Thread.sleep()`, где 1300 – это количество миллисекунд, которое мы хотим подождать.
ChatGPT
Конечно, следующий код решает поставленную задачу:
В данном коде используется метод Thread.sleep(long, int), который приостанавливает выполнение текущего потока на указанное количество времени (1,3 миллисекунды). Цикл for перебирает числа от 1 до 10 включительно, выводит их на экран, а также вызывает метод Thread.sleep для паузы между каждой итерацией.
В методе main вызываем метод printNumbers для запуска программы и выполнения требуемых действий.
Кто решил задачку лучше?
YandexGPT
ChatGPT
Перевести текст про программирование на русский язык
Промпт: “Переведи этот текст на русский язык. Текст для перевода начнется со следующего абзаца. Он носит технический характер, речь в нём идёт о собеседовании на должность Software Engineer”.
Текст для перевод взят из треда на LeetCode.
YandexGPT
Попросту не справилась с задачей. Это довольно странно, потому что Алиса прямо заявляет, что работает в основном с текстами.
ChatGPT
Песенка про программистов
Промпт: “Напиши песенку про программистов на четыре куплета”. Эту задачу предложили нейросетям, чтобы дать некоторую фору YandexGPT — она позиционирует себя как автор для текстов.
YandexGPT
Языковая модель написала большую песню, но куплетов в ней всего три.
ChatGPT
Куплетов в песне действительно четыре, хоть и без припевов.
Чья песенка лучше?
YandexGPT
ChatGPT
В конечном итоге, YaGPT справилась только с 3 задачами из 5 предложенных. Неясно, связано ли это с тем, что нейросеть только-только стала доступной всем желающим. Возможно, в будущем она научится справляться и с переводами, и с отловом багов так же непринуждённо, как с написанием кода.
28К открытий36К показов