به انجمن SIG TFX-Addons بپیوندید و به پیشرفت TFX کمک کنید!
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

TFX در خطوط لوله بستر نرم افزاری Cloud

معرفی

این آموزش برای معرفی خطوط لوله TensorFlow Extended (TFX) و Cloud AI Platform طراحی شده است و به شما کمک می کند خطوط یادگیری ماشین خود را در Google Cloud ایجاد کنید. این ادغام با TFX ، خطوط لوله بستر های نرم افزاری AI و Kubeflow و همچنین تعامل با TFX در نوت بوک های مشتری را نشان می دهد.

در پایان این آموزش ، شما یک خط لوله ML ایجاد کرده و اجرا خواهید کرد که در Google Cloud میزبانی می شود. شما می توانید نتایج حاصل از هر اجرا را تجسم کنید و نسب آثار ساخته شده را مشاهده کنید.

شما یک روند معمولی توسعه ML را دنبال خواهید کرد ، شروع به بررسی مجموعه داده ، و در پایان با یک خط لوله کامل کار. در طول راه ، روش های اشکال زدایی و به روزرسانی خط لوله و اندازه گیری عملکرد را کشف خواهید کرد.

مجموعه داده تاکسی شیکاگو

تاکسیتاکسی شیکاگو

شما از مجموعه داده های Taxi Trips استفاده می کنید که توسط City of Chicago منتشر شده است.

می توانید اطلاعات بیشتر در مورد مجموعه داده را در Google BigQuery مطالعه کنید . مجموعه داده کامل را در رابط کاربری BigQuery کاوش کنید.

هدف مدل - طبقه بندی باینری

آیا مشتری بیشتر یا کمتر از 20٪ راهنمایی می کند؟

1. یک پروژه Google Cloud راه اندازی کنید

1.a محیط خود را در Google Cloud تنظیم کنید

برای شروع ، به یک حساب Google Cloud نیاز دارید. اگر قبلاً آن را دارید ، از ایجاد پروژه جدید عبور نکنید.

  1. به Google Cloud Console بروید .

  2. با شرایط و ضوابط Google Cloud موافقت کنید

  3. اگر می خواهید با یک حساب آزمایشی رایگان شروع کنید ، بر روی سعی کنید رایگان کلیک کنید (یا شروع به کار رایگان ).

    1. کشورت را انتخاب کن.

    2. با شرایط خدمات موافقت کنید.

    3. جزئیات صورتحساب را وارد کنید.

      در این مرحله هزینه ای از شما دریافت نمی شود. اگر پروژه Google Cloud دیگری ندارید ، می توانید این آموزش را بدون عبور از محدودیت Google Cloud Free Tier که شامل حداکثر 8 هسته همزمان کار می کند ، کامل کنید.

1.b یک پروژه جدید ایجاد کنید.

  1. از داشبورد اصلی Google Cloud ، روی منوی کشویی پروژه در کنار سرصفحه Google Cloud Platform کلیک کنید و New Project را انتخاب کنید.
  2. به پروژه خود نام دهید و سایر جزئیات پروژه را وارد کنید
  3. پس از ایجاد پروژه ، آن را از لیست کشویی پروژه انتخاب کنید.

2. خط لوله بستر های نرم افزاری AI را در یک خوشه جدید Kubernetes تنظیم و استقرار دهید

  1. به صفحه خوشه های خط لوله بستر های نرم افزاری AI بروید.

    در زیر فهرست اصلی پیمایش: ≡> بستر های نرم افزاری هوش مصنوعی> خطوط لوله

  2. برای ایجاد خوشه جدید + New New Instance را کلیک کنید.

  3. در صفحه نمای کلی خطوط لوله Kubeflow ، روی پیکربندی کلیک کنید.

    قبل از حرکت باید چند دقیقه صبر کنید ، در حالی که API های موتور Kubernetes برای شما فعال شده اند.

  4. در صفحه خطوط لوله Kubeflow :

    1. یک منطقه (یا "منطقه") را برای خوشه خود انتخاب کنید.

    2. مهم کادر با عنوان مجاز به دسترسی به API های ابری زیر را علامت بزنید. (این مورد برای دسترسی این خوشه به سایر قسمتهای پروژه شما لازم است. اگر این مرحله را از دست ندهید ، بعداً رفع آن کمی مشکل است.)

    3. روی ایجاد کلیک کنید و چند دقیقه صبر کنید تا خوشه ایجاد شود.

    4. یک نام و نام نمونه را انتخاب کنید (استفاده از پیش فرض ها خوب است). لازم نیست استفاده از فضای ذخیره سازی مدیریت شده را بررسی کنید .

    5. روی استقرار کلیک کنید و چند لحظه صبر کنید تا خط لوله مستقر شود. با استقرار خطوط لوله Kubeflow ، شما شرایط خدمات را می پذیرید.

3. نمونه Cloud AI Platform Notebook را تنظیم کنید.

  1. به صفحه AI Platform Notebooks بروید .

    در فهرست اصلی پیمایش: ≡ -> بستر های نرم افزاری هوش مصنوعی -> نوت بوک ها

  2. در صورت درخواست ، Compute Engine API را فعال کنید.

  3. با نصب TensorFlow 2.1 (یا بالاتر) یک نمونه جدید ایجاد کنید.

    نمونه جدید -> TensorFlow 2.1 -> بدون GPU

    برای ماندن در محدوده طبقه آزاد ، تنظیمات پیش فرض را در اینجا قبول نکنید شما باید تعداد vCPU موجود در این نمونه را از 4 به 2 کاهش دهید:

    1. در پایین فرم نمونه نوت بوک جدید ، سفارشی سازی را انتخاب کنید.
    2. پیکربندی دستگاه را با 1 یا 2 vCPU انتخاب کنید.

4. نوت بوک شروع را راه اندازی کنید

  1. به صفحه خوشه های خطوط لوله بستر AI بروید.

    در زیر فهرست اصلی پیمایش: ≡ -> بستر های نرم افزاری هوش مصنوعی -> خطوط لوله

  2. در خط خوشه ای که در این آموزش استفاده می کنید ، روی Open Pipelines Dashboard کلیک کنید.

    داشبورد باز

  3. در صفحه شروع ، روی Open TF 2.1 Notebook کلیک کنید.

  4. نمونه Notebook مورد استفاده خود را برای این آموزش انتخاب کرده و ادامه دهید .

    انتخاب نوت بوک

5- کار در Notebook را ادامه دهید

نصب

نوت بوک شروع با نصب TFX و Kubeflow Pipelines (KFP) در VM که آزمایشگاه Jupyter در حال اجرا است ، همراه با ماژول Skaffold شروع می شود:

tf و kfp را نصب کنید

سپس PATH تا شامل دایرکتوری باینری Python کاربر و یک دایرکتوری شامل skaffold :

تعیین مسیر

سپس بررسی می کند کدام نسخه از TFX نصب شده است ، واردات را انجام می دهد و شناسه پروژه را تنظیم و چاپ می کند:

نسخه پایتون را بررسی کرده و وارد کنید

با خدمات Google Cloud خود ارتباط برقرار کنید

پیکربندی خط لوله به شناسه پروژه شما نیاز دارد که می توانید آن را از طریق دفترچه یادداشت دریافت کرده و به عنوان یک متغیر محیطی تنظیم کنید.

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

اکنون نقطه پایانی خوشه KFP خود را تنظیم کنید.

این را می توان از URL داشبورد خطوط لوله پیدا کرد. به داشبورد خط لوله Kubeflow بروید و به URL نگاه کنید. نقطه پایانی هر آنچه در URL است پس از https:// ، تا googleusercontent.com و از جمله googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

سپس نوت بوک یک نام منحصر به فرد برای تصویر سفارشی Docker تنظیم می کند:

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. الگویی را در فهرست پروژه خود کپی کنید

سلول نوت بوک بعدی را ویرایش کنید تا نام خط لوله خود را تنظیم کنید. در این آموزش از my_pipeline استفاده my_pipeline .

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"deployed_notebook",PIPELINE_NAME)

سپس نوت بوک با استفاده از tfx CLI الگوی خط لوله را کپی می کند. این آموزش برای انجام طبقه بندی باینری از مجموعه داده تاکسی شیکاگو استفاده می کند ، بنابراین الگو مدل را بر روی taxi :

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

