Я не являюсь специалистом в программировании и нахожу обучение этому делу сложным. Тем не менее, я узнал, что ИИ способен генерировать код, и решил попробовать использовать эту возможность. ChatGPT хорошо справляется с простыми задачами, такими как создание Python-скриптов для конвертации данных или сортировки текстовых файлов. Однако я слышал, что бесплатная версия ChatGPT уступает в эффективности GitHub Copilot, поэтому хочу обратиться именно к нему. <br/> Я разработал Python-скрипт для специфического перебора ключей (аналогичных решений для CPU на GitHub не нашел), но его скорость оказалась низкой — всего 200 тыс. ключей в секунду. Чтобы ускорить процесс, я решил перенести алгоритм на C++ с использованием Visual Studio 2022 и библиотеки OpenSSL. Copilot успешно адаптировал мой Python-код для C++, и я собрал исполняемый файл, который запускался через командный файл. Однако скорость не только не выросла, а даже упала до 60 тыс. ключей в секунду. <br/> В дальнейшем я решил попробовать перенести алгоритм на GPU с помощью CUDA, поскольку существующие программы демонстрируют скорость перебора в несколько миллиардов ключей в секунду. Однако доступные решения используют стандартный метод перебора, и мне требуется специфический вариант. Теоретически мой алгоритм не должен снижать скорость, но Copilot не смог корректно адаптировать код под CUDA, несмотря на многочисленные попытки. <br/> Кроме того, я заметил, что готовые проекты для GPU состоят из множества файлов, каждый из которых содержит тысячи строк кода, в то время как Copilot, даже в Deep Mode, генерирует всего один файл с не более чем 300 строками, что явно недостаточно для сложного проекта. <br/> Подскажите, пожалуйста, какую нейросеть можно использовать для генерации сложных проектов на C++, чтобы обеспечить более глубокую поддержку?
Ваш опыт использования GitHub Copilot и других инструментов на основе ИИ для разработки программного обеспечения поднимает несколько важных вопросов, связанных с их возможностями и ограничениями. 1. **Ограничения ИИ в генерации кода**: GitHub Copilot и подобные инструменты отлично справляются с генерацией кода для простых задач и предоставляют базовые структуры для более сложных проектов. Однако генерация кода для специализированных задач, таких как ваш случай с конкретным алгоритмом перебора ключей, может быть сложной для ИИ, особенно если не хватает контекста или если нужна высокая оптимизация. 2. **Проблемы с производительностью**: Уменьшение производительности при переходе с Python на C++ может быть связано с несколькими факторами, включая неэффективную реализацию алгоритма, использование неподходящих алгоритмов для компиляции или недостаточную оптимизацию кода. Отладка и профилирование вашего C++ кода могут помочь выявить узкие места в производительности. 3. **Переход на GPU с помощью CUDA**: Переход на GPU требует более глубокого понимания как архитектуры GPU, так и CUDA. Генерация кода для CUDA — это более сложная задача, чем для CPU, и часто требует разработки в нескольких файлах с учетом параллелизма, управления потоками и памяти. Это может объяснить, почему Copilot не смог корректно адаптировать ваш код для CUDA. 4. **Инструменты для генерации сложных проектов**: На данный момент нет универсальной нейросети, которая могла бы создавать сложные проекты во всех языках программирования с высокой эффективностью. Однако вы можете рассмотреть несколько подходов: - **Используйте специализированные генераторы кода**: Например, инструменты для генерации кода на C++ (например, CMake или Qt) могут помочь в автоматизации создания проектов с разделением на модули и файлами. - **Сообщество**: Обратитесь к сообществу разработчиков на GitHub и форумах по программированию, где вы сможете получить советы от более опытных разработчиков или найти примеры подобных решений. - **Обучение и эксперименты**: Продолжайте изучать, как работает CUDA и C++, и экспериментируйте с различными подходами. Используйте ресурсы, такие как документация NVIDIA и курсы по CUDA. 5. **Использование других ИИ-инструментов**: Попробуйте другие инструменты, такие как Codeium, Tabnine или другие популярные решения. Каждый из них имеет свои особенности, и возможно, что один из них лучше подходит для ваших нужд. В конечном счете, даже самые современные ИИ-инструменты могут быть ограничены в своих возможностях и не всегда смогут полностью заменить опытного программиста. Непрерывное обучение и практика в программировании помогут вам лучше понимать, как использовать эти инструменты для достижения желаемых результатов.
не бесплатные!
openai o3
openai gpt4.5
anthropic claude sonnet 3.7
(гугловские не смотрел, но их модели имеют большое контекстное окно, что дает шансы за раз анализировать больше файлов и документации.
p.s. не пытайся работать с gpt в лоб вопрос-ответ, результат будет посредственным.
нужно снабжать ИИ необходимой инфорацией прямо в запросе, давай примеры, добавляй страницы из документации (можно просить в отдельном окне выбрать из нее нужное, и уже этот ответ давать в контекст), решай задачу по частям (т.е. вместо напиши программу перебирающие ключи, проси разработай эффективный алгоритм хеширования на gpu, оформи это в виде функции, а затем попроси использовать эту функцию с твоим алгоритмом перебора, уже на этом этапе можно попросить проанализировать, что можно изменить,... делай больше попыток, держи несколько контекстов в отдельном файлике, не веди ВСЮ беседу в одном чате, начинай чат с него, уточняя и добавляя информацию из соседних обсуждений и еще куча лайфхаков
текущий ИИ далек от AGI а значит человека еще заменить полностью не может, почему каждый пытает его, ожидая что он будет мегаинтеллектом, да еще и бесплатно (стоимость компании openai расценивают в 150 млрд баксов)
Можно попробовать grok, мне на опыте он смог написать скрипты для тренировки ИИ модели, прогу для записи ТАС (а впоследствии и переписать её на C++). В ограничения я упёрся лишь 1 раз, сейчас их, похоже, вообще нет.
Из плюсов - он в отличии от ChatGPT сразу понимает проблему, например:
Grok : *код*
Пользователь: *добавь что-то*
Grok: *код и объяснение изменений*
Пользователь: *ошибка*
Grok: *фикс и объяснение ошибки*
Причём фиксит код он в 95% случаев правильно и всё запускается.