Skip to main content

Создание пользовательской модели для GitHub Copilot

Вы можете точно настроить Copilot завершение кода, создав пользовательскую модель на основе кода в репозиториях вашей организации.

Кто может использовать эту функцию?

Owners of organizations enrolled in the public preview.

The organization must belong to an enterprise with a Copilot Enterprise subscription.

Note

Пользовательские модели для GitHub Copilot Enterprise в public preview и подвержены изменению. Во время public previewнет дополнительных затрат на Copilot Enterprise клиентов, зарегистрированных на public preview для создания или использования пользовательской модели.

Предварительные требования

Код, на котором требуется обучить пользовательскую модель, должен размещаться в репозиториях, принадлежащих вашей организации, на GitHub.

Ограничения

  • Для public previewпредприятие может развернуть одну пользовательскую модель в одной организации.
  • Предложения по завершению кода, основанные на пользовательской модели, доступны только управляемым пользователям, которые получают подписку Copilot Enterprise из организации, в которой развернута пользовательская модель. Дополнительные сведения см. в разделе Сведения о Enterprise Managed Users.
  • Пользовательская модель не используется для кода, предлагаемого в ответах GitHub Copilot Chat.

О пользовательских моделях Copilot

По умолчанию GitHub Copilot использует большую языковую модель, которая была обучена на большом количестве репозиториев общедоступного кода, чтобы обеспечить завершение кода для широкого спектра языков программирования во многих разных контекстах. Эту модель можно использовать в качестве основы для создания пользовательской модели большого языка, обучаемой специально по собственному коду. Этот процесс часто называется тонкой настройкой.

Создав пользовательскую модель, вы включите GitHub Copilot для отображения предложений по завершению кода, которые:

  • На основе кода в собственных репозиториях.
  • Создано для частных или менее общедоступных языков программирования.
  • Адаптировано в соответствии со стилем и рекомендациями вашей организации.

Это обеспечивает:

  • Персонализация — Copilot содержит подробные сведения о базе кода, включая доступные модули, функции и внутренние библиотеки. Пользовательская модель может быть особенно полезной, если код не является типичным для широкого диапазона кода, используемого для обучения базовой модели.
  • Эффективность и качество — Copilot лучше оснащен, чтобы быстрее писать код и с меньшим количеством ошибок.
  • Конфиденциальность — процесс обучения пользовательской модели, размещение и вывод являются безопасными и частными для вашей организации. Ваши данные всегда остаются вашими, никогда не используются для обучения модели другого клиента, и ваша пользовательская модель никогда не предоставляет общий доступ.

О создании модели

В настоящее время в public previewразрешено создать пользовательскую модель только одной организации в организации.

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

Вы также можете выбрать, следует ли использовать данные телеметрии (например, запросы, введенные пользователями, и предложения, созданные Copilot), при обучении модели. Дополнительные сведения см. в разделе "Сбор и использование данных телеметрии для пользовательских моделей" далее в этой статье.

После инициирования создание пользовательской модели займет много часов. Вы можете проверить ход обучения в параметрах вашей организации. После завершения создания модели ( или, если она не завершена), пользователь, инициирующий обучение модели, будет уведомлен по электронной почте.

Если создание модели завершается ошибкой, Copilot продолжит использовать текущую модель для создания предложений по завершению кода.

Сведения об использовании модели

После успешного создания пользовательской модели все управляемые пользователи в организации, получающие доступ Copilot Enterprise из организации, в которой развернута пользовательская модель, начнет просматривать предложения о завершении кода Copilot, созданные с помощью пользовательской модели. Пользовательская модель всегда будет использоваться для любого кода, который эти пользователи редактируют, независимо от того, где находится код. Пользователи не могут выбрать, какую модель используется для создания предложений по завершению кода, которые они видят.

Когда вы можете воспользоваться пользовательской моделью

Значение пользовательской модели наиболее выражено в средах со следующими значениями:

  • Собственные или менее общедоступные языки программирования
  • Внутренние библиотеки или пользовательские платформы
  • Пользовательские стандарты и методики кодирования для конкретной компании

