رطم الدليل الكامل للمبتدئين لأدوات عناق الوجه LLM - Unite.AI
اتصل بنا للحصول على مزيد من المعلومات

أدوات الذكاء الاصطناعي 101

الدليل الكامل للمبتدئين لأدوات LLM لعناق الوجه

mm
تحديث on
معانقة الوجه - الدليل الكامل

Hugging Face هو مختبر ومركز لأبحاث الذكاء الاصطناعي قام ببناء مجتمع من العلماء والباحثين والمتحمسين. في فترة قصيرة من الزمن، اكتسبت Hugging Face حضورًا كبيرًا في مجال الذكاء الاصطناعي. عمالقة التكنولوجيا قامت شركات بما في ذلك Google وAmazon وNvidia بدعم شركة Hugging Face الناشئة في مجال الذكاء الاصطناعي باستثمارات كبيرة، مما جعل تقييمها بـ4.5 مليار دولار.

في هذا الدليل، سنقدم المحولات والماجستير في القانون وكيف تلعب مكتبة Hugging Face دورًا مهمًا في تعزيز مجتمع الذكاء الاصطناعي مفتوح المصدر. سنتعرف أيضًا على الميزات الأساسية لـ Hugging Face، بما في ذلك خطوط الأنابيب ومجموعات البيانات والنماذج والمزيد، مع أمثلة عملية لـ Python.

المحولات في البرمجة اللغوية العصبية

في عام 2017، نشرت جامعة كورنيل ورقة بحثية مؤثرة قدمت محولات. هذه هي نماذج التعلم العميق المستخدمة في البرمجة اللغوية العصبية. غذى هذا الاكتشاف تطوير نماذج لغوية كبيرة مثل شات جي بي تي.

نماذج اللغات الكبيرة أو LLMs هي أنظمة ذكاء اصطناعي تستخدم المحولات لفهم وإنشاء نص يشبه الإنسان. ومع ذلك، فإن إنشاء هذه النماذج أمر مكلف، وغالبًا ما يتطلب ملايين الدولارات، مما يحد من إمكانية وصول الشركات الكبيرة إليها.

وجه يعانق، التي بدأت في عام 2016، تهدف إلى جعل نماذج البرمجة اللغوية العصبية في متناول الجميع. على الرغم من كونها شركة تجارية، إلا أنها تقدم مجموعة من الموارد مفتوحة المصدر لمساعدة الأشخاص والمؤسسات على بناء نماذج المحولات واستخدامها بتكلفة معقولة. يدور التعلم الآلي حول تعليم أجهزة الكمبيوتر أداء المهام من خلال التعرف على الأنماط، بينما يقوم التعلم العميق، وهو مجموعة فرعية من التعلم الآلي، بإنشاء شبكة تتعلم بشكل مستقل. المحولات هي نوع من بنية التعلم العميق التي تستخدم البيانات المدخلة بفعالية ومرونة، مما يجعلها خيارًا شائعًا لبناء نماذج لغوية كبيرة نظرًا لمتطلبات وقت التدريب الأقل.

كيف تسهل معانقة الوجه مشاريع البرمجة اللغوية العصبية و LLM

النظام البيئي المعانق - النماذج، مجموعة البيانات، المقاييس، المحولات، التسريع، الرموز المميزة

جعلت Hugging Face العمل مع LLMs أكثر بساطة من خلال تقديم:

  1. مجموعة من النماذج المدربة مسبقًا للاختيار من بينها.
  2. الأدوات والأمثلة لضبط هذه النماذج بما يتناسب مع احتياجاتك الخاصة.
  3. خيارات نشر سهلة لبيئات مختلفة.

من الموارد الرائعة المتاحة من خلال Hugging Face هو افتح لوحة المتصدرين LLM. تعمل كمنصة شاملة، حيث تقوم بمراقبة وتصنيف وقياس كفاءة مجموعة من نماذج اللغات الكبيرة (LLMs) وروبوتات الدردشة بشكل منهجي، مما يوفر تحليلًا مميزًا للتطورات في مجال مفتوح المصدر

تقيس معايير LLM النماذج من خلال أربعة مقاييس:

  • تحدي التفكير AI2 (25 لقطة) - سلسلة من الأسئلة حول منهج العلوم الابتدائية.
  • هيلا سواج (10 طلقات) - اختبار الاستدلال المنطقي، على الرغم من بساطة هذا المقياس بالنسبة للبشر، إلا أنه يمثل تحديًا كبيرًا للنماذج المتطورة.
  • MMLU (5-shot) - تقييم متعدد الأوجه يتناول كفاءة نموذج النص عبر 57 مجالًا متنوعًا، بما في ذلك الرياضيات الأساسية والقانون وعلوم الكمبيوتر، من بين مجالات أخرى.
  • صادق (0-shot) - أداة للتأكد من ميل النموذج إلى تكرار المعلومات الخاطئة التي يتم مواجهتها بشكل متكرر عبر الإنترنت.

