Как стать автором
Обновить
71
Карма
0
Рейтинг
Роман Поборчий @p0b0rchy

Пользователь

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

Спортивное программирование, признаться, прошло мимо меня. Надо посмотреть, не умеет ли Github Copilot уже нормально решать эти задачи. В смысле, может быть, и делать уже ничего не надо.

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

Я предпочту такой словарь, который я открываю, и там сразу на первом месте то слово, которое я ищу. Если у меня будет такой словарь, я постепенно забуду алфавит, за ненадобностью.

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

У вас есть данные по существу вопроса, ура! Можете их рассказать, пожалуйста?

Например: «Я в случае удаления этой галочки откажусь от обновления, потому что использую алфавитную сортировку ...» и дальше какой-нибудь сценарий про то, как вы её используете.

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

Я не застал момента, когда её не было.

Но сейчас очень хотел бы её снести, потому и спрашиваю: вдруг кому-то для дела нужна?

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

Ответ довольно общий получается. Грубо говоря, там две стороны.

Есть сама моделька, она маленькая (меньше 1Mb в памяти), и за скоростью появления комплишенов мы следим. Сейчас уже не так трудно понять, когда попап появился, и посчитать, сколько времени прошло с момента события, которое его тригеррнуло. Так что скорость инференса понятна, и мы её жёстко контролируем (готовы при этом резать качество).

А где-то в фоне в это время считаются факторы по вашему проекту, чтобы потом их использовал комплишен. Скорость и потребление ресурсов у этого процесса может зависеть от языка, OS, системы контроля версий и состава проекта. Об этом, может, при случае стоит отдельный пост написать, опросив всех, кто руку приложил.

Правда, бывало такое, что обсчёт фичей тормозил. Например, если много локальных изменений, то взаимодействие с VCS можно подтормаживать. Статистику по времени обсчёта фичей отдельно трекаем, ищем аномалии.

Сейчас-то нормально всё?

Code Completion. Часть 1: сценарии и требования

Indeed. Хорошо бы оно ещё где-то сразу находилось при попытке запостить картинку. Типа, укажите УРЛ или загрузите картинку на habrastorage.

Впрочем, в чужом глазу соринку всегда легко искать, так что особенно наезжать на интерфейс Хабра не чувствую моральных сил.

Code Completion. Часть 1: сценарии и требования

Есть такая возможность! Можно задать паттерны, по которым исключать из авто-импорта и подсказок. Находится, разумеется, в настройках авто-импорта.

Рррр, почему нельзя локальную картинку загрузить в комментарий!

В общем, открываем Settings, и там Editor > General > Auto-Import

Code Completion. Часть 1: сценарии и требования

Ох, вот сейчас отвечу в стиле, который сам ненавижу, называется «у меня всё работает».

Если совсем по пунктам, то галочка с машиннообученными подсказками в CLion есть только в EAP, в стабильных версиях ещё нет. Но если даже её включить, скорость вряд ли вырастет, скорее всего, проблема в чём-то другом.

По нашим замерам, подсказки в CLion не самые быстрые среди всех наших IDE, но до такого ужаса, который вы описываете, доходить никак не должны. Надо расследовать в индивидуальном порядке.

Постараюсь целенаправленно выловить людей, которые занимаются CLion, и вернусь.

Code Completion. Часть 1: сценарии и требования

Уж как минимум, мог бы поставить Baz на первое место, да.

Как мы обучили нейронную сеть классифицировать шурупы

Этот код же, как я предполагаю, должен не просто на картинках работать, а на каком-то роботе-огороднике. Физически производить и внедрять этого робота запросто может быть нерентабельно. Пока его из Китая через таможню провезёшь, надо пять урожаев снять, чтобы окупить. =) Я утрирую, но смысл моих сомнений именно такой.

Как мы обучили нейронную сеть классифицировать шурупы

Спасибо, про tip совсем косяк. Thread coverage сейчас ещё подумаем, как адекватно выразить.

Как мы обучили нейронную сеть классифицировать шурупы

Уже сейчас можно поиском по фотографии в Гугле или Яндексе определить многие растения. Кажется, что научить робота заниматься прополкой в принципе нетрудно. Не факт, что это прямо сейчас рентабельно, но сделать точно можно.

Как мы обучили нейронную сеть классифицировать шурупы

Я видел доклад на похожую тему, Иван Дрокин его делал на SmartData (мир праху её) в 2017 году.

Там был конвейер и роботы, которые должны брать детали, сверлить в них дырки и класть обратно. Там кроме теней и бликов (да, это жизненно важно), использовали ещё две техники.

Роботов-то мало, у каждого камера, можно снять с инеё индивидуальные шумы и добавить в обуечние, помогает.

И ещё стилевой перенос! Можно брать рендер и с него переносить стиль на реальную картинку на камере (вроде бы именно в эту сторону), и типа огненно работает. Причём визуально картинки до и после переноса не отличаются. =)

Используем данные на практике

А расскажите ещё, какой смысл вы вкладываете в понятие высокоуровневости фреймворка?

Используем данные на практике

Прочёл ветку комментариев, на которую вы ссылаетесь. Мне кажется, проблемы нет.

Регрессия везде есть «из коробки», работает быстро, не требует дорогого оборудования. В условиях отсутствия вычислительных мощностей лет 40 назад, вероятно, надо было задумываться, чтобы лишнее ручками не считать. Сейчас проще одну кнопку нажать и посмотреть, насколько разумные результаты получились. Если неразумные, то тогда уже можно разбираться. Такой порядок часто дешевле.

Используем данные на практике

С чатботами всё непросто (вы, вероятно, это знаете). Практические задачи обычно фокусируются на узкой предметной области: техподдержка, вопросы про симптомы (на Highload был доклад про Doc+ на эту тему), такое. Не сказать, что есть общие принципы развития. Основной вопрос, который я вижу у людей на практике: где взять размеченный корпус текстов для данной предметной области (возможно, я упрощаю, поправьте, если так).

У нас пока есть планы на три кейса про обработку языков. Они могут ещё не все реализоваться (ведём переговоры), поэтому без имён и конкретики пока, но примерно так:
1) Если нет размеченного корпуса в какой-то области, как его намайнить или нагенерить
2) Как писать обработчик для языка, которого ты не знаешь
3) Как выделять в большом тексте определённые смысловые элементы (например, шутки)

Я так хотел попасть в программный комитет конференции, и вот я здесь, и что мы будем делать?

Статьи не было. Это упущение, да.

Я так хотел попасть в программный комитет конференции, и вот я здесь, и что мы будем делать?

Спасибо! Я долго думал, что ответить, а потом решил промолчать в надежде, что докладчики сами расскажут правду.

Я так хотел попасть в программный комитет конференции, и вот я здесь, и что мы будем делать?

Дадада! Все мы знаем как минимум одного докладчика, который никогда не подаёт меньше семи!

Я так хотел попасть в программный комитет конференции, и вот я здесь, и что мы будем делать?

Я имел в виду, что обтекаемый отказ не стимулирует спикера задавать уточняющие вопросы. Если он всё-таки упорный, то дальше ветки алгоритма сходятся.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность