SIG TFX-Addons কমিউনিটিতে যোগ দিন এবং TFX কে আরও ভাল করতে সাহায্য করুন! SIG TFX-Addons- এ যোগ দিন

টিউনার টিএফএক্স পাইপলাইন উপাদান

টিউনার উপাদানটি মডেলের হাইপারপ্যারামিটারগুলিকে সুর দেয়।

টিউনার উপাদান এবং কেরাসটুনার লাইব্রেরি

টিউনার উপাদান হাইপারপ্যারামিটারগুলি সুর ​​করার জন্য পাইথন কেরাসটুনার এপিআইর ব্যাপক ব্যবহার করে।

উপাদান

টিউনার লাগে:

  • প্রশিক্ষণ এবং eval জন্য ব্যবহৃত tf. উদাহরণ।
  • কোনও ব্যবহারকারী মডিউল ফাইল (বা মডিউল এফএন) সরবরাহ করেছেন যা মডেল সংজ্ঞা, হাইপারপ্যারমিটার অনুসন্ধানের স্থান, উদ্দেশ্য ইত্যাদি সহ টিউনিং যুক্তিকে সংজ্ঞায়িত করে ines
  • ট্রেন আরগস এবং ইওল আরগগুলির প্রোটবুফ সংজ্ঞা।
  • ( Ptionচ্ছিক ) টিউনিং আরোগুলির প্রোটোবুফ সংজ্ঞা।
  • (Ptionচ্ছিক) একটি প্রবাহ ট্রান্সফর্ম উপাদান দ্বারা উত্পাদিত ট্রান্সফর্ম গ্রাফ।
  • (Ptionচ্ছিক) একটি স্কিমাজেন পাইপলাইন উপাদান দ্বারা নির্মিত ডেটা স্কিমা এবং বিকাশকারী দ্বারা বিকল্পভাবে পরিবর্তিত।

প্রদত্ত ডেটা, মডেল এবং উদ্দেশ্য সহ, টিউনার হাইপারপ্যারামিটারগুলি সুর করে এবং সেরা ফলাফলটি নির্গত করে।

নির্দেশনা

টিউনারের জন্য নিম্নলিখিত স্বাক্ষরযুক্ত একটি ব্যবহারকারী মডিউল ফাংশন tuner_fn প্রয়োজনীয়:

...
from kerastuner.engine import base_tuner

TunerFnResult = NamedTuple('TunerFnResult', [('tuner', base_tuner.BaseTuner),
                                             ('fit_kwargs', Dict[Text, Any])])

def tuner_fn(fn_args: FnArgs) -> TunerFnResult:
  """Build the tuner using the KerasTuner API.
  Args:
    fn_args: Holds args as name/value pairs.

      - working_dir: working dir for tuning.
      - train_files: List of file paths containing training tf.Example data.
      - eval_files: List of file paths containing eval tf.Example data.
      - train_steps: number of train steps.
      - eval_steps: number of eval steps.
      - schema_path: optional schema of the input data.
      - transform_graph_path: optional transform graph produced by TFT.
  Returns:
    A namedtuple contains the following:
      - tuner: A BaseTuner that will be used for tuning.
      - fit_kwargs: Args to pass to tuner's run_trial function for fitting the
                    model , e.g., the training and validation dataset. Required
                    args depend on the above tuner's implementation.
  """
  ...

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

ট্রেনার টিউনারের আউটপুট হাইপারপ্যারামিটারগুলিকে ইনপুট হিসাবে নিতে পারে এবং সেটিকে তার ব্যবহারকারী মডিউল কোডে ব্যবহার করতে পারে। পাইপলাইন সংজ্ঞাটি এর মতো দেখাচ্ছে:

...
tuner = Tuner(
    module_file=module_file,  # Contains `tuner_fn`.
    examples=transform.outputs['transformed_examples'],
    transform_graph=transform.outputs['transform_graph'],
    train_args=trainer_pb2.TrainArgs(num_steps=20),
    eval_args=trainer_pb2.EvalArgs(num_steps=5))