Однако даже в стандартизированных средах тонкой настройке можно более тесно сопоставлять Copilot с установленными методиками и стандартами написания кода вашей организации.

Оценка эффективности пользовательской модели

Хотя некоторые среды программирования, скорее всего, могут воспользоваться тонкой настройкой, нет гарантированной корреляции между конкретным поведением в базе кода и качеством результатов, полученных из пользовательской модели. Рекомендуется оценить уровни использования и удовлетворенности GitHub Copilot варианты завершения кода до и после реализации пользовательской модели.

Сравнение результатов опроса API и разработчика, начиная с до и после реализации пользовательской модели, даст вам представление о эффективности пользовательской модели.

Создание пользовательской модели

Параметры организации можно использовать для создания пользовательской языковой модели.

  1. В правом верхнем углу GitHubвыберите фото профиля, а затем выберите Ваши организации.

  2. Рядом с организацией щелкните Параметры.

  3. На левой боковой панели щелкните Copilot и выберите пользовательскую модель.

  4. На странице "Пользовательские модели" щелкните " Обучение новой пользовательской модели".

  5. В разделе "Выбор репозиториев" выберите выбранные репозитории или Все репозитории.

  6. Если вы выбрали выбранные репозитории, выберите репозитории, которые вы хотите использовать для обучения, а затем нажмите кнопку "Применить".

  7. При необходимости, если вы хотите обучить модель только на коде, написанном на определенных языках программирования, в разделе "Указать языки", начните вводить имя языка, который требуется включить. Выберите требуемый язык из отображаемого списка. Повторите процесс для каждого языка, который требуется включить.

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

    Note

    Если флажок недоступен для выбора, он указывает, что политика сбора данных телеметрии для пользовательских моделей отключена в параметрах вашей организации. Сведения об изменении политик для вашей организации см. в разделе "Управление политиками для Copilot в организации".

    Выбрав этот параметр, можно разрешить Copilot собирать данные для запросов, отправленных пользователем, и предложений по завершению кода, созданных. После сбора достаточных данных Copilot будет использовать это в рамках процесса обучения модели, что позволит ему создать более эффективную модель.

    Дополнительные сведения см. в разделе "Сбор и использование данных телеметрии для пользовательских моделей" далее в этой статье.

  9. Нажмите кнопку "Создать пользовательскую модель".

Проверка хода создания модели

Вы можете проверить параметры организации, чтобы узнать, как выполняется создание модели.

  1. Перейдите к параметрам вашей организации для пользовательских моделей Copilot. См. статью "Создание пользовательской модели" выше.

  2. При первом обучении модели отображаемая страница отображает результаты обучения.

    Если это не первое обучение, перечислены текущие и предыдущие попытки обучения. Чтобы просмотреть сведения о текущем процессе обучения, нажмите первую кнопку с многоточием (...), а затем щелкните "Сведения о обучении".

Причины сбоя обучения

Обучение модели может завершиться сбоем по различным причинам, в том числе:

  • Недостаточно данных или нерепрезентативных данных. Отсутствие данных, предоставляемых для обучения или слишком большой репликации данных, может привести к нестабильной настройке.
  • Неразличимые данные. Если данные недостаточно отличаются от общедоступных данных, на которых была обучена базовая модель, обучение может завершиться сбоем или качество предложений завершения кода из пользовательской модели может быть только незначительно улучшено.
  • Шаг предварительной обработки данных может столкнуться с непредвиденными типами файлов и форматами, что приводит к сбою. Решение может указывать только определенные типы файлов для обучения.

Переобучение или удаление пользовательской модели

В владелец организации можно обновить или удалить пользовательскую модель на странице параметров организации.

Переобучение модели обновляет ее, чтобы включить любой новый код, добавленный в репозитории, выбранные для обучения. Вы можете повторно обучить модель один раз в неделю.

  1. Перейдите к параметрам вашей организации для пользовательских моделей Copilot. См. статью "Создание пользовательской модели" выше.
  2. На странице обучения модели нажмите первую кнопку с многоточием (...), а затем нажмите кнопку "Переобучить модель " или "Удалить модель".

