جیسا کہ گاہک کلاؤڈ پر اپنی منتقلی کو تیز کرتے ہیں اور اپنے کاروبار کو تبدیل کرتے ہیں، کچھ اپنے آپ کو ایسے حالات میں پاتے ہیں جہاں انہیں ملٹی کلاؤڈ ماحول میں آئی ٹی آپریشنز کا انتظام کرنا پڑتا ہے۔ مثال کے طور پر، آپ نے ایک کمپنی حاصل کی ہو گی جو پہلے سے ہی ایک مختلف کلاؤڈ فراہم کنندہ پر چل رہی تھی، یا آپ پر کام کا بوجھ ہو سکتا ہے جو AWS کی فراہم کردہ منفرد صلاحیتوں سے قدر پیدا کرتا ہے۔ ایک اور مثال انڈیپنڈنٹ سافٹ ویئر وینڈرز (ISVs) ہیں جو اپنے صارفین کو فائدہ پہنچانے کے لیے مختلف کلاؤڈ پلیٹ فارمز میں اپنی مصنوعات اور خدمات دستیاب کراتے ہیں۔ یا کوئی تنظیم کسی ایسے علاقے میں کام کر رہی ہو جہاں پرائمری کلاؤڈ فراہم کنندہ دستیاب نہیں ہے، اور ڈیٹا کی خودمختاری یا ڈیٹا کی رہائش کے تقاضوں کو پورا کرنے کے لیے، وہ ثانوی کلاؤڈ فراہم کنندہ کا استعمال کر سکتی ہے۔
ان حالات میں، جیسا کہ آپ اپنے کاروبار کے بنیادی حصے کے طور پر جنریٹو AI، بڑے لینگویج ماڈلز (LLMs) اور مشین لرننگ (ML) ٹیکنالوجیز کو اپنانا شروع کر دیتے ہیں، ہو سکتا ہے آپ اس سے فائدہ اٹھانے کے لیے اختیارات تلاش کر رہے ہوں۔ AWS AI اور ML ملٹی کلاؤڈ ماحول میں AWS سے باہر کی صلاحیتیں۔ مثال کے طور پر، آپ استعمال کرنا چاہتے ہیں۔ ایمیزون سیج میکر ایم ایل ماڈل بنانے اور تربیت دینے کے لیے، یا استعمال کرنا ایمیزون سیج میکر جمپ اسٹارٹ پہلے سے تعمیر شدہ فاؤنڈیشن یا تھرڈ پارٹی ایم ایل ماڈلز کو تعینات کرنے کے لیے، جسے آپ چند بٹنوں کے کلک پر تعینات کر سکتے ہیں۔ یا آپ فائدہ اٹھانا چاہتے ہیں۔ ایمیزون بیڈرک تخلیقی AI ایپلی کیشنز کو بنانے اور اسکیل کرنے کے لیے، یا آپ فائدہ اٹھا سکتے ہیں۔ AWS کی پہلے سے تربیت یافتہ AI خدماتجس کے لیے آپ کو مشین لرننگ کی مہارتیں سیکھنے کی ضرورت نہیں ہے۔ AWS ان منظرناموں کے لیے مدد فراہم کرتا ہے جہاں تنظیمیں چاہتی ہیں۔ ایمیزون سیج میکر پر اپنا ماڈل لائیں۔ or پیشین گوئیوں کے لیے Amazon SageMaker کینوس میں.
اس پوسٹ میں، ہم ان بہت سے اختیارات میں سے ایک کو ظاہر کرتے ہیں جو آپ کو ملٹی کلاؤڈ ماحول میں AWS کی وسیع ترین اور گہری ترین AI/ML صلاحیتوں سے فائدہ اٹھانا ہے۔ ہم دکھاتے ہیں کہ آپ کس طرح AWS میں ML ماڈل بنا سکتے ہیں اور اس کی تربیت کر سکتے ہیں اور ماڈل کو دوسرے پلیٹ فارم میں تعینات کر سکتے ہیں۔ ہم ایمیزون سیج میکر کا استعمال کرتے ہوئے ماڈل کو تربیت دیتے ہیں، ماڈل کے نمونے اس میں محفوظ کرتے ہیں۔ ایمیزون سادہ اسٹوریج سروس (Amazon S3)، اور Azure میں ماڈل کو تعینات اور چلائیں۔ یہ نقطہ نظر فائدہ مند ہے اگر آپ ML کے لیے AWS سروسز کو اس کی خصوصیات کے سب سے زیادہ جامع سیٹ کے لیے استعمال کرتے ہیں، پھر بھی آپ کو اپنے ماڈل کو کسی دوسرے کلاؤڈ فراہم کنندہ میں چلانے کی ضرورت ہے ان حالات میں جن پر ہم نے تبادلہ خیال کیا ہے۔
بنیادی خیال
ایمیزون سیج میکر اسٹوڈیو مشین لرننگ کے لیے ویب پر مبنی، مربوط ترقیاتی ماحول (IDE) ہے۔ SageMaker سٹوڈیو ڈیٹا سائنسدانوں، ML انجینئرز، اور ڈیٹا انجینئرز کو ایک ویب انٹرفیس پر ML ماڈلز کو ڈیٹا تیار کرنے، بنانے، تربیت دینے اور تعینات کرنے کی اجازت دیتا ہے۔ سیج میکر اسٹوڈیو کے ساتھ، آپ ML ڈیولپمنٹ لائف سائیکل کے ہر مرحلے کے لیے مقصد سے بنائے گئے ٹولز تک رسائی حاصل کر سکتے ہیں، ڈیٹا کی تیاری سے لے کر اپنے ML ماڈلز کی تعمیر، تربیت، اور تعیناتی تک، ڈیٹا سائنس ٹیم کی پیداواری صلاحیت کو دس گنا تک بہتر بنا سکتے ہیں۔ سیج میکر اسٹوڈیو نوٹ بک فوری آغاز، تعاون پر مبنی نوٹ بک ہیں جو SageMaker اور دیگر AWS سروسز میں مقصد سے بنائے گئے ML ٹولز کے ساتھ مربوط ہوتی ہیں۔
SageMaker ایک جامع ML سروس ہے جو کاروباری تجزیہ کاروں، ڈیٹا سائنسدانوں، اور MLOps انجینئرز کو ML مہارت سے قطع نظر، کسی بھی استعمال کے معاملے کے لیے ML ماڈلز بنانے، تربیت دینے اور تعینات کرنے کے قابل بناتی ہے۔
AWS فراہم کرتا ہے۔ گہری سیکھنے والے کنٹینرز PyTorch، TensorFlow، اور Apache MXNet جیسے مشہور ML فریم ورک کے لیے (DLCs)، جسے آپ SageMaker کے ساتھ تربیت اور اندازہ کے لیے استعمال کر سکتے ہیں۔ DLCs میں Docker امیجز کے طور پر دستیاب ہیں۔ ایمیزون لچکدار کنٹینر رجسٹری (ایمیزون ای سی آر)۔ ڈوکر امیجز کو پہلے سے انسٹال کیا جاتا ہے اور مقبول ڈیپ لرننگ فریم ورک کے تازہ ترین ورژنز کے ساتھ ساتھ ٹریننگ اور انفرنس کے لیے درکار دیگر انحصار کے ساتھ تجربہ کیا جاتا ہے۔ سیج میکر کے زیر انتظام پہلے سے تعمیر شدہ ڈاکر امیجز کی مکمل فہرست کے لیے، دیکھیں ڈاکر رجسٹری کے راستے اور مثالی کوڈ. ایمیزون ای سی آر سیکیورٹی اسکیننگ کی حمایت کرتا ہے، اور اس کے ساتھ مربوط ہے۔ ایمیزون انسپکٹر آپ کی تنظیم کی امیج کمپلائنس سیکیورٹی کے تقاضوں کو پورا کرنے کے لیے اور کمزوری کی تشخیص کی اسکیننگ کو خودکار کرنے کے لیے خطرے کے انتظام کی خدمت۔ تنظیمیں بھی استعمال کر سکتی ہیں۔ AWS ٹرینیم اور AWS Inferentia ML تربیتی ملازمتوں یا تخمینہ کو چلانے کے لیے قیمت کی بہتر کارکردگی کے لیے۔
حل جائزہ
اس سیکشن میں، ہم یہ بیان کرتے ہیں کہ SageMaker کا استعمال کرتے ہوئے ماڈل کو کیسے بنایا جائے اور اس کی تربیت کیسے کی جائے اور ماڈل کو Azure Functions میں تعینات کیا جائے۔ ہم ماڈل کی تعمیر، تربیت اور تعیناتی کے لیے SageMaker اسٹوڈیو نوٹ بک استعمال کرتے ہیں۔ ہم PyTorch کے لیے پہلے سے تیار کردہ Docker امیج کا استعمال کرتے ہوئے SageMaker میں ماڈل کو تربیت دیتے ہیں۔ اگرچہ ہم اس معاملے میں تربیت یافتہ ماڈل کو Azure پر تعینات کر رہے ہیں، لیکن آپ ماڈل کو دوسرے پلیٹ فارمز جیسے کہ احاطے یا دوسرے کلاؤڈ پلیٹ فارم پر تعینات کرنے کے لیے وہی طریقہ استعمال کر سکتے ہیں۔
جب ہم تربیتی جاب بناتے ہیں، تو SageMaker ML کمپیوٹ مثالوں کو شروع کرتا ہے اور ماڈل کو تربیت دینے کے لیے ہمارے ٹریننگ کوڈ اور ٹریننگ ڈیٹاسیٹ کا استعمال کرتا ہے۔ یہ نتیجے میں آنے والے ماڈل کے نمونے اور دیگر آؤٹ پٹ کو S3 بالٹی میں محفوظ کرتا ہے جسے ہم تربیتی کام کے لیے ان پٹ کے طور پر بیان کرتے ہیں۔ جب ماڈل ٹریننگ مکمل ہو جاتی ہے، ہم استعمال کرتے ہیں۔ اوپن نیورل نیٹ ورک ایکسچینج PyTorch ماڈل کو ONNX ماڈل کے طور پر برآمد کرنے کے لیے (ONNX) رن ٹائم لائبریری۔
آخر میں، ہم Azure CLI کا استعمال کرتے ہوئے Python میں Azure فنکشنز میں تحریر کردہ ایک حسب ضرورت انفرنس کوڈ کے ساتھ ONNX ماڈل کو تعینات کرتے ہیں۔ ONNX زیادہ تر کی حمایت کرتا ہے۔ عام طور پر استعمال ہونے والے ML فریم ورک اور ٹولز. نوٹ کرنے والی ایک بات یہ ہے کہ ML ماڈل کو ONNX میں تبدیل کرنا مفید ہے اگر آپ ایک مختلف ٹارگٹ ڈیپلائمنٹ فریم ورک استعمال کرنا چاہتے ہیں، جیسے PyTorch سے TensorFlow۔ اگر آپ سورس اور ٹارگٹ دونوں پر ایک ہی فریم ورک استعمال کر رہے ہیں، تو آپ کو ماڈل کو ONNX فارمیٹ میں تبدیل کرنے کی ضرورت نہیں ہے۔
مندرجہ ذیل خاکہ اس نقطہ نظر کے فن تعمیر کی وضاحت کرتا ہے۔
ہم اس کے ساتھ سیج میکر اسٹوڈیو نوٹ بک استعمال کرتے ہیں۔ SageMaker Python SDK ہمارے ماڈل کی تعمیر اور تربیت کے لیے۔ SageMaker Python SDK سیج میکر پر ایم ایل ماڈلز کی تربیت اور تعیناتی کے لیے ایک اوپن سورس لائبریری ہے۔ مزید تفصیلات کے لیے رجوع کریں۔ ایمیزون سیج میکر اسٹوڈیو نوٹ بک بنائیں یا کھولیں۔.
درج ذیل حصوں میں کوڈ کے ٹکڑوں کو ڈیٹا سائنس 3.0 امیج اور Python 3.0 کرنل کا استعمال کرتے ہوئے SageMaker اسٹوڈیو نوٹ بک ماحول میں جانچا گیا ہے۔
اس حل میں، ہم مندرجہ ذیل اقدامات کا مظاہرہ کرتے ہیں:
- ایک PyTorch ماڈل کو تربیت دیں۔
- PyTorch ماڈل کو ONNX ماڈل کے طور پر برآمد کریں۔
- ماڈل اور انفرنس کوڈ کو پیک کریں۔
- ماڈل کو Azure افعال میں تعینات کریں۔
شرائط
آپ کے پاس درج ذیل شرائط ہونی چاہئیں:
- AWS اکاؤنٹ۔
- سیج میکر ڈومین اور سیج میکر اسٹوڈیو صارف۔ ان کو بنانے کے لیے ہدایات کے لیے رجوع کریں۔ فوری سیٹ اپ کا استعمال کرتے ہوئے ایمیزون سیج میکر ڈومین پر آن بورڈ.
- Azure CLI.
- Azure تک رسائی اور ایک سروس پرنسپل کے لیے اسنادات جس کے پاس Azure فنکشنز بنانے اور ان کا نظم کرنے کی اجازت ہے۔
PyTorch کے ساتھ ایک ماڈل کو تربیت دیں۔
اس حصے میں، ہم PyTorch ماڈل کو تربیت دینے کے اقدامات کی تفصیل دیتے ہیں۔
انحصار کو انسٹال کریں
ماڈل ٹریننگ اور ماڈل کی تعیناتی کے لیے درکار اقدامات کرنے کے لیے لائبریریاں انسٹال کریں:
pip install torchvision onnx onnxruntime
ابتدائی سیٹ اپ مکمل کریں۔
ہم درآمد کرکے شروع کرتے ہیں۔ AWS SDK برائے Python (Boto3) اور SageMaker Python SDK. سیٹ اپ کے حصے کے طور پر، ہم درج ذیل کی وضاحت کرتے ہیں:
- ایک سیشن آبجیکٹ جو سیج میکر اور ہمارے اپنے اکاؤنٹ کے تناظر میں سہولت کے طریقے فراہم کرتا ہے۔
- سیج میکر کا رول ARN تربیت اور ہوسٹنگ سروس کو اجازت دینے کے لیے استعمال ہوتا ہے۔ ہمیں اس کی ضرورت ہے تاکہ یہ خدمات S3 بالٹی تک رسائی حاصل کر سکیں جہاں ہمارا ڈیٹا اور ماڈل محفوظ ہے۔ آپ کی کاروباری ضروریات کو پورا کرنے والا کردار بنانے کی ہدایات کے لیے، ملاحظہ کریں۔ سیج میکر کے کردار. اس پوسٹ کے لیے، ہم اپنے اسٹوڈیو نوٹ بک مثال کے طور پر ایک ہی ایگزیکیوشن رول استعمال کرتے ہیں۔ ہمیں یہ کردار بلا کر ملتا ہے۔
sagemaker.get_execution_role()
. - پہلے سے طے شدہ علاقہ جہاں ہماری تربیت کا کام چلے گا۔
- پہلے سے طے شدہ بالٹی اور سابقہ جو ہم ماڈل آؤٹ پٹ کو ذخیرہ کرنے کے لیے استعمال کرتے ہیں۔
درج ذیل کوڈ دیکھیں:
import sagemaker
import boto3
import os execution_role = sagemaker.get_execution_role()
region = boto3.Session().region_name
session = sagemaker.Session()
bucket = session.default_bucket()
prefix = "sagemaker/mnist-pytorch"
تربیتی ڈیٹاسیٹ بنائیں
ہم عوامی بالٹی میں دستیاب ڈیٹاسیٹ کا استعمال کرتے ہیں۔ sagemaker-example-files-prod-{region}
. ڈیٹاسیٹ میں درج ذیل فائلیں ہیں:
- train-images-idx3-ubyte.gz - تربیتی سیٹ امیجز پر مشتمل ہے۔
- train-labels-idx1-ubyte.gz - تربیتی سیٹ لیبل پر مشتمل ہے۔
- t10k-images-idx3-ubyte.gz - ٹیسٹ سیٹ امیجز پر مشتمل ہے۔
- t10k-labels-idx1-ubyte.gz - ٹیسٹ سیٹ لیبلز پر مشتمل ہے۔
ہم استعمال کرتے ہیںtorchvision.datasets
ہماری ٹریننگ ڈیٹا بالٹی میں اپ لوڈ کرنے سے پہلے عوامی بالٹی سے ڈیٹا کو مقامی طور پر ڈاؤن لوڈ کرنے کے لیے ماڈیول۔ ہم اس بالٹی کے مقام کو SageMaker ٹریننگ جاب کے لیے بطور ان پٹ پاس کرتے ہیں۔ ہماری ٹریننگ اسکرپٹ اس مقام کو تربیتی ڈیٹا ڈاؤن لوڈ اور تیار کرنے کے لیے استعمال کرتی ہے، اور پھر ماڈل کو تربیت دیتی ہے۔ درج ذیل کوڈ دیکھیں:
MNIST.mirrors = [ f"https://sagemaker-example-files-prod-{region}.s3.amazonaws.com/datasets/image/MNIST/"
] MNIST( "data", download=True, transform=transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))] ),
)
تربیتی اسکرپٹ بنائیں
SageMaker کے ساتھ، آپ اپنا ماڈل استعمال کر کے لا سکتے ہیں۔ سکرپٹ موڈ. اسکرپٹ موڈ کے ساتھ، آپ پہلے سے بنائے گئے SageMaker کنٹینرز استعمال کر سکتے ہیں اور اپنی تربیتی اسکرپٹ فراہم کر سکتے ہیں، جس میں کسی بھی حسب ضرورت لائبریریوں اور انحصار کے ساتھ ماڈل کی تعریف بھی ہے۔ دی SageMaker Python SDK ہماری اسکرپٹ کو بطور ایک پاس کرتا ہے۔ entry_point
کنٹینر تک، جو ہمارے ماڈل کو تربیت دینے کے لیے فراہم کردہ اسکرپٹ سے ٹرین کے فنکشن کو لوڈ اور چلاتا ہے۔
تربیت مکمل ہونے پر، SageMaker ماڈل آؤٹ پٹ کو S3 بالٹی میں محفوظ کرتا ہے جو ہم نے تربیتی کام کے لیے پیرامیٹر کے طور پر فراہم کیا تھا۔
ہمارے تربیتی کوڈ کو درج ذیل سے ڈھال لیا گیا ہے۔ PyTorch مثال اسکرپٹ. کوڈ سے درج ذیل اقتباس ماڈل کی تعریف اور ٹرین کے فنکشن کو ظاہر کرتا ہے:
# define network class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(1, 32, 3, 1) self.conv2 = nn.Conv2d(32, 64, 3, 1) self.dropout1 = nn.Dropout(0.25) self.dropout2 = nn.Dropout(0.5) self.fc1 = nn.Linear(9216, 128) self.fc2 = nn.Linear(128, 10) def forward(self, x): x = self.conv1(x) x = F.relu(x) x = self.conv2(x) x = F.relu(x) x = F.max_pool2d(x, 2) x = self.dropout1(x) x = torch.flatten(x, 1) x = self.fc1(x) x = F.relu(x) x = self.dropout2(x) x = self.fc2(x) output = F.log_softmax(x, dim=1) return output
# train def train(args, model, device, train_loader, optimizer, epoch): model.train() for batch_idx, (data, target) in enumerate(train_loader): data, target = data.to(device), target.to(device) optimizer.zero_grad() output = model(data) loss = F.nll_loss(output, target) loss.backward() optimizer.step() if batch_idx % args.log_interval == 0: print('Train Epoch: {} [{}/{} ({:.0f}%)]tLoss: {:.6f}'.format( epoch, batch_idx * len(data), len(train_loader.dataset), 100. * batch_idx / len(train_loader), loss.item())) if args.dry_run: break
ماڈل کو تربیت دیں۔
اب جب کہ ہم نے اپنا ماحول ترتیب دیا ہے اور اپنا ان پٹ ڈیٹاسیٹ اور کسٹم ٹریننگ اسکرپٹ بنا لیا ہے، ہم SageMaker کا استعمال کرتے ہوئے ماڈل ٹریننگ شروع کر سکتے ہیں۔ SageMaker پر تربیتی کام شروع کرنے کے لیے ہم SageMaker Python SDK میں PyTorch کا تخمینہ لگانے والا استعمال کرتے ہیں۔ ہم مطلوبہ پیرامیٹرز کو تخمینہ لگانے والے کو منتقل کرتے ہیں اور موزوں طریقہ کو کال کرتے ہیں۔ جب ہم PyTorch تخمینہ لگانے والے پر فٹ ہونے کو کہتے ہیں، SageMaker ہمارے اسکرپٹ کو بطور تربیتی کوڈ استعمال کرتے ہوئے تربیتی کام شروع کرتا ہے:
from sagemaker.pytorch import PyTorch output_location = f"s3://{bucket}/{prefix}/output"
print(f"training artifacts will be uploaded to: {output_location}") hyperparameters={ "batch-size": 100, "epochs": 1, "lr": 0.1, "gamma": 0.9, "log-interval": 100
} instance_type = "ml.c4.xlarge"
estimator = PyTorch( entry_point="train.py", source_dir="code", # directory of your training script role=execution_role, framework_version="1.13", py_version="py39", instance_type=instance_type, instance_count=1, volume_size=250, output_path=output_location, hyperparameters=hyperparameters
) estimator.fit(inputs = { 'training': f"{inputs}", 'testing': f"{inputs}"
})
تربیت یافتہ ماڈل کو ONNX ماڈل کے طور پر برآمد کریں۔
ٹریننگ مکمل ہونے کے بعد اور ہمارا ماڈل Amazon S3 میں پہلے سے طے شدہ جگہ پر محفوظ ہو جاتا ہے، ہم ONNX رن ٹائم کا استعمال کرتے ہوئے ماڈل کو ONNX ماڈل میں ایکسپورٹ کرتے ہیں۔
ہم تربیت مکمل ہونے کے بعد چلانے کے لیے اپنے ٹریننگ اسکرپٹ میں اپنے ماڈل کو ONNX میں ایکسپورٹ کرنے کا کوڈ شامل کرتے ہیں۔
PyTorch ہمارے ان پٹ کا استعمال کرتے ہوئے ماڈل کو چلا کر اور آؤٹ پٹ کی گنتی کے لیے استعمال ہونے والے آپریٹرز کے ٹریس کو ریکارڈ کر کے ماڈل کو ONNX میں برآمد کرتا ہے۔ ہم PyTorch کے ساتھ صحیح قسم کا بے ترتیب ان پٹ استعمال کرتے ہیں۔ torch.onnx.export
ماڈل کو ONNX میں ایکسپورٹ کرنے کا فنکشن۔ ہم اپنے ان پٹ میں پہلی جہت کو بھی متحرک کے طور پر بیان کرتے ہیں تاکہ ہمارا ماڈل ایک متغیر کو قبول کرے۔ batch_size
قیاس کے دوران آدانوں کی
def export_to_onnx(model, model_dir, device): logger.info("Exporting the model to onnx.") dummy_input = torch.randn(1, 1, 28, 28).to(device) input_names = [ "input_0" ] output_names = [ "output_0" ] path = os.path.join(model_dir, 'mnist-pytorch.onnx') torch.onnx.export(model, dummy_input, path, verbose=True, input_names=input_names, output_names=output_names, dynamic_axes={'input_0' : {0 : 'batch_size'}, # variable length axes 'output_0' : {0 : 'batch_size'}})
ONNX ڈیپ لرننگ ماڈلز کے لیے ایک کھلا معیاری فارمیٹ ہے جو ڈیپ لرننگ فریم ورک جیسے PyTorch، Microsoft Cognitive Toolkit (CNTK) اور مزید کے درمیان انٹرآپریبلٹی کو قابل بناتا ہے۔ اس کا مطلب ہے کہ آپ ان میں سے کسی بھی فریم ورک کو ماڈل کی تربیت کے لیے استعمال کر سکتے ہیں اور بعد ازاں پہلے سے تربیت یافتہ ماڈلز کو ONNX فارمیٹ میں برآمد کر سکتے ہیں۔ ماڈل کو ONNX پر ایکسپورٹ کرنے سے، آپ کو تعیناتی آلات اور پلیٹ فارمز کے وسیع تر انتخاب کا فائدہ ملتا ہے۔
ماڈل نمونے ڈاؤن لوڈ اور نکالیں۔
ONNX ماڈل جسے ہماری ٹریننگ اسکرپٹ نے محفوظ کیا ہے SageMaker نے اس آؤٹ پٹ لوکیشن میں Amazon S3 میں کاپی کیا ہے جس کی وضاحت ہم نے تربیتی کام شروع کرنے کے وقت کی تھی۔ ماڈل کے نمونے ایک کمپریسڈ آرکائیو فائل کے طور پر محفوظ کیے جاتے ہیں جسے کہا جاتا ہے۔ model.tar.gz
. ہم اس آرکائیو فائل کو اپنے اسٹوڈیو نوٹ بک مثال میں مقامی ڈائریکٹری میں ڈاؤن لوڈ کرتے ہیں اور ماڈل کے نمونے نکالتے ہیں، یعنی ONNX ماڈل۔
import tarfile local_model_file = 'model.tar.gz'
model_bucket,model_key = estimator.model_data.split('/',2)[-1].split('/',1)
s3 = boto3.client("s3")
s3.download_file(model_bucket,model_key,local_model_file) model_tar = tarfile.open(local_model_file)
model_file_name = model_tar.next().name
model_tar.extractall('.')
model_tar.close()
ONNX ماڈل کی توثیق کریں۔
ONNX ماڈل نام کی فائل میں برآمد کیا جاتا ہے۔ mnist-pytorch.onnx
ہماری تربیتی اسکرپٹ کے ذریعے۔ اس فائل کو ڈاؤن لوڈ اور نکالنے کے بعد، ہم اختیاری طور پر ONNX ماڈل کا استعمال کرتے ہوئے تصدیق کر سکتے ہیں۔ onnx.checker
ماڈیول دی check_model
اس ماڈیول میں فنکشن ماڈل کی مستقل مزاجی کو چیک کرتا ہے۔ ٹیسٹ میں ناکام ہونے کی صورت میں ایک استثناء اٹھایا جاتا ہے۔
import onnx onnx_model = onnx.load("mnist-pytorch.onnx")
onnx.checker.check_model(onnx_model)
ماڈل اور انفرنس کوڈ کو پیک کریں۔
اس پوسٹ کے لیے، ہم Azure فنکشنز کے لیے .zip کی تعیناتی کا استعمال کرتے ہیں۔ اس طریقے میں، ہم اپنے ماڈل، ساتھ والے کوڈ، اور Azure Functions کی سیٹنگز کو .zip فائل میں پیک کرتے ہیں اور اسے Azure Functions میں شائع کرتے ہیں۔ درج ذیل کوڈ ہمارے تعیناتی پیکیج کی ڈائرکٹری ڈھانچہ کو ظاہر کرتا ہے:
mnist-onnx
├── function_app.py
├── model
│ └── mnist-pytorch.onnx
└── requirements.txt
انحصار کی فہرست
ہم اپنے انفرنس کوڈ کے لیے انحصار کو میں درج کرتے ہیں۔ requirements.txt
ہمارے پیکیج کی جڑ میں فائل۔ جب ہم پیکج شائع کرتے ہیں تو یہ فائل Azure فنکشنز ماحول بنانے کے لیے استعمال ہوتی ہے۔
azure-functions
numpy
onnxruntime
انفرنس کوڈ لکھیں۔
ہم اپنے ماڈل کو لوڈ کرنے اور تخمینہ چلانے کے لیے ONNX رن ٹائم لائبریری کا استعمال کرتے ہوئے درج ذیل انفرنس کوڈ کو لکھنے کے لیے Python کا استعمال کرتے ہیں۔ یہ Azure Functions ایپ کو اینڈ پوائنٹ پر دستیاب کرنے کی ہدایت کرتا ہے۔ /classify
رشتہ دار راستہ
import logging
import azure.functions as func
import numpy as np
import os
import onnxruntime as ort
import json app = func.FunctionApp() def preprocess(input_data_json): # convert the JSON data into the tensor input return np.array(input_data_json['data']).astype('float32') def run_model(model_path, req_body): session = ort.InferenceSession(model_path) input_data = preprocess(req_body) logging.info(f"Input Data shape is {input_data.shape}.") input_name = session.get_inputs()[0].name # get the id of the first input of the model try: result = session.run([], {input_name: input_data}) except (RuntimeError) as e: print("Shape={0} and error={1}".format(input_data.shape, e)) return result[0] def get_model_path(): d=os.path.dirname(os.path.abspath(__file__)) return os.path.join(d , './model/mnist-pytorch.onnx') @app.function_name(name="mnist_classify")
@app.route(route="classify", auth_level=func.AuthLevel.ANONYMOUS)
def main(req: func.HttpRequest) -> func.HttpResponse: logging.info('Python HTTP trigger function processed a request.') # Get the img value from the post. try: req_body = req.get_json() except ValueError: pass if req_body: # run model result = run_model(get_model_path(), req_body) # map output to integer and return result string. digits = np.argmax(result, axis=1) logging.info(type(digits)) return func.HttpResponse(json.dumps({"digits": np.array(digits).tolist()})) else: return func.HttpResponse( "This HTTP triggered function successfully.", status_code=200 )
ماڈل کو Azure افعال میں تعینات کریں۔
اب جب کہ ہمارے پاس کوڈ کو مطلوبہ .zip فارمیٹ میں پیک کیا گیا ہے، ہم اسے Azure Functions میں شائع کرنے کے لیے تیار ہیں۔ ہم ایسا Azure CLI کا استعمال کرتے ہوئے کرتے ہیں، Azure وسائل بنانے اور ان کا نظم کرنے کے لیے ایک کمانڈ لائن یوٹیلیٹی۔ Azure CLI کو درج ذیل کوڈ کے ساتھ انسٹال کریں:
!pip install -q azure-cli
پھر درج ذیل مراحل کو مکمل کریں:
- Azure میں لاگ ان کریں:
!az login
- وسائل کی تخلیق کے پیرامیٹرز مرتب کریں:
import random random_suffix = str(random.randint(10000,99999)) resource_group_name = f"multicloud-{random_suffix}-rg" storage_account_name = f"multicloud{random_suffix}" location = "ukwest" sku_storage = "Standard_LRS" functions_version = "4" python_version = "3.9" function_app = f"multicloud-mnist-{random_suffix}"
- ضروری وسائل کے ساتھ Azure Functions ایپ بنانے کے لیے درج ذیل کمانڈز کا استعمال کریں:
!az group create --name {resource_group_name} --location {location} !az storage account create --name {storage_account_name} --resource-group {resource_group_name} --location {location} --sku {sku_storage} !az functionapp create --name {function_app} --resource-group {resource_group_name} --storage-account {storage_account_name} --consumption-plan-location "{location}" --os-type Linux --runtime python --runtime-version {python_version} --functions-version {functions_version}
- Azure فنکشنز کو ترتیب دیں تاکہ جب ہم فنکشنز پیکج کو تعینات کریں،
requirements.txt
فائل کو ہماری درخواست پر انحصار بنانے کے لیے استعمال کیا جاتا ہے:!az functionapp config appsettings set --name {function_app} --resource-group {resource_group_name} --settings @./functionapp/settings.json
- Python v2 ماڈل کو چلانے کے لیے فنکشنز ایپ کو کنفیگر کریں اور .zip کی تعیناتی کے بعد موصول ہونے والے کوڈ پر تعمیر کریں:
{ "AzureWebJobsFeatureFlags": "EnableWorkerIndexing", "SCM_DO_BUILD_DURING_DEPLOYMENT": true }
- ہمارے پاس ریسورس گروپ، اسٹوریج کنٹینر، اور فنکشنز ایپ صحیح کنفیگریشن کے ساتھ ہونے کے بعد، کوڈ کو فنکشنز ایپ پر شائع کریں:
!az functionapp deployment source config-zip -g {resource_group_name} -n {function_app} --src {function_archive} --build-remote true
ماڈل کی جانچ کریں۔
ہم نے ML ماڈل کو Azure Functions میں ایک HTTP ٹرگر کے طور پر تعینات کیا ہے، جس کا مطلب ہے کہ ہم فنکشنز ایپ یو آر ایل کو فنکشن کو شروع کرنے اور ماڈل کو چلانے کے لیے فنکشن کو HTTP درخواست بھیجنے کے لیے استعمال کر سکتے ہیں۔
ان پٹ تیار کرنے کے لیے، SageMaker مثال کی فائلوں کی بالٹی سے ٹیسٹ امیجز فائلوں کو ڈاؤن لوڈ کریں اور نمونوں کا ایک سیٹ ماڈل کے لیے مطلوبہ فارمیٹ میں تیار کریں:
from torch.utils.data import DataLoader
from torchvision import datasets, transforms
import matplotlib.pyplot as plt transform=transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]
) test_dataset = datasets.MNIST(root='../data', download=True, train=False, transform=transform)
test_loader = DataLoader(test_dataset, batch_size=16, shuffle=True) test_features, test_labels = next(iter(test_loader))
نمونے کے ان پٹس کے ساتھ انفرنس اینڈ پوائنٹ پر پوسٹ کی درخواست بھیجنے کے لیے درخواستوں کی لائبریری کا استعمال کریں۔ انفرنس اینڈ پوائنٹ فارمیٹ لیتا ہے جیسا کہ درج ذیل کوڈ میں دکھایا گیا ہے:
import requests, json def to_numpy(tensor): return tensor.detach().cpu().numpy() if tensor.requires_grad else tensor.cpu().numpy() url = f"https://{function_app}.azurewebsites.net/api/classify"
response = requests.post(url, json.dumps({"data":to_numpy(test_features).tolist()}) )
predictions = json.loads(response.text)['digits']
صاف کرو
جب آپ ماڈل کی جانچ کر لیں تو، موجود وسائل کے ساتھ ریسورس گروپ کو حذف کر دیں، بشمول اسٹوریج کنٹینر اور فنکشنز ایپ:
!az group delete --name {resource_group_name} --yes
مزید برآں، لاگت کو کم کرنے کے لیے SageMaker اسٹوڈیو کے اندر موجود بیکار وسائل کو بند کرنے کی سفارش کی جاتی ہے۔ مزید معلومات کے لیے رجوع کریں۔ Amazon SageMaker سٹوڈیو کے اندر بے کار وسائل کو خود بخود بند کر کے اخراجات کو بچائیں۔.
نتیجہ
اس پوسٹ میں، ہم نے دکھایا کہ آپ کس طرح SageMaker کے ساتھ ایک ML ماڈل بنا سکتے ہیں اور اسے تربیت دے سکتے ہیں اور اسے دوسرے کلاؤڈ فراہم کنندہ پر تعینات کر سکتے ہیں۔ حل میں، ہم نے سیج میکر اسٹوڈیو نوٹ بک کا استعمال کیا، لیکن پروڈکشن ورک بوجھ کے لیے، ہم نے استعمال کرنے کی سفارش کی۔ ایم ایل اوپس ماڈل کی ترقی اور تعیناتی کو تیز کرنے کے لیے دوبارہ قابل تربیتی ورک فلو تخلیق کرنا۔
اس پوسٹ نے ملٹی کلاؤڈ ماحول میں ماڈل کو تعینات کرنے اور چلانے کے تمام ممکنہ طریقے نہیں دکھائے۔ مثال کے طور پر، آپ اپنے ماڈل کو کسی بھی پلیٹ فارم میں کنٹینرائزڈ ایپلیکیشن کے طور پر چلانے کے لیے انفرنس کوڈ اور انحصاری لائبریریوں کے ساتھ ایک کنٹینر امیج میں بھی پیک کر سکتے ہیں۔ اس نقطہ نظر کے بارے میں مزید معلومات کے لیے، رجوع کریں۔ Amazon CodeCatalyst کا استعمال کرتے ہوئے کنٹینر ایپلی کیشنز کو ملٹی کلاؤڈ ماحول میں تعینات کریں۔. پوسٹ کا مقصد یہ بتانا ہے کہ تنظیمیں ملٹی کلاؤڈ ماحول میں AWS AI/ML صلاحیتوں کو کس طرح استعمال کر سکتی ہیں۔
مصنفین کے بارے میں
راجہ ویدیا ناتھن AWS میں ایک حل آرکیٹیکٹ ہے جو عالمی مالیاتی خدمات کے صارفین کی مدد کرتا ہے۔ راجہ گاہکوں کے ساتھ ان کے کاروبار پر طویل مدتی مثبت اثرات کے ساتھ پیچیدہ مسائل کے حل کے لیے کام کرتا ہے۔ وہ ایک مضبوط انجینئرنگ پیشہ ور ہے جو IT حکمت عملی، انٹرپرائز ڈیٹا مینجمنٹ، اور ایپلیکیشن آرکیٹیکچر میں مہارت رکھتا ہے، خاص طور پر تجزیات اور مشین لرننگ میں دلچسپی رکھتا ہے۔
امندیپ باجوہ AWS میں ایک سینئر سولیوشن آرکیٹیکٹ ہے جو مالیاتی خدمات کے اداروں کو سپورٹ کرتا ہے۔ وہ صنعت کے رجحانات اور تنظیمی ترجیحات کی بنیاد پر مناسب کلاؤڈ ٹرانسفارمیشن حکمت عملی کی نشاندہی کرکے تنظیموں کو اپنے کاروباری نتائج حاصل کرنے میں مدد کرتا ہے۔ امندیپ جن شعبوں پر مشاورت کرتا ہے ان میں سے کچھ ہیں کلاؤڈ مائیگریشن، کلاؤڈ حکمت عملی (بشمول ہائبرڈ اور ملٹی کلاؤڈ)، ڈیجیٹل تبدیلی، ڈیٹا اور تجزیات، اور عام طور پر ٹیکنالوجی۔
پریما آئیر AWS انٹرپرائز سپورٹ کے لیے سینئر ٹیکنیکل اکاؤنٹ مینیجر ہے۔ وہ بیرونی صارفین کے ساتھ مختلف منصوبوں پر کام کرتی ہے، AWS استعمال کرتے وقت ان کے حل کی قدر کو بہتر بنانے میں ان کی مدد کرتی ہے۔
- SEO سے چلنے والا مواد اور PR کی تقسیم۔ آج ہی بڑھا دیں۔
- پلیٹو ڈیٹا ڈاٹ نیٹ ورک ورٹیکل جنریٹو اے آئی۔ اپنے آپ کو بااختیار بنائیں۔ یہاں تک رسائی حاصل کریں۔
- پلیٹوآئ اسٹریم۔ ویب 3 انٹیلی جنس۔ علم میں اضافہ۔ یہاں تک رسائی حاصل کریں۔
- پلیٹو ای ایس جی۔ کاربن، کلین ٹیک، توانائی ، ماحولیات، شمسی، ویسٹ مینجمنٹ یہاں تک رسائی حاصل کریں۔
- پلیٹو ہیلتھ۔ بائیوٹیک اینڈ کلینیکل ٹرائلز انٹیلی جنس۔ یہاں تک رسائی حاصل کریں۔
- ماخذ: https://aws.amazon.com/blogs/machine-learning/train-and-deploy-ml-models-in-a-multicloud-environment-using-amazon-sagemaker/
- : ہے
- : ہے
- : نہیں
- :کہاں
- $UP
- 1
- 10
- 100
- 13
- 25
- 28
- 32
- 7
- 9
- a
- ہمارے بارے میں
- رفتار کو تیز تر
- قبول کرتا ہے
- تک رسائی حاصل
- اکاؤنٹ
- حاصل
- حاصل
- فائدہ
- کے بعد
- AI
- AI / ML
- تمام
- کی اجازت دیتا ہے
- ساتھ
- پہلے ہی
- بھی
- اگرچہ
- ایمیزون
- ایمیزون سیج میکر
- ایمیزون سیج میکر کینوس
- ایمیزون سیج میکر اسٹوڈیو
- ایمیزون ویب سروسز
- an
- تجزیہ کار کہتے ہیں
- تجزیاتی
- اور
- گمنام
- ایک اور
- کوئی بھی
- اپاچی
- اپلی کیشن
- درخواست
- ایپلی کیشنز
- نقطہ نظر
- مناسب
- فن تعمیر
- محفوظ شدہ دستاویزات
- کیا
- علاقوں
- AS
- تشخیص
- At
- خود کار طریقے سے
- خود کار طریقے سے
- دستیاب
- AWS
- ایکسس
- Azure
- کی بنیاد پر
- BE
- رہا
- اس سے پہلے
- شروع کریں
- فائدہ مند
- فائدہ
- بہتر
- کے درمیان
- دونوں
- لانے
- وسیع
- تعمیر
- عمارت
- کاروبار
- لیکن
- by
- فون
- کہا جاتا ہے
- بلا
- کر سکتے ہیں
- کینوس
- صلاحیتوں
- لے جانے کے
- کیس
- چیک
- طبقے
- درجہ بندی کرنا۔
- کلک کریں
- بادل
- کوڈ
- سنجیدگی سے
- باہمی تعاون کے ساتھ
- کمپنی کے
- مکمل
- پیچیدہ
- تعمیل
- وسیع
- کمپیوٹنگ
- ترتیب
- پر مشتمل ہے
- کنٹینر
- کنٹینر
- پر مشتمل ہے
- سیاق و سباق
- سہولت
- تبدیل
- تبدیل کرنا
- کور
- اخراجات
- سکتا ہے
- تخلیق
- بنائی
- تخلیق
- مخلوق
- اسناد
- اپنی مرضی کے
- گاہکوں
- اعداد و شمار
- ڈیٹا مینجمنٹ
- ڈیٹا کی تیاری
- ڈیٹا سائنس
- ڈیٹاسیٹس
- گہری
- گہری سیکھنے
- گہری۔
- پہلے سے طے شدہ
- وضاحت
- تعریف
- مظاہرہ
- انحصار
- انحصار
- تعیناتی
- تعینات
- تعینات
- تعیناتی
- بیان
- تفصیل
- تفصیلات
- ترقی
- آلہ
- کے الات
- مختلف
- ڈیجیٹل
- ڈیجیٹل تبدیلی
- ہندسے
- طول و عرض
- بات چیت
- do
- میں Docker
- ڈومین
- کیا
- نہیں
- نیچے
- ڈاؤن لوڈ، اتارنا
- کے دوران
- متحرک
- e
- اور
- گلے
- کے قابل بناتا ہے
- کو فعال کرنا
- آخر
- اختتام پوائنٹ
- انجنیئرنگ
- انجینئرز
- انٹرپرائز
- اداروں
- ماحولیات
- عہد
- زمانے
- ہر کوئی
- مثال کے طور پر
- اس کے علاوہ
- رعایت
- پھانسی
- مہارت
- برآمد
- برآمدات
- بیرونی
- نکالنے
- ناکام رہتا ہے
- خصوصیات
- چند
- فائل
- فائلوں
- مالی
- مالیاتی خدمات
- مل
- پہلا
- فٹ
- کے بعد
- کے لئے
- فارمیٹ
- فاؤنڈیشن
- فریم ورک
- فریم ورک
- سے
- تقریب
- افعال
- جنرل
- پیدا ہوتا ہے
- پیداواری
- پیداواری AI۔
- حاصل
- گلوبل
- عالمی مالیاتی
- گروپ
- ہے
- he
- مدد
- مدد کرتا ہے
- ہوسٹنگ
- کس طرح
- کیسے
- HTML
- HTTP
- HTTPS
- ہائبرڈ
- ID
- کی نشاندہی
- ناقابل یقین
- if
- وضاحت کرتا ہے
- تصویر
- تصاویر
- اثر
- درآمد
- درآمد
- کو بہتر بنانے کے
- کو بہتر بنانے کے
- in
- شامل
- سمیت
- آزاد
- صنعت
- معلومات
- ابتدائی
- ان پٹ
- آدانوں
- انسٹال
- مثال کے طور پر
- ہدایات
- ضم
- ضم
- ارادے
- مفادات
- انٹرفیس
- انٹرویوبلائٹی
- میں
- IT
- میں
- ایوب
- نوکریاں
- فوٹو
- JSON
- زبان
- بڑے
- تازہ ترین
- آغاز
- جانیں
- سیکھنے
- لمبائی
- لیوریج
- لائبریریوں
- لائبریری
- زندگی کا دورانیہ
- لائن
- لینکس
- لسٹ
- لوڈ
- بوجھ
- مقامی
- مقامی طور پر
- محل وقوع
- لاگ ان
- طویل مدتی
- تلاش
- بند
- مشین
- مشین لرننگ
- بنا
- انتظام
- میں کامیاب
- انتظام
- مینیجر
- بہت سے
- نقشہ
- matplotlib
- مئی..
- کا مطلب ہے کہ
- سے ملو
- ملتا ہے
- طریقہ
- طریقوں
- مائیکروسافٹ
- شاید
- منتقلی
- ML
- ایم ایل اوپس
- موڈ
- ماڈل
- ماڈل
- ماڈیول
- زیادہ
- سب سے زیادہ
- نام
- نامزد
- یعنی
- ضرورت ہے
- ضرورت
- ضروریات
- خالص
- نیٹ ورک
- عصبی
- عصبی نیٹ ورک
- نوٹ بک
- عجیب
- اعتراض
- of
- on
- ایک
- کھول
- اوپن سورس
- کام
- آپریشنز
- آپریٹرز
- آپشنز کے بھی
- or
- حکم
- تنظیم
- تنظیمی
- تنظیمیں
- OS
- دیگر
- ہمارے
- باہر
- نتائج
- پیداوار
- باہر
- خود
- پیکج
- پیک۔
- پیرامیٹر
- پیرامیٹرز
- حصہ
- خاص طور پر
- پارٹی
- منظور
- گزرتا ہے
- راستہ
- انجام دیں
- اجازتیں
- پلیٹ فارم
- پلیٹ فارم
- پلاٹا
- افلاطون ڈیٹا انٹیلی جنس
- پلیٹو ڈیٹا
- مقبول
- مثبت
- ممکن
- پوسٹ
- پیشن گوئی
- تیاری
- تیار
- ضروریات
- پرائمری
- پرنسپل
- مسائل
- عملدرآمد
- پیداوار
- پیداوری
- حاصل
- پیشہ ورانہ
- منصوبوں
- فراہم
- فراہم
- فراہم کنندہ
- فراہم کرتا ہے
- عوامی
- شائع
- ازگر
- pytorch
- فوری
- اٹھایا
- بے ترتیب
- تیار
- موصول
- سفارش کی
- ریکارڈنگ
- کو کم
- کا حوالہ دیتے ہیں
- بے شک
- خطے
- رجسٹری
- رشتہ دار
- بار بار قابل
- درخواست
- درخواستوں
- کی ضرورت
- ضرورت
- ضروریات
- وسائل
- وسائل
- جواب
- نتیجہ
- نتیجے
- واپسی
- ٹھیک ہے
- کردار
- جڑ
- رن
- چل رہا ہے
- چلتا ہے
- sagemaker
- اسی
- محفوظ
- پیمانے
- سکیننگ
- منظرنامے
- سائنس
- سائنسدانوں
- اسکرپٹ
- sdk
- ثانوی
- سیکشن
- سیکشنز
- سیکورٹی
- دیکھنا
- انتخاب
- SELF
- بھیجنے
- سینئر
- سروس
- سروسز
- اجلاس
- مقرر
- ترتیبات
- سیٹ اپ
- شکل
- وہ
- ہونا چاہئے
- دکھائیں
- سے ظاہر ہوا
- دکھایا گیا
- شوز
- بند کرو
- کواڑ بند کرنے
- سادہ
- حالات
- ہنر مند
- مہارت
- So
- سافٹ ویئر کی
- حل
- حل
- کچھ
- ماخذ
- خود مختاری
- مخصوص
- اسٹیج
- معیار
- شروع کریں
- شروع
- شروع ہوتا ہے
- مراحل
- ذخیرہ
- ذخیرہ
- ذخیرہ
- حکمت عملی
- سلک
- مضبوط
- ساخت
- سٹوڈیو
- بعد میں
- کامیابی کے ساتھ
- اس طرح
- حمایت
- امدادی
- کی حمایت کرتا ہے
- لے لو
- لیتا ہے
- ہدف
- ٹیم
- ٹیکنیکل
- ٹیکنالوجی
- ٹیکنالوجی
- دس
- ٹیسسرور
- ٹیسٹ
- تجربہ
- ٹیسٹنگ
- متن
- کہ
- ۔
- ماخذ
- ان
- ان
- خود
- تو
- یہ
- وہ
- بات
- تھرڈ
- اس
- اوقات
- کرنے کے لئے
- ٹول کٹ
- اوزار
- مشعل
- ٹارچ ویژن
- ٹریس
- ٹرین
- تربیت یافتہ
- ٹریننگ
- تبدیل
- تبدیلی
- تبدیلی کی حکمت عملی
- تبادلوں
- رجحانات
- ٹرگر
- متحرک
- سچ
- کوشش
- قسم
- منفرد
- اپ لوڈ کردہ
- اپ لوڈ کرنا
- URL
- استعمال کی شرائط
- استعمال کیس
- استعمال کیا جاتا ہے
- رکن کا
- استعمال
- کا استعمال کرتے ہوئے
- کی افادیت
- تصدیق کریں۔
- قیمت
- متغیر
- مختلف اقسام کے
- دکانداروں
- ورژن
- خطرے کا سامنا
- چاہتے ہیں
- تھا
- طریقوں
- we
- ویب
- ویب خدمات
- ویب پر مبنی ہے
- اچھا ہے
- جب
- جس
- گے
- ساتھ
- کے اندر
- کام کے بہاؤ
- کام کرتا ہے
- لکھنا
- لکھا
- X
- ابھی
- تم
- اور
- زیفیرنیٹ
- زپ