Skip to content

Latest commit

 

History

History
333 lines (237 loc) · 29.8 KB

README_ur.md

File metadata and controls

333 lines (237 loc) · 29.8 KB

Hugging Face Transformers Library

Build GitHub Documentation GitHub release Contributor Covenant DOI

جدید ترین مشین لرننگ برائے JAX، PyTorch اور TensorFlow

‏🤗 Transformers مختلف طریقوں جیسے کہ متن، بصارت، اور آڈیو پر کام کرنے کے لیے ہزاروں پری ٹرینڈ ماڈلز فراہم کرتے ہیں۔

یہ ماڈلز درج ذیل پر لاگو کیے جا سکتے ہیں:

  • 📝 متن، جیسے کہ متن کی درجہ بندی، معلومات کا استخراج، سوالات کے جوابات، خلاصہ، ترجمہ، اور متن کی تخلیق، 100 سے زائد زبانوں میں۔
  • 🖼️ تصاویر، جیسے کہ تصویر کی درجہ بندی، اشیاء کی شناخت، اور تقسیم۔
  • 🗣️ آڈیو، جیسے کہ تقریر کی شناخت اور آڈیو کی درجہ بندی۔

ٹرانسفارمر ماڈلز مختلف طریقوں کو ملا کر بھی کام انجام دے سکتے ہیں، جیسے کہ ٹیبل سوال جواب، بصری حروف کی شناخت، اسکین شدہ دستاویزات سے معلومات نکالنا، ویڈیو کی درجہ بندی، اور بصری سوال جواب۔

‏🤗 Transformers ایسے APIs فراہم کرتا ہے جو آپ کو تیز رفتاری سے پری ٹرینڈ ماڈلز کو ایک دیے گئے متن پر ڈاؤن لوڈ اور استعمال کرنے، انہیں اپنے ڈیٹا سیٹس پر فائن ٹون کرنے، اور پھر ہمارے ماڈل حب پر کمیونٹی کے ساتھ شیئر کرنے کی سہولت دیتا ہے۔ اسی وقت، ہر پائتھن ماڈیول جو ایک آرکیٹیکچر کو بیان کرتا ہے، مکمل طور پر خود مختار ہوتا ہے اور اسے تیز تحقیقاتی تجربات کے لیے تبدیل کیا جا سکتا ہے۔

‏🤗 Transformers تین سب سے مشہور ڈیپ لرننگ لائبریریوں — Jax، PyTorch اور TensorFlow — کی مدد سے تیار کردہ ہے، جن کے درمیان بے حد ہموار انضمام ہے۔ اپنے ماڈلز کو ایک کے ساتھ تربیت دینا اور پھر دوسرے کے ساتھ inference کے لیے لوڈ کرنا انتہائی سادہ ہے۔

آن لائن ڈیمو

آپ ہمارے زیادہ تر ماڈلز کو براہ راست ان کے صفحات پر ماڈل ہب سے آزما سکتے ہیں۔ ہم عوامی اور نجی ماڈلز کے لیے ذاتی ماڈل ہوسٹنگ، ورژننگ، اور انفرنس API بھی فراہم کرتے ہیں۔

یہاں چند مثالیں ہیں:

قدرتی زبان کی پروسیسنگ میں:

کمپیوٹر وژن میں:

آڈیو:

ملٹی ماڈل ٹاسک میں:

ٹرانسفارمرز کے 100 منصوبے

‏🤗 Transformers صرف پیشگی تربیت یافتہ ماڈلز کا ایک ٹول کٹ نہیں ہے: یہ ایک کمیونٹی ہے جو اس کے ارد گرد اور ہیگنگ فیس حب پر تعمیر شدہ منصوبوں کا مجموعہ ہے۔ ہم چاہتے ہیں کہ🤗 Transformers ترقی کاروں، محققین، طلباء، پروفیسرز، انجینئرز، اور ہر کسی کو اپنے خوابوں کے منصوبے بنانے میں مدد فراہم کرے۔

