Iteratief app-ontwerp voor LUIS

Een Language Understanding (LUIS)-app leert en presteert het efficiëntst met iteratie. Hier is een typische iteratiecyclus:

  • Nieuwe versie maken
  • Bewerk het SCHEMA van de LUIS-app. Dit omvat:
    • Intenties met voorbeeld-utterances
    • Entiteiten
    • Functies
  • Trainen, testen en publiceren
    • Testen op het voorspellings-eindpunt voor actief leren
  • Gegevens verzamelen uit eindpuntquery's

Ontwerpcyclus

Een LUIS-schema bouwen

Het schema van een app definieert waar de gebruiker om vraagt (de intentie of intentie) en welke onderdelen van de intentie details bieden (entiteiten genoemd) die worden gebruikt om het antwoord te bepalen.

Het app-schema moet specifiek zijn voor de app-domeinen om te bepalen welke woorden en woordgroepen relevant zijn, en om de typische woordorde te bepalen.

Voorbeeld-utterances vertegenwoordigen gebruikersinvoer, zoals herkende spraak of tekst, die de app tijdens runtime verwacht.

Het schema vereist intenties en moet entiteiten hebben.

Voorbeeldschema van intenties

Het meest voorkomende schema is een intentieschema dat is ingedeeld met intenties. Dit type schema maakt gebruik van LUIS om de intentie van een gebruiker te bepalen.

Het intentieschematype kan entiteiten hebben als LUIS hierdoor de intentie van de gebruiker kan bepalen. Een verzendentiteit (als een functie machine learning een intentie) helpt LUIS bijvoorbeeld bij het bepalen van de verzendintentie.

Voorbeeldschema van entiteiten

Een entiteitsschema is gericht op entiteiten. Dit zijn de gegevens die worden geëxtraheerd uit uitingen van gebruikers. Als een gebruiker bijvoorbeeld zegt: 'Ik wil drie pizza's bestellen'. Er zijn twee entiteiten die moeten worden geëxtraheerd: drie en pizza's. Deze worden gebruikt om te voldoen aan de intentie, die het maken van een order was.

Voor een entiteitsschema is de intentie van de utterance minder belangrijk voor de clienttoepassing.

Voorbeeld van een gemengd schema

Het krachtigste en volwassenste schema is een intentieschema met een volledig scala aan entiteiten en functies. Dit schema kan beginnen als een intentie- of entiteitsschema en kan beide concepten bevatten, omdat de clienttoepassing die informatie nodig heeft.

Voorbeeld-utterances toevoegen aan intenties

LUIS heeft een aantal voorbeeld-utterances nodig in elke intentie. De voorbeelduitingen hebben voldoende variatie in woordkeuze en woordorde nodig om te kunnen bepalen voor welke intentie de utterance bedoeld is.

Waarschuwing

Voeg geen voorbeeld-utterances bulksgewijs toe. Begin met 15 tot 30 specifieke en wisselende voorbeelden.

Elke voorbeelduiting moet vereiste gegevens hebben om ontworpen en gelabeld met entiteiten te extraheren.

Sleutelelement Doel
Intentie Classificeer uitingen van gebruikers in één intentie of actie. Voorbeelden zijn BookFlight en GetWeather .
Entiteit Extraheren uit een utterance die vereist is om de intentie te voltooien. Voorbeelden zijn de datum en tijd van de reis en de locatie.

Een LUIS-app kan worden ontworpen om uitingen die niet relevant zijn voor het domein van een app te negeren door de utterance toe te wijzen aan de intentie None.

Uw app testen en trainen

Nadat u 15 tot 30 verschillende voorbeeld-utterances in elke intentie hebt, met de vereiste entiteiten gelabeld, moet u uw LUIS-app testen en trainen.

Publiceren naar een voorspellings-eindpunt

De LUIS-app moet worden gepubliceerd zodat deze voor u beschikbaar is in de regio's van het lijstvoorspellings-eindpunt.

Uw gepubliceerde toepassing testen

U kunt uw gepubliceerde LUIS-app testen vanaf het HTTPS-voorspellings-eindpunt. Testen vanaf het voorspellings-eindpunt stelt LUIS in staat om utterances met lage betrouwbaarheid te kiezen voor beoordeling.

Een nieuwe versie voor elke cyclus maken

Elke versie is een momentopname in de tijd van de LUIS-app. Maak een nieuwe versie voordat u wijzigingen aan de app aan gaat brengen. Het is eenvoudiger om terug te gaan naar een oudere versie dan om intenties en utterances te verwijderen uit een eerdere status.

De versie-id bestaat uit tekens, cijfers of '.' en mag niet langer zijn dan 10 tekens.