سپس نوت بوک متن CWD خود را به فهرست پروژه تغییر می دهد:

%cd {PROJECT_DIR}

پرونده های خط لوله را مرور کنید

در سمت چپ نوت بوک Cloud AI Platform ، باید یک مرورگر فایل را ببینید. باید یک دایرکتوری با نام خط لوله شما وجود داشته باشد ( my_pipeline ). آن را باز کنید و پرونده ها را مشاهده کنید. (همچنین می توانید آنها را باز کرده و از محیط دفترچه یادداشت نیز ویرایش کنید.)

# You can also list the files from the shell
 ls

دستور tfx template copy بالا یک داربست اساسی از پرونده هایی ایجاد می کند که خط لوله را ایجاد می کنند. اینها شامل کدهای منبع پایتون ، داده های نمونه و نوت بوک های مشتری است. اینها برای این مثال خاص در نظر گرفته شده اند. برای خطوط لوله شخصی شما اینها پرونده های پشتیبانی مورد نیاز خط لوله شما هستند.

در اینجا توضیح مختصری از پرونده های پایتون آورده شده است.

  • pipeline - این فهرست شامل تعریف خط لوله است
    • configs.py - ثابتهای متداول را برای دونده های خط لوله تعریف می کند
    • pipeline.py - اجزای TFX و خط لوله را تعریف می کند
  • models - این فهرست شامل تعاریف مدل ML است.
    • features.py features_test.py - ویژگی های مدل را تعریف می کند
    • preprocessing.py / preprocessing_test.py - مشاغل پیش پردازش را با استفاده از tf::Transform تعریف می کند tf::Transform
    • estimator - این فهرست شامل یک مدل مبتنی بر برآوردگر است.
      • constants.py - ثابت های مدل را تعریف می کند
      • model.py / model_test.py - مدل DNN را با استفاده از برآوردگر TF تعریف می کند
    • keras - این فهرست شامل یک مدل مبتنی بر Keras است.
      • constants.py - ثابت های مدل را تعریف می کند
      • model.py / model_test.py - مدل DNN را با استفاده از Keras تعریف می کند
  • beam_dag_runner.py / kubeflow_dag_runner.py - تعریف دونده برای هر موتور ارکستراسیون

7. اولین خط لوله TFX خود را روی Kubeflow اجرا کنید

نوت بوک با استفاده از دستور tfx run CLI خط لوله را tfx run .

به فضای ذخیره سازی متصل شوید

خطوط لوله در حال اجرا مصنوعاتی را ایجاد می کنند که باید در ML-Metadata ذخیره شوند. مصنوعات مربوط به محموله های بار (loadload) هستند ، پرونده هایی که باید در یک سیستم پرونده ذخیره شوند یا فضای ذخیره سازی را مسدود کنند. برای این آموزش ، ما با استفاده از سطلی که به طور خودکار هنگام راه اندازی ایجاد شده است ، از GCS برای ذخیره بارهای فراداده خود استفاده خواهیم کرد. نام آن به صورت <your-project-id>-kubeflowpipelines-default خواهد بود.

خط لوله را ایجاد کنید

نوت بوک نمونه داده های ما را در سطل GCS بارگذاری می کند تا بعداً بتوانیم از آنها در خط تولید خود استفاده کنیم.

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/data.csv

سپس نوت بوک از دستور tfx pipeline create برای ایجاد خط لوله استفاده می کند.

!tfx pipeline create  \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT} \
--build-target-image={CUSTOM_TFX_IMAGE}

هنگام ایجاد یک خط لوله ، Dockerfile و build.yaml برای ساخت تصویر Docker تولید می شود. فراموش نکنید که این پرونده ها را به همراه سایر پرونده های منبع به سیستم کنترل منبع خود اضافه کنید (به عنوان مثال git).

خط لوله را اجرا کنید

سپس نوت بوک از دستور tfx run create برای شروع اجرای اجرای خط لوله استفاده می کند. همچنین این اجرا را در فهرست آزمایشات در داشبورد خطوط لوله Kubeflow مشاهده خواهید کرد.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

می توانید خط لوله خود را از داشبورد خطوط لوله Kubeflow مشاهده کنید.

8. داده های خود را اعتبار سنجی کنید

اولین کار در هر پروژه علوم داده یا ML درک و تمیز کردن داده ها است.

  • انواع داده ها را برای هر ویژگی درک کنید
  • به دنبال ناهنجاری ها و مقادیر از دست رفته باشید
  • توزیع هر ویژگی را درک کنید

اجزاء

اجزای دادهاجزای داده

  • GenG مجموعه داده ورودی را بلعیده و تقسیم می کند.
  • StatisticsGen آمار مجموعه داده را محاسبه می کند.
  • SchemaGen SchemaGen آمارها را بررسی می کند و یک طرحواره داده ایجاد می کند.
  • ExampleValidator به دنبال ناهنجاری ها و مقادیر از دست رفته در مجموعه داده است.

در ویرایشگر پرونده آزمایشگاه Jupyter:

در pipeline / pipeline.py خطوطی را که این اجزا را به خط لوله شما اضافه می کند از حالت کامنت خارج کنید:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

( ExampleGen قبلاً هنگام کپی کردن پرونده های الگو فعال شده بود.)

خط لوله را به روز کنید و دوباره آن را اجرا کنید

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

خط لوله را بررسی کنید

برای Kubeflow Orchestrator ، از داشبورد KFP بازدید کنید و خروجی های خط لوله را در صفحه برای اجرای خط لوله خود پیدا کنید. روی برگه "آزمایشات" در سمت چپ و "همه اجرا می شود" در صفحه آزمایشات کلیک کنید. شما باید بتوانید اجرا را با نام خط لوله خود پیدا کنید.

مثال پیشرفته تر

مثالی که در اینجا ارائه شده فقط برای شروع کار است. برای مثال پیشرفته تر ، به Colas Validation Data TensorFlow مراجعه کنید .

برای اطلاعات بیشتر در مورد استفاده از TFDV برای کاوش و اعتبار سنجی یک مجموعه داده ، به مثالها در tensorflow.org مراجعه کنید .

9. مهندسی ویژگی

با مهندسی ویژگی می توانید کیفیت پیش بینی داده های خود را افزایش داده و یا ابعاد آن را کاهش دهید.

  • صلیب های ویژه
  • واژگان
  • جاسازی ها
  • PCA
  • رمزگذاری دسته بندی شده

یکی از مزایای استفاده از TFX این است که شما یک بار کد تحول خود را می نویسید ، و تغییرات ایجاد شده بین آموزش و خدمت سازگار خواهد بود.

اجزاء

تبدیل

  • Transform مهندسی ویژگی را روی مجموعه داده انجام می دهد.

در ویرایشگر پرونده آزمایشگاه Jupyter:

در pipeline / pipeline.py ، خطی را که به Transform to the pipeline اضافه می شود پیدا کرده و از حالت کامنت خارج کنید.

# components.append(transform)

خط لوله را به روز کنید و دوباره آن را اجرا کنید

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

خروجی های خط لوله را بررسی کنید

برای Kubeflow Orchestrator ، از داشبورد KFP بازدید کنید و خروجی های خط لوله را در صفحه برای اجرای خط لوله خود پیدا کنید. روی برگه "آزمایشات" در سمت چپ و "همه اجرا می شوند" در صفحه آزمایشات کلیک کنید. شما باید بتوانید اجرا را با نام خط لوله خود پیدا کنید.

مثال پیشرفته تر

مثالی که در اینجا ارائه شده فقط برای شروع کار است. برای مثال پیشرفته تر ، به TensorFlow Transform Colab مراجعه کنید .

10. آموزش

با داده های خوب ، تمیز و تبدیل شده خود ، یک مدل TensorFlow را آموزش دهید.

  • تحولات مرحله قبل را وارد کنید تا به طور مداوم اعمال شوند
  • نتایج را به عنوان یک مدل ذخیره شده برای تولید ذخیره کنید
  • با استفاده از TensorBoard روند آموزش را تجسم و کاوش کنید
  • همچنین یک EvalSavedModel را برای تجزیه و تحلیل عملکرد مدل ذخیره کنید

اجزاء

  • مربی یک مدل TensorFlow را آموزش می دهد.

در ویرایشگر پرونده آزمایشگاه Jupyter:

