Вбудований офлайн ШІ в продуктах JetBrains: огляд
Привіт, з вами Артур! І я приніс новини вам.
JetBrains викатили Full Line Code Completion. Ви можете спитати «І що з цього?». А справа в тому, що тепер навіть у глухомі лісі ви можете використовувати ШІ-допомогу і бути мегапродуктивним. Copilot, що з лицем? :D
А також, як стверджує JetBrains, ця штука нікуди не надсилає дані, що повністю закриває всі потреби з безпекою даних. Ну це топовий топ, IMO!
Перший ШІ code completion, який працює локально та не надсилає дані через інтернет!
Але спочатку невеличке демо:
А тепер погнали в деталі.
Як і у всіх інших код-комплішен тулзах, код-комплішн від JetBrains також базується на спеціалізованих мовних моделях, які навчали спеціально для різних мов і фреймворків. Моделі працюють локально без надсилання коду через інтернет.
Зараз це оновлення доступно для Java, Kotlin, Python, JavaScript, TypeScript, CSS, PHP, Go та Ruby у відповідних IDE IntelliJ IDEA Ultimate, PyCharm Professional, WebStorm, PhpStorm, GoLand та RubyMin. Але обіцяють, що скоро дадуть і для C#, Rust, and C++.
Також, як завжди, вам можуть дати тридцятиденну тріалку, щоб підсадити вас на наркотики плюшки.
Як працює code completion
Допоможе ця штука трошки зекономити часу, а також дасть вам захист вашого кодяшнику порівняно з іншими clod-based рішеннями. Як це працює 👇
Він працює локально та доступний офлайн. Це означає, що ви можете скористатися цією функцією, навіть якщо ви не підключені до інтернету. Він не надсилає дані з вашого комп’ютера через інтернет. Мовні моделі, які забезпечують code completion, працюють локально, що чудово з двох причин. По-перше, ваш код залишається в безпеці, оскільки він ніколи не покидає вашу машину. По-друге, немає додаткових витрат, пов’язаних із cloud. Його глибоко інтегровано в IDE JetBrains. Усі підказки будуть відповідним чином відформатовані, а IDE перевірить наявність збалансованих дужок і лапок. Крім того, вони використовують можливості статичного аналізу та розуміння коду, щоб відфільтрувати неправильні пропозиції. Також підтримується функція автоматичного імпорту.
Full line code completion проти AI Assistant
У JetBrains уже був презентований їхній AI Assistant, але між ними є різниця. JetBrains AI Assistant є окремим продуктом. Його набір функцій не обмежується доповненням коду: він також пропонує вам багато інших речей, зокрема контекстно-залежний розумний чат і можливість генерувати тести або писати документацію.
Що тут казати, ось є картинка, яке краще розповість про все:
А що під капотом
Генерація підказки мовної моделі виконується на вашій локальній машині. Щоб забезпечити найефективнішу генерацію, відповідь моделі виконується в окремому процесі, який оптимізований для архітектури вашої машини. Наприклад, якщо ви використовуєте архітектуру x86-64, модель працюватиме на ЦП, а якщо ви використовуєте архітектуру ARM64, модель використовуватиме потужність GPU.
Після створення відповіді виконується ряд кроків постобробки. Спочатку перевіряється, чи ця підказка є синтаксично та семантично правильною, а потім виконується інтелектуальна фільтрація, форматування, збалансування дужок та різні інші маніпуляції.
Насправді дуже класно, що вони обмежили тільки одним рядком комплішн коду. Бо той самий Copilot інколи пропонує таке, що аж боляче дивитись.
Також це рішення дозволило зменшити розмір моделі без істотного зниження якості пропозицій. У версії IDE JetBrains 2024.1 використовується мовна модель із 100 мільйонами параметрів з максимальним розміром контексту 1536 токенів, що становить приблизно 170 рядків коду.
Як ввімкнути фічу
Зайти у Settings | Editor | General | Code Completion</em, там буде Machine Learning-Assisted Completion.
Для вимкнення клікніть Enable Full Line suggestions. Або Settings | Plugins далі Installed і там вимкніть full line code completion.
Як на мене, це кайф!
Звісно, використовувати її чи ні, як завжди, залежить від вас. Вона поки не суперідеальна, але вже зараз може вам зекономити деякі хвилини робочого часу на рутинних задачах.
До речі, про більш детальний огляд на фічі GitHub Copilot я написав статтю. Там я також описав, чому такі код-комплішн тулзи можуть бути шкідливими та небезпечними для програмістів.
P.S. Ну і як завжди, якщо сподобалось та хочете отримувати свіжак, підписуйтесь на мій телеграм-бложик From A to QA, де я пишу про менеджмент, розробку та тестування, а також ютубчик From A to QA.
58 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів