Comments 21
Триллион параметров. Мастер спорта по решению олимипадных задач, можно сказать доктор математических наук.


Почему спрашиваешь по-русски? Чтобы выжать максимум из модели, спрашивать надо на английском. Да, это не очень сильно влияет, но всё же - зачем?
Почему твой промт не выглядит так: "cначала порассуждай, потом дай ответ. думай шаг за шагом"? Если ты требуешь от модели сразу ответ, то ей всю когнитивную нагрузку надо вместить в один токен вывода; а когда просишь порассуждать, когнитивная нагрузка распределяется на много токенов, и это становится посильно для модели
Иди промтить учись, невежда

А как, интересно, вы ему дали картинку, если он не понимает картинки?




Учи prompt engineering.
P.S.
Сам промпт скрыл, личный - универсальный, созданный на основе многолетнего опыта.
Да, вот примерно такими техниками и получается, что "ИИ завоевал золото в IMO"
И тут приходят ламеры и спрашивают "<задача>. только ответ", ИИ дает неправильный ответ, и орут, что ИИ тупой. Если у кого-то другого инструмент работает, а у тебя нет, то правильный вывод - я рукожоп, а не инструмент тупой.
Ну я так тоже могу. Просто покажу ему решение сначала.
А теперь заставьте его решить эту же задачу геометрически. Это алгебраическое решение, и оно действительно универсальное, больших рассуждений не требует.(задача олимпиадная - решение общим алгоритмом будет оценено на два балла ниже). Только до Декарта такое решение было не возможно, а подобные задачи тем не менее решались. Каждая требовала уникального доказательства. Именно поэтому я сомневаюсь, что болван справится, скорее всего у него из обучающей выборки это просто выкинули, т к это ее лишь раздует, а эффекта не даст, потому что каждая задача уникальна.
Без промпта не объективно, т к мы почему то вам должны на слово верить. (Ведь решение можно засунуть в промпт) А мне лично не хочется, потому что чот апломбу многовато в вашем ответе.







P.S.
Ну а насчет промпта, не обессудьте, я его придумал и итеративно улучшал, когда RL только появлялся и не очень хотел бы, что бы кто нибудь кроме меня его использовал...
Попытался по тексту угадать промпт, написал такой:
<role>You are a world-class expert on classic Euclidean geometry.<role> Please solve the problem described below in Russian in several major steps:
First step: Conduct an analysis of the problem, stating the final goal, identifying restrictions, and determining subtasks that will help find the solution.
Second step: do the initial solution inside the <initial-solution> block.
Third step: Inside <analysis> block, analyze the initial solution and list all flaws and possible errors. Then, list all possible improvements that can mitigate these flaws and fix the errors.
Fourth step: Inside <improvement>, consider how you apply the improvement to the initial solution.
The last step: inside <final-solution>, provide the solution where all improvements are applied. You also need to check how reasonable the final answer is for the initial problem statement.
---
ЗАДАЧА: Найдите площадь квадрата, где две окружности радиусом 5 см каждая касаются друг друга и общей касательной, а квадрат вписан между окружностями и касательной. Решите задачу исключительно методами классической синтетической геометрии. Координаты и алгебра недопустимы.
Но этот Kimi-K2 с таким промптом лажает, решает неправильно. Дальше улучшать промпт было лень, решил закинуть его в другие модели.
Gemini 2.5 pro решил задачу правильно, а lite нет.
DeepSeek R1 думал неприлично долго, но в итоге решил правильно.
Claude Sonnet 4 на удивление решил не правильно.
Ок, я принимаю ваш ответ и согласен, что был не прав, что оно вообще не справится. Но только потому что ниже человек говорит, что с его промтом некоторые сети решают верно (Но не Kimi K2 почему то)
А второй момент - сами рассуждения не идеальны (например, оно пишет, что "расстояние от O1 до BC равно 5-s" но на самом деле имеет в виду дополнительное построение и расстояние до этой прямой, которую оно никак не обозначило) Поэтому, есть предположение, что с другими задачками оно может и не справиться. Я допускаю, что был не прав на счет того, что такие задачи и решения геометрически выкинули из обучающей выборке, но то что оно вряд ли сможет решать их так же как человек пока сомневаюсь. Здесь задачка по сути в одно дополнительное построение, а ведь могут быть гораздо более сложные доп псотроения. Впрочем я в то же время не отрицаю, что могут быть специализированные сети именно на это обученные. У меня сомнения именно по сетям обученным на "больших" данных, где всё подряд.
Прикольно наверное искать решение, когда уже дан ответ. Сидеть и улучшать промт пока он не получит в решении нужный результат. Если же ответ был бы неизвестен, то ты после своего гениального промтинга получил ответ «100» и отправился куда подальше
Спасибо за задачку! Она подтолкнула меня потестировать как подобные задачи могут решать "маленькие" LLM которые можно запустить на игровом компьютере локально. Я перевел задачу на английский и добавил немного промпта который по-идее должен структурировать размышления, получилось вот-так:
<role>You are a world-class expert on classic Euclidean geometry.<role> Please solve the problem described below by using several major steps:
- First step: Conduct an analysis of the problem, stating the final goal, identifying restrictions, and determining subtasks that will help find the solution.
- Second step: do the initial solution inside the <initial-solution> block.
- Third step: Inside <analysis> block, analyze the initial solution and list all flaws and possible errors. Then, list all possible improvements that can mitigate these flaws and fix the errors.
- Fourth step: Inside <improvement>, consider how you apply the improvement to the initial solution.
- The last step: inside <final-solution>, provide the solution where all improvements are applied. You also need to check how reasonable the final answer is for the initial problem statement.
---
The problem: Two circles of radius 5 cm each touch each other and have a common tangent. A square is inscribed between the circles and the tangent. What is the area of the square?
Но в итоге оказалось, что тестирую больше размышляющие модели, а они размышляют по-своему и уже после размышления выдают ответ в запрашиваемом виде, так что для них вот-такой промпт тоже работает:
As a world-class expert on classic Euclidean geometry, please solve problem: Two circles of radius 5 cm each touch each other and have a common tangent. A square is inscribed between the circles and the tangent. What is the area of the square?
Первая LLM которую я решил потестировать была Qwen QwQ - это первая размышляюшая модель на 32B параметров, выпущенная Qwen в ноябре прошлого года, немного устарела, ей на смену пришла размышляющая Qwen3-32B, но мне QwQ нравится. К тому-же 32 миллиарда параметров это самая большая модель, которую я могу запустить у себя на компе. В итоге, потратив почти 10тыс токенов она выдала правильный результат!
Воодушевленный этим, я решил проверить задачу на более маленьких моделях, начал с Gemma3 на 27 миллиардов параметров, хорошая рабочая лошадка, которая и без reasoning режима отлично выполняет всякие мелкие задачи. Но, к сожалению, никаким промптом от нее добиться нормального результата не получилось. Очень жаль, особенно с учетом того, что этот промпт на английском Gemin 2.5 Flash, смогла решить.
Может быть 32 миллиарда параметров это предел? На всякий случай решил проверить на Phi-4 Reasoning с 14 миллиардов параметров. Я не очень люблю эту модель, у нее половина размышлений на тему того, как ее ответ соответствует правилам. Типа "Согласно правилу 4 если это промпт на мед.тему, я должна дать пользователю пояснение, что ему надо идти к доктору, а не со мной разговаривать, проверю запрос, запрос про математику, а не про медицину" и тд и тп. Очень такая хрень раздражает. Но я слышал, что эта модель хороша в математике и решил проверить. На удивление, она задачу решила! Потратив всего 9тыс токенов:

ОК, воодушевленный таким результатом, я решил еще проверить Qwen3 14b и она тоже смогла решить, да еще и красиво оформила:

Тут я решил проверить модели Mistral: Small 3.2 24B и размышляющую модель Magistral Small 2506. К сожалению, они обе не смогли решить, причем Magistral потратила почти 20тыс токенов на решение. И в ответе она написала, что у квадратного уравнения есть 2 решения, с длинной стороны квадрата 2 см и 10 см, но выбрала в итоге 10 см, т.к. он вписывается внутрь фигуры. Возможно французкая модель не очень дружит с английским, или я с ним не настолько дружу и дал неверный перевод слову "вписанный":

Ок, финальный заход, почему-бы не проверить Qwen3 на 8 миллиардов параметров? Проверил, за те-же 19 тыс. токенов, она решила все правильно:

Еще меньше, модели на 4 миллиарда параметров Phi-4 mini и Qwen3 уже решить задачку не смогли.
Ах да, чуть не забыл, с таким промптом Kimi-K2 задачку решает тоже. И ответ 100 он вам давал наверное потому-что неправильно понял русское слово "вписанный", как Magistral
удалено, не туда ответил первый раз
Спасибо автору! Интересно. Но, не приведены ссылки на источники. Откуда это всё? Даже, если бы текст писал автор программной разработки, то и он же не с нуля всё выдумал — уже бы сослался на какие-то материалы, использованные им.