‏🤗 Transformers کے 100,000 ستاروں کی خوشی منانے کے لیے، ہم نے کمیونٹی پر روشنی ڈالنے کا فیصلہ کیا ہے، اور ہم نے awesome-transformers کا صفحہ بنایا ہے جو 100 شاندار منصوبے درج کرتا ہے جو 🤗 Transformers کے ارد گرد بنائے گئے ہیں۔

اگر آپ کے پاس کوئی ایسا منصوبہ ہے جسے آپ سمجھتے ہیں کہ اس فہرست کا حصہ ہونا چاہیے، تو براہ کرم ایک PR کھولیں تاکہ اسے شامل کیا جا سکے!

اگر آپ ہیگنگ فیس ٹیم سے حسب ضرورت معاونت تلاش کر رہے ہیں

HuggingFace Expert Acceleration Program

فوری ٹور

دیے گئے ان پٹ (متن، تصویر، آڈیو، ...) پر ماڈل کو فوری طور پر استعمال کرنے کے لیے، ہم pipeline API فراہم کرتے ہیں۔ پائپ لائنز ایک پیشگی تربیت یافتہ ماڈل کو اس ماڈل کی تربیت کے دوران استعمال ہونے والے پری پروسیسنگ کے ساتھ گروپ کرتی ہیں۔ یہاں یہ ہے کہ مثبت اور منفی متون کی درجہ بندی کے لیے پائپ لائن کو جلدی سے کیسے استعمال کیا جائے:

>>> from transformers import pipeline

# جذبات کے تجزیے کے لیے ایک پائپ لائن مختص کریں
>>> classifier = pipeline('sentiment-analysis')
>>> classifier('We are very happy to introduce pipeline to the transformers repository.')
[{'label': 'POSITIVE', 'score': 0.9996980428695679}]

دوسری لائن کوڈ پائپ لائن کے ذریعہ استعمال ہونے والے پیشگی تربیت یافتہ ماڈل کو ڈاؤن لوڈ اور کیش کرتی ہے، جبکہ تیسری لائن اسے دیے گئے متن پر جانچتی ہے۔ یہاں، جواب "مثبت" ہے جس کی اعتماد کی شرح 99.97% ہے۔

بہت سے کاموں کے لیے ایک پیشگی تربیت یافتہ pipeline تیار ہے، NLP کے علاوہ کمپیوٹر ویژن اور آواز میں بھی۔ مثال کے طور پر، ہم تصویر میں دریافت شدہ اشیاء کو آسانی سے نکال سکتے ہیں:

>>> import requests
>>> from PIL import Image
>>> from transformers import pipeline

# جذبات کے تجزیے کے لیے ایک پائپ لائن مختص کریں
>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/coco_sample.png"
>>> image_data = requests.get(url, stream=True).raw
>>> image = Image.open(image_data)

