Uzupełnianie zespołu funkcji IntelliCode: funkcja IntelliSense wspomagana przez AI oparta na kodzie

Użyj modeli zespołowych IntelliCode do uzupełniania, aby uzyskać rekomendacje funkcji IntelliSense wspomagane przez AI na podstawie baz kodu C# i C++. Uzupełnianie zespołu jest przydatne podczas pracy z własnymi typami lub bibliotekami specyficznym dla domeny, które nie są często używane w open source kodu. Wynika to z tego, że rekomendacje modelu podstawowego funkcji IntelliCode są oparte wyłącznie na wzorcach poznanych z repozytoriów GitHub typu open source. Podczas pracy z kodem, który nie znajduje się w tym zestawie repos, te zalecenia nie są dla Ciebie tak przydatne. Użytkownicy języków C# i C++ w Visual Studio mogą teraz używać funkcji IntelliCode do uczenia wzorców z ich kodu w celu przygotowania zaleceń dostosowanych do kodu.

Model IntelliCode to hermetyzacja zestawu reguł, które umożliwiają przewidywanie niektórych przydatnych informacji (na przykład zaleceń na liście IntelliSense) na podstawie analizy kodu. Funkcja IntelliCode tworzy modele zespołowe przy użyciu tego samego procesu szkoleniowego co w przypadku modeli podstawowych IntelliCode, z tą różnicą, że są one trenowane przy użyciu własnego kodu. Im więcej kodu pokazano w celu zilustrowania wzorców użycia, tym bardziej sprawny będzie model zespołu, który będzie oferować przydatne rekomendacje.

Aby utworzyć model zespołu, wyodrębniamy plik podsumowania z metadanymi twoich typów i ich użycia oraz bezpiecznie przekażemy go do naszej usługi.

Jak są stosowane modele

Funkcja IntelliCode generuje rekomendacje na podstawie wielu modeli, scalając je ze sobą:

  • Model podstawowy dla języka, którego używasz (który jest trenowany w tysiącach publicznych repozytoriów GitHub)
  • Wszystkie wytrenowane modele zespołu
  • Wszystkie modele zespołu skojarzone z repozytorium Git, w którym pracujesz

Nie musisz zarządzać modelami, które mają zastosowanie do którego rozwiązania lub bazy kodu, ponieważ IntelliCode zajmuje się tym za Ciebie.

Typy modeli uzupełniania zespołu

Istnieją dwa sposoby uzyskiwania modeli uzupełniania zespołu:

  1. Skojarzone z repozytorium: modele są powiązane z repozytorium — wszyscy użytkownicy, którzy mogą klonować i edytować repozytorium, mają automatyczny dostęp do modelu. Baza kodu musi być pod kontrolą źródła git i wypchnięta do repozytorium zdalnego przy użyciu naszego zadania Azure Pipelines lub akcji usługi GitHub z kompilacji ci, aby utworzyć model skojarzony z repozytorium.

  2. Skojarzone z maszyną: modele są dostępne tylko na maszynie, na których są trenowane.

Modele zespołu skojarzone z repozytorium

Modele zespołu skojarzone z repozytorium są dostępne dla użytkowników, którzy trenują je przy użyciu Azure Pipelines lub GitHub Actions.

  • Tutaj dowiesz się, jak skonfigurować i zautomatyzować przepływ pracy ci (tj. plik yml) w celu trenowania uzupełniania zespołu przy użyciu akcji usługi GitHub.
  • Dowiedz się, jak skonfigurować potok Azure DevOps trenowania uzupełniania zespołu tutaj

Udostępnianie modeli skojarzonych z repozytorium

Modele skojarzone z repozytorium są automatycznie udostępniane innym osobom pracującym w tej samej bazie kodu, o ile użytkownicy włączyli automatyczne pozyskiwanie modeli zespołowych w Visual Studio. Włącz automatyczne pozyskiwanie, przechodząc do opcji Narzędzia. Funkcja > > IntelliCode > uzyskuje modele zespołu w celu ukończenia.

Gdy dowolna osoba sklonuje i otworzy bazę kodu, na podstawie których wytrenowany został model, wszystkie modele skojarzone ze skonfigurowanymi zdalnymi repozytoriami Git zostaną pobrane i aktywowane. Jeśli pracujesz nad widelecem bazy kodu, po prostu dodaj nadrzędnej bazy kodu jako repozytorium zdalnego, aby pobrać model.

Dostęp do repozytorium to dostęp do modelu. Podczas trenowania zbieramy pewne informacje dotyczące wyewidencjonowania zatwierdzenia. Każdy, kto żąda tego modelu, musi mieć to samo zatwierdzenie w swoim repozytorium i mieć możliwość uzyskania tych samych informacji, które zostały zebrane podczas trenowania, aby otrzymać model zespołu.

Uwaga

Możliwość udostępniania modeli uzupełniania zespołu skojarzonych z użytkownikiem za pośrednictwem linku udostępniania dostępnego w niektórych wersjach zapoznawczych uzupełniania zespołu jest teraz przestarzała

Usuwanie modelu

Możesz usunąć modele z konta, aby nie można było ich już używać.

Usuwanie modelu skojarzonego z użytkownikiem utworzonego w Visual Studio

Gdy rozwiązanie jest otwarte w programie Visual Studio, po prostu usuń zaznaczenie pola wyboru akceptujące trenowanie modelu na stronie View > Other Windows > IntelliCode (Wyświetlanie innych > IntelliCode). Model zostanie usunięty.