در pipeline / pipeline.py ، Trainer را به خط لوله اضافه کنید و از آن کامنت بگیرید:

# components.append(trainer)

خط لوله را به روز کنید و دوباره آن را اجرا کنید

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

خروجی های خط لوله را بررسی کنید

برای Kubeflow Orchestrator ، از داشبورد KFP بازدید کنید و خروجی های خط لوله را در صفحه برای اجرای خط لوله خود پیدا کنید. روی برگه "آزمایشات" در سمت چپ و "همه اجرا می شوند" در صفحه آزمایشات کلیک کنید. شما باید بتوانید اجرا را با نام خط لوله خود پیدا کنید.

مثال پیشرفته تر

مثالی که در اینجا ارائه شده فقط برای شروع کار است. برای مثال پیشرفته تر ، به آموزش TensorBoard مراجعه کنید .

11. تجزیه و تحلیل عملکرد مدل

درک بیش از معیارهای سطح بالا.

  • کاربران فقط برای درخواست های خود عملکرد مدل را تجربه می کنند
  • عملکرد ضعیف برش داده ها را می توان با معیارهای سطح بالا پنهان کرد
  • انصاف مدل مهم است
  • اغلب زیر مجموعه های کلیدی کاربران یا داده ها بسیار مهم هستند و ممکن است کم باشند
    • عملکرد در شرایط بحرانی اما غیرمعمول
    • عملکرد برای مخاطبان اصلی مانند اینفلوئنسرها
  • اگر مدلی را که اکنون در حال تولید است جایگزین می کنید ، ابتدا از بهتر بودن مدل جدید اطمینان حاصل کنید

اجزاء

  • ارزیاب تجزیه و تحلیل عمیق نتایج آموزش را انجام می دهد.

در ویرایشگر پرونده آزمایشگاه Jupyter:

در pipeline / pipeline.py ، خطی را که ارزیابی کننده را به خط لوله اضافه می کند پیدا کرده و از حالت کامنت خارج کنید:

components.append(evaluator)

خط لوله را به روز کنید و دوباره آن را اجرا کنید

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

خروجی های خط لوله را بررسی کنید

برای Kubeflow Orchestrator ، از داشبورد KFP بازدید کنید و خروجی های خط لوله را در صفحه برای اجرای خط لوله خود پیدا کنید. روی برگه "آزمایشات" در سمت چپ و "همه اجرا می شود" در صفحه آزمایشات کلیک کنید. باید بتوانید اجرا را با نام خط لوله خود پیدا کنید.

12. خدمت مدل

اگر مدل جدید آماده است ، آنرا چنین کنید.

  • هل دهنده SavedModels را در مکان های شناخته شده مستقر می کند

اهداف استقرار مدل های جدید را از مکان های شناخته شده دریافت می کنند

  • سرویس TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow هاب

اجزاء

  • Pusher مدل را در زیرساخت های سرویس دهنده مستقر می کند.

در ویرایشگر پرونده آزمایشگاه Jupyter:

در pipeline / pipeline.py ، خطی را که Pusher به خط لوله اضافه می کند پیدا کرده و از حالت کامنت خارج کنید:

# components.append(pusher)

خروجی های خط لوله را بررسی کنید

برای Kubeflow Orchestrator ، از داشبورد KFP بازدید کنید و خروجی های خط لوله را در صفحه برای اجرای خط لوله خود پیدا کنید. روی برگه "آزمایشات" در سمت چپ و "همه اجرا می شوند" در صفحه آزمایشات کلیک کنید. شما باید بتوانید اجرا را با نام خط لوله خود پیدا کنید.

اهداف استقرار موجود

شما اکنون مدل خود را آموزش داده و اعتبار سنجی کرده اید و مدل شما اکنون آماده تولید است. اکنون می توانید مدل خود را در هر یک از اهداف استقرار TensorFlow مستقر کنید ، از جمله:

  • TensorFlow خدمت ، برای ارائه مدل خود در یک سرور یا مزرعه سرور و پردازش درخواست های استنباط REST و / یا gRPC.
  • TensorFlow Lite ، برای قرار دادن مدل خود در یک برنامه تلفن همراه بومی Android یا iOS ، یا در یک برنامه Raspberry Pi ، IoT یا میکروکنترلر.
  • TensorFlow.js ، برای اجرای مدل خود در یک مرورگر وب یا برنامه Node.JS.