تشير المعايير الموضحة باستخدام مصطلحات مثل "25-shot" و"10-shot" و"5-shot" و"0-shot" إلى عدد الأمثلة الفورية التي تم تقديمها للنموذج أثناء عملية التقييم لقياس أدائه وقدراته المنطقية في مختلف المجالات. في نماذج "الطلقات القليلة"، يتم تزويد النماذج بعدد صغير من الأمثلة للمساعدة في توجيه استجاباتها، بينما في إعداد "0 طلقة"، لا تتلقى النماذج أي أمثلة ويجب أن تعتمد فقط على معرفتها الموجودة مسبقًا للاستجابة بشكل مناسب .

مكونات معانقة الوجه

خطوط الأنابيب

"خطوط الأنابيب."" هي جزء من مكتبة محولات Hugging Face، وهي ميزة تساعد في الاستخدام السهل للنماذج المدربة مسبقًا والمتوفرة في مستودع Hugging Face. فهو يوفر واجهة برمجة تطبيقات بديهية لمجموعة من المهام، بما في ذلك تحليل المشاعر والإجابة على الأسئلة ونمذجة اللغة المقنعة والتعرف على الكيانات المسماة والتلخيص.

تدمج خطوط الأنابيب ثلاثة مكونات مركزية لـ Hugging Face:

  1. Tokenizer: يقوم بإعداد النص الخاص بك للنموذج عن طريق تحويله إلى تنسيق يمكن للنموذج فهمه.
  2. الموديل: هذا هو قلب المسار حيث يتم إجراء التنبؤات الفعلية بناءً على المدخلات المعالجة مسبقًا.
  3. معالج آخر: يحول التنبؤات الأولية للنموذج إلى نموذج يمكن قراءته بواسطة الإنسان.

لا تقلل خطوط الأنابيب هذه من الترميز الشامل فحسب، بل توفر أيضًا واجهة سهلة الاستخدام لإنجاز مهام البرمجة اللغوية العصبية المتنوعة.

تطبيقات المحولات باستخدام مكتبة Hugging Face

من أبرز مميزات مكتبة Hugging Face هي مكتبة Transformers، التي تعمل على تبسيط مهام البرمجة اللغوية العصبية (NLP) من خلال ربط النموذج بمراحل ما قبل وما بعد المعالجة الضرورية، وتبسيط عملية التحليل. لتثبيت المكتبة واستيرادها، استخدم الأوامر التالية:

pip install -q transformers
from transformers import pipeline

بعد القيام بذلك، يمكنك تنفيذ مهام البرمجة اللغوية العصبية بدءًا من تحليل المشاعر، الذي يصنف النص إلى مشاعر إيجابية أو سلبية. تعمل وظيفة خط الأنابيب () القوية بالمكتبة كمحور يشمل خطوط الأنابيب الأخرى وتسهيل التطبيقات الخاصة بالمهام في مجالات الصوت والرؤية ومجالات الوسائط المتعددة.

التطبيقات العملية

تصنيف النص

يصبح تصنيف النص أمرًا سهلاً مع وظيفة Pipeline() الخاصة بـ Hugging Face. إليك كيفية بدء مسار تصنيف النص:

classifier = pipeline("text-classification")

للحصول على تجربة عملية، قم بإدخال سلسلة أو قائمة من السلاسل في المسار الخاص بك للحصول على التنبؤات، والتي يمكن تصورها بدقة باستخدام مكتبة Python Pandas. يوجد أدناه مقتطف من لغة بايثون يوضح ذلك:

sentences = ["I am thrilled to introduce you to the wonderful world of AI.",
"Hopefully, it won't disappoint you."]
# Get classification results for each sentence in the list
results = classifier(sentences)
# Loop through each result and print the label and score
for i, result in enumerate(results):
print(f"Result {i + 1}:")
print(f" Label: {result['label']}")
print(f" Score: {round(result['score'], 3)}\n")

الناتج

Result 1: 
Label: POSITIVE 
Score: 1.0 
Result 2: 
Label: POSITIVE 
Score: 0.996 

التعرف على الكيان المحدد (NER)

يعتبر NER محوريًا في استخراج كائنات العالم الحقيقي التي تسمى "الكيانات المسماة" من النص. استخدم خط أنابيب NER لتحديد هذه الكيانات بشكل فعال:

