টিএফএক্স সম্পর্কে প্রশ্ন? গুগল আই / ও-তে আমাদের সাথে যোগ দিন!

অ্যাপাচি বিম এবং টিএফএক্স

অ্যাপাচি বিম ব্যাচ চালানো এবং স্ট্রিমিং ডেটা প্রসেসিং জবগুলির জন্য একটি কাঠামো সরবরাহ করে যা বিভিন্ন এক্সিকিউশন ইঞ্জিনে চালিত হয়। বেশ কয়েকটি টিএফএক্স লাইব্রেরি চলমান কাজগুলির জন্য মরীচি ব্যবহার করে, যা গণনা ক্লাস্টারগুলিতে একটি উচ্চ ডিগ্রি স্কেলাবিলিটি সক্ষম করে। বিমটিতে বিভিন্ন এক্সিকিউশন ইঞ্জিন বা "রানার" এর জন্য সমর্থন অন্তর্ভুক্ত রয়েছে, যার মধ্যে রয়েছে প্রত্যক্ষ রানার যা একটি একক কম্পিউট নোডে চলে এবং এটি বিকাশ, পরীক্ষা, বা ছোট স্থাপনার জন্য খুব কার্যকর। মরীচি একটি বিমূর্ততা স্তর সরবরাহ করে যা কোড পরিবর্তন ছাড়াই টিএফএক্সকে কোনও সমর্থিত রানারে চালাতে সক্ষম করে। টিএফএক্স বিম পাইথন এপিআই ব্যবহার করে, সুতরাং এটি রানারদের মধ্যেই সীমাবদ্ধ যা পাইথন এপিআই দ্বারা সমর্থিত।

স্থাপনা এবং স্কেলিবিলিটি

ওয়ার্কলোডের প্রয়োজনীয়তাগুলি বাড়ার সাথে সাথে বিম বড় বড় গণনা ক্লাস্টারগুলিতে খুব বড় মোতায়েনের স্কেল করতে পারে। এটি কেবল অন্তর্নিহিত রানারের স্কেলিবিলিটি দ্বারা সীমাবদ্ধ। বড় মোতায়েনের দৌড়বিদরা সাধারণত কন্টেইনার অর্কেস্ট্রেশন সিস্টেমে যেমন কুবেরনেটস বা অ্যাপাচি মেসোসে স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন মোতায়েন, স্কেলিং এবং পরিচালনার জন্য মোতায়েন করা হবে।

অ্যাপাচি বিমের আরও তথ্যের জন্য অ্যাপাচি বিমের ডকুমেন্টেশন দেখুন।

গুগল ক্লাউড ব্যবহারকারীদের জন্য, ডেটাফ্লো হ'ল প্রস্তাবিত রানার, যা সংস্থার অটোস্কলিং, গতিশীল কাজের পুনরায় ভারসাম্য রক্ষা, অন্যান্য গুগল ক্লাউড পরিষেবাদির সাথে গভীর সংহতকরণ, অন্তর্নির্মিত সুরক্ষা এবং পর্যবেক্ষণের মাধ্যমে সার্ভারলেস এবং ব্যয় কার্যকর প্ল্যাটফর্ম সরবরাহ করে।

কাস্টম পাইথন কোড এবং নির্ভরতা

টিএফএক্স পাইপলাইনে মরীচি ব্যবহারের একটি উল্লেখযোগ্য জটিলতা হ'ল কাস্টম কোড এবং / অথবা অতিরিক্ত পাইথন মডিউলগুলি থেকে প্রয়োজনীয় নির্ভরতাগুলি পরিচালনা করা। এটি কখন সমস্যা হতে পারে তার কয়েকটি উদাহরণ এখানে দেওয়া হল:

  • প্রিপ্রোসেসিং_ফএন ব্যবহারকারীর নিজস্ব পাইথন মডিউলটি উল্লেখ করতে হবে
  • মূল্যায়নকারী উপাদানটির জন্য একটি কাস্টম এক্সট্র্যাক্টর
  • কাস্টম মডিউলগুলি যা একটি টিএফএক্স উপাদান থেকে উপ-শ্রেণিবদ্ধ

টিএফএক্স পাইথন নির্ভরতা পরিচালনা করতে পাইথন পাইপলাইন নির্ভরতা পরিচালনার জন্য বিমের সমর্থন নির্ভর করে। বর্তমানে এটি পরিচালনা করার দুটি উপায় রয়েছে:

  1. পাইথন কোড এবং উত্স প্যাকেজ হিসাবে নির্ভরশীলতা সরবরাহ করা
  2. [কেবলমাত্র ডেটাফ্লো] কর্মী হিসাবে একটি ধারক চিত্র ব্যবহার করা

