# автодополнение

Published articles for автодополнение.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Code Completion. Часть 4: обучение модели

DevFeed: [Code Completion. Часть 4: обучение модели](<https://devfeed.tech/articles/code-completion-4-23939.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/582388/>)

Author: p0b0rchy (JetBrains)

Published: 2021-10-11T09:02:36Z

Content type: article

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [code-completion](<https://devfeed.tech/topics/code-completion.md>), [машинное обучение](<https://devfeed.tech/topics/tag-055aee430837.md>), [ide](<https://devfeed.tech/topics/ide.md>)

Tags: [catboost](<https://devfeed.tech/tags/catboost.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [ide](<https://devfeed.tech/tags/ide.md>), [metric-learning](<https://devfeed.tech/tags/metric-learning.md>), [ml](<https://devfeed.tech/tags/ml.md>), [tag-055aee430837](<https://devfeed.tech/tags/tag-055aee430837.md>), [tag-baed6d151ab4](<https://devfeed.tech/tags/tag-baed6d151ab4.md>)

### AI overview

This fourth article in a code-completion series describes problems encountered while training a machine-learning model. It explains anonymizing collected IDE data, investigating anomalous autocomplete usage through logs, and excluding users with alphabetical suggestion sorting from the training dataset and experiments.

### Source excerpt

Хотим поделиться специфическими проблемами, возникшими у нас при обучении модели, и решениями, которые мы для этих проблем придумали. В прошлый раз мы остановились на том, что из-за необходимости защищать код пользователей даже от себя самих нам необходимо анонимизировать все собранные данные. Вызову окна автодополнения сопоставляется набор параметров, каждый из которых -- либо число, либо перечислимый тип. А вот сам код, на котором пользователь вызвал окно, мы не сохраняем. Если при сборе данных мы допустим ошибку, нельзя будет просто заглянуть в код и все понять. Нам придется устраивать целое расследование без всякой гарантии успеха. Например

## Code Completion. Часть 3: где взять данные для обучения?

DevFeed: [Code Completion. Часть 3: где взять данные для обучения?](<https://devfeed.tech/articles/code-completion-3-23935.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/578650/>)

Author: p0b0rchy (JetBrains)

Published: 2021-09-20T10:27:02Z

Content type: article

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [code-completion](<https://devfeed.tech/topics/code-completion.md>), [машинное обучение](<https://devfeed.tech/topics/tag-055aee430837.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [data-protection](<https://devfeed.tech/tags/data-protection.md>), [dataset](<https://devfeed.tech/tags/dataset.md>), [ide](<https://devfeed.tech/tags/ide.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [tag-055aee430837](<https://devfeed.tech/tags/tag-055aee430837.md>), [tag-9bf5e01ce62e](<https://devfeed.tech/tags/tag-9bf5e01ce62e.md>), [tag-baed6d151ab4](<https://devfeed.tech/tags/tag-baed6d151ab4.md>)

### AI overview

This article explains how JetBrains approaches building training data for machine-learning-based code completion. It describes why user code cannot be collected and why datasets derived only from completed open-source repositories do not adequately represent real development scenarios.

### Source excerpt

В предыдущей статье цикла мы установили, что современной системе автодополнения нужно машинное обучение -- чтобы ранжировать варианты подсказок. Машине, как и человеку, для обучения нужны данные. Мы используем подход "обучение с учителем". Он предполагает, что мы показываем алгоритму примеры задач, для которых нам заранее известно правильное решение. Алгоритм извлекает из этих примеров закономерности и учится принимать правильные решения даже в тех ситуациях, которых он раньше не видел. Результат обучения критическим образом зависит от качества и объема этих примеров. И именно здесь у нас возникают трудности. С одной стороны, собирать базу на основе кода наших пользователей нельзя: результат вашего труда остается только у вас, на серверы JetBrains он не попадает. С другой стороны, из доступных репозиториев с открытым кодом полноценный датасет собрать не получается. Делая так, мы обучали бы алгоритм работать только с готовым (рабочим) кодом. Сегодня обсудим, как мы выкручиваемся из этой ситуации. Для начала давайте более подробно рассмотрим, почему не получается работать с готовыми репозиториями. А потому что они "готовые"

## Code Completion. Часть 2: зачем тут машинное обучение?

DevFeed: [Code Completion. Часть 2: зачем тут машинное обучение?](<https://devfeed.tech/articles/code-completion-2-23929.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/572864/>)

Author: p0b0rchy (JetBrains)

Published: 2021-08-17T09:45:16Z

Content type: tutorial

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [code-completion](<https://devfeed.tech/topics/code-completion.md>), [машинное обучение](<https://devfeed.tech/topics/tag-055aee430837.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [ide](<https://devfeed.tech/tags/ide.md>), [tag-055aee430837](<https://devfeed.tech/tags/tag-055aee430837.md>), [tag-baed6d151ab4](<https://devfeed.tech/tags/tag-baed6d151ab4.md>)

### AI overview

The second part of a series explains why machine learning is used in code completion. It examines conflicts among heuristic rules, including prefix and CamelCase matching, and discusses ranking suggestions by correctness and proximity to the edited code.

### Source excerpt

В первой части мы сформулировали, из каких компонентов состоит система автодополнения, обсудили способы ее использования и требования к качеству. Теперь давайте разберемся, зачем там нужно машинное обучение. Казалось бы, страшно выбрасывать работающий код и заменять его машиннообученным бинарником, который жрет память, может замедлить работу IDE, да еще не вдруг и отладишь его, если что-то пошло не так. В нашем случае "работающий код" -- это эвристики, жесткие правила. Они отлично работают, пока их не очень много и они не конфликтуют между собой. Давайте рассмотрим такие правила подробнее и разберемся, откуда берутся конфликты. Как на самом деле работают подсказки

## DataGrip 2021.2: Генерация источника на основе кода, поиск по истории изменений, управление списком автодополнения и др

DevFeed: [DataGrip 2021.2: Генерация источника на основе кода, поиск по истории изменений, управление списком автодополнения и др](<https://devfeed.tech/articles/datagrip-2021-2-23922.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/570048/>)

Author: moscas (JetBrains)

Published: 2021-07-28T08:16:27Z

Content type: release

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [ide](<https://devfeed.tech/topics/ide.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [files](<https://devfeed.tech/tags/files.md>), [generation](<https://devfeed.tech/tags/generation.md>), [ide](<https://devfeed.tech/tags/ide.md>), [intelij](<https://devfeed.tech/tags/intelij.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>), [tag-5335b6f99fba](<https://devfeed.tech/tags/tag-5335b6f99fba.md>), [tag-baed6d151ab4](<https://devfeed.tech/tags/tag-baed6d151ab4.md>), [tag-d189f87ebb8f](<https://devfeed.tech/tags/tag-d189f87ebb8f.md>)

### AI overview

This release article describes DataGrip 2021.2 features, including generating code-based data sources from regular data sources, creating objects in DDL data sources, diagram improvements, change-history search, source-code history, and control over autocomplete object scopes.

### Source excerpt

Привет! Рассказываем о том, что мы сделали в DataGrip за четыре месяца. Если вы пользуетесь другими IDE от JetBrains и работаете в них с базами данных, то этот пост для вас тоже. Что внутри?