Какую задачу? Если это то
Найдите площадь квадрата, изображенного на рисунке, где две окружности рад иусом 5 см каждая касаются друг друга и общей касательной, а квадрат вписан между окружностями и касательной.
Вот что отвечает kimi (очень долго размышляет, путает язык, ну и ответ неверный, собрал все ачивки) https://www.kimi.com/share/d2e57nccouafn1os9mdg
Deepseek недумающий, то есть свежий v3 - аналогично, долгие рассуждения и неверный ответ
Квен3-235б - долгие размышления и ответ правильный
Попросил через Ollama локальную модель Qwen3-Coder-30B-A3B-Instruct-UD-Q6_K_XL.gguf сгенерировать программу на pyton для решения данной задачи (радиус окружностей задает пользователь) с постоением графика. Модель выдала такой код, который отлично работает:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Circle
def solve_square_in_circle_tangent(radius):
"""
Solve for the area of the square inscribed between two touching circles
and their common tangent line.
Parameters:
radius (float): Radius of the circles
Returns:
tuple: (area_of_square, side_length)
"""
# For two circles of radius r that touch each other,
# the distance between centers is 2r
# The centers are at (-r, r) and (r, r) with tangent line y = 0
# Using the derived formula from geometric analysis:
# s² - 12s + 20 = 0 where s is side length of square
# This gives s = 2 or s = 10
# Since we want a square that fits between circles, s = 2
# Actually let's solve the general case properly:
# From the constraint that top corners touch circles:
# (r - s/2)² + (r - s)² = r²
# Expanding: r² - rs + s²/4 + r² - 2rs + s² = r²
# 2r² - 3rs + 5s²/4 = r²
# r² - 3rs + 5s²/4 = 0
# 4r² - 12rs + 5s² = 0
# Using quadratic formula: s = (12r ± √(144r² - 80r²))/10 = (12r ± √(64r²))/10 = (12r ± 8r)/10
# So s = 20r/10 = 2r or s = 4r/10 = 2r/5
# Since we want the square to fit between circles, we take s = 2r/5
side_length = 2 * radius / 5
area = side_length ** 2
return area, side_length
def draw_diagram(radius):
"""
Draw the diagram showing the two circles and inscribed square.
"""
# Create figure and axis
fig, ax = plt.subplots(1, 1, figsize=(10, 8))
# Circle parameters
center1 = (-radius, radius)
center2 = (radius, radius)
# Square parameters
side_length = 2 * radius / 5
square_bottom = 0
square_top = side_length
square_left = -side_length/2
square_right = side_length/2
# Draw circles
circle1 = Circle(center1, radius, fill=False, color='blue', linewidth=2)
circle2 = Circle(center2, radius, fill=False, color='blue', linewidth=2)
ax.add_patch(circle1)
ax.add_patch(circle2)
# Draw tangent line
ax.axhline(y=0, color='black', linewidth=1)
# Draw square
square = plt.Rectangle((square_left, square_bottom),
side_length, side_length,
fill=False, color='red', linewidth=2)
ax.add_patch(square)
# Mark key points
ax.plot(center1[0], center1[1], 'bo', markersize=8, label=f'Circle 1 Center ({center1[0]}, {center1[1]})')
ax.plot(center2[0], center2[1], 'bo', markersize=8, label=f'Circle 2 Center ({center2[0]}, {center2[1]})')
# Mark square corners
ax.plot(square_left, square_top, 'ro', markersize=8, label='Square Top Left')
ax.plot(square_right, square_top, 'ro', markersize=8, label='Square Top Right')
# Draw lines from centers to square corners (for verification)
ax.plot([center1[0], square_left], [center1[1], square_top], 'g--', alpha=0.7)
ax.plot([center2[0], square_right], [center2[1], square_top], 'g--', alpha=0.7)
# Set equal aspect ratio and limits
ax.set_xlim(-radius*1.5, radius*1.5)
ax.set_ylim(-radius*0.5, radius*1.5)
ax.set_aspect('equal')
# Add grid and labels
ax.grid(True, alpha=0.3)
ax.set_xlabel('X coordinate (cm)')
ax.set_ylabel('Y coordinate (cm)')
ax.set_title(f'Circle Radius: {radius} cm | Square Area: {solve_square_in_circle_tangent(radius)[0]:.2f} cm²')
# Add legend
ax.legend()
plt.tight_layout()
return fig
def main():
"""
Main function to run the program.
"""
print("Square Inscribed Between Two Touching Circles and Tangent Line")
print("=" * 65)
try:
radius = float(input("Enter the radius of the circles (cm): "))
if radius <= 0:
print("Error: Radius must be positive!")
return
area, side_length = solve_square_in_circle_tangent(radius)
print(f"\nResults:")
print(f"Circle radius: {radius} cm")
print(f"Square side length: {side_length:.2f} cm")
print(f"Square area: {area:.2f} cm²")
# Draw the diagram
fig = draw_diagram(radius)
plt.show()
except ValueError:
print("Error: Please enter a valid number for the radius.")
except Exception as e:
print(f"An error occurred: {e}")
# Run the program
if __name__ == "__main__":
main()
Kimi-K2