$lang['tuto'] = "টিউটোরিয়াল"; ?>$lang['tuto'] = "টিউটোরিয়াল"; ?> কাস্টম পলিসি

কাস্টম পলিসি নেটওয়ার্কে মাল্টি-এজেন্ট রিইনফোর্সমেন্ট শেখার জন্য পুনর্নির্মাণের ত্রুটিগুলি সংশোধন করা

Temp mail SuperHeros
কাস্টম পলিসি নেটওয়ার্কে মাল্টি-এজেন্ট রিইনফোর্সমেন্ট শেখার জন্য পুনর্নির্মাণের ত্রুটিগুলি সংশোধন করা
কাস্টম পলিসি নেটওয়ার্কে মাল্টি-এজেন্ট রিইনফোর্সমেন্ট শেখার জন্য পুনর্নির্মাণের ত্রুটিগুলি সংশোধন করা

কাস্টম নেটওয়ার্কগুলিতে পুনর্নির্মাণের ত্রুটিগুলি বোঝা

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

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

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

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

আদেশ ব্যবহারের উদাহরণ
th.nn.Sequential() এটি নিউরাল নেটওয়ার্কের জন্য স্তরগুলির একটি ক্রম তৈরি করতে ব্যবহৃত হয়, যেমন রৈখিক স্তর এবং সক্রিয়করণ ফাংশন। এটি একটি শৃঙ্খলে একাধিক স্তর প্রয়োগ করার অনুমতি দিয়ে মডেল সংজ্ঞাটিকে সহজ করে।
spaces.Box() এই কমান্ডটি শক্তিবৃদ্ধি শেখার ধারাবাহিক ক্রিয়া বা পর্যবেক্ষণ স্থান সংজ্ঞায়িত করতে ব্যবহৃত হয়। এটি স্থানের জন্য একটি পরিসর (মিনিট এবং সর্বোচ্চ) সংজ্ঞায়িত করে, যা ঝাঁকের মতো পরিবেশের সাথে কাজ করার সময় অত্যন্ত গুরুত্বপূর্ণ।
th.distributions.Categorical() এটি বিচ্ছিন্ন ক্রিয়াগুলির উপর একটি শ্রেণীবদ্ধ বন্টন তৈরি করে, যা নীতির লগিটগুলির উপর ভিত্তি করে ক্রিয়াগুলির নমুনা করতে ব্যবহৃত হয়। এটি বিশেষভাবে কার্যকর যখন অ্যাকশন স্পেসে বিচ্ছিন্ন ক্রিয়া জড়িত থাকে।
action_distribution.sample() এই পদ্ধতি অ্যাকশন ডিস্ট্রিবিউশন থেকে অ্যাকশনের নমুনা দেয়। শক্তিবৃদ্ধি শেখার সময় পরিবেশের প্রতিটি ধাপে এজেন্টের আচরণ নির্ধারণের জন্য এটি অপরিহার্য।
log_probs = action_distribution.log_prob() এই কমান্ডটি ক্রিয়াগুলির লগ-সম্ভাব্যতা গণনা করে, যা নীতি গ্রেডিয়েন্ট আপডেটগুলি গণনা করার জন্য PPO-এর মতো শক্তিবৃদ্ধি শেখার অ্যালগরিদমের জন্য গুরুত্বপূর্ণ।
spaces.Box(low, high) সর্বনিম্ন এবং সর্বোচ্চ মান নির্দিষ্ট করে কর্ম এবং পর্যবেক্ষণ স্থানের সীমানা নির্ধারণ করে। এটি এমন পরিবেশের জন্য অত্যন্ত গুরুত্বপূর্ণ যেখানে এজেন্ট একটি নির্দিষ্ট আবদ্ধ পরিসরে কাজ করে।
action.reshape() এই ফাংশনটি অ্যাকশন অ্যারেকে একটি প্রয়োজনীয় আকৃতিতে (যেমন (1,6)) পুনরায় আকার দিতে ব্যবহৃত হয়। পুনর্নির্মাণ নিশ্চিত করে যে ডেটা মডেলের প্রয়োজনীয় মাত্রার সাথে মেলে এবং মাত্রার অমিল ত্রুটিগুলি এড়িয়ে যায়৷
self.device = th.device() এই কমান্ডটি মডেল চালানোর জন্য ডিভাইস (CPU বা GPU) নির্বাচন করে। রিইনফোর্সমেন্ট লার্নিংয়ের মতো উচ্চ-কার্যকারিতামূলক কাজগুলিতে, মডেলটিকে GPU-তে স্থানান্তর করা প্রশিক্ষণকে উল্লেখযোগ্যভাবে ত্বরান্বিত করতে পারে।
F.relu() এই ফাংশনটি মডেলে অ-রৈখিকতা প্রবর্তন করতে ReLU (রেক্টিফায়েড লিনিয়ার ইউনিট) অ্যাক্টিভেশন প্রয়োগ করে। নেটওয়ার্ককে জটিল প্যাটার্ন শিখতে এবং গ্রেডিয়েন্ট সমস্যাগুলি অদৃশ্য হওয়া এড়াতে সাধারণত ReLU ব্যবহার করা হয়।
th.tensor() একটি নম্পি অ্যারে বা অন্যান্য ডেটাকে একটি PyTorch টেনসরে রূপান্তর করে, যা নেটওয়ার্ক প্রক্রিয়া করতে পারে এমন ডেটার উপর ক্রিয়াকলাপ সম্পাদনের জন্য প্রয়োজনীয়৷ এটি সঠিক ডিভাইসে (CPU/GPU) ডেটা স্থানান্তর করে।

