0 / 0
Zurück zur englischen Version der Dokumentation
Anpassung von Laufzeiten mit externen Bibliotheken und Paketen
Letzte Aktualisierung: 21. Nov. 2024
Anpassung von Laufzeiten mit externen Bibliotheken und Paketen

Sie können eine angepasste Softwarespezifikation verwenden, um auf Bibliotheken anderer Anbieter, auf benutzererstellte Python-Pakete oder beides zu verweisen. Bibliotheken anderer Anbieter oder benutzerdefinierte Python -Pakete müssen als Paketerweiterungen angegeben werden, damit sie in einer angepassten Softwarespezifikation referenziert werden können.

Sie können Implementierungslaufzeiten wie folgt anpassen:

Definieren von Anpassungen in einem watsonx.ai Studio-Projekt und anschließendes Verschieben in einen Bereitstellungsbereich

Umgebungen in watsonx.ai Studio-Projekten können so angepasst werden, dass sie Bibliotheken von Drittanbietern enthalten, die von Anaconda oder aus dem PyPI installiert werden können.

Weitere Informationen finden Sie unter Umgebungen.

Im Rahmen der Erstellung einer angepassten Umgebung werden die folgenden Schritte intern ausgeführt (für den Benutzer sichtbar):

  • Eine Paketerweiterung, die die Details von Bibliotheken anderer Anbieter enthält, wird in conda YAML formaterstellt.
  • Eine angepasste Softwarespezifikation mit demselben Namen wie die angepasste Umgebung wird erstellt und die erstellte Paketerweiterung wird dieser angepassten Softwarespezifikation zugeordnet.

Die Modelle oder Python, die mit der benutzerdefinierten Umgebung erstellt werden, müssen auf die Spezifikation der benutzerdefinierten Software verweisen, wenn sie im watsonx.ai Runtime Repository im Projektumfang gespeichert werden.

Softwarespezifikationen und Paketerweiterungen von Projekten an Bereitstellungsbereiche weitergeben

So exportieren Sie benutzerdefinierte Softwarespezifikationen und Paketerweiterungen, die in einem watsonx.ai Studio-Projekt erstellt wurden, in einen Bereitstellungsbereich:

  1. Klicken Sie in Ihrer Projektschnittstelle auf die Registerkarte Verwalten .
  2. Wählen Sie Umgebungenaus.
  3. Klicken Sie auf die Registerkarte Vorlagen .
  4. Wählen Sie im Menü Optionen Ihrer angepassten Umgebung die Option In Bereich hochstufenaus.

Auswahl von "Promote to space" für eine benutzerdefinierte Umgebung in der watsonx.ai Studio-Oberfläche

Wenn Sie ein Modell oder eine Python, die mit einer benutzerdefinierten Umgebung verbunden ist, aus einem watsonx.ai Studio-Projekt in einen Bereitstellungsbereich verschieben, wird die zugehörige benutzerdefinierte Softwarespezifikation und Paketerweiterung ebenfalls in den Bereitstellungsbereich verschoben.

Gehen Sie wie folgt vor, wenn Sie Softwarespezifikationen und Paketerweiterungen aktualisieren möchten, nachdem Sie sie in den Bereitstellungsbereich hochgestuft haben:

  1. Löschen Sie im Bereitstellungsbereich die Softwarespezifikationen, Paketerweiterungen und zugehörigen Modelle (optional) mit dem Python -Client von watsonx.ai .
  2. Stufen Sie in einem Projekt das Modell, die Funktion oder das Script, das bzw. die der geänderten angepassten Softwarespezifikation und Paketerweiterung zugeordnet ist, in den Bereich hoch.

Softwarespezifikationen werden auch eingeschlossen, wenn Sie ein Projekt oder einen Speicherbereich importieren, das bzw. der eine enthält.

Erstellung von Paketerweiterungen und benutzerdefinierten Softwarespezifikationen in einem Deployment Space mit dem watsonx.ai Runtime Python Client

Sie können die watsonx.ai Runtime APIs oder den Python verwenden, um eine benutzerdefinierte Software-Spezifikation zu definieren, die von einer Basisspezifikation abgeleitet ist.

Allgemeine Schritte zum Erstellen einer angepassten Softwarespezifikation, die Bibliotheken anderer Anbieter oder benutzererstellte Python -Pakete verwendet:

  1. Optional: Speichern Sie eine Conda-YAML-Datei mit einer Liste von Bibliotheken anderer Anbieter oder speichern Sie eine benutzererstellte Python -Bibliothek und erstellen Sie eine Paketerweiterung.

    Hinweis: Dieser Schritt ist nicht erforderlich, wenn das Modell keine Abhängigkeit von einer Bibliothek eines anderen Anbieters oder einer benutzerdefinierten Python -Bibliothek aufweist.
  2. Erstellen Sie eine angepasste Softwarespezifikation.

  3. Fügen Sie der von Ihnen erstellten angepassten Softwarespezifikation eine Referenz der Paketerweiterungen hinzu.

Conda-YAML-Datei mit einer Liste von Bibliotheken anderer Anbieter speichern

Gehen Sie wie folgt vor, um eine Conda-YAML-Datei zu speichern, die eine Liste von Bibliotheken anderer Anbieter als Paketerweiterung enthält, und eine angepasste Softwarespezifikation zu erstellen, die mit der Paketerweiterung verknüpft ist:

  1. Authentifizieren und erstellen Sie den Client.

  2. Erstellen und definieren Sie den Standardbereitstellungsbereich. Listen Sie dann die verfügbaren Softwarespezifikationen auf.

     metadata = {
         wml_client.spaces.ConfigurationMetaNames.NAME:
             'examples-create-software-spec',
         wml_client.spaces.ConfigurationMetaNames.DESCRIPTION:
             'For my models'
     }
     space_details = wml_client.spaces.store(meta_props=metadata)
     space_uid = wml_client.spaces.get_id(space_details)
    
     # set the default space
     wml_client.set.default_space(space_uid)
    
     # see available meta names for software specs
     print('Available software specs configuration:', wml_client.software_specifications.ConfigurationMetaNames.get())
     wml_client.software_specifications.list()
    
     asset_id = 'undefined'
     pe_asset_id = 'undefined'
    
  3. Erstellen Sie die Metadaten für Paketerweiterungen, die der Basisspezifikation hinzugefügt werden sollen.

    pe_metadata = {
        wml_client.package_extensions.ConfigurationMetaNames.NAME:
            'My custom library',
        # optional:
        # wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
        wml_client.package_extensions.ConfigurationMetaNames.TYPE:
            'conda_yml'
    }
    
  4. Erstellen Sie eine YAML-Datei, die die Liste der Pakete enthält, und speichern Sie sie als customlibrary.yaml.

    YAML-Beispieldatei:

    name: add-regex-package
    dependencies:
        - regex
    

    Weitere Informationen finden Sie unter Beispiele für Anpassungen.

  5. Speichern Sie Paketerweiterungsinformationen.

    pe_asset_details = wml_client.package_extensions.store(
        meta_props=pe_metadata,
        file_path='customlibrary.yaml'
    )
    pe_asset_id = wml_client.package_extensions.get_id(pe_asset_details)
    
  6. Erstellen Sie die Metadaten für die Softwarespezifikation und speichern Sie die Softwarespezifikation.

    # Get the id of the base software specification
    base_id = wml_client.software_specifications.get_id_by_name('default_py3.9')
    
    # create the metadata for software specs
    ss_metadata = {
        wml_client.software_specifications.ConfigurationMetaNames.NAME:
            'Python 3.9 with pre-installed ML package',
        wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
            'Adding some custom libraries like regex', # optional
        wml_client.software_specifications.ConfigurationMetaNames.BASE_SOFTWARE_SPECIFICATION:
            {'guid': base_id},
        wml_client.software_specifications.ConfigurationMetaNames.PACKAGE_EXTENSIONS:
            [{'guid': pe_asset_id}]
    }
    
    # store the software spec
    ss_asset_details = wml_client.software_specifications.store(meta_props=ss_metadata)
    
    # get the id of the new asset
    asset_id = wml_client.software_specifications.get_id(ss_asset_details)
    
    # view new software specification details
    import pprint as pp
    
    ss_asset_details = wml_client.software_specifications.get_details(asset_id)
    print('Package extensions', pp.pformat(
        ss_asset_details['entity']['software_specification']['package_extensions']
    ))
    

Benutzererstellte Python -Bibliothek speichern und Paketerweiterung erstellen

Weitere Informationen finden Sie unter Voraussetzungen für die Verwendung angepasster Komponenten in Modellen.

Gehen Sie wie folgt vor, um ein vom Benutzer erstelltes Python -Paket als Paketerweiterung zu speichern und eine angepasste Softwarespezifikation zu erstellen, die mit der Paketerweiterung verknüpft ist:

  1. Authentifizieren und erstellen Sie den Client.

  2. Erstellen und definieren Sie den Standardbereitstellungsbereich. Listen Sie dann die verfügbaren Softwarespezifikationen auf.

     metadata = {
         wml_client.spaces.ConfigurationMetaNames.NAME:
             'examples-create-software-spec',
         wml_client.spaces.ConfigurationMetaNames.DESCRIPTION:
             'For my models'
     }
     space_details = wml_client.spaces.store(meta_props=metadata)
     space_uid = wml_client.spaces.get_id(space_details)
    
     # set the default space
     wml_client.set.default_space(space_uid)
    
     # see available meta names for software specs
     print('Available software specs configuration:', wml_client.software_specifications.ConfigurationMetaNames.get())
     wml_client.software_specifications.list()
    
     asset_id = 'undefined'
     pe_asset_id = 'undefined'
    
  3. Erstellen Sie die Metadaten für Paketerweiterungen, die der Basisspezifikation hinzugefügt werden sollen.

    Hinweis:

    Sie können pip_zip nur als Wert für die Metadateneigenschaft wml_client.package_extensions.ConfigurationMetaNames.TYPE angeben.

    pe_metadata = {
        wml_client.package_extensions.ConfigurationMetaNames.NAME:
            'My Python library',
        # optional:
        # wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
        wml_client.package_extensions.ConfigurationMetaNames.TYPE:
            'pip.zip'
    }
    
  4. Geben Sie den Pfad der vom Benutzer erstellten Python -Bibliothek an.

    python_lib_file_path="my-python-library-0.1.zip"
    

    Weitere Informationen finden Sie unter Voraussetzungen für die Verwendung angepasster Komponenten in Modellen.

  5. Speichern Sie Paketerweiterungsinformationen.

    pe_asset_details = wml_client.package_extensions.store(
        meta_props=pe_metadata,
        file_path=python_lib_file_path
    )
    pe_asset_id = wml_client.package_extensions.get_id(pe_asset_details)
    
  6. Erstellen Sie die Metadaten für die Softwarespezifikation und speichern Sie die Softwarespezifikation.

    # Get the id of the base software specification
    base_id = wml_client.software_specifications.get_id_by_name('default_py3.9')
    
    # create the metadata for software specs
    ss_metadata = {
        wml_client.software_specifications.ConfigurationMetaNames.NAME:
            'Python 3.9 with pre-installed ML package',
        wml_client.software_specifications.ConfigurationMetaNames.DESCRIPTION:
            'Adding some custom libraries like regex', # optional
        wml_client.software_specifications.ConfigurationMetaNames.BASE_SOFTWARE_SPECIFICATION:
            {'guid': base_id},
        wml_client.software_specifications.ConfigurationMetaNames.PACKAGE_EXTENSIONS:
            [{'guid': pe_asset_id}]
    }
    
    # store the software spec
    ss_asset_details = wml_client.software_specifications.store(meta_props=ss_metadata)
    
    # get the id of the new asset
    asset_id = wml_client.software_specifications.get_id(ss_asset_details)
    
    # view new software specification details
    import pprint as pp
    
    ss_asset_details = wml_client.software_specifications.get_details(asset_id)
    print('Package extensions', pp.pformat(
        ss_asset_details['entity']['software_specification']['package_extensions']
    ))
    

Fehlerbehebung

When a conda yml-based custom library installation fails with this error: Encountered error while installing custom library, try these alternatives:

  • Verwenden Sie eine andere Version desselben Pakets, das in Anaconda für die betroffene Python -Version verfügbar ist.

  • Installieren Sie die Bibliothek mithilfe von pip aus dem pypi-Repository. Bearbeiten Sie den Inhalt der .yml-Installationsdatei von Conda:

    name: <conda yml file name>
    dependencies:
    - numpy
    - pip:
        - pandas==1.2.5
    

Übergeordnetes Thema: Implementierungslaufzeiten anpassen

Generative KI-Suche und -Antwort
Diese Antworten werden von einem großen Sprachmodell in watsonx.ai basierend auf dem Inhalt der Produktdokumentation generiert. Weitere Informationen