ner_tagger = pipeline("ner", aggregation_strategy="simple")
text = "Elon Musk is the CEO of SpaceX."
outputs = ner_tagger(text)
print(outputs)

الناتج

 Elon Musk: PER, SpaceX: ORG 

الإجابة على السؤال

تتضمن الإجابة على الأسئلة استخلاص إجابات دقيقة لأسئلة محددة من سياق معين. قم بتهيئة مسار للإجابة على الأسئلة وأدخل سؤالك وسياقك للحصول على الإجابة المطلوبة:

reader = pipeline("question-answering")
text = "Hugging Face is a company creating tools for NLP. It is based in New York and was founded in 2016."
question = "Where is Hugging Face based?"
outputs = reader(question=question, context=text)
print(outputs)

الناتج

 {'score': 0.998, 'start': 51, 'end': 60, 'answer': 'New York'} 

توفر وظيفة خطوط الأنابيب في Hugging Face مجموعة من خطوط الأنابيب المعدة مسبقًا لمهام مختلفة، بصرف النظر عن تصنيف النص وNER والإجابة على الأسئلة. فيما يلي تفاصيل حول مجموعة فرعية من المهام المتاحة:

الجدول: معانقة مهام خط أنابيب الوجه

مهمةالوصفمعرف خط الأنابيب
توليد النصإنشاء نص بناءً على موجه معينخط الأنابيب (المهمة = "إنشاء النص")
تلخيصلخص نصًا أو مستندًا طويلًاخط الأنابيب (المهمة = "التلخيص")
تصنيف الصورقم بتسمية صورة الإدخالخط الأنابيب (المهمة = "تصنيف الصورة")
تصنيف الصوتتصنيف البيانات الصوتيةخط الأنابيب (المهمة = "تصنيف الصوت")
إجابة بصرية للأسئلةأجب عن استعلام باستخدام كل من الصورة والسؤالخط الأنابيب (المهمة = "vqa")

 

للحصول على وصف تفصيلي والمزيد من المهام، راجع وثائق خط الأنابيب على موقع Hugging Face الإلكتروني.

لماذا يحول Hugging Face تركيزه على الصدأ؟

معانقة Safetensors الوجه ورمز الصدأ

معانقة أدوات حماية الوجه والرمز المميز لصفحة GitHub

بدأ النظام البيئي Hugging Face (HF) في استخدام Rust في مكتباته مثل أجهزة الاستشعار الآمنة والرموز المميزة.

أصدرت Hugging Face مؤخرًا إطارًا جديدًا للتعلم الآلي يسمى شمعة. على عكس الأطر التقليدية التي تستخدم بايثون، تم تصميم Candle باستخدام Rust. الهدف من استخدام Rust هو تحسين الأداء وتبسيط تجربة المستخدم مع دعم عمليات وحدة معالجة الرسومات.

الهدف الرئيسي لـ Candle هو تسهيل الاستدلال بدون خادم، مما يجعل نشر الثنائيات خفيفة الوزن أمرًا ممكنًا وإزالة Python من أعباء عمل الإنتاج، والتي قد تؤدي في بعض الأحيان إلى إبطاء العمليات بسبب النفقات العامة. يأتي هذا الإطار كحل للتغلب على المشكلات التي تواجهها أطر التعلم الآلي الكاملة مثل PyTorch والتي تكون كبيرة وبطيئة عند إنشاء المثيلات على المجموعة.

دعنا نستكشف لماذا أصبح Rust خيارًا مفضلاً أكثر بكثير من Python.

  1. السرعة والأداء - تشتهر Rust بسرعتها المذهلة، حيث تتفوق على لغة Python، والتي تُستخدم تقليديًا في أطر التعلم الآلي. يمكن أن يتباطأ أداء بايثون في بعض الأحيان بسبب قفل المترجم العالمي (GIL)، لكن Rust لا يواجه هذه المشكلة، ويعد بتنفيذ المهام بشكل أسرع، وبالتالي تحسين الأداء في المشاريع التي يتم تنفيذها فيها.
  2. السلامة – يوفر Rust ضمانات سلامة الذاكرة بدون أداة تجميع البيانات المهملة، وهو جانب ضروري لضمان سلامة الأنظمة المتزامنة. يلعب هذا دورًا حاسمًا في مجالات مثل أجهزة الأمان حيث تكون السلامة في التعامل مع هياكل البيانات أولوية.

الأمانات