>>> object_detector = pipeline('object-detection')
>>> object_detector(image)
[{'score': 0.9982201457023621،
  'label': 'remote'box': {'xmin': 40, 'ymin': 70, 'xmax': 175, 'ymax': 117}}،
 {'score': 0.9960021376609802،
  'label': 'remote'box': {'xmin': 333, 'ymin': 72, 'xmax': 368, 'ymax': 187}}،
 {'score': 0.9954745173454285،
  'label': 'couch'box': {'xmin': 0, 'ymin': 1, 'xmax': 639, 'ymax': 473}}،
 {'score': 0.9988006353378296،
  'label': 'cat'box': {'xmin': 13, 'ymin': 52, 'xmax': 314, 'ymax': 470}}،
 {'score': 0.9986783862113953،
  'label': 'cat'box': {'xmin': 345, 'ymin': 23, 'xmax': 640, 'ymax': 368}}]

یہاں، ہم کو تصویر میں دریافت شدہ اشیاء کی فہرست ملتی ہے، ہر ایک کے گرد ایک باکس اور اعتماد کا اسکور۔ یہاں اصل تصویر بائیں طرف ہے، اور پیشگوئیاں دائیں طرف ظاہر کی گئی ہیں:

آپ pipeline API کی مدد سے معاونت شدہ کاموں کے بارے میں مزید جان سکتے ہیں اس ٹیوٹوریل میں۔

pipeline کے علاوہ، کسی بھی پیشگی تربیت یافتہ ماڈل کو آپ کے دیے گئے کام پر ڈاؤن لوڈ اور استعمال کرنے کے لیے، صرف تین لائنوں کا کوڈ کافی ہے۔ یہاں PyTorch ورژن ہے:

>>> from transformers import AutoTokenizer، AutoModel

>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
>>> model = AutoModel.from_pretrained("google-bert/bert-base-uncased")

>>> inputs = tokenizer("Hello world!"، return_tensors="pt")
>>> outputs = model(**inputs)

اور یہاں TensorFlow کے لیے مساوی کوڈ ہے:

>>> from transformers import AutoTokenizer، TFAutoModel

>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
>>> model = TFAutoModel.from_pretrained("google-bert/bert-base-uncased")

>>> inputs = tokenizer("Hello world!"، return_tensors="tf")
>>> outputs = model(**inputs)

ٹوکینائزر تمام پری پروسیسنگ کا ذمہ دار ہے جس کی پیشگی تربیت یافتہ ماڈل کو ضرورت ہوتی ہے اور اسے براہ راست ایک واحد سٹرنگ (جیسا کہ اوپر کی مثالوں میں) یا ایک فہرست پر کال کیا جا سکتا ہے۔ یہ ایک لغت فراہم کرے گا جسے آپ ڈاؤن اسٹریم کوڈ میں استعمال کر سکتے ہیں یا سادہ طور پر اپنے ماڈل کو ** دلیل انپیکنگ آپریٹر کے ذریعے براہ راست پاس کر سکتے ہیں۔

ماڈل خود ایک باقاعدہ PyTorch nn.Module یا TensorFlow tf.keras.Model (آپ کے بیک اینڈ پر منحصر ہے) ہے جسے آپ معمول کے مطابق استعمال کر سکتے ہیں۔ یہ ٹیوٹوریل وضاحت کرتا ہے کہ کلاسیکی PyTorch یا TensorFlow تربیتی لوپ میں ایسے ماڈل کو کیسے ضم کیا جائے، یا ہمارے Trainer API کا استعمال کرتے ہوئے نئے ڈیٹا سیٹ پر جلدی سے فائن ٹیون کیسے کیا جائے۔

مجھے Transformers کیوں استعمال کرنا چاہیے؟

‏ 1. استعمال میں آسان جدید ترین ماڈلز:

  • قدرتی زبان کی سمجھ اور تخلیق، کمپیوٹر وژن، اور آڈیو کے کاموں میں اعلی کارکردگی۔
  • معلمین اور عملی ماہرین کے لیے کم داخلی رکاوٹ۔
  • سیکھنے کے لیے صرف تین کلاسز کے ساتھ چند یوزر فرینڈلی ایبسٹریکشنز۔
  • ہمارے تمام pretrained ماڈلز کے استعمال کے لیے ایک متحد API۔

‏ 2. کمپیوٹیشن کے اخراجات میں کمی، کاربن فٹ پرنٹ میں کمی:

  • محققین ہمیشہ دوبارہ تربیت کرنے کی بجائے تربیت شدہ ماڈلز شیئر کر سکتے ہیں۔
  • عملی ماہرین کمپیوٹ وقت اور پروڈکشن اخراجات کو کم کر سکتے ہیں۔
  • ہر موڈیلٹی کے لیے 400,000 سے زیادہ pretrained ماڈلز کے ساتھ درجنوں آرکیٹیکچرز۔

‏ 3. ماڈل کے لائف ٹائم کے ہر حصے کے لیے صحیح فریم ورک کا انتخاب کریں:

  • 3 لائنز کے کوڈ میں جدید ترین ماڈلز تربیت دیں۔
  • ایک ماڈل کو کسی بھی وقت TF2.0/PyTorch/JAX فریم ورکس کے درمیان منتقل کریں۔
  • تربیت، تشخیص، اور پروڈکشن کے لیے بغیر کسی رکاوٹ کے صحیح فریم ورک کا انتخاب کریں۔

‏ 4. اپنے ضروریات کے مطابق آسانی سے ماڈل یا ایک مثال کو حسب ضرورت بنائیں:

  • ہم ہر آرکیٹیکچر کے لیے مثالیں فراہم کرتے ہیں تاکہ اصل مصنفین کے شائع شدہ نتائج کو دوبارہ پیدا کیا جا سکے۔
  • ماڈلز کی اندرونی تفصیلات کو جتنا ممکن ہو یکساں طور پر ظاہر کیا جاتا ہے۔
  • فوری تجربات کے لیے ماڈل فائلز کو لائبریری سے آزادانہ طور پر استعمال کیا جا سکتا ہے۔

مجھے Transformers کیوں استعمال نہیں کرنا چاہیے؟

  • یہ لائبریری نیورل نیٹس کے لیے بلڈنگ بلاکس کا ماڈیولر ٹول باکس نہیں ہے۔ ماڈل فائلز میں موجود کوڈ جان بوجھ کر اضافی ایبسٹریکشنز کے ساتھ دوبارہ ترتیب نہیں دیا گیا ہے، تاکہ محققین بغیر اضافی ایبسٹریکشنز/فائلوں میں گئے ہوئے جلدی سے ہر ماڈل پر کام کر سکیں۔
  • تربیتی API کا مقصد کسی بھی ماڈل پر کام کرنے کے لیے نہیں ہے بلکہ یہ لائبریری کے فراہم کردہ ماڈلز کے ساتھ کام کرنے کے لیے بہتر بنایا گیا ہے۔ عام مشین لرننگ لوپس کے لیے، آپ کو دوسری لائبریری (ممکنہ طور پر Accelerate) استعمال کرنی چاہیے۔
  • حالانکہ ہم جتنا ممکن ہو زیادہ سے زیادہ استعمال کے کیسز پیش کرنے کی کوشش کرتے ہیں، ہمارے مثالوں کے فولڈر میں موجود اسکرپٹس صرف یہی ہیں: مثالیں۔ یہ توقع کی جاتی ہے کہ یہ آپ کے مخصوص مسئلے پر فوراً کام نہیں کریں گی اور آپ کو اپنی ضروریات کے مطابق کوڈ کی کچھ لائنیں تبدیل کرنی پڑیں گی۔

انسٹالیشن

‏ pip کے ساتھ

یہ ریپوزٹری Python 3.8+، Flax 0.4.1+، PyTorch 1.11+، اور TensorFlow 2.6+ پر ٹیسٹ کی گئی ہے۔

آپ کو 🤗 Transformers کو ایک ورچوئل ماحول میں انسٹال کرنا چاہیے۔ اگر آپ Python ورچوئل ماحول سے واقف نہیں ہیں، تو یوزر گائیڈ دیکھیں۔

پہلے، Python کے اس ورژن کے ساتھ ایک ورچوئل ماحول بنائیں جو آپ استعمال کر رہے ہیں اور اسے ایکٹیویٹ کریں۔

پھر، آپ کو کم از کم Flax، PyTorch، یا TensorFlow میں سے کسی ایک کو انسٹال کرنے کی ضرورت ہوگی۔ براہ کرم اپنے پلیٹ فارم کے لیے مخصوص انسٹالیشن کمانڈ کے حوالے سے TensorFlow انسٹالیشن صفحہ، PyTorch انسٹالیشن صفحہ اور/یا Flax اور Jax انسٹالیشن صفحات دیکھیں۔

جب ان میں سے کوئی ایک بیک اینڈ انسٹال ہو جائے، تو 🤗 Transformers کو pip کے ذریعے مندرجہ ذیل طریقے سے انسٹال کیا جا سکتا ہے:

pip install transformers

اگر آپ مثالوں کے ساتھ کھیلنا چاہتے ہیں یا آپ کو کوڈ کا تازہ ترین ورژن چاہیے اور آپ نئے ریلیز کا انتظار نہیں کر سکتے، تو آپ کو سورس سے لائبریری انسٹال کرنی ہوگی۔

‏conda کے ساتھ

‏🤗 Transformers کو conda کے ذریعے مندرجہ ذیل طریقے سے انسٹال کیا جا سکتا ہے:

conda install conda-forge::transformers

نوٹ: transformers کو huggingface چینل سے انسٹال کرنا اب ختم کیا جا چکا ہے۔

Flax، PyTorch، یا TensorFlow کو conda کے ساتھ انسٹال کرنے کے لیے انسٹالیشن صفحات کی پیروی کریں۔

نوٹ: ونڈوز پر، آپ کو کیشنگ سے فائدہ اٹھانے کے لیے ڈویلپر موڈ کو ایکٹیویٹ کرنے کا پیغام دیا جا سکتا ہے۔ اگر یہ آپ کے لیے ممکن نہیں ہے، تو براہ کرم ہمیں اس مسئلے میں بتائیں۔

ماڈل کی تعمیرات

‏ 🤗 Transformers کی طرف سے فراہم کردہ تمام ماڈل چیک پوائنٹس ہگنگ فیس کے ماڈل حب model hub سے بآسانی مربوط ہیں، جہاں یہ براہ راست صارفین اور تنظیموں کے ذریعہ اپ لوڈ کیے جاتے ہیں۔

چیک پوائنٹس کی موجودہ تعداد:

‏🤗 Transformers فی الحال درج ذیل معماریاں فراہم کرتا ہے: ہر ایک کا اعلی سطحی خلاصہ دیکھنے کے لیے یہاں دیکھیں۔

یہ چیک کرنے کے لیے کہ ہر ماڈل کی Flax، PyTorch یا TensorFlow میں کوئی عملداری ہے یا 🤗 Tokenizers لائبریری کے ذریعہ سپورٹ کردہ ٹوکنائزر کے ساتھ ہے، اس جدول کا حوالہ لیں۔

یہ عملداری مختلف ڈیٹا سیٹس پر ٹیسٹ کی گئی ہیں (مثال کے اسکرپٹس دیکھیں) اور اصل عملداری کی کارکردگی کے ہم آہنگ ہونی چاہئیں۔ آپ کو کارکردگی کی مزید تفصیلات دستاویزات کے مثالوں کے سیکشن میں مل سکتی ہیں۔

مزید معلومات حاصل کریں

سیکشن تفصیل
دستاویزات مکمل API دستاویزات اور ٹیوٹوریلز
ٹاسک کا خلاصہ 🤗 Transformers کے ذریعہ سپورٹ کردہ ٹاسک
پری پروسیسنگ ٹیوٹوریل ماڈلز کے لیے ڈیٹا تیار کرنے کے لیے Tokenizer کلاس کا استعمال
ٹریننگ اور فائن ٹیوننگ PyTorch/TensorFlow ٹریننگ لوپ میں 🤗 Transformers کی طرف سے فراہم کردہ ماڈلز کا استعمال اور Trainer API
تیز دورہ: فائن ٹیوننگ/استعمال کے اسکرپٹس مختلف قسم کے ٹاسک پر ماڈلز کو فائن ٹیون کرنے کے لیے مثال کے اسکرپٹس
ماڈل کا اشتراک اور اپ لوڈ کرنا اپنی فائن ٹیون کردہ ماڈلز کو کمیونٹی کے ساتھ اپ لوڈ اور شیئر کریں

استشہاد

ہم نے اب ایک تحقیقی مقالہ تیار کیا ہے جسے آپ 🤗 Transformers لائبریری کے لیے حوالہ دے سکتے ہیں:

@inproceedings{wolf-etal-2020-transformers،
    title = "Transformers: State-of-the-Art Natural Language Processing"،
    author = "Thomas Wolf and Lysandre Debut and Victor Sanh and Julien Chaumond and Clement Delangue and Anthony Moi and Pierric Cistac and Tim Rault and R{\'e}mi Louf and Morgan Funtowicz and Joe Davison and Sam Shleifer and Patrick von Platen and Clara Ma and Yacine Jernite and Julien Plu and Canwen Xu and Teven Le Scao and Sylvain Gugger and Mariama Drame and Quentin Lhoest and Alexander M. Rush"،
    booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations"،
    month = oct،
    year = "2020"،
    address = "Online"،
    publisher = "Association for Computational Linguistics"،
    url = "https://www.aclweb.org/anthology/2020.emnlp-demos.6"،
    pages = "38--45"
}