نمونه های پیشرفته تر

مثالی که در بالا ارائه شد در واقع فقط برای شروع کار است. در زیر چند نمونه از ادغام با سایر خدمات Cloud آورده شده است.

ملاحظات مربوط به منابع خطوط لوله Kubeflow

بسته به نیازهای حجم کار شما ، پیکربندی پیش فرض برای استقرار خطوط لوله Kubeflow ممکن است نیاز شما را برآورده کند یا نتواند. می توانید پیکربندی های منابع خود را با استفاده از pipeline_operator_funcs در تماس خود با KubeflowDagRunnerConfig .

pipeline_operator_funcs لیستی از موارد OpFunc که همه موارد تولید شده ContainerOp در مشخصات خط لوله KFP که از KubeflowDagRunner جمع آوری شده است ، KubeflowDagRunner .

به عنوان مثال ، برای پیکربندی حافظه می توانیم از set_memory_request برای اعلام میزان حافظه مورد نیاز استفاده کنیم. یک روش معمول برای این کار ایجاد یک بسته بندی برای set_memory_request و استفاده از آن برای افزودن به لیست خط لوله OpFunc :

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

توابع پیکربندی منابع مشابه شامل موارد زیر است:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

BigQueryExampleGen امتحان کنید

BigQuery یک انبار داده ابری بدون سرور ، بسیار مقیاس پذیر و مقرون به صرفه است. BigQuery می تواند به عنوان منبعی برای مثال های آموزشی در TFX استفاده شود. در این مرحله ، BigQueryExampleGen به خط لوله اضافه خواهیم کرد.

در ویرایشگر پرونده آزمایشگاه Jupyter:

برای باز کردن pipeline.py دوبار کلیک کنید . CsvExampleGen را نظر داده و خطی را که نمونه ای از BigQueryExampleGen ایجاد می کند ، از CsvExampleGen کامنت خارج کنید. همچنین باید استدلال query از تابع create_pipeline را از حالت create_pipeline کنید.

ما باید مشخص کنیم که کدام پروژه GCP برای BigQuery استفاده شود و این با تنظیم - --project در beam_pipeline_args هنگام ایجاد خط لوله انجام می شود.

برای باز کردن configs.py دوبار کلیک کنید . تعریف BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS و BIG_QUERY_QUERY . شما باید شناسه پروژه و مقدار منطقه را در این فایل با مقادیر صحیح برای پروژه GCP جایگزین کنید.

فهرست را یک سطح به بالا تغییر دهید. روی نام فهرست بالای لیست پرونده کلیک کنید. نام شاخه نام خط لوله است که اگر نام خط لوله را تغییر my_pipeline ، my_pipeline است.

دوبار کلیک کنید تا kubeflow_dag_runner.py باز kubeflow_dag_runner.py . دو آرگومان query و beam_pipeline_args برای عملکرد create_pipeline .

اکنون خط لوله آماده استفاده از BigQuery به عنوان منبع نمونه است. خط لوله را مانند قبل به روز کنید و همانند مرحله 5 و 6 یک اجرای اجرایی جدید ایجاد کنید.

خط لوله را به روز کنید و دوباره آن را اجرا کنید

# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

گردش داده را امتحان کنید

چندین جز T TFX از Apache Beam برای اجرای خطوط لوله موازی داده استفاده می کنند و این بدان معنی است که شما می توانید بارهای پردازش داده را با استفاده از Google Cloud Dataflow توزیع کنید . در این مرحله ، تنظیم کننده Kubeflow را تنظیم می کنیم تا از Dataflow به عنوان پردازش داده برای Apache Beam استفاده کند.

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

برای تغییر فهرست ، روی pipeline دوبار کلیک کنید و برای باز کردن configs.py ، دوبار کلیک کنید . از تعریف GOOGLE_CLOUD_REGION و DATAFLOW_BEAM_PIPELINE_ARGS .

فهرست را یک سطح به بالا تغییر دهید. روی نام دایرکتوری بالای لیست پرونده کلیک کنید. نام دایرکتوری نام خط لوله است که اگر تغییر نکرده اید my_pipeline است.

