ভূমিকা
এই দস্তাবেজটি একটি TensorFlow সম্প্রসারিত ব্যবহার টেমপ্লেট যা TFX পাইথন প্যাকেজের সাথে প্রদান করা হয় (TFX) পাইপলাইন তৈরি করতে নির্দেশনা প্রদান করবে। অনেক নির্দেশাবলী হল লিনাক্স শেল কমান্ড, যা একটি এআই প্ল্যাটফর্ম নোটবুকের উদাহরণে চলবে। সংশ্লিষ্ট Jupyter নোটবুক কোড কোষ যা ব্যবহার করছেন তাদের কমান্ড ডাকা ! প্রদান করা হয়.
ব্যবহার করে আপনি একটি পাইপলাইন গড়ে তুলবে ট্যাক্সি ডেটা সেটটি Trips শিকাগো শহরের দ্বারা মুক্তি। এই পাইপলাইনটিকে একটি বেসলাইন হিসাবে ব্যবহার করে আপনার ডেটাসেট ব্যবহার করে আপনার নিজস্ব পাইপলাইন তৈরি করার চেষ্টা করার জন্য আমরা আপনাকে জোরালোভাবে উত্সাহিত করি।
ধাপ 1. আপনার পরিবেশ সেট আপ করুন.
এআই প্ল্যাটফর্ম পাইপলাইনগুলি একটি পাইপলাইন নির্মাণের জন্য একটি উন্নয়ন পরিবেশ এবং নতুন নির্মিত পাইপলাইন চালানোর জন্য একটি কুবেফ্লো পাইপলাইন ক্লাস্টার প্রস্তুত করবে।
ইনস্টল করুন tfx সঙ্গে পাইথন প্যাকেজ kfp অতিরিক্ত প্রয়োজন।
import sys
# Use the latest version of pip.
!pip install --upgrade pip
# Install tfx and kfp Python packages.
!pip install --upgrade "tfx[kfp]<2"
আসুন TFX এর সংস্করণগুলি পরীক্ষা করি।
python3 -c "from tfx import version ; print('TFX version: {}'.format(version.__version__))"
TFX version: 0.29.0
এআই প্ল্যাটফর্ম পাইপলাইন সালে TFX ব্যবহার করে একটি হোস্ট Kubernetes পরিবেশে চলছে Kubeflow পাইপলাইন ।
কুবেফ্লো পাইপলাইন ব্যবহার করার জন্য কিছু পরিবেশ ভেরিয়েবল সেট করা যাক।
প্রথমে আপনার GCP প্রোজেক্ট আইডি পান।
# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GOOGLE_CLOUD_PROJECT=shell_output[0]
%env GOOGLE_CLOUD_PROJECT={GOOGLE_CLOUD_PROJECT}
print("GCP project ID:" + GOOGLE_CLOUD_PROJECT)
env: GOOGLE_CLOUD_PROJECT=tf-benchmark-dashboard GCP project ID:tf-benchmark-dashboard
এছাড়াও আমাদের আপনার KFP ক্লাস্টার অ্যাক্সেস করতে হবে। আপনি "AI প্ল্যাটফর্ম > পাইপলাইন" মেনুর অধীনে আপনার Google ক্লাউড কনসোলে এটি অ্যাক্সেস করতে পারেন। KFP ক্লাস্টারের "এন্ডপয়েন্ট" পাইপলাইন ড্যাশবোর্ডের URL থেকে পাওয়া যেতে পারে, অথবা আপনি যেখান থেকে এই নোটবুকটি চালু করেছেন সেই শুরুর পৃষ্ঠার URL থেকে এটি পেতে পারেন৷ আসুন একটি তৈরি ENDPOINT এনভায়রনমেন্ট ভেরিয়েবল এবং KFP ক্লাস্টার শেষবিন্দু থেকে এটি সেট। ENDPOINT-এ URL-এর শুধুমাত্র হোস্টনামের অংশ থাকা উচিত। উদাহরণস্বরূপ, যদি KFP ড্যাশবোর্ডের URL হল <a href="https://1e9deb537390ca22-dot-asia-east1.pipelines.googleusercontent.com/#/start">https://1e9deb537390ca22-dot-asia-east1.pipelines.googleusercontent.com/#/start</a> , শেষবিন্দু মান হয়ে 1e9deb537390ca22-dot-asia-east1.pipelines.googleusercontent.com ।
# This refers to the KFP cluster endpoint
ENDPOINT='' # Enter your ENDPOINT here.
if not ENDPOINT:
from absl import logging
logging.error('Set your ENDPOINT in this cell.')
ERROR:absl:Set your ENDPOINT in this cell.
হিসাবে ইমেজ নাম সেট করুন tfx-pipeline বর্তমান GCP প্রকল্পের অধীনে।
# Docker image name for the pipeline image.
CUSTOM_TFX_IMAGE='gcr.io/' + GOOGLE_CLOUD_PROJECT + '/tfx-pipeline'
এবং, এটা হয়ে গেছে। আমরা একটি পাইপলাইন তৈরি করতে প্রস্তুত।
ধাপ 2. আপনার প্রকল্প ডিরেক্টরিতে পূর্বনির্ধারিত টেমপ্লেটটি অনুলিপি করুন।
এই ধাপে, আমরা একটি পূর্বনির্ধারিত টেমপ্লেট থেকে অতিরিক্ত ফাইল কপি করে একটি কার্যকরী পাইপলাইন প্রকল্প ডিরেক্টরি এবং ফাইল তৈরি করব।
আপনি পরিবর্তন করে আপনার পাইপলাইন একটি আলাদা নাম দিতে পারে PIPELINE_NAME নিচে। এটি সেই প্রজেক্ট ডিরেক্টরির নামও হয়ে যাবে যেখানে আপনার ফাইলগুলি রাখা হবে।
PIPELINE_NAME="my_pipeline"
import os
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)
TFX অন্তর্ভুক্ত taxi TFX পাইথন প্যাকেজের সাথে টেমপ্লেট। আপনি যদি শ্রেণীবিভাগ এবং রিগ্রেশন সহ একটি বিন্দু-ভিত্তিক ভবিষ্যদ্বাণী সমস্যা সমাধান করার পরিকল্পনা করছেন, তাহলে এই টেমপ্লেটটি একটি প্রারম্ভিক বিন্দু হিসাবে ব্যবহার করা যেতে পারে।
tfx template copy CLI কমান্ড কপি আপনার প্রকল্পের ডিরেক্টরির মধ্যে টেমপ্লেট ফাইল পূর্বনির্ধারিত।
!tfx template copy \
--pipeline-name={PIPELINE_NAME} \
--destination-path={PROJECT_DIR} \
--model=taxi
CLI
Copying taxi pipeline template
kubeflow_runner.py -> /home/kbuilder/imported/my_pipeline/kubeflow_runner.py
kubeflow_v2_dag_runner.py -> /home/kbuilder/imported/my_pipeline/kubeflow_v2_dag_runner.py
features_test.py -> /home/kbuilder/imported/my_pipeline/models/features_test.py
model_test.py -> /home/kbuilder/imported/my_pipeline/models/estimator/model_test.py
constants.py -> /home/kbuilder/imported/my_pipeline/models/estimator/constants.py
model.py -> /home/kbuilder/imported/my_pipeline/models/estimator/model.py
__init__.py -> /home/kbuilder/imported/my_pipeline/models/estimator/__init__.py
model_test.py -> /home/kbuilder/imported/my_pipeline/models/keras/model_test.py
constants.py -> /home/kbuilder/imported/my_pipeline/models/keras/constants.py
model.py -> /home/kbuilder/imported/my_pipeline/models/keras/model.py
__init__.py -> /home/kbuilder/imported/my_pipeline/models/keras/__init__.py
preprocessing_test.py -> /home/kbuilder/imported/my_pipeline/models/preprocessing_test.py
preprocessing.py -> /home/kbuilder/imported/my_pipeline/models/preprocessing.py
__init__.py -> /home/kbuilder/imported/my_pipeline/models/__init__.py
features.py -> /home/kbuilder/imported/my_pipeline/models/features.py
pipeline.py -> /home/kbuilder/imported/my_pipeline/pipeline/pipeline.py
configs.py -> /home/kbuilder/imported/my_pipeline/pipeline/configs.py
__init__.py -> /home/kbuilder/imported/my_pipeline/pipeline/__init__.py
local_runner.py -> /home/kbuilder/imported/my_pipeline/local_runner.py
model_analysis.ipynb -> /home/kbuilder/imported/my_pipeline/model_analysis.ipynb
__init__.py -> /home/kbuilder/imported/my_pipeline/__init__.py
data_validation.ipynb -> /home/kbuilder/imported/my_pipeline/data_validation.ipynb
.gitignore -> /home/kbuilder/imported/my_pipeline/.gitignore
Traceback (most recent call last):
File "/tmpfs/src/tf_docs_env/bin/tfx", line 8, in <module>
sys.exit(cli_group())
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/tfx/tools/cli/commands/template.py", line 73, in copy
template_handler.copy_template(ctx.flags_dict)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/tfx/tools/cli/handler/template_handler.py", line 185, in copy_template
fileio.copy(src_path, dst_path)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/tfx/dsl/io/fileio.py", line 51, in copy
src_fs.copy(src, dst, overwrite=overwrite)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/tfx/dsl/io/plugins/tensorflow_gfile.py", line 48, in copy
tf.io.gfile.copy(src, dst, overwrite=overwrite)
File "/tmpfs/src/tf_docs_env/lib/python3.7/site-packages/tensorflow/python/lib/io/file_io.py", line 516, in copy_v2
compat.path_to_bytes(src), compat.path_to_bytes(dst), overwrite)
tensorflow.python.framework.errors_impl.AlreadyExistsError: file already exists
এই নোটবুকের কাজের ডিরেক্টরির প্রসঙ্গটি প্রকল্প ডিরেক্টরিতে পরিবর্তন করুন।
%cd {PROJECT_DIR}
/home/kbuilder/imported/my_pipeline
ধাপ 3. আপনার কপি করা উৎস ফাইল ব্রাউজ করুন
পাইপলাইনের আউটপুট বিশ্লেষণ করার জন্য পাইথন সোর্স কোড, নমুনা ডেটা এবং জুপিটার নোটবুক সহ পাইপলাইন তৈরি করার জন্য TFX টেমপ্লেট মৌলিক স্ক্যাফোল্ড ফাইল সরবরাহ করে। taxi টেমপ্লেট একই শিকাগো ট্যাক্সি ডেটা সেটটি এবং এমএল মডেল ব্যবহার করে Airflow টিউটোরিয়াল ।
এখানে প্রতিটি পাইথন ফাইলের সংক্ষিপ্ত ভূমিকা রয়েছে।
-
pipeline- এই ডিরেক্টরির পাইপলাইন সংজ্ঞা রয়েছে-
configs.py- পাইপলাইন রানার্স জন্য সাধারণ ধ্রুবক সংজ্ঞায়িত -
pipeline.py- সংজ্ঞায়িত TFX উপাদান এবং একটি পাইপলাইন
-
-
models- এই ডিরেক্টরির এমএল মডেল সংজ্ঞা রয়েছে।-
features.py,features_test.py- সংজ্ঞায়িত মডেল জন্য অতিরিক্ত বৈশিষ্ট্যগুলিও উপস্থিত রয়েছে -
preprocessing.py,preprocessing_test.py- সংজ্ঞায়িত ব্যবহার কাজ preprocessingtf::Transform -
estimator- এই ডিরেক্টরির একটি মূল্নির্ধারক ভিত্তিক মডেল রয়েছে।-
constants.py- মডেল সংজ্ঞায়িত ধ্রুবক -
model.py,model_test.py- DNN মডেল সংজ্ঞায়িত মেমরি মূল্নির্ধারক ব্যবহার
-
-
keras- এই ডিরেক্টরির একটি Keras ভিত্তিক মডেল রয়েছে।-
constants.py- মডেল সংজ্ঞায়িত ধ্রুবক -
model.py,model_test.py- সংজ্ঞায়িত Keras ব্যবহার DNN মডেল
-
-
-
local_runner.py,kubeflow_runner.py- প্রতিটি অর্কেস্ট্রারচনা ইঞ্জিন রানার্স সংজ্ঞায়িত
আপনি সেখানে সঙ্গে কিছু ফাইল আছে বিজ্ঞপ্তি পারে _test.py তাদের নামটি দিয়ে। এগুলি পাইপলাইনের ইউনিট পরীক্ষা এবং আপনি নিজের পাইপলাইনগুলি বাস্তবায়ন করার সাথে সাথে আরও ইউনিট পরীক্ষা যুক্ত করার পরামর্শ দেওয়া হয়। আপনার সাথে পরীক্ষা ফাইল মডিউল নাম সরবরাহ দ্বারা ইউনিট পরীক্ষা চালাতে পারেন -m পতাকা। আপনি সাধারণতঃ মুছে ফেলার মাধ্যমে একটি মডিউল নামটা জানা যাবে .py এক্সটেনশান এবং প্রতিস্থাপন / সঙ্গে . . উদাহরণ স্বরূপ:
{sys.executable} -m models.features_test{sys.executable} -m models.keras.model_test
Running tests under Python 3.7.5: /tmpfs/src/tf_docs_env/bin/python [ RUN ] FeaturesTest.testNumberOfBucketFeatureBucketCount INFO:tensorflow:time(__main__.FeaturesTest.testNumberOfBucketFeatureBucketCount): 0.0s I1204 11:33:54.064224 139808961349440 test_util.py:2076] time(__main__.FeaturesTest.testNumberOfBucketFeatureBucketCount): 0.0s [ OK ] FeaturesTest.testNumberOfBucketFeatureBucketCount [ RUN ] FeaturesTest.testTransformedNames INFO:tensorflow:time(__main__.FeaturesTest.testTransformedNames): 0.0s I1204 11:33:54.064666 139808961349440 test_util.py:2076] time(__main__.FeaturesTest.testTransformedNames): 0.0s [ OK ] FeaturesTest.testTransformedNames [ RUN ] FeaturesTest.test_session [ SKIPPED ] FeaturesTest.test_session ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK (skipped=1) Running tests under Python 3.7.5: /tmpfs/src/tf_docs_env/bin/python [ RUN ] ModelTest.testBuildKerasModel 2021-12-04 11:33:57.507456: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory 2021-12-04 11:33:57.508566: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1757] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform. Skipping registering GPU devices... I1204 11:33:57.581331 139740839778112 layer_utils.py:191] Model: "model" I1204 11:33:57.581501 139740839778112 layer_utils.py:192] __________________________________________________________________________________________________ I1204 11:33:57.581558 139740839778112 layer_utils.py:189] Layer (type) Output Shape Param # Connected to I1204 11:33:57.581596 139740839778112 layer_utils.py:194] ================================================================================================== I1204 11:33:57.581741 139740839778112 layer_utils.py:189] pickup_latitude_xf (InputLayer) [(None,)] 0 I1204 11:33:57.581793 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.581883 139740839778112 layer_utils.py:189] trip_miles_xf (InputLayer) [(None,)] 0 I1204 11:33:57.581926 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.582010 139740839778112 layer_utils.py:189] trip_start_hour_xf (InputLayer) [(None,)] 0 I1204 11:33:57.582052 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.582189 139740839778112 layer_utils.py:189] dense_features (DenseFeatures) (None, 1) 0 pickup_latitude_xf[0][0] I1204 11:33:57.582241 139740839778112 layer_utils.py:189] trip_miles_xf[0][0] I1204 11:33:57.582280 139740839778112 layer_utils.py:189] trip_start_hour_xf[0][0] I1204 11:33:57.582315 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.582462 139740839778112 layer_utils.py:189] dense (Dense) (None, 1) 2 dense_features[0][0] I1204 11:33:57.582518 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.582629 139740839778112 layer_utils.py:189] dense_1 (Dense) (None, 1) 2 dense[0][0] I1204 11:33:57.582674 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.582824 139740839778112 layer_utils.py:189] dense_features_1 (DenseFeatures (None, 34) 0 pickup_latitude_xf[0][0] I1204 11:33:57.582879 139740839778112 layer_utils.py:189] trip_miles_xf[0][0] I1204 11:33:57.582921 139740839778112 layer_utils.py:189] trip_start_hour_xf[0][0] I1204 11:33:57.582957 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.583053 139740839778112 layer_utils.py:189] concatenate (Concatenate) (None, 35) 0 dense_1[0][0] I1204 11:33:57.583099 139740839778112 layer_utils.py:189] dense_features_1[0][0] I1204 11:33:57.583143 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.583260 139740839778112 layer_utils.py:189] dense_2 (Dense) (None, 1) 36 concatenate[0][0] I1204 11:33:57.583309 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.583389 139740839778112 layer_utils.py:189] tf.compat.v1.squeeze (TFOpLambd (None,) 0 dense_2[0][0] I1204 11:33:57.583432 139740839778112 layer_utils.py:256] ================================================================================================== I1204 11:33:57.583687 139740839778112 layer_utils.py:267] Total params: 40 I1204 11:33:57.583751 139740839778112 layer_utils.py:268] Trainable params: 40 I1204 11:33:57.583794 139740839778112 layer_utils.py:269] Non-trainable params: 0 I1204 11:33:57.583832 139740839778112 layer_utils.py:270] __________________________________________________________________________________________________ I1204 11:33:57.649701 139740839778112 layer_utils.py:191] Model: "model_1" I1204 11:33:57.649825 139740839778112 layer_utils.py:192] __________________________________________________________________________________________________ I1204 11:33:57.649878 139740839778112 layer_utils.py:189] Layer (type) Output Shape Param # Connected to I1204 11:33:57.649932 139740839778112 layer_utils.py:194] ================================================================================================== I1204 11:33:57.650066 139740839778112 layer_utils.py:189] pickup_latitude_xf (InputLayer) [(None,)] 0 I1204 11:33:57.650120 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.650207 139740839778112 layer_utils.py:189] trip_miles_xf (InputLayer) [(None,)] 0 I1204 11:33:57.650259 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.650356 139740839778112 layer_utils.py:189] trip_start_hour_xf (InputLayer) [(None,)] 0 I1204 11:33:57.650398 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.650552 139740839778112 layer_utils.py:189] dense_features_2 (DenseFeatures (None, 1) 0 pickup_latitude_xf[0][0] I1204 11:33:57.650603 139740839778112 layer_utils.py:189] trip_miles_xf[0][0] I1204 11:33:57.650644 139740839778112 layer_utils.py:189] trip_start_hour_xf[0][0] I1204 11:33:57.650682 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.650812 139740839778112 layer_utils.py:189] dense_3 (Dense) (None, 1) 2 dense_features_2[0][0] I1204 11:33:57.650864 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.651007 139740839778112 layer_utils.py:189] dense_features_3 (DenseFeatures (None, 34) 0 pickup_latitude_xf[0][0] I1204 11:33:57.651061 139740839778112 layer_utils.py:189] trip_miles_xf[0][0] I1204 11:33:57.651102 139740839778112 layer_utils.py:189] trip_start_hour_xf[0][0] I1204 11:33:57.651146 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.651229 139740839778112 layer_utils.py:189] concatenate_1 (Concatenate) (None, 35) 0 dense_3[0][0] I1204 11:33:57.651274 139740839778112 layer_utils.py:189] dense_features_3[0][0] I1204 11:33:57.651311 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.651462 139740839778112 layer_utils.py:189] dense_4 (Dense) (None, 1) 36 concatenate_1[0][0] I1204 11:33:57.651547 139740839778112 layer_utils.py:258] __________________________________________________________________________________________________ I1204 11:33:57.651632 139740839778112 layer_utils.py:189] tf.compat.v1.squeeze_1 (TFOpLam (None,) 0 dense_4[0][0] I1204 11:33:57.651675 139740839778112 layer_utils.py:256] ================================================================================================== I1204 11:33:57.651959 139740839778112 layer_utils.py:267] Total params: 38 I1204 11:33:57.652019 139740839778112 layer_utils.py:268] Trainable params: 38 I1204 11:33:57.652061 139740839778112 layer_utils.py:269] Non-trainable params: 0 I1204 11:33:57.652098 139740839778112 layer_utils.py:270] __________________________________________________________________________________________________ INFO:tensorflow:time(__main__.ModelTest.testBuildKerasModel): 0.84s I1204 11:33:57.652639 139740839778112 test_util.py:2076] time(__main__.ModelTest.testBuildKerasModel): 0.84s [ OK ] ModelTest.testBuildKerasModel [ RUN ] ModelTest.test_session [ SKIPPED ] ModelTest.test_session ---------------------------------------------------------------------- Ran 2 tests in 0.836s OK (skipped=1)
ধাপ 4. আপনার প্রথম TFX পাইপলাইন চালান
TFX পাইপলাইন উপাদান হিসাবে একে চালানোর জন্য আউটপুট উত্পন্ন করবে এমএল মেটাডেটা নিদর্শন , এবং তারা কোথাও সঞ্চিত করা প্রয়োজন। আপনি যেকোন স্টোরেজ ব্যবহার করতে পারেন যা KFP ক্লাস্টার অ্যাক্সেস করতে পারে এবং এই উদাহরণের জন্য আমরা Google ক্লাউড স্টোরেজ (GCS) ব্যবহার করব। একটি ডিফল্ট GCS বালতি স্বয়ংক্রিয়ভাবে তৈরি করা উচিত ছিল৷ তার নাম হবে <your-project-id>-kubeflowpipelines-default ।
আসুন আমাদের নমুনা ডেটা GCS বালতিতে আপলোড করি যাতে আমরা পরে আমাদের পাইপলাইনে এটি ব্যবহার করতে পারি।
gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv
BucketNotFoundException: 404 gs://tf-benchmark-dashboard-kubeflowpipelines-default bucket does not exist.
এর ব্যবহার করে একটি TFX পাইপলাইন তৈরি করা যাক tfx pipeline create কমান্ড।
!tfx pipeline create --pipeline-path=kubeflow_runner.py --endpoint={ENDPOINT} \
--build-image
CLI Usage: tfx pipeline create [OPTIONS] Try 'tfx pipeline create --help' for help. Error: no such option: --build-image
একটি পাইপলাইন তৈরি করার সময়, Dockerfile একটি Docker ইমেজ গড়ে তুলতে তৈরি করা হবে। অন্যান্য সোর্স ফাইলের সাথে সোর্স কন্ট্রোল সিস্টেমে (উদাহরণস্বরূপ, গিট) এটি যোগ করতে ভুলবেন না।
এখন একটি মৃত্যুদন্ড ব্যবহার নব নির্মিত পাইপলাইন দিয়ে চালানো শুরু tfx run create কমান্ড।
tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}
CLI Creating a run for pipeline: my_pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. Pipeline "my_pipeline" does not exist.
অথবা, আপনি KFP ড্যাশবোর্ডেও পাইপলাইন চালাতে পারেন। নতুন এক্সিকিউশন রান কেএফপি ড্যাশবোর্ডে পরীক্ষা-নিরীক্ষার অধীনে তালিকাভুক্ত করা হবে। পরীক্ষায় ক্লিক করলে আপনি অগ্রগতি নিরীক্ষণ করতে পারবেন এবং এক্সিকিউশন রানের সময় তৈরি আর্টিফ্যাক্টগুলিকে কল্পনা করতে পারবেন।
যাইহোক, আমরা কেএফপি ড্যাশবোর্ড দেখার পরামর্শ দিই। আপনি Google ক্লাউড কনসোলে ক্লাউড এআই প্ল্যাটফর্ম পাইপলাইন মেনু থেকে KFP ড্যাশবোর্ড অ্যাক্সেস করতে পারেন। একবার আপনি ড্যাশবোর্ডে গেলে, আপনি পাইপলাইনটি খুঁজে পেতে এবং পাইপলাইন সম্পর্কে প্রচুর তথ্য অ্যাক্সেস করতে সক্ষম হবেন। উদাহরণস্বরূপ, যদি আপনি এক্সপেরিমেন্ট মেনু অধীনে আপনার রানে জানতে পারেন, এবং যখন আপনি এক্সপেরিমেন্ট অধীনে আপনার সঞ্চালনের রান খুলতে আপনি হস্তনির্মিত মেনুর অধীনে পাইপলাইন থেকে আপনার সব নিদর্শন খুঁজে পেতে পারেন।
ব্যর্থতার একটি প্রধান উৎস হল অনুমতি সংক্রান্ত সমস্যা। অনুগ্রহ করে নিশ্চিত করুন যে আপনার KFP ক্লাস্টারে Google ক্লাউড API অ্যাক্সেস করার অনুমতি রয়েছে৷ এই কনফিগার করা যেতে পারে যখন আপনি GCP একটি KFP ক্লাস্টার তৈরি , অথবা সমস্যাসমাধান ডকুমেন্ট GCP মধ্যে ।
ধাপ 5. ডেটা যাচাইকরণের জন্য উপাদান যোগ করুন।
এই পদক্ষেপে, আপনি সহ ডেটা যাচাইকরণ জন্য উপাদান যোগ হবে StatisticsGen , SchemaGen এবং ExampleValidator । আপনি ডাটা বৈধকরণ আগ্রহী, দয়া করে দেখুন Tensorflow ডেটা ভ্যালিডেশন দিয়ে শুরু করুন ।
পরিবর্তন ডিরেক্টরির জন্য দুবার ক্লিক করুন
pipelineএবং খোলা আবার দুবার-ক্লিকpipeline.py। খুঁজুন এবং 3 লাইন যা যোগ uncommentStatisticsGen,SchemaGenএবংExampleValidatorপাইপলাইন। (টিপ: ধারণকারী মন্তব্যের জন্য অনুসন্ধানTODO(step 5):)। সংরক্ষণ নিশ্চিত করুনpipeline.pyকরার পরে এটিকে সম্পাদনা করুন।
আপনাকে এখন পরিবর্তিত পাইপলাইন সংজ্ঞা সহ বিদ্যমান পাইপলাইন আপডেট করতে হবে। ব্যবহার করুন tfx pipeline update আপনার পাইপলাইন, দ্বারা অনুসরণ আপডেট করার জন্য কমান্ড tfx run create আপনার আপডেট পাইপলাইন একটি নতুন সঞ্চালনের রান তৈরি করতে কমান্ড।
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
# You can run the pipeline the same way.
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
CLI Updating pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. beam runner not found in dsl. CLI Creating a run for pipeline: my_pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. Pipeline "my_pipeline" does not exist.
পাইপলাইন আউটপুট পরীক্ষা করুন
আপনার পাইপলাইন চালানোর জন্য পৃষ্ঠায় পাইপলাইন আউটপুট খুঁজে পেতে KFP ড্যাশবোর্ডে যান। বাম এক্সপেরিমেন্ট ট্যাব, এবং পরীক্ষায় পৃষ্ঠা এর মধ্যে রান এ ক্লিক করুন। আপনি আপনার পাইপলাইনের নামে সর্বশেষ রান খুঁজে পেতে সক্ষম হওয়া উচিত।
ধাপ 6. প্রশিক্ষণের জন্য উপাদান যোগ করুন।
এই পদক্ষেপে, আপনি প্রশিক্ষণ সহ মডেল যাচাইকরণের জন্য উপাদান যোগ হবে Transform , Trainer , Resolver , Evaluator এবং Pusher ।
খোলার জন্য দুবার-ক্লিক
pipeline.py। খুঁজুন এবং 5 লাইন যা যোগ uncommentTransform,Trainer,Resolver,EvaluatorএবংPusherপাইপলাইন। (টিপ: জন্য অনুসন্ধানTODO(step 6):)
আপনি যেমন আগে করেছিলেন, এখন আপনাকে পরিবর্তিত পাইপলাইন সংজ্ঞা সহ বিদ্যমান পাইপলাইন আপডেট করতে হবে। নির্দেশাবলীর পদক্ষেপ 5. আপডেট পাইপলাইন ব্যবহার একই tfx pipeline update , এবং ব্যবহার করে একটি মৃত্যুদন্ড রান তৈরি tfx run create ।
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
CLI Updating pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. beam runner not found in dsl. CLI Creating a run for pipeline: my_pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. Pipeline "my_pipeline" does not exist.
এই এক্সিকিউশন রান সফলভাবে শেষ হলে, আপনি এখন AI প্ল্যাটফর্ম পাইপলাইনে আপনার প্রথম TFX পাইপলাইন তৈরি করেছেন এবং চালান!
ধাপ 7. (ঐচ্ছিক) BigQueryExampleGen চেষ্টা করুন
BigQuery- তে একটি serverless, অত্যন্ত আকার পরিবর্তনযোগ্য, এবং খরচ কার্যকর মেঘ ডেটা ওয়েরহাউজ। BigQuery টিএফএক্স-এ প্রশিক্ষণের উদাহরণের উৎস হিসেবে ব্যবহার করা যেতে পারে। এই পদক্ষেপ, আমরা যোগ হবে BigQueryExampleGen পাইপলাইন।
খোলার জন্য দুবার-ক্লিক
pipeline.py। আউট মন্তব্যCsvExampleGenএবং uncomment লাইন যার একটি দৃষ্টান্ত সৃষ্টিBigQueryExampleGen। এছাড়াও আপনি uncomment প্রয়োজনqueryআর্গুমেন্টcreate_pipelineফাংশন।
আমরা যা GCP প্রকল্পের BigQuery- তে ব্যবহার করার জন্য নির্দিষ্ট করতে হবে, এবং এই সেটিং দ্বারা সম্পন্ন করা হয় --project মধ্যে beam_pipeline_args যখন একটি পাইপলাইন তৈরি করা।
খোলার জন্য দুবার-ক্লিক
configs.py। Uncomment সংজ্ঞাGOOGLE_CLOUD_REGION,BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGSএবংBIG_QUERY_QUERY। আপনার GCP প্রকল্পের জন্য সঠিক মান দিয়ে এই ফাইলে অঞ্চলের মান প্রতিস্থাপন করা উচিত।
ডাইরেক্টরি এক লেভেল আপ পরিবর্তন করুন। ফাইল তালিকার উপরে ডিরেক্টরির নামে ক্লিক করুন। ডিরেক্টরি নাম পাইপলাইন যা নাম
my_pipelineযদি আপনি পরিবর্তন হয়নি।
খোলার জন্য দুবার-ক্লিক
kubeflow_runner.py। Uncomment দুটি আর্গুমেন্ট,queryএবংbeam_pipeline_argsজন্যcreate_pipelineফাংশন।
এখন পাইপলাইন একটি উদাহরণ উৎস হিসাবে BigQuery ব্যবহার করার জন্য প্রস্তুত। আগের মতো পাইপলাইন আপডেট করুন এবং ধাপ 5 এবং 6-এ আমরা যেমন করেছিলাম একটি নতুন এক্সিকিউশন রান তৈরি করুন।
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
CLI Updating pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. beam runner not found in dsl. CLI Creating a run for pipeline: my_pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. Pipeline "my_pipeline" does not exist.
ধাপ 8. (ঐচ্ছিক) KFP সঙ্গে Dataflow চেষ্টা করুন
বেশ কিছু TFX উপাদান এ্যাপাচি রশ্মি ব্যবহার ডেটা-সমান্তরাল পাইপলাইনগুলি বাস্তবায়ন, এবং এটি মানে হল আপনি ব্যবহার করে তথ্য প্রক্রিয়াকরণের চাপ বিতরণ করতে পারেন Google মেঘ Dataflow । এই ধাপে, আমরা Apache Beam-এর জন্য ডেটা প্রসেসিং ব্যাক-এন্ড হিসাবে ডেটাফ্লো ব্যবহার করার জন্য Kubeflow অর্কেস্ট্রেটরকে সেট করব।
ডাবল-ক্লিক
pipelineপরিবর্তন ডিরেক্টরি, এবং খোলার জন্য দুবার-ক্লিকconfigs.py। Uncomment সংজ্ঞাGOOGLE_CLOUD_REGIONএবংDATAFLOW_BEAM_PIPELINE_ARGS।
ডাইরেক্টরি এক লেভেল আপ পরিবর্তন করুন। ফাইল তালিকার উপরে ডিরেক্টরির নামে ক্লিক করুন। ডিরেক্টরি নাম পাইপলাইন যা নাম
my_pipelineযদি আপনি পরিবর্তন হয়নি।
খোলার জন্য দুবার-ক্লিক
kubeflow_runner.py। Uncommentbeam_pipeline_args। (এছাড়াও নিশ্চিত বর্তমান মন্তব্য করতেbeam_pipeline_argsআপনি ধাপ 7. যোগ)
এখন পাইপলাইন Dataflow ব্যবহার করার জন্য প্রস্তুত. পাইপলাইন আপডেট করুন এবং একটি এক্সিকিউশন রান তৈরি করুন যেমন আমরা ধাপ 5 এবং 6 এ করেছি।
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
CLI Updating pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. beam runner not found in dsl. CLI Creating a run for pipeline: my_pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. Pipeline "my_pipeline" does not exist.
আপনি আপনার Dataflow কাজ জানতে পারেন ক্লাউড কনসোলে Dataflow ।
ধাপ 9. (ঐচ্ছিক) ক্লাউড এআই প্ল্যাটফর্ম প্রশিক্ষণ এবং KFP সঙ্গে প্রেডিক্সন চেষ্টা করুন
যেমন বিভিন্ন পরিচালিত GCP পরিষেবাগুলির সাথে TFX interoperates প্রশিক্ষণ এবং Prediction জন্য মেঘ এআই প্ল্যাটফর্ম । তুমি তোমার সেট করতে পারেন Trainer উপাদান ক্লাউড এআই প্ল্যাটফর্ম প্রশিক্ষণ, এমএল মডেলের প্রশিক্ষণ জন্য একটি পরিচালিত পরিষেবাটি ব্যবহার করার জন্য। তাছাড়া, যখন আপনার মডেল নির্মিত এবং প্রস্তুত করা হয় সার্ভ করা জন্য, আপনাকে আপনার মডেল ক্লাউড এআই প্ল্যাটফর্ম ভবিষ্যদ্বাণী ভজনা জন্য ধাক্কা পারেন। এই পদক্ষেপে, আমরা আমাদের সেট হবে Trainer এবং Pusher উপাদান ক্লাউড এআই প্ল্যাটফর্ম পরিষেবাগুলি ব্যবহার করতে।
ফাইল সম্পাদনার আগে, আপনি প্রথম এআই প্ল্যাটফর্ম প্রশিক্ষণ ও Prediction API এর সক্রিয় করতে থাকতে পারে।
ডাবল-ক্লিক
pipelineপরিবর্তন ডিরেক্টরি, এবং খোলার জন্য দুবার-ক্লিকconfigs.py। Uncomment সংজ্ঞাGOOGLE_CLOUD_REGION,GCP_AI_PLATFORM_TRAINING_ARGSএবংGCP_AI_PLATFORM_SERVING_ARGS। আমরা আমাদের কাস্টম বিল্ড ধারক ইমেজ ব্যবহার ক্লাউড এআই প্ল্যাটফর্ম প্রশিক্ষণ একটি মডেল প্রশিক্ষণের হবে, তাই আমরা সেট করা উচিতmasterConfig.imageUriমধ্যেGCP_AI_PLATFORM_TRAINING_ARGSহিসাবে একই মানCUSTOM_TFX_IMAGEউপরে।
পরিবর্তন ডিরেক্টরি এক স্তর উপরে, এবং খোলার জন্য দুবার-ক্লিক
kubeflow_runner.py। Uncommentai_platform_training_argsএবংai_platform_serving_args।
পাইপলাইন আপডেট করুন এবং একটি এক্সিকিউশন রান তৈরি করুন যেমন আমরা ধাপ 5 এবং 6 এ করেছি।
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
CLI Updating pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. beam runner not found in dsl. CLI Creating a run for pipeline: my_pipeline Detected Beam. [WARNING] Default engine will be changed to "local" in the near future. Use --engine flag if you intend to use a different orchestrator. Pipeline "my_pipeline" does not exist.
আপনি আপনার প্রশিক্ষণ কাজ জানতে পারেন ক্লাউড এআই প্ল্যাটফর্ম জবস । যদি আপনার পাইপলাইন সফলভাবে সম্পূর্ণ, আপনি আপনার মডেল জানতে পারেন ক্লাউড এআই প্ল্যাটফর্ম মডেল ।
ধাপ 10। পাইপলাইনে আপনার ডেটা ইনজেস্ট করুন
আমরা শিকাগো ট্যাক্সি ডেটাসেট ব্যবহার করে একটি মডেলের জন্য একটি পাইপলাইন তৈরি করেছি৷ এখন আপনার ডেটা পাইপলাইনে রাখার সময়।
GCS বা BigQuery সহ আপনার পাইপলাইন অ্যাক্সেস করতে পারে এমন যেকোনো জায়গায় আপনার ডেটা সংরক্ষণ করা যেতে পারে। আপনার ডেটা অ্যাক্সেস করার জন্য আপনাকে পাইপলাইনের সংজ্ঞা পরিবর্তন করতে হবে।
- আপনার ডেটা ফাইল সংরক্ষণ করা হয় তাহলে, সংশোধন
DATA_PATHমধ্যেkubeflow_runner.pyবাlocal_runner.pyএবং আপনার ফাইল অবস্থান সেট করুন। আপনার ডেটা BigQuery- তে সংরক্ষণ করা হয় তাহলে, সংশোধনBIG_QUERY_QUERYমধ্যেpipeline/configs.pyসঠিকভাবে আপনার ডেটার জন্য কোয়েরি করতে। - মধ্যে বৈশিষ্ট্য যোগ করুন
models/features.py। - পরিবর্তন করুন
models/preprocessing.pyকরতে প্রশিক্ষণের জন্য ইনপুট ডেটা রুপান্তর । - পরিবর্তন করুন
models/keras/model.pyএবংmodels/keras/constants.pyকরার বর্ণনা আপনার এমএল মডেল ।- আপনি একটি অনুমান ভিত্তিক মডেলও ব্যবহার করতে পারেন। পরিবর্তন
RUN_FNধ্রুবক থেকেmodels.estimator.model.run_fnমধ্যেpipeline/configs.py।
- আপনি একটি অনুমান ভিত্তিক মডেলও ব্যবহার করতে পারেন। পরিবর্তন
দয়া করে দেখুন প্রশিক্ষক উপাদান নির্দেশিকা আরো পরিচয়ের জন্য।
পরিষ্কার আপ
এই প্রকল্পে ব্যবহৃত সমস্ত Google মেঘ সম্পদ পরিষ্কার করতে, আপনি পারেন Google মেঘ প্রকল্পটি মুছে আপনি টিউটোরিয়াল জন্য ব্যবহৃত।
বিকল্পভাবে, আপনি প্রতিটি কনসোল পরিদর্শন করে পৃথক সম্পদ পরিষ্কার করতে পারেন:
TensorFlow.org এ দেখুন
Google Colab-এ চালান
GitHub-এ উৎস দেখুন
নোটবুক ডাউনলোড করুন