Iteratives App-Design für LUISIterative app design for LUIS

Am effizientesten lernen und arbeiten LUIS-Apps (Language Understanding) in Iterationen.A Language Understanding (LUIS) app learns and performs most efficiently with iteration. Dies ist ein typischer Iterationszyklus:Here's a typical iteration cycle:

  • Erstellen einer neuen VersionCreate new version
  • Bearbeiten des LUIS-App-SchemasEdit the LUIS app schema. Dies schließt Folgendes ein:This includes:
    • Absichten mit BeispieläußerungenIntents with example utterances
    • EntitätenEntities
    • FeaturesFeatures
  • Training, Test und VeröffentlichungTrain, test, and publish
    • Testen am Vorhersageendpunkt für aktives LernenTest at the prediction endpoint for active learning
  • Sammeln von Daten aus EndpunktabfragenGather data from endpoint queries

Erstellungszyklus

Erstellen eines LUIS-SchemasBuilding a LUIS schema

Mithilfe eines App-Schemas wird definiert, was der Benutzer fragt (Absicht oder Wunsch) und welche Teile der Absicht Details (Entitäten) enthalten, mit deren Hilfe die Antwort bestimmt werden kann.An app's schema defines what the user is asking for (the intention or intent ) and what parts of the intent provide details (called entities) that are used to help determine the answer.

Das App-Schema muss spezifisch für die App-Domäne sein, damit Wörter und Ausdrücke ermittelt werden können, die relevant sind, und um die typische Reihenfolge zu bestimmen.The app schema must be specific to the app domains to determine words and phrases that are relevant, as well as to determine typical word ordering.

Beispielausdrücke stellen Benutzereingaben (z. B. erkannte Sprache oder Text) dar, die von der App zur Laufzeit erwartet werden.Example utterances represent user inputs, such as recognized speech or text, that the app expects at runtime.

Das Schema erfordert Absichten und sollte über Entitäten verfügen.The schema requires intents, and should have entities.

Beispielschema von AbsichtenExample schema of intents

Das gängigste Schema ist ein Absichtsschema, das nach Absichten strukturiert ist.The most common schema is an intent schema organized with intents. Dieser Schematyp nutzt LUIS, um die Absicht eines Benutzers zu bestimmen.This type of schema uses LUIS to determine a user's intention.

Der Schematyp der Absicht kann über Entitäten verfügen, wenn dies LUIS beim Bestimmen der Benutzerabsicht nützt.The intent schema type may have entities if it helps LUIS determine the user's intention. Beispielsweise unterstützt eine Versandentität (als Machine Learning-Feature für eine Absicht) LUIS bei der Erkennung einer Versandabsicht.For example, a shipping entity (as a machine learning feature to an intent) helps LUIS determine a shipping intention.

Beispielschema von EntitätenExample schema of entities

Ein Entitätsschema konzentriert sich auf die Entitäten, die ihrerseits die Daten darstellen, die aus den Benutzeräußerungen extrahiert werden sollen.An entity schema focuses on entities, which is the data that is extracted from user utterances. Angenommen, ein Benutzer sagt: „Ich möchte drei Pizzas bestellen“.For example, if a user was to say, "I'd like to order three pizzas." In diesem Fall werden zwei Entitäten extrahiert: drei und Pizzas.There are two entities that would be extracted: three and pizzas. Mit diesen wird der Zweck der Absicht erfüllt, nämlich das Aufgeben einer Bestellung.These are used to help fulfill the intention, which was to make an order.

Bei einem Entitätsschema ist die Absicht der Äußerung für die Clientanwendung weniger oder gar nicht wichtig.For an entity schema, the intention of the utterance is less important to the client application.

Eine gängige Methode zum Organisieren eines Entitätsschemas besteht darin, alle Beispieläußerungen der Absicht None hinzuzufügen.A common method of organizing an entity schema is to add all example utterances to the None intent.

Beispiel für ein gemischtes SchemaExample of a mixed schema

