Автор | Команда MoonBit (основные сценаристы: Чжан Хунбо, Чэнь Юронг, У Цзинчунь)
Планирование | Цай Фанфанг
2023 год — год, когда генеративный ИИ возглавит технологическую революцию. Благодаря постоянным прорывам в моделях больших языков искусственного интеллекта (LLM) и активности сообщества открытого исходного кода, достигающей беспрецедентных высот, тяжелые продукты и услуги, представленные OpenAI GPT-4, Meta-LLaMA и т. д., стали выпускаться один за другим. Развитие технологии искусственного интеллекта дало возможность программированию, а язык приносит новые проблемы и возможности. Являясь ключевым двигателем эволюции времени, язык программирования всегда тесно соответствовал текущему технологическому развитию и потребностям, таким образом постоянно адаптируясь к изменениям по мере развития времени. От Фортрана в эпоху мэйнфреймов до C в эпоху персональных компьютеров, до Java и Python в эпоху Интернета — каждый язык восхищался способностью адаптироваться к технологическим тенденциям того времени.
2023 год — поворотный момент в эпоху искусственного интеллекта. Как лучше разрабатывать модели ИИ и собственные приложения ИИ — это важная возможность и задача, с которой сталкиваются современные платформы инструментов для разработчиков. На основе этого также были созданы два новых курса по программированию, заслуживающих внимания. в этом году Языки: Mojo и MoonBit. Первый возглавляет Крис Латтнер, отец LLVM, и он сочетает в себе удобство использования Python с производительностью C. Он может обеспечить программируемость и масштабируемость ИИ и в большей степени способствует эффективной разработке моделей в эпоху ИИ. Последний представляет собой язык программирования промышленного уровня, самостоятельно разработанный командой под руководством Чжан Хунбо, бывшего члена основной группы разработчиков OCaml и автора ReScript, специализирующейся на разработке собственных приложений искусственного интеллекта.
В этой статье будут объединены размышления команды MoonBit о тенденциях развития языков программирования и платформ разработки в эпоху больших моделей, проанализированы проектные цели и дизайнерские идеи MoonBit, а также подведены итоги прогресса MoonBit в 2023 году и будущих планов экологического развития. Мы надеемся, что это поможет читателям получить представление о тенденциях развития языков программирования. Эта статья входит в серию статей «Ежегодный перечень и прогноз технологий InfoQ на 2023 год», совместно подготовленных и представленных редакцией InfoQ и командой MoonBit.
Будущее уже сейчас: большие модели меняют разработчиков
Рост использования искусственного интеллекта в программировании, такого как ChatGPT и Github Copilot, меняет способы получения разработчиками информации и написания кода. Технология искусственного интеллекта также предвещает будущие изменения в отрасли и на рынках. Когда появился ChatGPT, популярное сообщество разработчиков Stackoverflow сильно упало, в результате чего сообщество объявило об увольнении почти одной трети. Это явление отражает то, что ИИ пытается заменить традиционные инструменты разработки. Причина в том, что с точки зрения генерации кода базовые технологии, такие как GPT-4 и Copilot, становятся все более зрелыми. Даже в новых областях, не связанных напрямую с обучающими данными GPT-4, качество кода, сгенерированного после тонкой настройки, уже находится на высоком уровне. очень хорошо и может решить различные практические проблемы.
В то же время оптимизация и итерация существующих инструментов кодирования слегка меняют рабочую модель организаций и отдельных разработчиков. Приток массового пользователя вызвал необходимость постоянного обновления инструментов для удовлетворения потребностей пользователей. Генеральный директор Github Томас Домке опубликовал сообщение: в блоге в июне этого года [1] «Экономическое влияние жизненного цикла разработчиков на основе искусственного интеллекта и уроки GitHub Copilot» упоминалось: «Copilot включен более чем одним миллионом разработчиков и используется более чем 20 000 принят организациями. Он создал более трех миллиардов строк принятого кода, что делает его наиболее широко используемым инструментом разработчиков ИИ в мире».
Источник изображения данных: Github
Повышение производительности разработчиков ИИ может увеличить мировой ВВП более чем на 1,5 триллиона долларов. Используя 30-процентное увеличение производительности и, по оценкам, к 2030 году во всем мире будет насчитываться 45 миллионов профессиональных разработчиков, инструменты генеративной разработки искусственного интеллекта могут добавить к глобальному потенциалу прирост производительности еще на 15 миллионов «эффективных разработчиков» к 2030 году.
Большие модели могут «сократить затраты и повысить эффективность» существующих опытно-конструкторских работ.
В блоге Андрея Карпати [2] «Программное обеспечение 2.0» он рассказал о том, как искусственный интеллект меняет способ разработки программного обеспечения: «Программное обеспечение 2.0 означает, что мы можем использовать много данных и вычислительных мощностей для решения проблем, которые раньше требовали большого количества рабочей силы и ресурсов». Стоимость. Сложная проблема». Помощник по кодированию ИИ — это конкретная реализация вышеизложенного.
Источник изображения данных: Github
Данные опроса показывают, что инструменты ИИ-кодирования не только повышают общую производительность, но и открывают возможности для повышения квалификации. 75% разработчиков говорят, что чувствуют себя более удовлетворенными при использовании GitHub Copilot. Что касается конкретных производственных данных, Copilot способен завершить до 46% кода, помогая разработчикам увеличить скорость программирования на 55%.
Будущий рабочий процесс кодирования приобретет совершенно новый вид: инструменты кодирования ИИ смогут массово производить краткосрочное программное обеспечение и тестовые решения и больше не будут стремиться к долгосрочному повторному использованию благодаря эффективной автоматизации производственного процесса. Будущие затраты на вывод и задержки вывода будут значительно сокращены. С другой стороны, качество инженерной разработки — это не теоретическая задача, а непрерывная оптимизация и итерация в инженерной практике. Это главным образом отражается в том, что в будущем большие модели кода будут дорабатываться до малых и средних. моделей, тем самым достигая цели возможности работы на периферийных устройствах.
В области обучения кодированию и рассуждениям фактически нет необходимости в исторических знаниях до и после, а также необходимости индексировать гуманистические намеки. Можно предвидеть, что в будущем большие модели будут постепенно превращаться в модели малого и среднего размера. , что может составлять 7 миллиардов параметров, 1 миллиард параметров или 10 миллиардов параметров, эта шкала уже очень эффективна.
Относительно небольшие модели позволяют запускать большие модели на периферийных устройствах и ПК. Кроме того, обновление аппаратной архитектуры позволяет оборудованию потребительского уровня запускать более масштабные модели. Нынешний мощный Mac Pro и другие модели уже могут переносить десятки миллиардов параметров. По мере развития этой количественной оценки параметров все больше моделей смогут работать на периферийных устройствах, что является улучшением функциональности и не вызывает теоретических трудностей. В ближайшие годы такое развитие событий станет более распространенным.
в то же времяС генеративным AI из Развитие,язык Различия между программированием и изложением становятся менее очевидными. Вместе с этим приходит издаязык программирование снизило порог обучения。Сейчас изучаю новый предметизязык В области программирования одним из ключевых моментов является освоение его экосистемы, включая грамматику и использование библиотек. Приведите пример личности, чтобы отличить зрелого от Java Инженеры и специалисты Java Одним из главных факторов для инженеров является знакомство с различными библиотеками и интуиция в их использовании.
В будущем существование генеративного ИИ может значительно упростить этот процесс. Например, когда требуется анализ JSON, генеративный ИИ может автоматически рекомендовать подходящие библиотеки. Это как иметь под рукой помощника, который не только поможет выбрать правильный инструмент, но и объяснит незнакомые фрагменты кода. В результате изучение нового языка станет более интуитивным и простым.
Это изменение предвещает потенциальный сдвиг в будущем программировании с самого инструмента на опыт.。существоватьразвиватьодининдивидуальный При подаче заявления,может быть, нужно только объяснить свои идеи,AI Затем будет сгенерирован соответствующий код. Например, при разработке приложения с прогнозом погоды разработчики могут сразу увидеть предварительные UI и вносите корректировки на основе отзывов от рендеринга в реальном времени, чтобы оптимизировать производительность и функциональность вашего приложения.
В таком рабочем процессе инструмент программирования сам становится посредником, а не объектом непосредственного внимания конечного пользователя. Это не означает, что инструмент стал менее важным, но его роль изменилась. Пользователи, возможно, больше не уделяют должного внимания конкретным деталям инструментов, но понимание того, как эти инструменты работают, по-прежнему имеет решающее значение для эффективного использования агентов ИИ, решения сложных проблем и внедрения инноваций.
Большие модели и программисты: сотрудничество важнее замены
В рамках нынешней крупномасштабной модели, основанной на платформе Transformer, вероятность того, что искусственный интеллект полностью заменит человека, невелика. Если нынешний искусственный интеллект в когнитивной системе человека классифицировать на Систему 1 (быстрое мышление) и Систему 2 (медленное мышление), то «Система 1» интеллекта представляет собой условно-рефлекторный интеллект и может мгновенно отвечать на вопросы. По сравнению с интеллектом систем логического анализа «Системы 2», требующими глубокого мышления, сегодняшний ИИ ближе к первому. Это отражается в том, что каждый токен генерирует ответы с одинаковой скоростью, независимо от сложности вопроса. Кроме того, исходя из архитектуры Transformer, по мере роста контекстного окна сложность увеличивается на n², и окно нельзя сделать очень большим. Даже если можно реализовать модель размером в 1 миллион токенов, размером . код, который он может разместить, все еще относительно невелик. Таким образом, нынешний ИИ вряд ли полностью заменит людей и, скорее всего, будет представлять собой вождение с поддержкой «уровня L2 или L3», а не полностью автономное автономное вождение уровня L4.
Долгосрочная цель инструментов программирования искусственного интеллекта — снабдить LLM возможностями Системы 2, создать основу для глубокого мышления и анализа, а также принимать более сложные и надежные решения. Типичным примером является серия исследований «цепочка мыслей», в которых моделируются сложные человеческие рассуждения с помощью подсказок и кода Python для стимулирования интеллекта LLM.
Будущее языков программирования и платформ разработки
Основные трудности использования больших моделей в крупных проектах развития
Проблемы крупных проектов
Мы также должны полностью учитывать различные проблемы и практические требования, с которыми сталкиваются крупномасштабные проекты. Для большого Модель «Мир»,Алгоритм да «Производственные отношения»,да обработка данных информации и з правила и метод да "производительность";,Это может улучшить скорость и масштаб обработки данных, а данные обучения алгоритмов являются «производственным материалом»;,Высококачественные данные заставляют алгоритм постоянно совершенствовать и совершенствовать. существовать среди этих,Вычислительная мощностьдапусть большой Модельповернутьизпомещение。Огромные требования к вычислительным ресурсам и постоянное расширение наборов данных станут основными проблемами, которые необходимо будет преодолеть крупномасштабным проектам.。
Большие модели предъявляют беспрецедентные требования к вычислительной мощности. По данным NVIDIA, до использования больших моделей на основе модели Transformer требования к вычислительной мощности увеличивались примерно в 8 раз каждые два года. Однако с момента внедрения архитектуры на основе трансформатора требования к вычислительной мощности увеличивались примерно в 275 раз каждые два года. Исходя из этого, для работы модели Мегатрона-Тьюринга NLG с 53 миллиардами параметров может потребоваться более 1 миллиарда FLOPS вычислительной мощности. Такое огромное увеличение требований к вычислительной мощности означает, что только более крупные вычислительные платформы могут обучать такую большую модель.
Источник изображения / Подробное описание архитектуры NVIDIA Hopper
Понимать верхние и нижние предложения
Поскольку среда с открытым исходным кодом продолжает развиваться, реальный порог применения технологий может заключаться не в самой модели. Модели, исходный код которых недавно открыли в открытом доступе некоторые европейские и отечественные компании, достаточно практичны, но реальная проблема заключается в применении технологии в бизнес-сценариях, что требует лучшего сочетания знаний предметной области и практического применения. Сам размер модели не может быть серьезным препятствием. Когда в области кодирования используются большие модели, основной проблемой является ограничение возможностей понимания контекста. Даже если модель способна работать с миллионами токенов, ее способность понимания контекста все еще относительно ограничена. Поэтому одна из проблем заключается в том, как позволить крупным моделям лучше понимать контекст посредством анализа кода для извлечения теоретических знаний.
Один из способов — использовать метод «RAG» (Поисковая расширенная генерация), который может извлекать только сводную информацию, такую как сигнатуры функций, и сжимать большой объем кода в более короткую форму. Другой, более радикальный метод — выборочное извлечение сигнатур функций, сохранение только сводки ключевых функций и даже фильтрация на основе исторических записей отправки, чтобы сделать сводку более упорядоченной. Более того, анализируя историю кодирования, контекст можно сократить на основе знаний предметной области. Второй подход — «коррекция декодера», который включает декодерную часть модели, используя возможности завершения кода традиционных IDE в сочетании с большими моделями для обеспечения надежности сгенерированного кода. Третий метод — «обратный путь», то есть интерпретатор быстро генерирует результаты интерпретации, а затем оценивает их. Если они неточны, возвращайтесь назад, переобучайтесь и генерируйте новый код. Этот метод имитирует модели человеческого мышления и непрерывно выполняет обучение кода, но эффективность относительно низкая.
Совершенно новое взаимодействие с пользовательским интерфейсом
Взаимодействие с пользователем (UI/UX): Github Copilot имеет определенные преимущества в охвате пользователей благодаря эксклюзивному API пользовательского интерфейса, предоставляемому VSCode. Однако нынешнее открытие функций LLM все еще находится на ранних стадиях, что оставляет много возможностей для стартапов. внедрять инновации. В будущем применение крупномасштабных моделей на платформах разработки будет сосредоточено на оптимизации пользовательского опыта и взаимодействия с интерфейсом. Хотя такие инструменты, как Copilot, помогают генерировать код, в настоящее время вам все равно необходимо копировать и вставлять сгенерированный код из одного окна в другое. В идеале пользователи могли бы создавать, редактировать, тестировать и демонстрировать код в одном и том же интерфейсе без необходимости часто переключать окна. Эта оптимизация значительно повысит эффективность и удобство процесса разработки. Например, функция копирования в чат, предоставляемая Cursor, позволяет пользователям быстро импортировать фрагменты кода в Chat и воспроизводить чат в редакторе: аналогично соответствующей функции документа в таких инструментах совместной работы с документами, как Notion и Feishu. С помощью символа @ разработчики могут быстро найти нужные файлы, на которые нужно ссылаться.
Платформа разработки искусственного интеллекта вот-вот появится
Что сейчас доминирует на рынке AI Такие инструменты, как GitHub новые продукты Copilot X использовал GPT-4 Технология, приобретенная благодаря поддержке Microsoft OpenAI Частный бета-доступ к новейшим моделям. Хотя последние CodeX Обновления модели улучшили прием кода и сократили задержку, но не привели к повышению производительности. Оценки конкурентов показывают возможности продукта и Copilot похожий. Между тем, создание небольших моделей с открытым исходным кодом является сложной задачей. GPT-3.5 производительность, эта пара GitHub Создание конкурентных преимуществ создает проблемы, а рыночная конкуренция усиливается. AI Частичная зависимость инструмента от моделей с открытым исходным кодом приводит к задержкам в обновлении моделей и проблемам с производительностью генерации. Магистр независимых исследований и разработок AI Возможности встроенной платформыдляпринесенные пользователямиПринося непревзойденный опыт и дополнительную вечность。
В то же время предприятия в будущем будут продолжать расширять возможности индивидуальной настройки инструментов завершения кода, уделяя особое внимание функции точной настройки и использованию внутренних данных для оптимизации моделей. Например, внутренние инструменты Google или код оптимизации производительности могут значительно улучшить производительность модели. Кроме того, собственные данные могут уменьшить параметры модели, сократить затраты на выводы и задержки, а также обеспечить соблюдение правил конфиденциальности и контента в строго регулируемой среде. Управление разрешениями и приватизированное развертывание моделей становятся все более важными, но в настоящее время ведущие продукты, такие как Github Copilot. Эти функции еще не были рассмотрены. Как точно сфокусироваться и удовлетворить индивидуальные потребности клиентов в инструментах, это путь к победе на рынке будущего.
Благодаря постоянному развитию и популяризации моделей искусственного интеллекта будущая среда программирования может привести к фундаментальным изменениям, а IDE (интегрированные среды разработки) могут быть реструктурированы для лучшей интеграции с другими системами. AI взаимодействие. Например, второй пилот Уже показано AI и IDE ранние этапы взаимодействия UI Элементы, хотя все еще находятся на относительно ранних стадиях своего развития, позволяют предположить, что в будущем в этой области может быть направлено больше инноваций. LLM IDE First этотодинотслеживать:Традиция IDE Умный и AI Умный из Ожидается, что интеграция станетдля Внизодининдивидуальный Бизнес-аутлет。
Традиционные IDE являются отправной точкой разработки программного обеспечения и воротами в процесс DevOps. В этой среде разработчики пишут, тестируют и отлаживают код, который затем интегрируется в цепочку инструментов DevOps. Традиционное тестирование обычно требует написания нескольких тестовых кодов и настроек среды в IDE, но теперь некоторые DevOps-компании, такие как AtomicJar, упростили этот процесс и даже могут автоматически создавать тестовые диаграммы и отчеты. По состоянию на 2022 год мировой рынок программных инструментов DevOps составит примерно 18,3 миллиарда долларов США и будет продолжать расти ежегодными темпами от 15 до 20%. Однако по сравнению с DevOps единственным отличным входом в DevOps является VS Code, который опирается на него. о политике бесплатного открытого исходного кода. Чтобы завоевать большую долю рынка, deveOps по-прежнему остается рынком голубого океана с большими перспективами.
Источник: IDC, Gongyan Industry Consulting (Gongyan.com).
В этом контексте глубокая интеграция IDE, DevOps и больших моделей принесет новые изменения в процесс разработки программного обеспечения. Сочетая технологию интеллектуального анализа кода с традиционными IDE, программисты могут эффективно снизить нагрузку и потенциальные ошибки на этапе операций (Ops). Во-вторых, большие модели предоставляют разработчикам больше свободы, позволяя им адаптировать конвейеры DevOps к своим потребностям. Эта гибкость имеет решающее значение для адаптации к меняющимся потребностям проекта. Глубокая интеграция IDE, DevOps и больших моделей повышает роль IDE как входа в DevOps и играет более важную роль на всем жизненном цикле разработки программного обеспечения. Это не только повышает эффективность развития, но и создает большую коммерческую ценность для предприятий. Благодаря такой глубокой интеграции IDE становится более мощным и централизованным инструментом, помогающим вести разработку программного обеспечения в более эффективном и разумном направлении.
MoonBit: нативные приложения для искусственного интеллекта язык программирования
Традиционные языки программирования (такие как Python) в основном предназначены для лучшего взаимодействия с людьми. В эпоху больших моделей большая часть кода будет генерироваться ИИ. Как построить лучший контекст для больших моделей, RAG и пары. генерация в процессе создания кода. Верификационное тестирование кода и новые методы взаимодействия с пользователем IDE в рамках больших моделей привнесли новые возможности и проблемы в разработку языков программирования. Проект языка программирования MoonBit совпал с выпуском ChatGPT, что дало нам возможность подумать о том, как разработать новый язык программирования для искусственного интеллекта, чтобы добиться максимального результата.
иупоминалось ранееизтакой жеродился всейчас Годизновыйязык программирования Mojo По сравнению с Мунбитом Есть различия в позиционировании.
В мае 2023 года родился Mojo, известный как [новый язык программирования для всех разработчиков ИИ]. Его автор — инициатор LLVM Крис Латтнер. Когда Крис основал «Модульный ИИ», он понял, что фрагментация экосистемы инфраструктуры ИИ и сложное развертывание стеков технологий ограничивают развитие ИИ. Поэтому он считал, что необходим новый язык, чтобы преодолеть разрыв между исследованиями и исследованиями. производство. Исходя из этого, Моджо выбрал экосистему Python, которая занимает доминирующее положение в области ИИ, и постепенно закрепился в мире ИИ за счет интерфейса с расширенным набором синтаксиса Python, напрямую вызывая библиотеки Python и широко поглощая многие современные языки программирования. функции.
Mojo путем повторного использования Python, приоритет отдается вызову Python библиотека, позволяющая разработчикам воспользоваться большим и всеобъемлющим Python экосистема без необходимости строить ее с нуля, существуют Python Что касается сравнения скорости, Mojo Также реализовано 35000 Двойное ускорение производительности.
Mojo автор Chris Однажды он предложил: «Улучшение искусственного интеллекта изприложениесистеманельзя полагаться исключительно наодиндобрыйи Специальная координация процессораизязык-ускоритель,наснуждатьсяодин Дверь может полностью реагировать навернои можетдля AI Язык модельно-ускоренного программирования. «В лучшем развитии AI В этом направлении модели Mojo Его можно использовать как типовую репрезентативную работу.
Однако с ростом спроса на вычислительную мощность, высокими затратами на программное обеспечение, оборудование и обучение, разработка AI Модель в конечном итоге будет опираться на институты с достаточным финансированием исследований и сильными потребностями в научных исследованиях. Чтобы реализовать это в реальных промышленных сценариях, нам нужно использовать AI Большие модели помогают разработчикам создавать более надежный и точный код, интегрируя традиционные IDE Умный и AI Интеллект, создание нового языка программирования, который в настоящее время является потенциальным направлением и новым рынком голубого океана.
для AI Дизайнизязык программированияиинструментцепь
MoonBit делатьдляодининдивидуальный AI Совершенно новая платформа разработки в эту эпоху. С самого начала дизайн верхнего уровня учитывает, как интегрировать традиционные IDE Умный ибольшой Модель Интеллектуальная интеграциясуществоватьодинрост。Используйте Традицию IDE Интеллектуальная коррекция интеллекта больших моделей, MoonBit Осуществленная интеллектуальная генерация кода с корректировками и исправлениями посредством локальной и глобальной передискретизации.。
Плоский дизайн, адаптированный к архитектуре Transformer.
MoonBit особенно подчеркивает четкое различие между определениями верхнего уровня и локальными определениями и требует обязательных подписей типов в определениях верхнего уровня. MoonBit также использует структурную реализацию интерфейса, в которой тип реализует интерфейс путем реализации его методов, что устраняет необходимость в дополнительных вложенных блоках кода. Существующие большие модели в основном основаны на авторегрессионной архитектуре Transformer. Это означает, что по мере увеличения контекстного окна сложность генерации одного токена увеличивается на n². Другими словами, вывод на больших моделях будет становиться все медленнее и медленнее. Язык программирования без вложенности имеет лучшую читаемость, а также может быть совместим с KV-кешем на всех уровнях (RAG, коррекция декодера, возврат), обеспечивая более высокую скорость вывода.
Например: на рисунке 1a В примере, показанном в из, программист относится к типу существующегодля Llama Реализация функций Agent метод в думать. они находят тип Llama недостающая функция LLM определено в generation метод. Поскольку они находятся во вложенном блоке кода, им нужно вернуться на верхний уровень, чтобы ввести текст для Llama Реализация функций Магистр права. Однако в контексте больших языковых моделей (LLM) изменение подсказок перед несколькими функциями может привести к корреляции. KV Инвалидация сегмента кэша, который на схеме выделен красным. После такой модификации все эти функции должны быть переоценены, что не только приводит к пустой трате вычислительных ресурсов, но, что более важно, увеличивает время задержки вывода.
Напротив, как показано на рисунке 1b, MoonBit позволяет программистам и моделям больших языков (LLM) разрабатывать свои программы линейно, без частых переходов вперед и назад. В структурированных интерфейсах функции, реализующие интерфейс, не ограничиваются конкретными блоками кода. Это позволяет практически линейно генерировать интерфейсы и их соответствующие реализации, эффективно сводя к минимуму промахи в кэше KV.
Рисунок 1
Быстрое семантическое завершение в реальном времени
Локальная передискретизация AI Генерируйте код для корректировки в реальном времени, чтобы гарантировать, что код соответствует грамматическим спецификациям, а глобальная передискретизация дополнительно проверяет семантическую корректность кода. Этот подход основан на глубоких знаниях предметной области и обеспечивает более надежную и точную генерацию кода, уменьшая необходимость последующей отладки и исправления ошибок. Мун Бит Команда также специально разработала систему на основе token Инструмент семантического анализа в реальном времени, обеспечивающий более точный вывод больших моделей.
и Традицияметод Разное, MoonBit изсэмплерв то же время собирает и использует информацию из локального и глобального контекста и тесно сотрудничает с парсерами и статическими анализаторами. Когда модель большого языка (LLM) генерирует новые token , он использует обратную связь в реальном времени от парсеров и статических анализаторов, чтобы гарантировать, что каждый сгенерированный token Это не только синтаксически правильно, но и не содержит явных ошибок типа. Традиционные методы лишены такого взаимодействия и выводят декодированный код напрямую. токены, что часто приводит к неправильной генерации программ.
Результаты экспериментов показывают, что MoonBit Пробоотборник существующего компилирования достиг значительного улучшения производительности всего за 3%. Для задач, связанных с подкреплением сигнала, мы заметили, что средняя задержка на подкрепление сигнала составляла ок. 0.86 Второй. Однако,Обычно наблюдается приезжать,Каждый тип подкрепления сигнала обычно вызывает только один Второсортный, потому что эта модель обычно адаптируется и учится на основе контекста после подкрепления.
Слияние традиционного интеллекта IDE и интеллекта больших моделей.
Смешение традиций IDE Умный ибольшой Модель Умный из MoonBit, существующий языковой дизайн, также учитывает интеллектуальную интеграцию модели проживания.。MoonBit Концепция дизайна подчеркивает ясность и простоту. Такая конструкция не только снижает воздействие больших моделей. MoonBit Сложность понимания также упрощает нагрузку в процессе изучения языка, оперативного проектирования и доводки обучения. Мун Бит Эта функция способствует созданию эффективных наборов обучающих данных, тем самым повышая эффективность обучения и конечную производительность больших моделей.
Кроме того, Мун Бит через структурированные интерфейсы и систему типов и явность,Позволяет большой модели более точно идентифицировать код из шаблонов и структур.,Это приводит к более точному и эффективному коду. Эта ясность не только помогает улучшить качество генерации кода.,Это также обеспечивает удобство последующего обслуживания и расширения кода.
существовать MoonBit Китайский, традиционный IDE Подсказки по встраиванию и автодополнение кода будут улучшены с помощью приложения «Приезжать», которое можно сочетать с большими возможностями прогнозирования «Модельиз» и «Развивать», чтобы предоставлять предложения по генерации кода «на лету». Это умное сочетание позволяет максимально эффективно использовать Традицию. IDE Мощные функции AI Динамическое обучение и адаптивные возможности создают двустороннюю взаимодополняющую среду разработки.
Со временем мы можем предвидеть, что MoonBit Языковой дизайн, отличающийся ясностью и простотой, будет способствовать дальнейшему развитию AI существует область программирования из приложений, особенно дасуществовать автоматическое кодирование, проверку кода и сопровождение программ и т. д. Мун Бит Постоянные инновации команды в области интеллектуального синтеза больших моделей указывают на то, что инструменты программирования будут продолжать развиваться в будущем, чтобы лучше адаптироваться к потребностям эпохи искусственного интеллекта.
Улучшенный статический анализ, тестовая проверка
существуют В процессе написания кода из,Статический анализ играет решающую роль. Он может обнаружить потенциальные ошибки до запуска кода.,Тем самым улучшая качество кода и удобство сопровождения. Мун Бит Предоставляет технологию глобального статического анализа в режиме реального времени для создания правильного и компилируемого кода, что значительно повышает надежность кода.
Давайте проиллюстрируем это конкретным примером: предположим, что при написании кода мы сталкиваемся с переменной приезжать. p и хотите завершить его свойства. Когда для завершения кода используется большая модель, она может предоставлять несколько вариантов, например: х,у,ко. Хотя каждый отдельный вариант может быть грамматически правильным, не все дополнения являются правильными по типу в текущем контексте. Мун Бит Благодаря технологии статического анализа в реальном времени мы можем точно идентифицировать p да point напечатай и узнай point В типе есть имя атрибута для. кордкс. Поэтому Мун Бит Умение делать разумные выводы на основе co Начало завершения кода корректирует выбор.
Этот метод глобальной повторной выборки позволяет MoonBit Он может не только генерировать грамматически правильный код, но также обеспечивать точность типов, создавая код, который можно использовать и который является более надежным. Это по сравнению с Copilot Варианты завершения, предоставляемые непосредственно MoonBit Предоставленный код гораздо надежнее. Благодаря такой технологии MoonBit Это не только повышает эффективность разработки, но и увеличивает вероятность успешного выполнения существующего кода.
Комплексная платформа: идеальная среда разработки для агентов ИИ
AI Agent(AI Intelligent Agent) — разумная сущность, способная воспринимать окружающую среду, принимать решения и совершать действия. Искусственный интеллект на основе большой языковой модели (LLM) из Возможности агента расширены, что позволяет ему автоматически решать множество распространенных проблем. отличается от традиционного AI,AI Уникальность интеллектуального агента состоит в том, что он обладает способностью постепенно достигать поставленной цели посредством самостоятельного мышления и вызовов. Однако развитие AI Процесс в агенте сталкивается с проблемами: процесс вызова различных ресурсов требует большого количества связующего кода, обрабатывающего логику взаимодействия.
MoonBit Язык Moon Rabbit, как язык суперклея, обеспечивает идеальную среду для развития. AI агент. В отличие от традиционных языков программирования, MoonBit Yuetu Language с самого начала предоставил полный набор универсальных решений для разработки, отладки и развертывания. Мун Бит Он не только обеспечивает общий дизайн языка программирования, но также охватывает различные индивидуальные аспекты, такие как компилирование, система сборки, интегрированная среда разработки (IDE), отладчик, инструмент развертывания. Этот индивидуальный комплексный дизайн позволяет MoonBit достичь высокой степени вертикальной интеграции и может в то же времясуществовать Облачное и периферийное выполнение, лучшее взаимодействие и взаимодействие различных ресурсов, обеспечивая тем самым пользователям максимальную эффективность и производительность. Это делает MoonBit Очень подходит для разработки и использования различных ресурсов для эффективного взаимодействия. AI агент.
Подробнее,Благодаря MoonBit поддерживается визуализация в реальном времени.,в то же времякомпилировать Чрезвычайно быстро,Позволяет пользователям видеть влияние изменений кода на приложения (игры) в режиме реального времени. Здесь показано на видео,Вы можете изменить код в реальном времени, чтобы настроить свою игру Mario в реальном времени. существует среда программирования реального времени,Вы можете гибко регулировать высоту прыжка в играх Марио, создавать несколько персонажей Марио в реальном времени и настраивать логику завершения игры.,Это обеспечивает широкие возможности настройки игрового процесса.
Итоги MoonBit за 2023 год и прогноз на 2024 год
Прогресс в основной функциональности
существоватьпрошлоеодин Годвнутри,Язык MoonBit программированиясуществовать добился значительного прогресса в своей основной функциональности.,В частности, он воплощает в себе следующие аспекты:
1. Языковой аспект
С точки зрения языка, от 0 до 1, он почти реализовал большинство функций современных языков, включая поддержку более сложных дженериков, сопоставления с образцом, алгебраических типов данных и функций высшего порядка, позволяющих пользователям настраивать признаки и т. д.
сохранение дженериков и функций высшего порядка
MoonBit Добавлена поддержка обобщенных функций и функций высшего порядка. Полные примеры см. playground из 012_avl_tree.mbt。
Грамматически,через конструктор типовиз [] для определения дженериков, таких как определение AVL Дерево:
enum T[U] {
Empty
Node (T[U], U, T[U], Int)
}
Затем, чтобы работать с этим универсальным типом, также необходимо добавить соответствующую функцию [] до конца функции имени, например:
fn height[U](self: T[U]) -> Int {
match self {
Empty => 0
Node(_, _, _, h) => h
}
}
Мы можем использовать функции более высокого порядка, такие как:
fn add(self: T[U], x: U, compare: (U, U) -> Int) -> T[U] {
match self {
Empty => Node(Empty, x, Empty, 1)
Node(l, v, r, _) as t => {
let c = compare(x, v)
if c == 0 {
t
} else if c < 0 {
bal(l.add(x), v, r)
} else {
bal(l, v, r.add(x))
}
}
}
}
Если вам нужно использовать общий тип прибытия Признаки, такие как функции высшего порядка Сравните, нужно поставить двоеточие а Также конкретное имя интерфейса помещается после общего типа «приехать». Например, мы хотим использовать тип «приехать из». Сравнение можно записать так:
fn add[U: Compare](self: T[U], x: U) -> T[U] {
match self {
Node(l, v, r, _) as t => {
let c = x.compare(v)
..
}
Если функция требует более 1 индивидуальный Черты также могут быть связаны знаком плюс, как в следующем примере: [U:Compare+Debug]:
fn remove[U:Compare+Debug](self: T[U], x: U) -> T[U] {
..
}
Разрешить пользователям настраивать характеристики
MoonBit Разрешить пользователям настраивать характеристики,проходить trait Ключевые слова для определения пользовательских интерфейсов, например:
trait Number {
op_add(Self, Self) -> Self
op_sub(Self, Self) -> Self
op_mul(Self, Self) -> Self
op_div(Self, Self) -> Self
op_neg(Self) -> Self
}
fn f[X: Number](x: X, y: X) -> X {
x * x + (- y / x - y)
}
fn init {
debug(f(1, 2))
debug(f(1.0, 2.0))
}
Приведенный выше фрагмент кода определяет индивидуального пользователя, называемого Number из черта, которую можно использовать для представления Осуществленной арифметической операции из типа. для любого типа X , если бы только X Осуществленный Number Укажите индивидуальные арифметические операции, функции f можетсуществовать X Иди на работу. Пользователи могут манипулировать целыми числами, числами с плавающей запятой, также другие пользовательские типы арифметических вычислений, такие как векторы и матрицы, вызов f 。
Поддержка сопоставления шаблонов
Поддержка MoonBit имеет мощные возможности сопоставления с образцом, включая сопоставление массивов с подстановочными знаками и т. д.:
fn init {
let a : Array[Int] = [1, 2, 3, 4]
match a {
[ hd, .. ] => debug(hd) // 1
[ ] => println("empty")
}
match a {
[ .., tail ] => debug(tail) // 4
[ ] => println("empty")
}
let b: Option[Array[Option[Int]]] = Some([ Some(7), None ])
match b {
Some([ Some(x), .. ] as arr) => {
debug(x) // 7
debug(arr[1]) // None
}
_ => println("otherwise")
}
Поддержка алгебраических типов данных
enum Result[T, E] {
Ok(T)
Err(E)
}
fn get_ok[T, E](self: Result[T, E]) -> T {
match self {
Ok(x) => x
Err(_) => abort("unhandled Err")
}
}
2. Инструменты
Система сборки: проверка луны, ускорение выполнения сборки луны.
MoonBit существование было полностью учтено с самого начала проектирования языка IDE、Система сборки、языковой дизайниз Сотрудничество,Реализуйте проверку типов, вывод, высокую степень распараллеливания и инкрементации.
При создании нескольких пакетов MoonBit Система сборки использует эффективный метод планирования. Сначала он анализирует и сортирует каждую задачу и определяет зависимости. Тогда система будет выполнять задачи параллельно, в полной мере используя преимущества многоядерных процессоров и параллельных вычислений, так что несколько пакетов могут обрабатываться параллельно. то же времяруководитькомпилировать。
существоватьэтотиндивидуальныйв процессе,В системе сборки MoonBit также применяется технология инкрементальной компиляции.,Он обнаруживает изменения кода,Только заново изменена часть скомпилировать,Вместо того, чтобы обновлять весь пакет. Эта пошаговая стратегия может значительно сократить ненужное дублирование работы.,Повысить эффективность компиляции.
По скорости компиляции также видно,что MoonBit компилировать 626 индивидуальный Сумка(package)Просто нужно 1,06 с по сравнению с Go Язык быстрее 2 раз по сравнению с Rust Почти близко 9 раз.
Система отладки изпод поддержки: MoonBit Отладчик (отладчик)
MoonBit существования сегодня запустил функцию отладчика,По сравнению с другими языками, этот да обычно имеет функцию из только на зрелой стадии. в настоящий момент,Эта функция былаподдерживатьСопоставление исходного кода, установка точек останова на основе исходного кода, выходная исходная картаждать,Отладка исходного кода в существующем браузере. Запуск этой функции не только снижает нагрузку на отладку кода для расширения существования.,Это также значительно улучшает беглость отладки.
Поддержка многоплатформенного гибкого переключения цепочки инструментов:
MoonBit В настоящее времяподдерживатьмногоиндивидуальныйинструмент Цепная платформаизбесшовныйвзаимодействие,сейчас Год,Общий Осуществоленный дом Intel Чип из Mac Загрузка Toolchain, включая поддержку Apple Silicon MacOS、Intel MacOS、x86 Ubuntu 20.04 а также Windows платформа. Это означает MoonBit Совместимость и переносимость между различными операционными системами и оборудованием. Мун Бит Способный адаптироваться к различным операционным системам и типам процессоров, он предоставляет пользователям многоплатформенную среду программирования.
Адрес ссылки: https://www.moonbitlang.cn/download/
Управление пакетами
MoonBit Стать учеником для 0 приезжать 1 изязык программирования уделяет особое внимание своему экологическому построению. Один из ключей к созданию эффективного и многофункционального индивидуального пакетамисистема。существовать На этом основании,Изначально мы создали платформу,Улучшить скорость получения пакетов и повысить эффективность,Таким образом, для развития обеспечивает эффективную и комфортную рабочую среду.
также,Мы уделяем особое внимание управлению и ведению документации. для облегчает понимание и использование документа,Мы предлагаем широкий выбор инструментов,Помогать создавать высококачественные документы. Эти рекомендации по инструментам охватывают больше, чем просто документацию по правилам написания.,Также включает в себя способы эффективной организации и представления информации.,Чтобы гарантировать, что каждый пакет документов будет понятен и в нем будет легко ориентироваться.
3. Обеспечить поддержку IDE.
MoonBit предусмотреть IDE изподдержка не только содержит современные IDE имеет все функции и имеет одну уникальную инновационную особенность: он может существовать в облаке. / Краевая сторона проходит полностью, что существует в большинстве языков в настоящее время. CloudIDE средневероятнодаголова Второсортный.идругой CloudIDE Разное, MoonBit Нет необходимости полагаться на контейнеры。
Сегодня большинство языков программированияиз IDE Дизайн операционной системы для настольных компьютеров не может хорошо адаптироваться к потребностям облачной среды и периферийных терминалов. Мун Бит При использовании высокопараллельной архитектуры и разделения пар, компилируемых из собственной поддержки, это ограничение нарушается, что делает CloudIDE Можно запускать прямо с края. Его технология быстрого семантического анализа может обрабатывать большое количество баз кода, а также может быть выполнена за сотни миллисекунд в более крупных базах кода. IDE ответ.
MoonBit Индивидуальная платформа. Основные функции высоко ценятся. IDE из Развитие. Это то, что мы узнали раньше ReScript Уроки извлечены. Многиеязык программирования существовать Пройдет немало времени, прежде чем кто-то из сообщества поможет разработать соответствующие из IDE, что приводит к IDE Языковой дизайн не соответствует, что приводит к большому количеству ненужной работы. для Чтобы избежать этой ситуации, MoonBit Платформа сочетает в себе язык и IDE Системы проектирования и строительства интегрированы для обеспечения IDE из Эффективность.
Экологический прогресс сообщества
существовать Скоро пройдетиз 2023 год, Мун Бит Moon Rabbit Language существует, получил положительные отзывы от отечественных и зарубежных сообществ. существуют Отечественные, Лю Жуцзя (бывший тренер сборной на Международной олимпиаде по информатике) MoonBit Получив высокую оценку, он прокомментировал: «MoonBit да я увидел первого серьезного человека, скоординированного и сбалансированного по многим элементам языка с самого начала: грамматическая элегантность, практичность, скорость компиляции, размер кода, экология серверной части. AI извзаимодействиеждать.Плюс сам Хонбосуществовать PL Что касается достижений, опыта и большого энтузиазма, я увлечен MoonBit У меня большие ожидания. »в то же время, он также провел несколько недель, используя MoonBit Осуществленный эмулятор Nintendo, позволяющий играть в десятки игр.
MoonBit Команда в 2023 Год 8.18 деньсуществовать Twitter После своего зарубежного дебюта он привлек внимание международного технологического сообщества. на, быстро сел HackerNews изToutiao (HackerNews: одно из самых влиятельных IT-сообществ в Кремниевой долине). Крупные энтузиасты технологий со всего мира оставляли комментарии и комментарии в сообществе. Некоторые пользователи просто невероятны от скорости, опробовав эту технологию. Мун Бит Упрощает программирование за счет автоматического управления памятью. Rust дифференцировать. «Я уже могу представить следующую индивидуальную сотню. Секундное видео» , "На такой скорости это может занять всего 500 Миллисекунды (можно полную компилировать)".
Всемирно известный Scala и эксперты по функциональному программированию John A De Goes существоватьпроверять MoonBit Разместил: MoonBit Выглядит идеально для существования @GolemCloud(WasmCon 2023 из Золотой спонсор, Ведущий WebAssembly Paas платформу) и выразил заинтересованность в ее опробовании. Роб Palmer(JavaScript Сопредседатель комитета по стандартам) также существуют Twitter высокий рейтинг MoonBit。
Кроме того, Мун Бит существуют, активно исследуются в построении сообществ. Мун Бит на официальном сайте существует форум, этот индивидуальный форум для MoonBit Пользователям предоставляется место для обмена опытом, обратной связи и решения проблем. На данный момент количество просмотров страниц на форуме достигло приезжать. 70000+ Второсортный.
в то же время MoonBit Также существует курс [3] «Мысли о современном программировании». Этот курс в основном обучает программированию и практическому приложению. Курс знакомит с различными парадигмами программирования, включая функциональное программирование, императивное программирование и объектно-ориентированное программирование. Этот курс подходит для широкой аудитории. , от новичков до опытных программистов. На данный момент за этот курс накопилось 1,5 Десять. тысячи просмотров.
Планы на будущее и перспективы
2024 год, Мун Бит существоватьязык Сфера программирования останется относительно стабильной и ей будет уделяться больше внимания. Чтобы улучшить взаимодействие с пользователем, в сам язык может быть внесено относительно немного изменений. Мун Бит В основном сосредоточится на существовании Управление пакетами、AI Техническая доработка и другие аспекты доработок, и ее основная роль – существование. ИИ, облачные вычисления также Развитие сообществаизинтеграция.
MoonBit из Цельдаулучшатьязык доступность программирования. В частности, Мун Бит. В дальнейшем развитие будет сосредоточено в основном на следующих трех направлениях:
существовать Искусственный Умный изновыйв эпоху,MoonBit Надеюсь лучше интегрировать текущие тенденции. Традиционный язык программирования Вседасуществовать Pre-AI из Годпоколение развития, в то время из AI Не такой совершенный и зрелый. и MoonBit родился в AI Восстание эпохи, MoonBit Вы можете в полной мере использовать экосистему с открытым исходным кодом в конкретных областях: LLM Чтобы помочь пользователям в создании эффективного кода.
Что касается ИИ, наши усилия в основном сосредоточены на двух областях:
MoonBit Видение из — это нечто большее, чем просто еще один язык программирования; он направлен на создание индивидуальной комплексной экосистемы развития. Мы признаем для: MoonBit Не только индивидуальный язык, но и индивидуальный подход к решению TerminalTTerminal, мы должны воспользоваться преимуществами новейших технологий. AI Технология, предоставляющая пользователям комплексные услуги.
Ожидается, что в ближайшем будущем MoonBit буду и AI Глубокая интеграция технологий еще больше расширяет сферу применения облачных и периферийных вычислений MoonBit. Сможет использовать возможности крупномасштабного прогнозирования и самообучения, чтобы революционизировать рабочие процессы программирования. Давайте вместе ждать этих перемен!
Справочные ссылки:
【1】https://github.blog/2023-06-27-the-economic-impact-of-the-ai-powered-developer-lifecycle-and-lessons-from-github-copilot/
【2】https://karpathy.medium.com/software-2-0-a64152b37c35
【3】https://space.bilibili.com/1453436642?spm_id_from=333.1007.0.0