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

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

স্থাপনা এবং পরিমাপযোগ্যতা

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

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

Google মেঘ ব্যবহারকারীদের জন্য, Dataflow প্রস্তাবিত রানার, যা সম্পদ, গতিশীল কাজ rebalancing অন্যান্য Google মেঘ পরিষেবার সঙ্গে গভীর সমাকলনের autoscaling মাধ্যমে একটি serverless এবং খরচ কার্যকর প্ল্যাটফর্ম প্রদান করে, বিল্ট-ইন নিরাপত্তা, এবং পর্যবেক্ষণ করা হয়।

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

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

  • preprocessing_fn-কে ব্যবহারকারীর নিজস্ব পাইথন মডিউল উল্লেখ করতে হবে
  • মূল্যায়নকারী উপাদানের জন্য একটি কাস্টম এক্সট্র্যাক্টর
  • কাস্টম মডিউল যা একটি TFX উপাদান থেকে সাব-ক্লাস করা হয়

TFX জন্য রশ্মি সমর্থন উপর নির্ভর পাইথন পাইপলাইন অধীনস্থ ম্যানেজিং পাইথন নির্ভরতা হ্যান্ডেল করতে। বর্তমানে এটি পরিচালনা করার দুটি উপায় রয়েছে:

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

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

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

এটি ব্যবহারকারীদের জন্য সুপারিশ করা হয় যারা:

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

মধ্যে পাথ এক অনুসরন করুন পাইথন পাইপলাইন অধীনস্থ ম্যানেজিং নিম্নলিখিত beam_pipeline_args এই ব্যবহার প্রদান:

  • --সেটআপ_ফাইল
  • --অতিরিক্ত_প্যাকেজ
  • --requirements_file

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

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

TFX 0.26.0 এবং উপরোক্ত ব্যবহার করার জন্য পরীক্ষামূলক সমর্থন আছে কাস্টম ধারক ইমেজ Dataflow শ্রমিকদের জন্য।

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

  • একটি Docker ইমেজ যা উভয় হয়েছে বিল্ড tfx এবং ব্যবহারকারীদের কাস্টম কোড এবং নির্ভরতা আগে থেকে ইনস্টল।
    • ব্যবহারকারী যারা (1) ব্যবহারের জন্য tfx>=0.26 এবং (2) পাইথন 3.7 ব্যবহার তাদের পাইপলাইনগুলি বিকাশ, এই কাজ করতে সবচেয়ে সহজ উপায় কর্মকর্তা সংশ্লিষ্ট সংস্করণ ব্যাপ্ত হয় 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
  • একটি ধারক ইমেজ রেজিস্ট্রিতে নির্মিত চিত্রটিকে পুশ করুন যা ডেটাফ্লো দ্বারা ব্যবহৃত প্রকল্প দ্বারা অ্যাক্সেসযোগ্য।
    • Google মেঘ ব্যবহারকারীদের ব্যবহারের বিষয়ে বিবেচনা করতে ক্লাউড বিল্ড যা চমত্কারভাবে পদক্ষেপ উপরে স্বয়ংক্রিয়রূপে।
  • নিম্নলিখিত প্রদান 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): dataflow এর জন্য ডিফল্ট হয়ে গেলে use_runner_v2 সরান।

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

বিম পাইপলাইন আর্গুমেন্টস

বিতরণকৃত ডেটা প্রক্রিয়াকরণের জন্য বেশ কিছু TFX উপাদান বীমের উপর নির্ভর করে। তারা সঙ্গে কনফিগার করা হয় beam_pipeline_args , যা পাইপলাইন নির্মাণের সময় সময় নির্ধারিত হয়:

my_pipeline = Pipeline(
    ...,
    beam_pipeline_args=[...])

TFX 0.30 এবং উপরোক্ত, একটি ইন্টারফেস যোগ করা with_beam_pipeline_args , কম্পোনেন্ট প্রতি পাইপলাইন স্তর মরীচি args ব্যাপ্ত জন্য:

example_gen = CsvExampleGen(input_base=data_root).with_beam_pipeline_args([...])