মাল্টি-এজেন্ট পরিবেশের জন্য কাস্টম নীতি নেটওয়ার্ক অন্বেষণ

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

স্ক্রিপ্টের দ্বিতীয় অংশটি জিম ব্যবহার করে ক্রিয়া এবং পর্যবেক্ষণ স্থান সংজ্ঞার উপর দৃষ্টি নিবদ্ধ করে স্পেস.বক্স(). এটি শক্তিবৃদ্ধি শিক্ষার পরিবেশে অত্যন্ত গুরুত্বপূর্ণ, যেখানে এজেন্টদের পূর্বনির্ধারিত সীমানার মধ্যে যোগাযোগ করতে হবে। এখানে কর্ম স্থান অবিচ্ছিন্ন, প্রতিটি এজেন্ট দুটি মান গ্রহণ করে, যেমন x এবং y অক্ষে চলাচল। পর্যবেক্ষণ স্থান একইভাবে সংজ্ঞায়িত করা হয় কিন্তু অতিরিক্ত পরামিতি যেমন বেগ অন্তর্ভুক্ত. এই স্পেসগুলি এজেন্টের চাহিদার সাথে মেলে তা নিশ্চিত করা পুনর্নির্মাণের ত্রুটিগুলি এড়ানোর জন্য গুরুত্বপূর্ণ, বিশেষ করে যখন বহু-মাত্রিক অ্যারে এবং বড় এজেন্ট দলগুলির সাথে কাজ করে৷

স্ক্রিপ্টটি পুনর্নির্মাণের সমস্যাগুলির সমাধানের জন্য ত্রুটি পরিচালনাকেও একীভূত করে, যা শক্তিবৃদ্ধি শেখার সেটআপগুলিতে সাধারণ। লাইন ব্যবহার করে action.reshape() নিশ্চিত করে যে অ্যাকশন অ্যারে নেটওয়ার্কের প্রত্যাশিত মাত্রার সাথে মেলে। রানটাইমের সময় মাত্রার অমিল ত্রুটি এড়াতে এটি একটি মূল ফাংশন। যদি ডেটা প্রত্যাশিত আকারের সাথে সামঞ্জস্য না করে, স্ক্রিপ্টটি ত্রুটিটি ধরে এবং ডিবাগিংয়ের জন্য লগ করে। ক্রমাগত প্রশিক্ষণ প্রক্রিয়ার জন্য এই ত্রুটি পরিচালনার প্রক্রিয়াটি গুরুত্বপূর্ণ, যেখানে অনির্বাচিত ত্রুটিগুলি সমগ্র নেটওয়ার্কের প্রশিক্ষণকে থামিয়ে দিতে পারে।

সমাধান তৃতীয় অংশ ব্যবহার প্রবর্তন PyTorch tensors এবং কর্ম নির্বাচনের জন্য বিতরণ নমুনা. পর্যবেক্ষণগুলিকে টেনসরে রূপান্তর করে, মডেলটিকে সিপিইউ এবং জিপিইউ উভয় ক্ষেত্রেই কার্যকর করার জন্য অপ্টিমাইজ করা হয়েছে। ক্যাটাগরিকাল ডিস্ট্রিবিউশনের ব্যবহার নেটওয়ার্ককে অ্যাক্টর নেটওয়ার্ক দ্বারা উত্পাদিত লজিটের উপর ভিত্তি করে ক্রিয়াকলাপগুলির নমুনা দেওয়ার অনুমতি দেয়। এটি নিশ্চিত করে যে এজেন্টের ক্রিয়াগুলি সম্ভাব্যভাবে বেছে নেওয়া হয়েছে, যা প্রক্সিমাল পলিসি অপ্টিমাইজেশন (পিপিও) এর মতো শক্তিবৃদ্ধি শেখার অ্যালগরিদমের ক্ষেত্রে গুরুত্বপূর্ণ। স্তর, স্পেস এবং টেনসর ম্যানিপুলেশনের এই সমন্বয় একটি গতিশীল, মাল্টি-এজেন্ট পরিবেশে কার্যকর শেখার সক্ষম করে।