Das leistungsfähigste und ausgereifteste Schema ist ein Absichtsschema mit einer umfassenden Palette an Entitäten und Features.The most powerful and mature schema is an intent schema with a full range of entities and features. Dieses Schema kann entweder als Absichts- oder als Entitätsschema beginnen und dann im weiteren Wachstum Konzepte von beiden einschließen, in dem Maß, wie die Clientanwendung diese Informationseinheiten benötigt.This schema can begin as either an intent or entity schema and grow to include concepts of both, as the client application needs those pieces of information.

Hinzufügen von Beispieläußerungen zu AbsichtenAdd example utterances to intents

LUIS benötigt einige Beispieläußerungen in jeder Absicht.LUIS needs a few example utterances in each intent. Für die Beispieläußerungen sind ausreichend viele Variationen bei der Wortauswahl und Wortreihenfolge erforderlich, um die Absicht der Äußerung zu bestimmen.The example utterances need enough variation of word choice and word order to be able to determine which intent the utterance is meant for.

Achtung

Fügen Sie nicht massenhaft Beispieläußerungen hinzu.Do not add example utterances in bulk. Beginnen Sie mit 15 bis 30 spezifischen und unterschiedlichen Beispielen.Start with 15 to 30 specific and varying examples.

Für jede Beispieläußerung müssen alle erforderlichen zu extrahierenden Daten mit Entitäten entworfen und bezeichnet sein.Each example utterance needs to have any required data to extract designed and labeled with entities.

SchlüsselelementKey element ZweckPurpose
IntentIntent Klassifizieren von Benutzeräußerungen in einer einzelnen Absicht oder Aktion.Classify user utterances into a single intention, or action. Beispiele sind BookFlight und GetWeather.Examples include BookFlight and GetWeather.
EntitätEntity Extrahieren von Daten aus Äußerungen, was für die Vervollständigung der Absicht erforderlich ist.Extract data from utterance required to complete intention. Beispiele hierfür sind Datum und Uhrzeit der Reise und der Standort.Examples include date and time of travel, and location.

Eine LUIS-App kann so entworfen sein, dass sie Äußerungen ignoriert, die für Ihre App-Domäne nicht relevant sind, indem die Äußerung der Absicht None zugewiesen wird.A LUIS app can be designed to ignore utterances that aren't relevant to an app's domain by assigning the utterance to the None intent.

Testen und Trainieren Ihrer AppTest and train your app

Wenn Sie zu jeder Absicht 15 bis 30 verschiedene Beispieläußerungen haben und die erforderlichen Entitäten mit Bezeichnungen versehen sind, müssen Sie Ihre LUIS-App Testen und trainieren.After you have 15 to 30 different example utterances in each intent, with the required entities labeled, you need to test and train your LUIS app.

Veröffentlichung an einem VorhersageendpunktPublish to a prediction endpoint

Die LUIS-App muss veröffentlicht werden, damit sie in der Liste der Vorhersageendpunkt-Regionen verfügbar ist.The LUIS app must be published so that it's available to you in the list prediction endpoint regions.

Testen der veröffentlichten AppTest your published app

Sie können Ihre veröffentlichte LUIS-App vom HTTPS-Vorhersageendpunkt aus testen.You can test your published LUIS app from the HTTPS prediction endpoint. Durch Tests vom Vorhersageendpunkt kann LUIS alle Äußerungen mit niedrigen Zuverlässigkeitswerten zur Überprüfung auswählen.Testing from the prediction endpoint allows LUIS to choose any utterances with low-confidence for review.

Erstellen einer neuen Version für jeden ZyklusCreate a new version for each cycle

Jede Version ist eine Momentaufnahme der LUIS-App.Each version is a snapshot in time of the LUIS app. Bevor Sie Änderungen an der App vornehmen, erstellen Sie eine neue Version.Before you make changes to the app, create a new version. Es ist einfacher, zu einer älteren Version zurückzukehren, als Absichten und Äußerungen zu entfernen, um einen früheren Zustand wiederherzustellen.It is easier to go back to an older version than to try to remove intents and utterances to a previous state.

