Translation not up to date
Jeśli model użytkownika wymaga komponentów niestandardowych, takich jak transformatory zdefiniowane przez użytkownika, estymatory lub tensory zdefiniowane przez użytkownika, można utworzyć niestandardową specyfikację oprogramowania, która pochodzi z bazy lub predefiniowanej specyfikacji. Funkcje Python i skrypty Python obsługują również niestandardowe specyfikacje oprogramowania.
Za pomocą niestandardowej specyfikacji oprogramowania można odwoływać się do wszystkich bibliotek innych firm, utworzonych przez użytkownika pakietów Python lub obu tych bibliotek. Biblioteki innych firm lub utworzone przez użytkownika pakiety Python muszą być określone jako rozszerzenia pakietów, które mogą być następnie przywoływane w specyfikacji niestandardowego oprogramowania.
Istnieje możliwość dostosowania środowisk wykonawczych wdrażania w następujący sposób:
- Zdefiniuj dostosowania w projekcie produktu Watson Studio , a następnie awansuj je do obszaru wdrażania
- Tworzenie rozszerzeń pakietów i niestandardowych specyfikacji oprogramowania w obszarze wdrażania przy użyciu klienta Watson Machine Learning Python
Informacje na temat rozwiązywania problemów można znaleźć w sekcji Rozwiązywanie problemów.
Definiowanie dostosowań w projekcie produktu Watson Studio , a następnie promowanie ich w obszarze wdrażania
Środowiska w projektach Watson Studio można dostosować w taki sposób, aby zawierały biblioteki innych firm, które mogą być instalowane z programu Anaconda lub z repozytorium PyPI .
Szczegółowe informacje na temat tworzenia środowisk z specyfikacjami oprogramowania można znaleźć w sekcji Środowiska.
W ramach tworzenia środowiska niestandardowego kroki te są wykonywane wewnętrznie (przezroczyste dla użytkownika):
- Rozszerzenie pakietu zawierające szczegółowe informacje o bibliotekach innych firm jest tworzone w formacie conda YAML.
- Zostanie utworzona niestandardowa specyfikacja oprogramowania o takiej samej nazwie, jak nazwa środowiska niestandardowego, a rozszerzenie pakietu, które zostało utworzone, jest powiązane z tą specyfikacją niestandardowego oprogramowania.
Modele lub funkcje/skrypty Python utworzone przy użyciu środowiska niestandardowego muszą odwoływać się do specyfikacji niestandardowego oprogramowania, gdy są one zapisywane w repozytorium Watson Machine Learning w zasięgu projektu.
Propagowanie specyfikacji oprogramowania i rozszerzeń pakietów z projektów do obszarów wdrażania
Aby wyeksportować niestandardowe specyfikacje oprogramowania i rozszerzenia pakietów, które zostały utworzone w projekcie produktu Watson Studio , do miejsca wdrożenia:
- W interfejsie projektu kliknij kartę Zarządzanie .
- Wybierz opcję Środowiska.
- Kliknij kartę Szablony .
- W menu Opcje środowiska niestandardowego wybierz opcję Awansuj na spację.
Alternatywnie, jeśli promowany jest dowolny model lub funkcja Python powiązana ze środowiskiem niestandardowym z projektu Watson Studio do miejsca wdrożenia, powiązana niestandardowa specyfikacja oprogramowania i rozszerzenie pakietu są również promowane do miejsca wdrażania.
Aby zaktualizować specyfikacje oprogramowania i rozszerzenia pakietów po ich awansowaniu do miejsca wdrażania, wykonaj następujące kroki:
- W obszarze wdrażania usuń specyfikacje oprogramowania, rozszerzenia pakietów i powiązane modele (opcjonalne), korzystając z klienta Watson Machine Learning Python .
- W projekcie należy promować model, funkcję lub skrypt, który jest powiązany ze zmienioną niestandardową specyfikacją oprogramowania i rozszerzeniem pakietu na obszar.
Specyfikacje oprogramowania są również uwzględniane podczas importowania projektu lub obszaru, który zawiera jeden z nich.
Tworzenie rozszerzeń pakietów i niestandardowych specyfikacji oprogramowania w obszarze wdrażania za pomocą klienta Watson Machine Learning Python
Za pomocą interfejsów API Watson Machine Learning lub klienta Python można zdefiniować niestandardową specyfikację oprogramowania, która pochodzi ze specyfikacji podstawowej.
Wysokopoziomowe kroki tworzenia niestandardowej specyfikacji oprogramowania, która korzysta z bibliotek innych firm lub utworzonych przez użytkownika pakietów Python :
Opcjonalnie: Zapisz plik Conda YAML, który zawiera listę bibliotek innych firm lub zapisz bibliotekę Python utworzoną przez użytkownika i utwórz rozszerzenie pakietu.
Uwaga: Ten krok nie jest wymagany, jeśli model nie ma zależności od biblioteki innej firmy lub utworzonej przez użytkownika biblioteki Python .Tworzenie niestandardowej specyfikacji oprogramowania
Dodaj odwołanie do rozszerzeń pakietu do utworzonej niestandardowej specyfikacji oprogramowania.
Zapisywanie pliku conda YAML, który zawiera listę bibliotek innych firm
Aby zapisać plik conda YAML, który zawiera listę bibliotek innych firm jako rozszerzenie pakietu i utworzyć niestandardową specyfikację oprogramowania powiązaną z rozszerzeniem pakietu:
Uwierzytelnij i utwórz klienta.
Patrz sekcja Uwierzytelnianie.
Utwórz i ustaw domyślne miejsce wdrożenia, a następnie wyświetl listę dostępnych specyfikacji oprogramowania.
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'
Utwórz metadane dla rozszerzeń pakietów, aby dodać je do specyfikacji podstawowej.
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' }
Utwórz plik yaml, który zawiera listę dodatkowych pakietów, a następnie zapisz go jako
customlibrary.yaml
.Przykładowy plik yaml:
name: add-regex-package dependencies: - regex
Informacje na temat poprawnej struktury plików yaml można znaleźć w sekcji Przykłady dostosowań.
Zapisz informacje o rozszerzeniu pakietu.
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)
Utwórz metadane dla specyfikacji oprogramowania i zapisz specyfikację oprogramowania.
# 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'] ))
Zapisywanie utworzonej przez użytkownika biblioteki Python i tworzenie rozszerzenia pakietu
Informacje na temat wymagań dotyczących obsługi utworzonych przez użytkownika bibliotek Python można znaleźć w sekcji Wymagania dotyczące używania niestandardowych komponentów w modelach.
Aby zapisać utworzony przez użytkownika pakiet Python jako rozszerzenie pakietu i utworzyć niestandardową specyfikację oprogramowania powiązaną z rozszerzeniem pakietu, wykonaj następujące czynności:
Uwierzytelnij i utwórz klienta.
Patrz sekcja Uwierzytelnianie.
Utwórz i ustaw domyślne miejsce wdrożenia, a następnie wyświetl listę dostępnych specyfikacji oprogramowania.
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'
Utwórz metadane dla rozszerzeń pakietów, aby dodać je do specyfikacji podstawowej.
Uwaga:Jako wartość właściwości metadanych
wml_client.package_extensions.ConfigurationMetaNames.TYPE
można podać tylko wartość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' }
Podaj ścieżkę do biblioteki Python utworzonej przez użytkownika.
python_lib_file_path="my-python-library-0.1.zip"
Informacje na temat wymagań dotyczących obsługi utworzonych przez użytkownika bibliotek Python można znaleźć w sekcji Wymagania dotyczące używania niestandardowych komponentów w modelach.
Zapisz informacje o rozszerzeniu pakietu.
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)
Utwórz metadane dla specyfikacji oprogramowania i zapisz specyfikację oprogramowania.
# 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'] ))
Rozwiązywanie problemów
Jeśli instalacja niestandardowej biblioteki opartej na yml nie powiedzie się z powodu następującego błędu: Encountered error while installing custom library
, spróbuj użyć następujących alternatyw:
Należy użyć innej wersji tego samego pakietu, który jest dostępny w programie Anaconda dla danej wersji Python .
Zainstaluj bibliotekę z repozytorium pypi, korzystając z pip. Edytuj zawartość pliku instalacyjnego programu conda yml:
name: <conda yml file name> dependencies: - numpy - pip: - pandas==1.2.5
Temat nadrzędny: Dostosowywanie środowisk wykonawczych wdrażania