কাস্টম পলিসি নেটওয়ার্কগুলিতে পুনর্নির্মাণের ত্রুটিগুলি সমাধান করা

Stable Baselines3 এবং PyTorch ব্যবহার করে পাইথন সমাধান

import torch as th
import numpy as np
from gym import spaces
from stable_baselines3.common.policies import ActorCriticPolicy

# Custom Policy Network for Reinforcement Learning
class CustomMultiAgentPolicy(ActorCriticPolicy):
    def __init__(self, observation_space, action_space, lr_schedule, kwargs):
        super(CustomMultiAgentPolicy, self).__init__(observation_space, action_space, lr_schedule, kwargs)
        self.obs_size = observation_space.shape[0]
        self.hidden_size = 128
        self.actor = th.nn.Sequential(
            th.nn.Linear(self.obs_size, self.hidden_size),
            th.nn.ReLU(),
            th.nn.Linear(self.hidden_size, action_space.shape[0])
        )
        self.critic = th.nn.Sequential(
            th.nn.Linear(self.obs_size, self.hidden_size),
            th.nn.ReLU(),
            th.nn.Linear(self.hidden_size, 1)
        )

    def forward(self, obs, kwargs):
        action_logits = self.actor(obs)
        action_distribution = th.distributions.Categorical(logits=action_logits)
        actions = action_distribution.sample()
        log_probs = action_distribution.log_prob(actions)
        values = self.critic(obs)
        return actions, values, log_probs

মাল্টি-এজেন্ট পরিবেশে পুনর্নির্মাণের ত্রুটিগুলি পরিচালনা করা

পুনর্নির্মাণের সমস্যাগুলির জন্য ত্রুটি পরিচালনা সহ পাইথন সমাধান

import numpy as np
import torch as th

# Observation and Action space setup
min_action = np.array([-5, -5] * len(self.agents), dtype=np.float32)
max_action = np.array([5, 5] * len(self.agents), dtype=np.float32)
self.action_space = spaces.Box(low=min_action, high=max_action, dtype=np.float32)

min_obs = np.array([-np.inf, -np.inf, -2.5, -2.5] * len(self.agents), dtype=np.float32)
max_obs = np.array([np.inf, np.inf, 2.5, 2.5] * len(self.agents), dtype=np.float32)
self.observation_space = spaces.Box(low=min_obs, high=max_obs, dtype=np.float32)

# Reshaping check to avoid errors
try:
    action = action.reshape((self.n_envs, self.action_dim))
except ValueError as e:
    print(f"Reshape error: {e}. Check input dimensions.")

কাস্টম পলিসি নেটওয়ার্কের সাথে রিইনফোর্সমেন্ট লার্নিং অপ্টিমাইজ করা

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

এই নেটওয়ার্কগুলিকে মাল্টি-এজেন্ট পরিবেশে স্কেল করার সময়, বহুমাত্রিক ডেটা পরিচালনা করা একটি বড় চ্যালেঞ্জ হয়ে ওঠে। এই ধরনের ক্ষেত্রে, নেটওয়ার্ক স্তরগুলি দক্ষতার সাথে বহুমাত্রিক ইনপুটগুলি প্রক্রিয়া করতে সক্ষম হওয়া উচিত। PyTorch এর মত টুল nn.ModuleList() আপনাকে একটি মডুলার ফ্যাশনে একাধিক স্তর স্ট্যাক করার অনুমতি দেয়, পরিবেশের জটিলতা বৃদ্ধির সাথে সাথে নেটওয়ার্ক আর্কিটেকচার স্কেল করা সহজ করে তোলে। মডুলার আর্কিটেকচারগুলি কোড পুনঃব্যবহারযোগ্যতা উন্নত করে এবং প্রশিক্ষণের সময় পুনরায় আকার দেওয়ার মতো সমস্যা দেখা দিলে ডিবাগিংকে সহজ করে।

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