এগুলি পরবর্তী আলোচনা করা হয়।

উত্স প্যাকেজ হিসাবে পাইথন কোড এবং নির্ভরতা সরবরাহ করা

এটি এমন ব্যবহারকারীদের জন্য প্রস্তাবিত যা:

  1. পাইথন প্যাকেজিং এবং এর সাথে পরিচিত
  2. কেবল পাইথন উত্স কোড ব্যবহার করুন (যেমন, কোনও সি মডিউল বা শেয়ার্ড লাইব্রেরি নেই)।

দয়া করে পাইথন পাইপলাইন নির্ভরতাগুলি পরিচালনা করার জন্য নীচের যে কোনও একটি बीম_পাইপলাইন_আর্গ ব্যবহার করে তা অনুসরণ করুন:

  • --setup_file
  • --extra_package
  • --requirements_file

বিজ্ঞপ্তি: উপরের যে কোনও ক্ষেত্রে, দয়া করে নিশ্চিত করুন যে tfx একই সংস্করণ নির্ভরতা হিসাবে তালিকাভুক্ত হয়েছে।

[কেবলমাত্র ডেটাফ্লো] কোনও শ্রমিকের জন্য একটি ধারক চিত্র ব্যবহার করা

টিএফএক্স 0.26.0 এবং তার উপরের ডেটাফ্লো কর্মীদের জন্য কাস্টম ধারক ইমেজ ব্যবহারের জন্য পরীক্ষামূলক সহায়তা করেছে।

এটি ব্যবহার করতে, আপনাকে এগুলি করতে হবে:

  • একটি ডকার চিত্র তৈরি করুন যাতে tfx এবং ব্যবহারকারীর কাস্টম কোড এবং নির্ভরতা উভয়ই পূর্ব-ইনস্টল থাকে।
    • (1) tfx>=0.26 ব্যবহার করেন এবং (2) তাদের পাইপলাইনগুলি বিকাশের জন্য পাইথন tfx>=0.26 ব্যবহার করেন, এটি করার সহজতম tensorflow/tfx অফিশিয়াল tensorflow/tfx চিত্রের সম্পর্কিত সংস্করণটি প্রসারিত করছে:
# You can use a build-arg to dynamically pass in the
# version of TFX being used to your Dockerfile.

ARG TFX_VERSION
FROM tensorflow/tfx:${TFX_VERSION}
# COPY your code and dependencies in
  • ডেটাফ্লো দ্বারা ব্যবহৃত প্রকল্পের মাধ্যমে অ্যাক্সেসযোগ্য একটি ধারক ইমেজ রেজিস্ট্রিতে নির্মিত চিত্রটি পুশ করুন।
    • গুগল ক্লাউড ব্যবহারকারীরা ক্লাউড বিল্ড ব্যবহারের বিষয়ে বিবেচনা করতে পারেন যা উপরের পদক্ষেপগুলিতে দুর্দান্তভাবে স্বয়ংক্রিয়ভাবে চলে।
  • নিম্নলিখিত beam_pipeline_args :
beam_pipeline_args.extend([
    '--runner=DataflowRunner',
    '--project={project-id}',
    '--worker_harness_container_image={image-ref}',
    '--experiments=use_runner_v2',
])

TODO (b / 171733562): ডেটাফ্রোতে ডিফল্ট হয়ে গেলে Use_runner_v2 সরান।

টোডো (বি / 179738639): https://issues.apache.org/jira/browse/BEAM-5440 এর পরে স্থানীয়ভাবে কাস্টম ধারক কীভাবে পরীক্ষা করতে হয় তার জন্য ডকুমেন্টেশন তৈরি করুন

বিম পাইপলাইন যুক্তি

বেশ কয়েকটি টিএফএক্স উপাদান বিতরণ করা ডেটা প্রক্রিয়াকরণের জন্য বিমের উপর নির্ভর করে। এগুলি beam_pipeline_args পাইপলাইন_আর্গ দিয়ে কনফিগার করা হয়েছে যা পাইপলাইন তৈরির সময় নির্দিষ্ট করা হয়েছে:

from tfx.orchestration import pipeline
my_pipeline = pipeline.Pipeline(
    ...,
    beam_pipeline_args=[...])

টিএফএক্স 0.30 এবং with_beam_pipeline_args একটি উপাদান ইন্টারফেস যুক্ত করেছে , with_beam_pipeline_args , উপাদান হিসাবে প্রতি পাইপলাইন স্তরের বিম with_beam_pipeline_args প্রসারিত করার জন্য:

from tfx.components import CsvExampleGen
example_gen = CsvExampleGen(input_base=data_root).with_beam_pipeline_args([...])