Если вы переобучение модели, Copilot будет продолжать использовать текущую модель для создания предложений по завершению кода до тех пор, пока новая модель не будет готова. После того как новая модель будет готова, она будет автоматически использоваться для предложений по завершению кода для всех управляемых пользователей, получающих подписку Copilot Enterprise из организации.

При удалении пользовательской модели Copilot будет использовать базовую модель для создания предложений по завершению кода для всех пользователей, получающих подписку Copilot из организации.

Сбор и использование данных телеметрии для пользовательских моделей

При создании пользовательской модели можно разрешить GitHub собирать данные телеметрии для обучения модели. Эти данные используются для улучшения качества предложений по завершению кода, которые может создать модель.

Какие данные телеметрии собираются?

  • Запросы. Это включает все сведения, отправляемые в языковую модель GitHub Copilot расширением Copilot, включая контекст из открытых файлов.
  • **** Предложения. Предложения по завершению кода, создаваемые Copilot .
  • Фрагмент кода: моментальный снимок кода через 30 секунд после принятия предложения, запечатлев, как предложение было интегрировано в базу кода. Это помогает определить, было ли принято предложение как или изменено пользователем до окончательной интеграции.

Как используются данные телеметрии?

Данные телеметрии в основном используются для точной настройки пользовательской модели Copilot для лучшего понимания и прогнозирования шаблонов написания кода организации. В частности, это помогает:

  • Повышение точности модели. Анализируя собранные данные телеметрии, Copilot обновляет настраиваемую модель, чтобы повысить релевантность и точность будущих предложений по программированию.
  • Мониторинг производительности. Данные телеметрии позволяют GitHub отслеживать, насколько хорошо пользовательские модели выполняются по сравнению с базовой моделью, обеспечивая текущие улучшения.
  • Циклы обратной связи: данные помогают GitHub создавать циклы обратной связи, в которых модель учится от реального использования, адаптируясь к конкретной среде программирования с течением времени.

Хранение и период удержания данных

  • Хранилище данных: все собранные данные телеметрии хранятся в хранилище данных Copilot Data Store, защищенной и ограниченной среде. Данные шифруются и изолированы, чтобы предотвратить несанкционированный доступ.
  • Период хранения: данные телеметрии хранятся в течение 28-дневного периода. После этого периода данные автоматически удаляются из систем GitHub, обеспечивая использование только последних и соответствующих данных для обучения и улучшения модели.

Конфиденциальность и безопасность данных

GitHub фиксируется для обеспечения конфиденциальности и безопасности данных вашей организации.

  • Эксклюзивное использование: данные телеметрии, собранные из вашей организации, используются исключительно для обучения пользовательской модели и никогда не используются для обучения других организаций или используются для обучения моделей других клиентов.
  • Предотвращение утечки данных: GitHub реализует строгие протоколы изоляции данных, чтобы предотвратить перекрестное загрязнение между данными разных организаций. Это означает, что ваш собственный код и информация защищены от воздействия на другие организации или отдельных лиц.

Важные замечания

  • Согласие на получение данных телеметрии. Участие в сборе данных телеметрии является необязательным и управляется с помощью политик администрирования вашей организации. Данные телеметрии собираются только при явном включении для обучения пользовательских моделей.

  • Потенциальные риски: хотя GitHub принимает обширные меры для предотвращения утечки данных, существуют сценарии, в которых конфиденциальные данные, такие как внутренние ссылки или имена, могут быть включены в телеметрию и впоследствии используются в обучении. Мы рекомендуем просматривать и фильтровать данные, которые вы отправляете для обучения, чтобы свести к минимуму эти риски.

    Дополнительные сведения о методах обработки данных см. в разделе GitHub Copilot Центра управления безопасностью или ознакомьтесь с соглашением о защите данных GitHub.