الأمانات استفد من ميزات السرعة والسلامة في Rust. تتضمن أدوات الأمان التلاعب بالموترات، وهي كيان رياضي معقد، ويضمن وجود Rust أن العمليات ليست سريعة فحسب، بل آمنة أيضًا، مع تجنب الأخطاء الشائعة والمشكلات الأمنية التي قد تنشأ عن سوء التعامل مع الذاكرة.

Tokenizer

الرموز التعامل مع تقسيم الجمل أو العبارات إلى وحدات أصغر، مثل الكلمات أو المصطلحات. يساعد الصدأ في هذه العملية من خلال تسريع وقت التنفيذ، مما يضمن أن عملية الترميز ليست دقيقة فحسب، بل سريعة أيضًا، مما يعزز كفاءة مهام معالجة اللغة الطبيعية.

يكمن جوهر برنامج Hugging Face tokenizer في مفهوم ترميز الكلمات الفرعية، مما يحقق توازنًا دقيقًا بين الترميز على مستوى الكلمة والحروف لتحسين الاحتفاظ بالمعلومات وحجم المفردات. وهو يعمل من خلال إنشاء الرموز الفرعية، مثل "##ing" و"##ed"، مع الاحتفاظ بالثراء الدلالي مع تجنب المفردات المتضخمة.

يتضمن ترميز الكلمات الفرعية مرحلة تدريب لتحديد التوازن الأكثر فعالية بين الترميز على مستوى الحرف والكلمة. إنه يتجاوز مجرد قواعد البادئة واللاحقة، ويتطلب تحليلاً شاملاً لأنماط اللغة في مجموعات نصية واسعة النطاق لتصميم أداة رمزية فعالة للكلمات الفرعية. يتميز برنامج الرمز المميز الذي تم إنشاؤه بمهارة في التعامل مع الكلمات الجديدة عن طريق تقسيمها إلى كلمات فرعية معروفة، والحفاظ على مستوى عالٍ من الفهم الدلالي.

مكونات الترميز

تقسم مكتبة الرموز المميزة عملية الترميز إلى عدة خطوات، تتناول كل منها جانبًا مميزًا من الترميز. دعونا نتعمق في هذه المكونات:

  • عادي: يأخذ التحويلات الأولية على سلسلة الإدخال، ويطبق التعديلات اللازمة مثل تحويل الأحرف الصغيرة، وتطبيع Unicode، والتجريد.
  • PreTokenizer: مسؤول عن تجزئة سلسلة الإدخال إلى أجزاء مسبقة، وتحديد الانقسامات بناءً على قواعد محددة مسبقًا، مثل ترسيم الفضاء.
  • الموديل: يشرف على اكتشاف الرموز الفرعية وإنشائها، والتكيف مع تفاصيل بيانات الإدخال الخاصة بك وتقديم إمكانات التدريب.
  • معالج آخر: يعزز ميزات البناء لتسهيل التوافق مع العديد من النماذج القائمة على المحولات، مثل BERT، عن طريق إضافة الرموز المميزة مثل [CLS] و[SEP].

للبدء في استخدام Hugging Face tokenizers، قم بتثبيت المكتبة باستخدام الأمر pip install tokenizers واستيراده إلى بيئة بايثون الخاصة بك. يمكن للمكتبة ترميز كميات كبيرة من النص في وقت قصير جدًا، وبالتالي توفير الموارد الحسابية الثمينة لمهام أكثر كثافة مثل التدريب على النماذج.

تستخدم مكتبة الرموز المميزة Rust الذي يرث التشابه النحوي لـ C++ مع تقديم مفاهيم جديدة في تصميم لغة البرمجة. إلى جانب روابط بايثون، فإنه يضمن لك الاستمتاع بأداء لغة ذات مستوى أقل أثناء العمل في بيئة بايثون.

قواعد البيانات

مجموعات البيانات هي حجر الأساس لمشاريع الذكاء الاصطناعي. يقدم Hugging Face مجموعة واسعة من مجموعات البيانات، المناسبة لمجموعة من مهام البرمجة اللغوية العصبية، والمزيد. للاستفادة منها بكفاءة، يعد فهم عملية تحميلها وتحليلها أمرًا ضروريًا. فيما يلي نص Python الذي تم التعليق عليه جيدًا والذي يوضح كيفية استكشاف مجموعات البيانات المتوفرة على Hugging Face:

from datasets import load_dataset
# Load a dataset
dataset = load_dataset('squad')
# Display the first entry
print(dataset[0])

يستخدم هذا البرنامج النصي وظيفة Load_dataset لتحميل مجموعة بيانات SQuAD، وهو خيار شائع لمهام الإجابة على الأسئلة.

الاستفادة من النماذج المدربة مسبقًا وتجميعها معًا