برای باز کردن kubeflow_dag_runner.py دوبار کلیک کنید . beam_pipeline_args . (همچنین مطمئن شوید که در مورد beam_pipeline_args فعلی که در مرحله 7 اضافه کرده اید نظر دهید)

خط لوله را به روز کنید و دوباره آن را اجرا کنید

# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

مشاغل Dataflow خود را می توانید در Dataflow در Cloud Console پیدا کنید .

آموزش و پیش بینی Cloud AI Platform را با KFP امتحان کنید

TFX با چندین سرویس GCP مدیریت شده مانند Cloud AI Platform برای آموزش و پیش بینی همکاری می کند . می توانید م componentلفه Trainer خود را طوری تنظیم کنید که از Cloud AI Platform Training ، یک سرویس مدیریت شده برای آموزش مدل های ML استفاده کند. علاوه بر این ، هنگامی که مدل شما ساخته شده و آماده ارائه است ، می توانید مدل خود را برای خدمت به Cloud AI Platform Prediction فشار دهید. در این مرحله ، م Pusher لفه Trainer and Pusher خود را تنظیم می کنیم تا از خدمات Cloud AI Platform استفاده کند.

قبل از ویرایش فایل ها ، ممکن است ابتدا مجبور باشید AI Platform Training & Prediction API را فعال کنید .

برای تغییر فهرست ، روی pipeline دوبار کلیک کنید و برای باز کردن configs.py ، دوبار کلیک کنید . از تعریف GOOGLE_CLOUD_REGION ، GCP_AI_PLATFORM_TRAINING_ARGS و GCP_AI_PLATFORM_SERVING_ARGS . ما برای آموزش مدلی در Cloud AI Platform Training از تصویر ظرف سفارشی ساخته شده خود استفاده خواهیم کرد ، بنابراین باید masterConfig.imageUri در GCP_AI_PLATFORM_TRAINING_ARGS به همان مقدار CUSTOM_TFX_IMAGE بالا تنظیم کنیم.

دایرکتوری را یک سطح بالا تغییر دهید و دوبار کلیک کنید تا kubeflow_dag_runner.py باز kubeflow_dag_runner.py . ai_platform_training_args و ai_platform_serving_args

خط لوله را به روز کنید و دوباره آن را اجرا کنید

# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

مشاغل آموزشی خود را می توانید در Cloud AI Platform Jobs پیدا کنید . اگر خط لوله شما با موفقیت به پایان رسید ، می توانید مدل خود را در Cloud AI Platform Models پیدا کنید.

14. از داده های خود استفاده کنید

در این آموزش ، شما خط لوله ای برای یک مدل با استفاده از مجموعه داده تاکسی شیکاگو ایجاد کرده اید. اکنون سعی کنید داده های خود را در خط لوله قرار دهید. داده های شما را می توان در هر جایی که خط لوله به آن دسترسی دارد ، از جمله Google Cloud Storage ، BigQuery یا پرونده های CSV ذخیره کرد.

برای مطابقت با داده های خود ، باید تعریف خط لوله را اصلاح کنید.

اگر داده های شما در پرونده ها ذخیره شده است

  1. DATA_PATH در kubeflow_dag_runner.py ، مکان را نشان دهید.

اگر داده های شما در BigQuery ذخیره شده است

  1. BIG_QUERY_QUERY در configs.py به عبارت درخواست خود تغییر دهید.
  2. ویژگی ها را در models / features.py .
  3. برای تبدیل داده های ورودی برای آموزش ، models / preprocessing.py را تغییر دهید .
  4. برای توصیف مدل ML خود ، models / keras / model.py و models / keras / constants.py را اصلاح کنید .

درباره مربی بیشتر بیاموزید

برای جزئیات بیشتر در مورد خطوط لوله آموزش به راهنمای م componentلفه Trainer مراجعه کنید.

تمیز کردن

برای پاکسازی تمام منابع Google Cloud استفاده شده در این پروژه ، می توانید پروژه Google Cloud را که برای آموزش استفاده کرده اید حذف کنید .

همچنین می توانید با مراجعه به هر کنسول ، منابع فردی را تمیز کنید: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine