0 / 0
Go back to the English version of the documentation
Přizpůsobení knihoven jiných dodavatelů a soukromých knihoven Python
Last updated: 18. 8. 2023
Přizpůsobení knihoven jiných dodavatelů a soukromých knihoven Python

Pokud váš model vyžaduje vlastní komponenty, jako jsou např. uživatelem definované transformátory, odhadci nebo tenzory definované uživatelem, můžete vytvořit vlastní specifikaci softwaru, která je odvozena ze základní nebo předdefinované specifikace. Funkce Python a skripty Python také podporují vlastní specifikace softwaru.

Vlastní specifikace softwaru můžete použít k odkazování na jakékoli knihovny třetích stran, uživatelsky vytvořené balíky Python , nebo obojí. Knihovny třetích stran nebo uživatelsky vytvořené balíky Python musí být uvedeny jako rozšíření balíku, na které se pak může odkazovat ve vlastní specifikaci softwaru.

Běhová prostředí implementace můžete upravit těmito způsoby:

Informace o odstraňování problémů najdete v tématu Odstraňování problémů.

Definování vlastních nastavení v projektu Watson Studio a jejich povýšení na prostor implementace

Prostředí v projektech produktu Watson Studio lze upravit tak, aby zahrnovala knihovny jiných dodavatelů, které lze instalovat z aplikace Anaconda nebo z úložiště PyPI .

Podrobnosti o vytváření prostředí se specifikacemi softwaru naleznete v tématu Prostředí.

Jako součást vytvoření vlastního prostředí jsou tyto kroky prováděny interně (transparentní pro uživatele):

  • Rozšíření balíku obsahující podrobnosti o knihovnách jiných dodavatelů se vytvoří ve formátu conda YAML.
  • Vytvoří se vlastní specifikace softwaru se stejným názvem, jako má vlastní prostředí, a rozšíření balíku, které bylo vytvořeno, je přidruženo k této přizpůsobené specifikaci softwaru.

Modely nebo skripty nebo skripty Python vytvořené ve vlastním prostředí musí odkazovat na vlastní specifikaci softwaru, když jsou uloženy v úložišti Watson Machine Learning v oboru projektu.

Šíření specifikací softwaru a rozšíření balíku z projektů do prostorů implementace

Chcete-li exportovat vlastní specifikace softwaru a rozšíření balíku, která byla vytvořena v projektu produktu Watson Studio , do prostoru implementace:

  1. V rozhraní projektu klepněte na kartu Spravovat .
  2. Vyberte volbu Prostředí.
  3. Klepněte na kartu Šablony .
  4. V nabídce Volby vlastního prostředí vyberte volbu Povýšit na prostor.

Výběr volby "Povýšit na prostor" pro vlastní prostředí v rozhraní Watson Studio

Případně, když povýšíte jakýkoli model nebo funkci Python , která je přidružená k vlastnímu prostředí z projektu Watson Studio do prostoru implementace, bude do prostoru implementace povýšena také přidružená vlastní specifikace softwaru a rozšíření balíku.

Pokud chcete aktualizovat specifikace softwaru a rozšíření balíku poté, co byly povýšeny do prostoru implementace, proveďte následující kroky:

  1. V prostoru implementace odstraňte specifikace softwaru, rozšíření balíku a přidružené modely (volitelné) s použitím klienta Watson Machine Learning Python .
  2. V projektu povyšte model, funkci nebo skript, který je přidružen ke změněnému přizpůsobenému specifikaci softwaru a rozšíření balíku do prostoru.

Specifikace softwaru jsou také zahrnuty, když importujete projekt nebo prostor, který obsahuje jeden.

Vytvoření balíků rozšíření balíku a vlastních specifikací softwaru v prostoru implementace pomocí klienta Watson Machine Learning Python

Můžete použít rozhraní Watson Machine Learning API nebo klienta Python k definování vlastní specifikace softwaru, která je odvozena ze základní specifikace.

Kroky vysoké úrovně pro vytvoření vlastní specifikace softwaru, která používá knihovny jiných dodavatelů nebo uživatelsky vytvořené balíky Python :

  1. Volitelné: Uložte soubor konda YAML, který obsahuje seznam knihoven jiných dodavatelů , nebo uložte uživatelem vytvořenou knihovnu Python a vytvořte rozšíření balíku.

    Poznámka: Tento krok není požadován, pokud model nemá žádnou závislost na knihovně třetí strany nebo uživatelsky vytvořené knihovně Python .
  2. Vytvoření vlastní specifikace softwaru

  3. Přidejte odkaz na rozšíření balíku na vlastní specifikaci softwaru, kterou jste vytvořili.

Uložení souboru conda YAML, který obsahuje seznam knihoven jiných dodavatelů

Chcete-li uložit soubor conda YAML obsahující seznam knihoven jiných dodavatelů jako rozšíření balíku a vytvořit vlastní specifikaci softwaru propojenou s rozšířením balíku, postupujte takto:

  1. Proveďte ověření a vytvořte klienta.

    Viz téma Ověření.

  2. Vytvořte a nastavte výchozí prostor implementace a poté zobrazte seznam dostupných specifikací softwaru.

     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. Vytvořte metadata pro rozšíření balíku, která se mají přidat do základní specifikace.

    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. Vytvořte soubor yaml, který obsahuje seznam dalších balíků, a poté jej uložte jako customlibrary.yaml.

    Příklad souboru yaml:

    name: add-regex-package
    dependencies:
        - regex
    

    Informace o správné struktuře souboru yaml najdete v tématu Příklady přizpůsobení.

  5. Uložte informace o rozšíření balíku.

    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. Vytvořte metadata pro specifikaci softwaru a uložte specifikaci softwaru.

    # 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']
    ))
    

Uložení uživatelsky vytvořené knihovny Python a vytvoření rozšíření balíku

Informace o požadavcích na podporu uživatelsky vytvořených knihoven Python naleznete v tématu Požadavky na použití vlastních komponent v modelech.

Chcete-li uložit uživatelem vytvořený balík Python jako rozšíření balíku a vytvořit vlastní specifikaci softwaru propojenou s rozšířením balíku, postupujte takto:

  1. Proveďte ověření a vytvořte klienta.

    Viz téma Ověření.

  2. Vytvořte a nastavte výchozí prostor implementace a poté zobrazte seznam dostupných specifikací softwaru.

     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. Vytvořte metadata pro rozšíření balíku, která se mají přidat do základní specifikace.

    Pozn.:

    Jako hodnotu vlastnosti metadat wml_client.package_extensions.ConfigurationMetaNames.TYPE lze zadat pouze hodnotu pip_zip .

    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. Uveďte cestu k uživatelsky vytvořené knihovně Python .

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

    Informace o požadavcích na podporu uživatelsky vytvořených knihoven Python naleznete v tématu Požadavky na použití vlastních komponent v modelech.

  5. Uložte informace o rozšíření balíku.

    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. Vytvořte metadata pro specifikaci softwaru a uložte specifikaci softwaru.

    # 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']
    ))
    

Odstraňování problémů

Pokud dojde k selhání vlastní instalace knihovny s názvem conda yml s touto chybou: Encountered error while installing custom library, vyzkoušejte tyto alternativy:

  • Použijte jinou verzi stejného balíku, která je k dispozici v Anacondě pro příslušnou verzi Python .

  • Nainstalujte knihovnu z úložiště pypi pomocí pip. Upravte obsah instalačního souboru obsahu conda yml:

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

Nadřízené téma: Přizpůsobení běhových prostředí implementace

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more