Usuwanie modelu dołączonego do repozytorium utworzonego przy użyciu Azure DevOps przepływu pracy usługi GitHub CI

Po prostu usuń zadanie szkoleniowe z potoku — skojarzony model zostanie usunięty w ciągu 30 dni, jeśli nie zostanie wytrenowany.

Modele skojarzone z maszyną

Tworzenie i ponowne trenowanie modelu

Trenowanie modelu skojarzonego z maszyną:

  1. Otwórz projekt lub rozwiązanie w Visual Studio.
  2. Otwórz stronę IntelliCode, wybierając opcję Wyświetl > inne środowisko > IntelliCode systemu Windows
  3. Sprawdź i zaakceptuj pole wyboru postanowienia licencyjne w dolnej części strony. Model skojarzony z maszyną zostanie wytrenowany automatycznie.

Uwaga

Należy powtórzyć powyższe kroki dla każdego rozwiązania, na którym chcesz trenować.

Visual Studio będzie okresowo automatycznie ponownie trenować modele uzupełniania zespołu skojarzone z maszyną.

Trenuj na publicznej bazie kodu

Przed trenowaniem własnego kodu warto utworzyć model uzupełniania w publicznej bazie kodu. Możesz zobaczyć, jak model uzupełniania wpływa na intelliSense, lub jeśli martwisz się rodzajem danych zbieranych przez intelliSense, możesz sprawdzić wyodrębnione dane. Niektóre interesujące przykłady do trenowania to:

  • Azure ConferenceBuddy

    Za pomocą tworzenia forpo na koncie osobistym sklonuj je, otwórz rozwiązanie ConferenceBuddy.sln, skonstruuj, aby sprawdzić, czy działa, a następnie wytrenuj model. Kilka dobrych uzupełniania znajdziesz w wystąpieniach klasy AskWhoTask.

  • Czytnik RSS systemu Windows

    Zakłoń to repo na konto osobiste, sklonuj je, otwórz rozwiązanie RssReader.sln, skompilować, aby sprawdzić, czy działa, a następnie wytrenuj model. Kilka dobrych uzupełniania znajdziesz w wystąpieniach klasy MainViewModel.

Dane i prywatność

Aby utworzyć model zespołu, wyodrębniamy plik podsumowania z metadanymi twoich typów i ich użycia. Na przykład plik podsumowania zawiera nazwy klas i metod oraz to, jak często są one wywoływane w różnych okolicznościach. Funkcja IntelliCode nie śledzi naciśnięć klawiszy ani nie wyodrębnia całych wyrażeń, instrukcji ani wartości literałów (takich jak ciągi) z kodu.

Wyodrębnione dane są przesyłane za pośrednictwem protokołu HTTPS do usługi IntelliCode. Następnie usługa używa algorytmów uczenia maszynowego do trenowania modelu dla kodu. Zwraca model na komputer, na którym jest scalony z modelem bazowym.

Wyświetlanie wyodrębnianych danych

Aby sprawdzić zawartość wyodrębnianych danych:

  1. Otwórz wyodrębniony katalog danych:

    • Modele skojarzone z repozytorium: %temp%\Intellicode_Extraction_2019-10-23–234524
    • W przypadku modeli skojarzonych z maszyną: %TEMP%\Visual Studio IntelliCode
  2. Aby znaleźć i otworzyć szkolenie dla ostatniej sesji szkoleniowej, posortuj widok folderu według daty (malejąco). Folder ostatniej sesji szkoleniowej znajduje się teraz u góry.

    Porada

    W katalogu %TEMP%\Visual Studio IntelliCode istnieje jeden folder na sesję szkoleniową, z których każdy ma losową nazwę.

Folder zawiera cały zestaw plików, które są wysyłane do firmy Microsoft po zakończeniu wyodrębniania. Podfolder UsageOutput zawiera plik JSON zawierający informacje wyodrębnione z kodu przez intellicode w celu wytowania modelu. Plik UsageOutput_ErrorStats zawiera błędy znalezione podczas próby skompilowania wyodrębniony plik i może pomóc, jeśli firma Microsoft musi debugować problemy.

Katalog trenowania modelu funkcji IntelliCode

Jeśli chcesz sprawdzić wyodrębnione dane dla innej bazy kodu przed wypróbowaniem go we własnym kodzie, wytrenuj model w publicznej bazie kodu.

Jak zabezpieczamy Twoje dane

Wszystkie dane, które są przesyłane do usługi IntelliCode i odbierane z tej usługi, są przesyłane za pośrednictwem protokołu HTTPS. Musisz zalogować się do Visual Studio, aby komunikować się z usługą.

Modele można pobierać tylko:

  • modele skojarzone z maszyną: przez maszynę, która przesłała wyodrębnione dane do trenowania
  • Modele skojarzone z repozytorium: użytkownicy, którzy mogą udowodnić, że mają dostęp do repozytorium modeli skojarzonych z repozytorium.

Oznacza to, że model i poznany kod pozostają prywatne dla Ciebie i Twoich zamierzonych współpracowników.

Jeśli firma Microsoft musi rozwiązać problem, autoryzowany personel pomocy technicznej firmy Microsoft może uzyskać dostęp do Twoich modeli i wyodrębnione dane tylko do celów diagnostycznych.

Zobacz też