QUANT_PRUNE_DISTILL Telegram 397
Can LLMs write better code if you keep asking them to “write better code”?
[Блогпост][GitHub]

Забавный и поучительный блогпост про то, как LLMка (Claude 3.5 Sonnet) итеративно оптимизировала код под запросами вида `write better code`.

Постановка задачи следующая. Требуется написать код на Питоне для задачи а-ля LeetCode:
Write Python code to solve this problem:

Given a list of 1 million random integers between 1 and 100,000, find the difference between the smallest and the largest numbers whose digits sum up to 30.


Исходное решение
Рабочий, но не самый эффективный код. Подсчет цифр в числе реализован через приведение его к строке, парсинг строки на цифры с последующим их суммированнием.

Итерация 1
Claude замечает, что возможных вариантов чисел меньше, чем всего чисел и предпосчитывает сумму цифр для всех чисел от 1 до 100,000 и складывает в byte array. Кроме того, LLMка навела немного синтаксического сахара и обернула код в классы и методы. Ускорение 2.7x по сравнению с бейзлайном.

Итерация 2
Claude кладет сумму цифр в numpy array (что дает векторизацию подсчета сумм) и дополнительно использует concurrent-futures для параллелизации. Ускорение 5.1x по сравнению с бейзлайном. Однако изначальное решение было с багами и его пришлось немного фиксить.

Итерация 3
Небольшой и бесполезный рефактор, который замедлил код. Ускорение 4.1x по сравнению с бейзлайном.

Итерация 4
Claude предложил использовать numba с JIT-compiler и параллелизмом и asyncio для многопоточности. Ускорение 99.7x по сравнению с бейзлайном.

Далее автор изначально подает промпт, просящий оптимизировать все что только можно и нельзя (предлагая даже 💲модельке). Модель сходу выдает 59x ускорение благодаря numba + JIT (но без parallel=True).

И промпт требующий улучшения кода уже более подробный:
Your code is not fully optimized, and you have been fined $100. Make it more optimized.

Но Claude обиделся, и код стал медленее (9.1x ускорение) и с багами (возможно, привык что его обманывают на деньги).

Несколько последующих итераций выдали версии с ускорением 65x-99.7x и с косяками. Т.е превзойти прямолинейную стратегию не удалось.

Вывод

Топовые LLM - мощные ассистенты для программиста, но за ними пока требуется глаз да глаз и экспертное мнение. Кожаные мешки все еще нужны. Пока...
15😁11



tgoop.com/quant_prune_distill/397
Create:
Last Update:

Can LLMs write better code if you keep asking them to “write better code”?
[Блогпост][GitHub]

Забавный и поучительный блогпост про то, как LLMка (Claude 3.5 Sonnet) итеративно оптимизировала код под запросами вида `write better code`.

Постановка задачи следующая. Требуется написать код на Питоне для задачи а-ля LeetCode:

Write Python code to solve this problem:

Given a list of 1 million random integers between 1 and 100,000, find the difference between the smallest and the largest numbers whose digits sum up to 30.


Исходное решение
Рабочий, но не самый эффективный код. Подсчет цифр в числе реализован через приведение его к строке, парсинг строки на цифры с последующим их суммированнием.

Итерация 1
Claude замечает, что возможных вариантов чисел меньше, чем всего чисел и предпосчитывает сумму цифр для всех чисел от 1 до 100,000 и складывает в byte array. Кроме того, LLMка навела немного синтаксического сахара и обернула код в классы и методы. Ускорение 2.7x по сравнению с бейзлайном.

Итерация 2
Claude кладет сумму цифр в numpy array (что дает векторизацию подсчета сумм) и дополнительно использует concurrent-futures для параллелизации. Ускорение 5.1x по сравнению с бейзлайном. Однако изначальное решение было с багами и его пришлось немного фиксить.

Итерация 3
Небольшой и бесполезный рефактор, который замедлил код. Ускорение 4.1x по сравнению с бейзлайном.

Итерация 4
Claude предложил использовать numba с JIT-compiler и параллелизмом и asyncio для многопоточности. Ускорение 99.7x по сравнению с бейзлайном.

Далее автор изначально подает промпт, просящий оптимизировать все что только можно и нельзя (предлагая даже 💲модельке). Модель сходу выдает 59x ускорение благодаря numba + JIT (но без parallel=True).

И промпт требующий улучшения кода уже более подробный:
Your code is not fully optimized, and you have been fined $100. Make it more optimized.

Но Claude обиделся, и код стал медленее (9.1x ускорение) и с багами (возможно, привык что его обманывают на деньги).

Несколько последующих итераций выдали версии с ускорением 65x-99.7x и с косяками. Т.е превзойти прямолинейную стратегию не удалось.

Вывод

Топовые LLM - мощные ассистенты для программиста, но за ними пока требуется глаз да глаз и экспертное мнение. Кожаные мешки все еще нужны. Пока...

BY КПД


Share with your friend now:
tgoop.com/quant_prune_distill/397

View MORE
Open in Telegram


Telegram News

Date: |

Invite up to 200 users from your contacts to join your channel Unlimited number of subscribers per channel Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. Telegram users themselves will be able to flag and report potentially false content. Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019.
from us


Telegram КПД
FROM American