trainer = Trainer(
    module_file=module_file,  # Contains `run_fn`.
    examples=transform.outputs['transformed_examples'],
    transform_graph=transform.outputs['transform_graph'],
    schema=schema_gen.outputs['schema'],
    # This will be passed to `run_fn`.
    hyperparameters=tuner.outputs['best_hyperparameters'],
    train_args=trainer_pb2.TrainArgs(num_steps=100),
    eval_args=trainer_pb2.EvalArgs(num_steps=5))
...

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

hparams_importer = ImporterNode(
    instance_name='import_hparams',
    # This can be Tuner's output file or manually edited file. The file contains
    # text format of hyperparameters (kerastuner.HyperParameters.get_config())
    source_uri='path/to/best_hyperparameters.txt',
    artifact_type=HyperParameters)

trainer = Trainer(
    ...
    # An alternative is directly use the tuned hyperparameters in Trainer's user
    # module code and set hyperparameters to None here.
    hyperparameters = hparams_importer.outputs['result'])

গুগল ক্লাউড প্ল্যাটফর্ম (জিসিপি) এ টিউন করা হচ্ছে

গুগল ক্লাউড প্ল্যাটফর্ম (জিসিপি) এ চলার সময়, টিউনার উপাদানটি দুটি পরিষেবাদির সুবিধা নিতে পারে:

হাইপারপ্যারমিটার টিউনিংয়ের ব্যাকএন্ড হিসাবে এআই প্ল্যাটফর্ম ভিজিয়ার

এআই প্ল্যাটফর্ম ভিজিয়র হ'ল গুগল ভাইজার প্রযুক্তির উপর ভিত্তি করে ব্ল্যাক বক্স অপটিমাইজেশন সম্পাদন করে এমন একটি পরিচালিত পরিষেবা।

CloudTuner একটি বাস্তবায়ন KerasTuner যা অধ্যয়ন ব্যাকএন্ড যেমন এআই প্ল্যাটফর্ম ভিজিয়েরের সেবার কথা বলেছেন। যেহেতু CloudTuner একটি উপশ্রেণী হয় kerastuner.Tuner , এটি একটি ড্রপ-মধ্যে পরিবর্তে ব্যবহার করা যেতে পারে tuner_fn মডিউল, এবং TFX টিউনার উপাদান একটি অংশ হিসাবে চালানো।

নীচে একটি কোড স্নিপেট রয়েছে যা কীভাবে CloudTuner ব্যবহার CloudTuner তা দেখায়। লক্ষ্য করুন যে CloudTuner কনফিগারেশনে CloudTuner জন্য নির্দিষ্ট আইটেমগুলির প্রয়োজন যেমন project_id এবং region

...
from tensorflow_cloud import CloudTuner

...
def tuner_fn(fn_args: FnArgs) -> TunerFnResult:
  """An implementation of tuner_fn that instantiates CloudTuner."""

  ...
  tuner = CloudTuner(
      _build_model,
      hyperparameters=...,
      ...
      project_id=...,       # GCP Project ID
      region=...,           # GCP Region where Vizier service is run.
  )

  ...
  return TuneFnResult(
      tuner=tuner,
      fit_kwargs={...}
  )

ক্লাউড এআই প্ল্যাটফর্ম প্রশিক্ষণে সমান্তরাল টিউনিং বিতরণকৃত কর্মীদের পাল

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

tuner = google_cloud_ai_platform.Tuner(
    ...   # Same kwargs as the above stock Tuner component.
    tune_args=proto.TuneArgs(num_parallel_trials=3),  # 3-worker parallel
    custom_config={
        # Configures Cloud AI Platform-specific configs . For for details, see
        # https://cloud.google.com/ai-platform/training/docs/reference/rest/v1/projects.jobs#traininginput.
        TUNING_ARGS_KEY:
            {
                'project': ...,
                'region': ...,
                # Configuration of machines for each master/worker in the flock.
                'masterConfig': ...,
                'workerConfig': ...,
                ...
            }
    })
...

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

E2E উদাহরণ

জিসিপি উদাহরণে E2E ক্লাউডটিউনার

কেরাসটুনার টিউটোরিয়াল

ক্লাউডটুনার টিউটোরিয়াল

প্রস্তাব

টিউনার এপিআই রেফারেন্সে আরও বিশদ পাওয়া যায়।