Die Versions-ID besteht aus Zeichen, Ziffern oder „.“ und darf nicht länger als 10 Zeichen sein.The version ID consists of characters, digits or '.' and cannot be longer than 10 characters.

Die ursprüngliche Version (0.1) ist standardmäßig die aktive Version.The initial version (0.1) is the default active version.

Klonen Sie zunächst eine vorhandene Version.Begin by cloning an existing version

Klonen Sie eine vorhandene Version, um sie als Ausgangspunkt für eine neue Version zu verwenden.Clone an existing version to use as a starting point for each new version. Nachdem Sie eine Version geklont haben, wird die neue Version die aktive Version.After you clone a version, the new version becomes the active version.

VeröffentlichungsslotsPublishing slots

Sie können im Staging- und/oder im Produktionsslot veröffentlichen.You can publish to either the stage and/or production slots. Jeder Slot kann eine andere Version oder die gleiche Version aufweisen.Each slot can have a different version or the same version. Das ist nützlich, um Änderungen vor der Veröffentlichung in der Produktion zu überprüfen, die für Bots oder andere Apps verfügbar ist, die LUIS aufrufen.This is useful for verifying changes before publishing to production, which is available to bots or other LUIS calling apps.

Trainierte Versionen stehen nicht automatisch am Endpunkt Ihrer LUIS-App zur Verfügung.Trained versions aren't automatically available at your LUIS app's endpoint. Sie müssen eine Version veröffentlichen oder erneut veröffentlichen, damit sie am Endpunkt der LUIS-App verfügbar ist.You must publish or republish a version in order for it to be available at your LUIS app endpoint. Sie können für das Staging und die Produktion veröffentlichen. Damit stehen Ihnen am Endpunkt zwei Versionen zur Verfügung.You can publish to Staging and Production, giving you two versions of the app available at the endpoint. Wenn Sie weitere Versionen der App an einem Endpunkt benötigen, sollten Sie die Version exportieren und in eine neue App importieren.If more versions of the app need to be available at an endpoint, you should export the version and reimport it to a new app. Die neue App hat eine andere App-ID.The new app has a different app ID.

Importieren einer VersionImport a version

Eine Version kann wie folgt importiert werden:A version can be imported as a new:

  • Als neue App mit einer neuen App-IDApp, with a new app ID
  • Als neue Version einer vorhandenen AppVersion of an existing app

Diese Version wird die aktive Version und verwendet die Versions-ID in der versionId-Eigenschaft der App-Datei.That version becomes the active version and uses the version ID in the versionId property of the app file.

Exportieren einer VersionExport a version

Eine Version kann über das LUIS-Portal entweder auf App-Ebene oder auf Versionsebene exportiert werden:A version can be exported from the LUIS portal at either the app level or version level:

  • App-Ebene: Wählen Sie auf der Seite Meine Apps die App und dann Exportieren aus.App level - select app on My apps page, then select Export
  • Versionsebene: Wählen Sie auf der Seite Meine Apps den App-Link und anschließend Verwalten und Versionen aus.Version level - select app link on My apps page, select Manage, select Versions

Der einzige Unterschied besteht darin, dass die auf App-Ebene exportierte Version die derzeit aktive Version ist, während Sie beim Exportieren auf Versionsebene auf der Seite Einstellungen die zu exportierende Version auswählen können.The only difference is that the app-level, the exported version is the currently active version while at the version level, you can choose any version to export on the Settings page.

Die exportierte Datei enthält folgende Informationen nicht:The exported file doesn't contain:

  • Maschinell erlernte Informationen, da die App nach dem Importieren neu trainiert wirdmachine-learning information, because the app is retrained after it's imported
  • Informationen zu MitwirkendenContributor information

Um Ihr LUIS-App-Schema zu sichern, exportieren Sie eine Version aus dem LUIS-Portal.In order to back up your LUIS app schema, export a version from the LUIS portal.

Verwalten von Änderungen durch Mitwirkende mit Versionen und MitwirkendenManage contributor changes with versions and contributors

LUIS bietet das Konzept der Mitwirkenden an einer App und stellt dazu Berechtigungen auf Azure-Ressourcenebene zur Verfügung.LUIS uses the concept of contributors to an app, by providing Azure resource-level permissions. Kombinieren Sie dieses Konzept mit Versionsverwaltung, um gezielte Zusammenarbeit zu ermöglichen.Combine this concept with versioning to provide targeted collaboration.

Verwenden Sie die folgenden Techniken zur Verwaltung von Änderungen durch Mitwirkende an ihrer App.Use the following techniques to manage contributor changes to your app.

Verwalten mehrerer Versionen in derselben AppManage multiple versions inside the same app

Zunächst klonen Sie für jeden Ersteller eine Version aus einer Basisversion.Begin by cloning from a base version for each author.

Jeder Ersteller ändert seine eigene Version der App.Each author makes changes to their own version of the app. Wenn jeder Ersteller mit seinem Modell zufrieden ist, werden die neuen Versionen in JSON-Dateien exportiert.When the author is satisfied with the model, export the new versions to JSON files.

Exportierte Apps sowie Dateien mit den Endungen .json oder .lu können auf Änderungen verglichen werden.Exported apps, .json or .lu files, can be compared for changes. Kombinieren Sie die Dateien, um eine einzelne Datei der neuen Version zu erstellen.Combine the files to create a single file of the new version. Ändern Sie die versionId-Eigenschaft, um die neue zusammengeführte Version zu kennzeichnen.Change the versionId property to signify the new merged version. Importieren Sie diese Version in die ursprüngliche App.Import that version into the original app.

Diese Methode erlaubt eine aktive Version, eine Stagingversion und eine veröffentlichte Version.This method allows you to have one active version, one stage version, and one published version. Sie können die Ergebnisse der aktiven Version mit einer veröffentlichten Version (Staging oder Produktion) im Bereich für interaktives Testen vergleichen.You can compare the results of the active version with a published version (stage or production) in the interactive testing pane.

Verwalten mehrerer Versionen als AppsManage multiple versions as apps

Exportieren Sie die Basisversion.Export the base version. Jeder Ersteller importiert die Version.Each author imports the version. Die Person, die die App importiert, ist auch der Besitzer dieser Version.The person that imports the app is the owner of the version. Wenn sie das Bearbeiten der App abgeschlossen hat, exportiert sie ihre Version.When they are done modifying the app, export the version.

Die exportierten Apps sind JSON-formatierte Dateien, die mit dem Basisexport auf Änderungen verglichen werden können.Exported apps are JSON-formatted files, which can be compared with the base export for changes. Kombinieren Sie die Dateien, um eine einzelne JSON-Datei der neuen Version zu erstellen.Combine the files to create a single JSON file of the new version. Ändern Sie die versionId-Eigenschaft in der JSON-Datei, um die neue zusammengeführte Version zu kennzeichnen.Change the versionId property in the JSON to signify the new merged version. Importieren Sie diese Version in die ursprüngliche App.Import that version into the original app.

Erfahren Sie mehr über das Erstellen von Beiträgen durch Projektmitarbeiter.Learn more about authoring contributions from collaborators.

Überprüfen von Endpunktäußerungen zum Einleiten des neuen IterationszyklusReview endpoint utterances to begin the new iterative cycle

Wenn Sie einen Iterationszyklus abgeschlossen haben, können Sie den Vorgang wiederholen.When you are done with an iteration cycle, you can repeat the process. Beginnen Sie mit dem Überprüfen der Vorhersageendpunktäußerungen, die LUIS mit niedrigen Zuverlässigkeitswerten gekennzeichnet hat.Start with reviewing prediction endpoint utterances LUIS marked with low-confidence. Überprüfen Sie diese Äußerungen sowohl auf richtig vorhergesagte Absicht als auch auf richtig und vollständig extrahierte Entitäten.Check these utterances for both correct predicted intent and correct and complete entity extracted. Nach dem Überprüfen und Akzeptieren der Änderungen sollte die Prüfliste leer sein.After you review and accept changes, the review list should be empty.

Nächste SchritteNext steps

Informieren Sie sich über die Konzepte der Zusammenarbeit.Learn concepts about collaboration.