تشكل النماذج المدربة مسبقًا العمود الفقري للعديد من مشاريع التعلم العميق، مما يمكّن الباحثين والمطورين من إطلاق مبادراتهم دون البدء من الصفر. يسهل Hugging Face استكشاف مجموعة متنوعة من النماذج المدربة مسبقًا، كما هو موضح في الكود أدناه:

from transformers import AutoModelForQuestionAnswering, AutoTokenizer
# Load the pre-trained model and tokenizer
model = AutoModelForQuestionAnswering.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
tokenizer = AutoTokenizer.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
# Display the model's architecture
print(model)

بعد تحميل النموذج والرمز المميز، يمكننا الآن المضي قدمًا في إنشاء وظيفة تأخذ جزءًا من النص وسؤالًا كمدخلات وترجع الإجابة المستخرجة من النص. سوف نستخدم الرمز المميز لمعالجة نص الإدخال والسؤال بتنسيق متوافق مع النموذج، ثم سنقوم بإدخال هذا الإدخال المعالج في النموذج للحصول على الإجابة:

def get_answer(text, question):
    # Tokenize the input text and question
    inputs = tokenizer(question, text, return_tensors='pt', max_length=512, truncation=True)
    outputs = model(**inputs)
    # Get the start and end scores for the answer
    answer_start = torch.argmax(outputs.start_logits)
    answer_end = torch.argmax(outputs.end_logits) + 1
    answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(inputs['input_ids'][0][answer_start:answer_end]))
    return answer

في مقتطف الكود، نقوم باستيراد الوحدات الضرورية من حزمة المحولات، ثم نقوم بتحميل نموذج مُدرب مسبقًا والرمز المميز الخاص به باستخدام طريقة from_pretrained. نختار نموذج BERT الذي تم ضبطه بدقة على مجموعة بيانات SQuAD.

دعونا نرى مثالاً لحالة استخدام هذه الوظيفة حيث لدينا فقرة من النص ونريد استخراج إجابة محددة لسؤال منها:

text = """
The Eiffel Tower, located in Paris, France, is one of the most iconic landmarks in the world. It was designed by Gustave Eiffel and completed in 1889. The tower stands at a height of 324 meters and was the tallest man-made structure in the world at the time of its completion.
"""
question = "Who designed the Eiffel Tower?"
# Get the answer to the question
answer = get_answer(text, question)
print(f"The answer to the question is: {answer}")
# Output: The answer to the question is: Gustave Eiffel

في هذا البرنامج النصي، قمنا ببناء دالة get_answer التي تأخذ نصًا وسؤالًا، وتقوم بترميزهما بشكل مناسب، وتستفيد من نموذج BERT المُدرب مسبقًا لاستخراج الإجابة من النص. إنه يوضح التطبيق العملي لمكتبة محولات Hugging Face لبناء نظام بسيط ولكنه قوي للإجابة على الأسئلة. لفهم المفاهيم جيدًا، يوصى بإجراء تجربة عملية باستخدام مفكرة جوجل كولاب.

وفي الختام

من خلال مجموعتها الواسعة من الأدوات مفتوحة المصدر، والنماذج المدربة مسبقًا، وخطوط الأنابيب سهلة الاستخدام، فإنها تمكن كلاً من المحترفين المتمرسين والوافدين الجدد من التعمق في عالم الذكاء الاصطناعي الواسع مع الشعور بالسهولة والفهم. علاوة على ذلك، تؤكد مبادرة دمج Rust، بسبب ميزات السرعة والسلامة التي تتمتع بها، على التزام شركة Hugging Face بتعزيز الابتكار مع ضمان الكفاءة والأمن في تطبيقات الذكاء الاصطناعي. إن العمل التحويلي لـ Hugging Face لا يعمل على إضفاء الطابع الديمقراطي على الوصول إلى أدوات الذكاء الاصطناعي عالية المستوى فحسب، بل يعزز أيضًا بيئة تعاونية للتعلم والتطوير في مجال الذكاء الاصطناعي، مما يسهل مستقبلًا حيث يمكن للجميع الوصول إلى الذكاء الاصطناعي.

لقد أمضيت السنوات الخمس الماضية منغمسًا في عالم رائع من التعلم الآلي والتعلم العميق. قادني شغفي وخبرتي إلى المساهمة في أكثر من 50 مشروعًا متنوعًا لهندسة البرمجيات ، مع التركيز بشكل خاص على الذكاء الاصطناعي / التعلم الآلي. جذبني فضولي المستمر أيضًا نحو معالجة اللغة الطبيعية ، وهو مجال أتوق لاستكشافه بشكل أكبر.