أدوات الذكاء الاصطناعي 101
دليل المبتدئين الشامل لأدوات Hugging Face LLM

هوجينغ فايس هي مختبر أبحاث ومحور جمع مجتمع من العلماء والباحثين والهواة. في فترة زمنية قصيرة، حصلت هوجينغ فايس على وجود كبير في مجال الذكاء الاصطناعي. استثمرت الشركات الكبيرة مثل جوجل وأمازون وإنفيديا في شركة هوجينغ فايس، مما رفع قيمتها إلى 4.5 مليار دولار.
في هذا الدليل، سنقدم لك تحويلات، و LLMs، وكيف تلعب مكتبة هوجينغ فايس دورًا مهمًا في تعزيز مجتمع الذكاء الاصطناعي المفتوح. سنقوم أيضًا بمراجعة الميزات الأساسية لهوجينغ فايس، بما في ذلك خطوط الأنابيب والبيانات والطرازات، مع أمثلة عملية بلغة بايثون.
المحولات في معالجة اللغة الطبيعية
في عام 2017، نشرت جامعة كورنيل ورقة مؤثرة أدخلت المحولات. هذه هي نماذج التعلم العميق المستخدمة في معالجة اللغة الطبيعية. هذه الاكتشاف أدى إلى تطوير نماذج اللغة الكبيرة مثل ChatGPT.
نماذج اللغة الكبيرة أو LLMs هي أنظمة ذكاء اصطناعي تستخدم المحولات لفهم وإنشاء نص مشابه للبشر. ومع ذلك، إنشاء هذه النماذج مكلف، وغالبًا ما يتطلب ملايين الدولارات، مما يحد من إمكانية الوصول إليها للشركات الكبيرة.
هوجينغ فايس، التي تأسست في عام 2016، تهدف إلى جعل نماذج معالجة اللغة الطبيعية متاحة للجميع. على الرغم من كونها شركة تجارية، توفر مجموعة من الموارد المفتوحة المصدر التي تساعد الأفراد والمنظمات على بناء و使用 نماذج المحولات بأسعار معقولة. التعلم الآلي هو تعليم الكمبيوتر لأداء المهام من خلال التعرف على الأنماط، بينما التعلم العميق هو نوع من التعلم الآلي الذي يخلق شبكة تعلم مستقلة. المحولات هي نوع من هندسة التعلم العميق التي تستخدم البيانات الإدخال بفعالية ومرنة، مما يجعلها خيارًا شائعًا لبناء نماذج اللغة الكبيرة بسبب متطلبات وقت التدريب الأقل.
كيف تسهل هوجينغ فايس مشاريع معالجة اللغة الطبيعية و LLM
هوجينغ فايس جعلت العمل مع LLMs أسهل من خلال تقديم:
- مجموعة من النماذج المُدرَّبة مسبقًا لل选择 من بينها.
- أدوات وأمثلة لتعديل هذه النماذج لاحتياجاتك الخاصة.
- خيار نشر سهل في بيئات مختلفة.
مورد رائع متاح من خلال هوجينغ فايس هو لوحة ترتيب LLM المفتوحة. تعمل كمنصة شاملة لتتبع وتصنيف وتقييم كفاءة مجموعة من نماذج اللغة الكبيرة وال聊بوت، مما يوفر تحليلًا دقيقًا للتطورات في المجال المفتوح.
تطبيقات المحولات باستخدام مكتبة هوجينغ فايس
ميزة بارزة في مكتبة هوجينغ فايس هي مكتبة المحولات، التي تسهل مهام معالجة اللغة الطبيعية من خلال ربط نموذج مع مراحل المعالجة المسبقة واللاحقة اللازمة، مما يبسّط عملية التحليل. لتنزيل وتحميل المكتبة، استخدم الأوامر التالية:
pip install -q transformers from transformers import pipeline
بعد ذلك، يمكنك تنفيذ مهام معالجة اللغة الطبيعية بدءًا من تحليل المشاعر، الذي يصنف النص إلى مشاعر إيجابية أو سلبية. وظيفة Pipeline القوية في المكتبة تعمل كمركز يحتوي على خطوط أنابيب أخرى ويسهّل التطبيقات المحددة للمهام في مجالات الصوت والرؤية والمتعددة الوسائط.
التطبيقات العملية
تصنيف النص
تصنيف النص يصبح أمرًا سهلًا باستخدام وظيفة pipeline() في هوجينغ فايس. هنا كيف يمكنك بدء تصنيف النص:
classifier = pipeline("text-classification")
للحصول على تجربة عملية، أدخل سلسلة أو قائمة من السلاسل إلى خط أنابيبك للحصول على تنبؤات، والتي يمكن تمثيلها بفعالية باستخدام مكتبة Pandas في بايثون. فيما يلي شفرة بايثون تظهر ذلك:
sentences = ["I am thrilled to introduce you to the wonderful world of AI.",
"Hopefully, it won't disappoint you."]
# احصل على نتائج التصنيف لكل جملة في القائمة
results = classifier(sentences)
# قم بتمرير كل نتيجة وطباعة التصنيف والدرجة
for i, result in enumerate(results):
print(f"النتيجة {i + 1}:")
print(f" التصنيف: {result['label']}")
print(f" الدرجة: {round(result['score'], 3)}\n")
تعرف الكيان المسمى (NER)
NER هو أمر بالغ الأهمية في استخراج الكائنات الحقيقية من النص. استخدم خط أنابيب NER لتحديد هذه الكائنات بشكل فعال:
ner_tagger = pipeline("ner", aggregation_strategy="simple")
text = "إيلون ماسك هو الرئيس التنفيذي لشركة سبيس إكس."
outputs = ner_tagger(text)
print(outputs)
إجابة على الأسئلة
إجابة على الأسئلة تتضمن استخراج إجابات دقيقة لأسئلة محددة من سياق معين. أعد تشغيل خط أنابيب إجابة على الأسئلة وادخل سؤالك وسياقك للحصول على الإجابة المطلوبة:
reader = pipeline("question-answering")
text = "هوجينغ فايس هي شركة تُنشئ أدوات لمعالجة اللغة الطبيعية. وهي مقرها في نيويورك وتأسست في عام 2016."
question = "أين مقر هوجينغ فايس؟"
outputs = reader(question=question, context=text)
print(outputs)
لماذا تتجه هوجينغ فايس إلى التركيز على روست
بدأت منظومة هوجينغ فايس في استخدام روست في مكتباتها مثل safesensors و tokenizers.
أصدرت هوجينغ فايس مؤخرًا إطار عمل تعلم آلي جديد يسمى Candle. على عكس الإطارات التقليدية التي تستخدم بايثون، يتم بناء Candle باستخدام روست. الهدف من استخدام روست هو تحسين الأداء وتسهيل تجربة المستخدم مع دعم عمليات GPU.
الهدف الرئيسي من Candle هو تسهيل الاستدلال بدون خادم، مما يجعل نشر ثنائيات خفيفة ممكنًا وإزالة بايثون من حمولة الإنتاج، والتي يمكن أن تبطئ في بعض الأحيان بسبب عبءها. يأتي هذا الإطار كحل لمواجهة مشاكل الإطارات الكاملة للتعلم الآلي مثل PyTorch التي تكون كبيرة وبطيئة عند إنشاء مثيلات على مجموعة.
دعونا نكتشف لماذا أصبحت روست خيارًا مفضلًا أكثر من بايثون.
- السرعة والأداء – روست معروفة بسرعتها الرائعة، متجاوزة بايثون، التي تُستخدم تقليديًا في إطارات التعلم الآلي. يمكن أن يُبطئ أداء بايثون بسبب قفل المُفسِّر العالمي (GIL)، ولكن روست لا تواجه هذه القضية، مما يpromises تنفيذ أسرع للمهام وبالتالي أداء أفضل في المشاريع التي يتم تنفيذها.
- الأمان – توفر روست ضمانات أمان الذاكرة بدون جامع مخلفات، وهو جانب ضروري لضمان أمان الأنظمة المتزامنة. يلعب هذا دورًا حاسمًا في مجالات مثل safetensors حيث أمان التعامل مع الهياكل البيانية هو أولوية.
Safetensors
Safetensors يستفيد من ميزات السرعة والأمان في روست. Safetensors يتضمن التعامل مع التنسورات، وهي كيان رياضي معقد، وروست يضمن أن العمليات ليست فقط سريعة ولكن أيضًا آمنة، مما يمنع الأخطاء الشائعة والمشاكل الأمنية التي قد تنشأ من سوء التعامل مع الذاكرة.
معالج النص
معالج النص يتعامل مع تقسيم الجمل أو العبارات إلى وحدات أصغر، مثل الكلمات أو المصطلحات. روست يساعد في هذه العملية من خلال تسريع وقت التنفيذ، مما يضمن أن عملية التجزئة ليست فقط دقيقة ولكن أيضًا سريعة، مما يعزز كفاءة مهام معالجة اللغة الطبيعية.
في قلب معالج النص في هوجينغ فايس يوجد مفهوم التجزئة الفرعية للكلمات، الذي يجد توازنًا دقيقًا بين التجزئة على مستوى الكلمة ومستوى الحرف لتحسين الاحتفاظ بالمعلومات وحجم القاموس. يعمل من خلال إنشاء شظايا، مثل “##ing” و “##ed”، مع الحفاظ على الثراء الدلالي ومتجنبًا قاموسًا متضخمًا.
التجزئة الفرعية للكلمات تتضمن مرحلة تدريب لتحديد التوازن الأكثر فاعلية بين التجزئة على مستوى الكلمة ومستوى الحرف. يتجاوز ببساطة القواعد البسيطة للمrefixes واللاحقات، ويتطلب تحليلًا شاملاً لأنماط اللغة في مجموعات نصية كبيرة لتصميم معالج تجزئة فرعي فعال.
المعالج الناتج ماهر في التعامل مع كلمات جديدة من خلال تقسيمها إلى شظايا معروفة، مع الحفاظ على مستوى عالٍ من الفهم الدلالي.
مكونات التجزئة
تقسم مكتبة معالج النص عملية التجزئة إلى عدة خطوات، كل منها يعالج جانبًا مختلفًا من التجزئة. دعونا ننظر في هذه المكونات:
- المنظم: يأخذ التحويلات الأولية للřetstring الإدخال، ويطبق التعديلات اللازمة مثل التحويل إلى الحالة الأصغر وتنسيق Unicode والتقشير.
- التجزئة المسبقة: يتحمل مسؤولية تقسيم السلسلة الإدخال إلى شظايا مسبقة، ويتحديد الانقسامات بناءً على القواعد المحددة، مثل الفواصل الفضائية.
- النموذج: يتحكم في اكتشاف وإنشاء الشظايا، ويتكيف مع تفاصيل بيانات الإدخال، ويوفر القدرة على التدريب.
- المعالج اللاحق: يعزز ميزات البناء لضمان التوافق مع العديد من نماذج المحولات، مثل BERT، من خلال إضافة رموز مثل [CLS] و [SEP].
لبدء استخدام معالج النص في هوجينغ فايس، قم بتثبيت المكتبة باستخدام الأمر pip install tokenizers واسمحها في بيئة بايثون الخاصة بك. يمكن للمكتبة تجزئة كميات كبيرة من النص في وقت قصير جدًا، مما يوفر الحفاظ على الموارد الحاسوبية الثمينة لمهام أكثر كثافة مثل تدريب النماذج.
تستخدم مكتبة معالج النص روست، التي ترث تشابهًا صياغيًا من سي++ مع إدخال مفاهيم جديدة في تصميم لغات البرمجة. عندما يتم ربطها بروابط بايثون، يضمن ذلك الحصول على أداء لغة منخفضة المستوى أثناء العمل في بيئة بايثون.
مجموعات البيانات
مجموعات البيانات هي أساس مشاريع الذكاء الاصطناعي. توفر هوجينغ فايس مجموعة واسعة من مجموعات البيانات، مناسبة لمجموعة من مهام معالجة اللغة الطبيعية وأكثر. لفهم كيفية تحميل وتحليل هذه المجموعات بشكل فعال، يلي شفرة بايثون موضحة كيفية استكشاف مجموعات البيانات المتاحة على هوجينغ فايس:
from datasets import load_dataset
# تحميل مجموعة بيانات
dataset = load_dataset('squad')
# عرض المدخل الأول
print(dataset[0])
تستخدم هذه الشفرة وظيفة load_dataset لتحميل مجموعة بيانات SQuAD، التي هي خيار شائع لمهام الإجابة على الأسئلة.
استخدام النماذج المُدرَّبة مسبقًا وتجميع كل شيء معًا
النماذج المُدرَّبة مسبقًا تشكل العمود الفقري لكثير من مشاريع التعلم العميق، مما يسمح للباحثين والمطورين ببدء مشاريعهم بدون بدء من الصفر. تسهل هوجينغ فايس استكشاف مجموعة متنوعة من النماذج المُدرَّبة مسبقًا، كما يظهر في الشفرة التالية:
from transformers import AutoModelForQuestionAnswering, AutoTokenizer
# تحميل النموذج المُدرَّب مسبقًا والمعالج
model = AutoModelForQuestionAnswering.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
tokenizer = AutoTokenizer.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
# عرض هيكل النموذج
print(model)
باستخدام النموذج والمعالج المحملين، يمكننا الآن إنشاء دالة تأخذ نصًا وسؤالا كمدخلات وترجع الإجابة المستخرجة من النص. سنستخدم المعالج لتحويل المدخلات إلى تنسيق متوافق مع النموذج، ثم سنغذي هذا المدخل المُعالج إلى النموذج للحصول على الإجابة:
def get_answer(text, question): # تحويل المدخلات inputs = tokenizer(question, text, return_tensors='pt', max_length=512, truncation=True) outputs = model(**inputs) # الحصول على درجات البداية والنهاية للإجابة 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 = """
برج إيفل، الواقع في باريس، فرنسا، هو واحد من أكثر المعالم الأيقونية في العالم. تم تصميمه بواسطة غوستاف إيفل واكتمل في عام 1889. يصل البرج إلى ارتفاع 324 مترًا وكان أطول هيكل من صنع الإنسان في العالم في وقت اكتماله.
"""
question = "من صمم برج إيفل؟"
# الحصول على الإجابة على السؤال
answer = get_answer(text, question)
print(f"الإجابة على السؤال هي: {answer}")
# الإخراج: الإجابة على السؤال هي: غوستاف إيفل
في هذه الشفرة، نبني دالة get_answer تأخذ نصًا وسؤالا، وتحولها بشكل مناسب، وتنفذ نموذج BERT المُدرَّب مسبقًا لاستخراج الإجابة من النص. يظهر تطبيق عملي لمكتبة هوجينغ فايس في بناء نظام إجابة على الأسئلة بسيط ولكن قوي. للاطلاع على المفاهيم بشكل جيد، يُفضل التجربة العملية باستخدام دفتر ملاحظات Google Colab.
الختام
من خلال مجموعة أدواتها المفتوحة المصدر والطرازات المُدرَّبة مسبقًا وخطوط الأنابيب البسيطة، تتيح هوجينغ فايس للمحترفين المخضرمين والمبتدئين الدخول إلى عالم الذكاء الاصطناعي بسهولة وفهم. بالإضافة إلى ذلك، المبادرة لتكامل روست، بسبب ميزات السرعة والأمان، تؤكد على التزام هوجينغ فايس بتعزيز الابتكار مع ضمان الكفاءة والأمان في تطبيقات الذكاء الاصطناعي. العمل التحويلي لهوجينغ فايس لا يُجرد من جعل أدوات الذكاء الاصطناعي عالية المستوى متاحة للجميع، بل أيضًا يغذي بيئة تعاونية للتعلم والتنمية في مجال الذكاء الاصطناعي، مما يسهل مستقبلًا حيث يصبح الذكاء الاصطناعي متاحًا لجميع الأشخاص.

