De eerste versie (0.1) is de standaard actieve versie.

Begin met het klonen van een bestaande versie

Kloon een bestaande versie om te gebruiken als uitgangspunt voor elke nieuwe versie. Nadat u een versie hebt gekloond, wordt de nieuwe versie de actieve versie.

Publicatiesleuven

U kunt publiceren naar de fase en/of productiesleuven. Elke sleuf kan een andere versie of dezelfde versie hebben. Dit is handig voor het controleren van wijzigingen voordat u publiceert naar productie, die beschikbaar is voor bots of andere luis-aanroepende apps.

Getrainde versies zijn niet automatisch beschikbaar op het eindpunt van uw LUIS-app. U moet een versie publiceren of opnieuw publiceren om deze beschikbaar te maken op het eindpunt van uw LUIS-app. U kunt publiceren naar Fasering en Productie, zodat u twee versies van de app krijgt die beschikbaar zijn op het eindpunt. Als er meer versies van de app beschikbaar moeten zijn op een eindpunt, moet u de versie exporteren en opnieuw importeren in een nieuwe app. De nieuwe app heeft een andere app-id.

Een versie importeren

Een versie kan als een nieuwe worden geïmporteerd:

  • App, met een nieuwe app-id
  • Versie van een bestaande app

Deze versie wordt de actieve versie en gebruikt de versie-id in de versionId eigenschap van het app-bestand.

Een versie exporteren

Een versie kan worden geëxporteerd vanuit de LUIS-portal op app- of versieniveau:

  • App-niveau: selecteer app op Mijn apps pagina en selecteer vervolgens Exporteren
  • Versieniveau: selecteer de app-koppeling op Mijn apps pagina, selecteer Beheren, selecteer Versies

Het enige verschil is dat het app-niveau, de geëxporteerde versie, de momenteel actieve versie is, terwijl u op versieniveau een versie kunt kiezen die u wilt exporteren op Instellingen pagina.

Het geëxporteerde bestand bevat niet:

  • machine learning-informatie, omdat de app opnieuw wordt getraind nadat deze is geïmporteerd
  • Informatie over inzenders

Als u een back-up wilt maken van uw LUIS-app-schema, exporteert u een versie uit de LUIS-portal.

Wijzigingen inzenders beheren met versies en inzenders

LUIS maakt gebruik van het concept van inzenders voor een app door machtigingen op Azure-resourceniveau op te geven. Combineer dit concept met versieversies om gerichte samenwerking te bieden.

Gebruik de volgende technieken om wijzigingen in inzenders in uw app te beheren.

Meerdere versies binnen dezelfde app beheren

Begin met klonen vanuit een basisversie voor elke auteur.

Elke auteur wijzigt zijn eigen versie van de app. Wanneer de auteur tevreden is met het model, exporteert u de nieuwe versies naar JSON-bestanden.

Geëxporteerde apps, .json of .lu bestanden, kunnen worden vergeleken met wijzigingen. Combineer de bestanden om één bestand van de nieuwe versie te maken. Wijzig de versionId eigenschap om de nieuwe samengevoegde versie aan te geven. Importeer die versie in de oorspronkelijke app.

Met deze methode kunt u één actieve versie, één faseversie en één gepubliceerde versie hebben. U kunt de resultaten van de actieve versie vergelijken met een gepubliceerde versie (fase of productie) in het interactieve testdeelvenster.

Meerdere versies beheren als apps

Exporteert u de basisversie. Elke auteur importeert de versie. De persoon die de app importeert, is de eigenaar van de versie. Wanneer ze klaar zijn met het wijzigen van de app, exporteert u de versie.

Geëxporteerde apps zijn bestanden in JSON-indeling die kunnen worden vergeleken met de basisexport voor wijzigingen. Combineer de bestanden om één JSON-bestand van de nieuwe versie te maken. Wijzig de eigenschap versionId in de JSON om de nieuwe samengevoegde versie aan te geven. Importeer die versie in de oorspronkelijke app.

Meer informatie over het schrijven van bijdragen van samenwerkers.

Eindpunt-utterances controleren om te beginnen met de nieuwe iteratieve cyclus

Wanneer u klaar bent met een herhalingscyclus, kunt u het proces herhalen. Begin met het controleren van voorspellings-eindpunt-utterances die LUIS met lage betrouwbaarheid heeft gemarkeerd. Controleer deze uitingen op zowel de juiste voorspelde intentie als de juiste en volledige geëxtraheerde entiteit. Nadat u wijzigingen hebt beoordeeld en geaccepteerd, moet de beoordelingslijst leeg zijn.

Volgende stappen

Meer informatie over concepten over samenwerking.