কাস্টম পলিসি নেটওয়ার্কে রিশেপিং সম্পর্কে সাধারণ প্রশ্ন

  1. শক্তিবৃদ্ধি শেখার ক্ষেত্রে "অ্যারেকে পুনরায় আকার দিতে পারে না" ত্রুটির কারণ কী?
  2. এই ত্রুটিটি ঘটে যখন কর্ম বা পর্যবেক্ষণ স্থানের মাত্রা নিউরাল নেটওয়ার্ক স্তরগুলির জন্য প্রয়োজনীয় ইনপুট আকারের সাথে মেলে না। সেটা নিশ্চিত করুন action.reshape() নেটওয়ার্ক দ্বারা প্রত্যাশিত মাত্রার সাথে সঠিকভাবে সারিবদ্ধ।
  3. আমি কিভাবে একটি মাল্টি-এজেন্ট পরিবেশে একটি পর্যবেক্ষণ স্থান সংজ্ঞায়িত করব?
  4. আপনি ব্যবহার করতে পারেন spaces.Box() একটি অবিচ্ছিন্ন পর্যবেক্ষণ স্থান সংজ্ঞায়িত করতে, প্রতিটি এজেন্টের পর্যবেক্ষণের জন্য সর্বনিম্ন এবং সর্বোচ্চ সীমা নির্দিষ্ট করে।
  5. উদ্দেশ্য কি nn.ModuleList() পাইটর্চে?
  6. nn.ModuleList() আপনাকে স্তরগুলির একটি তালিকা সংরক্ষণ করতে দেয়, যা মডুলার উপায়ে একাধিক স্তর সহ জটিল নিউরাল নেটওয়ার্ক তৈরির জন্য দরকারী। ফরোয়ার্ড পাসের সময় প্রতিটি স্তর সহজেই পুনরাবৃত্তি করা যেতে পারে।
  7. পাইথনে অ্যারে পুনরায় আকার দেওয়ার সময় আমি কীভাবে ত্রুটিগুলি পরিচালনা করব?
  8. ব্যবহার করে a try-except ব্লক ধরার জন্য সুপারিশ করা হয় ValueError অ্যারে পুনর্নির্মাণ করার সময় ব্যতিক্রম। এটি প্রশিক্ষণ প্রক্রিয়াটি ক্র্যাশ না করে সমস্যাগুলি সনাক্ত করতে এবং সমাধান করতে সহায়তা করে৷
  9. আমি কি GPU-তে একটি কাস্টম নীতি নেটওয়ার্ক প্রশিক্ষণ দিতে পারি?
  10. হ্যাঁ, নেটওয়ার্ক এবং টেনসরগুলিকে জিপিইউ ব্যবহার করে সরানোর মাধ্যমে th.device("cuda"), আপনি প্রশিক্ষণকে ত্বরান্বিত করতে পারেন, বিশেষ করে রিইনফোর্সমেন্ট শেখার মতো রিসোর্স-ভারী কাজে।

মাল্টি-এজেন্ট নেটওয়ার্কে অ্যারে পুনর্নির্মাণের ত্রুটিগুলি সমাধান করা

পরিবেশের মাত্রা এবং নেটওয়ার্কের প্রত্যাশিত ইনপুট আকারের মধ্যে অমিলের কারণে প্রায়ই পুনর্নির্মাণের ত্রুটিগুলি দেখা দেয়। মডুলার ডিজাইনের পাশাপাশি পর্যবেক্ষণ এবং অ্যাকশন স্পেসগুলির সঠিক কনফিগারেশন এই সমস্যাগুলি প্রশমিত করতে সহায়তা করে। ডিবাগিং টুলস, যেমন লগিং টেনসর আকৃতি, সম্ভাব্য পুনর্নির্মাণ সমস্যা সনাক্ত করতে আরও সহায়তা করে।

এই ত্রুটিগুলিকে কার্যকরভাবে পরিচালনা করার মাধ্যমে, নীতি নেটওয়ার্ককে মাল্টি-এজেন্ট পরিবেশে ক্রমাগত শিক্ষার সাথে স্থাপন করা যেতে পারে। এটি নিশ্চিত করে যে এজেন্টরা পরিবেশের মধ্যে মসৃণভাবে যোগাযোগ করতে পারে, মাত্রার অমিল বা পুনর্নির্মাণ ব্যর্থতার কারণে ক্র্যাশ না করে উচ্চ কার্যক্ষমতা বজায় রাখতে পারে।

রিইনফোর্সমেন্ট লার্নিং নেটওয়ার্ক ইস্যুর জন্য উৎস এবং রেফারেন্স
  1. মাল্টি-এজেন্ট পরিবেশের জন্য কাস্টম নিউরাল নেটওয়ার্কের ব্যবহার সম্পর্কে বিশদ বিবরণ, যার মধ্যে শক্তিবৃদ্ধি শিক্ষা বাস্তবায়ন। এ উপলব্ধ স্থিতিশীল বেসলাইন3 ডকুমেন্টেশন .
  2. PyTorch মডিউলগুলির ব্যাপক ব্যাখ্যা, নিউরাল নেটওয়ার্ক স্তরগুলি বাস্তবায়ন এবং টেনসর পরিচালনার জন্য ব্যবহৃত। এ উপলব্ধ পাইটর্চ ডকুমেন্টেশন .
  3. জিমের পরিবেশের অন্তর্দৃষ্টি এবং শক্তিবৃদ্ধি শেখার ক্ষেত্রে ক্রিয়া এবং পর্যবেক্ষণ স্থানগুলির ব্যবহার। এ আরও পরীক্ষা করুন OpenAI জিম ডকুমেন্টেশন .