
16 основных причин, по которым Github Copilot ломается
4 июня 2025 г.Таблица ссылок
Аннотация и 1. Введение
2. Методология и 2.1. Исследовательские вопросы
2.2. Сбор данных
2.3. Маркировка данных
2.4. Извлечение данных
2.5. Анализ данных
3. Результаты и интерпретация и 3.1. Тип проблем (RQ1)
3.2. Тип причин (RQ2)
3.3. Тип решений (RQ3)
4. Последствия
4.1. Последствия для пользователей Copilot
4.2. Последствия для команды Copilot
4.3. Последствия для исследователей
5. Угрозы достоверности
6. Связанная работа
6.1. Оценка качества кода, генерируемого Copilot
6.2. Влияние Копилота на практическое развитие и 6.3. Окончательное резюме
7. Выводы, доступность данных, подтверждения, заявление о вкладе и ссылки на кредит
3.2. Тип причин (RQ2)
3.2.1. Результаты
Как упомянуто в разделе 2.4.2, не у всех проблем есть соответствующие причины, которые могут быть извлечены. В результате мы определили в общей сложности 391 причины, которые были собраны из 28,9% от всех проблем, связанных с использованием моделей, и классифицировались на 16 типов, как представлено в таблице 2. Результат указывает на то, что наиболее частые причины являютсяКопилот внутренняя ошибка(19,4%) иОшибка сетевого соединения(13,6%), сВопрос о совместимости редактора/IDE(12,8%) иНеподдерживаемая платформа(8,2%) также обычно сообщаются. Пример, подсчет и доля каждого типа причины представлены в таблице 2. Стоит отметить, что определенные типы проблем потенциально могут быть причинами других проблем. Например, проблема совместимости редактора/IDE является типом проблемы совместимости. Тем не менее, это также причины, приводящие к другим типам проблем, таких как проблема установки и проблемы запуска.
• Внутренняя ошибка Copilot(CIE) относится к проблемам со стороны сервера Copilot, которые влияют на его использование. Они могут включать ошибки с моделью Codex и службами, предоставленными стороной сервера, которые не видны пользователям. Например, команда «Копилот» однажды сообщила, что «произошел отключение одной из наших моделей, что заставило других обрабатывать более высокую трафическую нагрузку», что, следовательно, приводит к временным вопросам (обсуждение № 14370).
• Ошибка сетевого соединения(NCE) относится к нарушениям в сетевой связи между пользовательской стороной и стороной сервера Copilot, что приводит к неспособности пользователей использовать службу генерации кода Copilot. Например, пользователь неоднократно сталкивался с проблемами с Copilot, не функционирующим должным образом, потому что его «сетевые настройки компании заблокировали соединение с Copilot» (обсуждение № 36152).
• Проблема совместимости редактора/IDE(EICI) относится к ситуациям, когда редакторы и IDES кода не совместим с копированием, что приводит к различным аномалиям при использовании Copilot. Например, пользователь «не смог установить расширение GitHub Copilot в Visual Studio 2022 Enterprise», потому что версия его IDE устарела, что привело к его несовместимости с Copilot (SO #71702171).
• Неподдерживаемая платформа(UP) относится к ситуациям, когда пользователи пытаются использовать Copilot на платформах разработки, в которых отсутствует официальная поддержка Copilot, что может привести к непредсказуемым проблемам. Например, команда Copilot утверждала, что «Код OSS и VSCODIUM» не поддерживался Copilot, который объясняет, почему некоторые пользователи не смогли установить Copilot в этих двух IDE (обсуждение № 8015).
• Неправильная конфигурация/настройка(ICS) относится к ситуациям, когда Copilot работает ненормально или предлагает неоптимальный пользовательский опыт из -за настроек, которые не настроены надлежащим образом. Например, пользователь обнаружил, что «файл setting.json отключил встроенные предложения», что привело к тому, что Copilot не предоставлял предложения кода в VSCODE (SO #76257401).
• Плохой опыт функциональности(PFE) относится к негативному опыту, которые сталкиваются с пользователями при кодировании с помощью Copilot, что приводит к тому, что они запрашивают улучшение к существующим функциям. Например, пользователь хотел, чтобы Copilot предоставлял предложения кода через ярлык, потому что «функция автоматического предложения является чем -то раздражающим» (обсуждение № 7172).
• Для привычки кодирования(FCH) относится к пожеланиям некоторых пользователей для Copilot, чтобы предложить новые функции и обеспечить совместимость с их предпочтительными платформами разработки для размещения их привычек кодирования. Например, пользователь спросил, «была ли вариант для изменения связывания клавиш для принятия предложений», потому что он привык «использовать привязку вкладки для открытия меню завершения» (обсуждение № 6919).
• Пользователь несанкционирован(UU) относится к ситуациям, когда некоторые пользователи не могут получить доступ к услугам Copilot, потому что им не хватает авторизации для использования Copilot. Например, пользователь обнаружил, что «Github Copilot не может подключиться к серверу», потому что он еще не был авторизован (обсуждение № 16795).
• Неправильная операция пользователя(IUO) относится к ситуациям, когда Copilot демонстрирует непреднамеренное поведение из -за пользовательских ошибок или надзора в процессе использования Copilot, такого как регистрация, вход и подписка. Например, пользователь последовательно получал подсказку в Visual Studio, в которой говорится, что «ваш опыт работы с копировами не полностью настроен, заполните свою настройку». Было обнаружено, что эта проблема возникла, потому что он «подписался на копило с другой учетной записью GitHub» (обсуждение № 19556).
• Проблема совместимости плагина(PCI) относится к ситуациям, когда Copilot не работает должным образом из-за несовместимости с другими плагинами. Например, «плохое взаимодействие с расширением между Copilot и Learnmarkdown» привело к тому, что некоторые пользователи не смогли принять предложения кода от Copilot (выпуск № 441).
• Преднамеренный дизайн копилота(IDC) относится к ситуациям, когда то, что некоторые пользователи могут воспринимать как аномалии копилота, предназначены для команды Copilot. Например, пользователь заметил, что «встроенные завершения Copilot» превосходят нормальные завершения ». Тем не менее, участник из команды Copilot доказал, что «это намеренно» и может быть отключен путем изменения определенных настройки (выпуск № 154).
• Неокрашенная функция(UF) относится к функциональным возможностям, которые пользователи считают Copilot уже иметь, но которые команда Copilot еще не предоставила. Например, пользователь не мог активировать Copilot за прокси в VSCODE, и член команды Copilot объяснил, что «в настоящее время расширение VSCODE Copilot не поддерживает прокси» (обсуждение № 11630).
• Для более высокой эффективности кодирования(FHCE) является причиной того, что некоторые пользователи желают новых функциональных возможностей в Copilot, чтобы повысить эффективность в задачах кодирования. Например, пользователь предположил, что Copilot может «добавить генератор картирования для классов», чтобы облегчить генерацию методов отображения между различными классами (обсуждение № 7870).
• Основанная версия для копирования(OCV) относится к устаревшей версии Copilot, которая больше не работает. Например, пользователь, столкнувшийся с проблемой, с Copilot, не работающим, и был проинформирован о том, что «ваше расширение Copilot устарело» (обсуждение № 17463).
• Ограничение лицензии(LR) относится к ситуациям, когда некоторые платформы для разработки не могут быть интегрированы с копилотом из -за ограничения, наложенного лицензией Copilot. Например, участник репозитория объяснил, что Copilot «не может использоваться в бесплатном или открытом программном обеспечении, таком как кодовый сервер» из-за ограничения лицензии (выпуск № 123).
• Проблема с телеметрией кода(CTI) является причиной того, что некоторые пользователи запрашивают новые функции, направленные на то, чтобы предотвратить экспозицию своего кода на копирование. Например, пользователь хотел «отключить копирование на рабочее пространство», чтобы он мог «использовать его для проектов с открытым исходным кодом, но не частные/рабочие проекты» (обсуждение № 47991).
3.2.2. Причины составления проблем
Таблица 3 иллюстрирует сопоставление проблем, связанных с копированием, к их причинам. Мы используем сокращения для представления каждого типа причины; Например, «CIE» представляет внутреннюю ошибку Copilot. Полные имена для всех типов причин представлены в примечании таблицы 3.
За одну третьОперационные вопросы(37,2%) имеют связанные причины. В частности, сбой аутентификации в первую очередь вызвана CIE, NCE и UU; Отказ функциональности в основном вызван CIE, ICS и PCI; Появление проблемы установки обычно происходит от EICI и UP; Проблема запуска обычно происходит от CIE и NCE; В то время как доступ к сбое в первую очередь объясняется NCE; и проблема контроля версий в основном вызвана CIE, EICI и UP.
ДляПроблема совместимости, причины идентифицируются в 9,5% случаев. Чтобы быть конкретным, проблема совместимости редактора/IDE в основном вызвана UP и ICS, в то время как проблема совместимости плагина объясняется ICS и IDC.
ДляЗапрос функции, четыре типа причин идентифицированы в 31,0% случаев, которые представляют собой FCH, PFE, FHCE и CTI. PFE и FCH являются основными причинами для пользователей для повышения запросов функций, в то время как запросы на интеграцию в основном приписываются FCH.
ДляПроблема с пользователем, причины идентифицируются в 19,0% случаев. Тем не менее, есть только несколько причин, выявленных для каждого типа пользовательского опыта, причем CIE определяется как основная причина плохой опыта аутентификации и плохую производительность.
ДляПроблема с содержанием предложений, причины идентифицируются в 8,6% случаев. CIE и UF являются причинами, приводящими к низкокачественному предложению, в то время как CIE и ICS являются причинами бессмысленного предложения.
Авторские права и политическая проблемаОтносится к проблемам некоторых пользователей по поводу утечки кода для копирования, что по своей сути формирует причину для поднятия таких проблем, тем самым не нужно дальнейшее определение основных причин.
3.2.3. Интерпретация
Частота причин:CIE является наиболее распространенной причиной, приводящей к проблемам использования филота. Как правило, причина идентификация CIE зависит от отзывов пользователей относительно ненормального опыта использования Copilot, и это часто приводит к тому, что группа пользователей сообщает о одной и той же проблеме в течение определенного периода времени. Например, «плохое развертывание» на сервере Copilot заставило группу пользователей сообщать о сбоях аутентификации (обсуждение № 39533). Большое количество NCE, EICI и ICS указывает на то, что некоторые проблемы возникают из окружающей среды, в которой работает копилот. Общая ситуация NCE заключается в том, что пользователи подключаются к серверу Copilot через HTTP -прокси, что может привести к перехвату уровня безопасного сокета (SSL). Тем не менее, Copilot теперь предлагает поддержку доступа через прокси HTTP, таким образом, решая такие проблемы (Github, 2024b). PFE, FCH, FCE и CTI - это четыре типа причин для запроса функции. Оставшиеся восемь типов причин встречаются менее распространены, но все еще могут дать представление о конкретных проблемах, связанных с копированием. Например, UU идентифицируется как прямая причина для многих пользователей, испытывающих сбой аутентификации и сбое функциональности при использовании Copilot.
Картирование причин с проблемами:Когда пользователи Copilot сталкиваются с вопросами эксплуатации, почти четверть (23,1%) из этих проблем вызваны ошибками, исходящими от сервера Copilot (то есть CIE), в то время как остальные проблемы вызваны средой, в которой работает Copilot. Согласно причинам запроса функции, видно, что пользователи обычно требуют новых функций или улучшения существующих функций, основанных на их личных привычках кодирования и неоптимальном опыте при кодировании с помощью Copilot. Меньше причин
были идентифицированы для проблемы совместимости. Когда пользователи идентифицируют проблему как проблему совместимости, они склонны сосредоточиться на поиске решений, а не на дальнейшем анализе причин. Причины, выявленные по вопросу о содержании предложений, а также об авторском праве и вопросе политики ограничены по количеству. Одна из возможных причин заключается в том, что не открытый исходный характер мопеля не позволяет пользователям изучать причины проблем в этих двух категориях. Из результатов таблицы 3 мы не определили основные причины, ведущие к проблеме пользователя. Однако, когда пользователи сталкиваются с плохим опытом аутентификации или плохой производительности при использовании Copilot, следует рассмотреть вопрос о том, существуют ли внутренние ошибки в рамках Copilot, поскольку четыре случая CIE, приводящих к таким проблемам.
Авторы:
(1) Xiyu Zhou, Школа компьютерных наук, Университет Ухан, Ухан, Китай (xiyuzhou@whu.edu.cn);
(2) Пенг Лян (автор -корреспондент), Школа компьютерных наук, Университет Ухан, Ухан, Китай (liangp@whu.edu.cn);
(3) Beiqi Zhang, Школа компьютерных наук, Университет Ухан, Ухан, Китай (zhangbeiqi@whu.edu.cn);
(4) Зенгьян Ли, Школа компьютерных наук, Центральный Китайский Университет, Ухан, Китай (Zengyangli@ccnu.edu.cn);
(5) Аакаш Ахмад, Школа компьютеров и коммуникаций, Университет Ланкастера Лейпциг, Лейпциг, Германия (ahmad.aakash@gmail.com);
(6) Mojtaba Shahin, Школа компьютерных технологий, Университет RMIT, Мельбурн, Австралия (mojtaba.shahin@rmit.edu.au);
(7) Мухаммед Васим, факультет информационных технологий, Университет Цзиваскила, Jyväskylä, Финляндия (muhammad.m.waseem@jyu.fi).
Эта статья есть
Оригинал