?الهندسة المعمارية | الدردشة العصبية | ?الاستدلال على وحدة المعالجة المركزية | ?الاستدلال على GPU | أمثلة | الوثائق
pip install intel-extension-for-transformers
للتعرف على متطلبات النظام ونصائح التثبيت الأخرى، يرجى الرجوع إلى دليل التثبيت
Intel® Extension for Transformers عبارة عن مجموعة أدوات مبتكرة مصممة لتسريع GenAI/LLM في كل مكان مع الأداء الأمثل للنماذج المستندة إلى Transformer على منصات Intel المختلفة، بما في ذلك Intel Gaudi2 وIntel CPU وIntel GPU. توفر مجموعة الأدوات الميزات والأمثلة الرئيسية التالية:
تجربة مستخدم سلسة لضغط النماذج على النماذج المستندة إلى Transformer من خلال توسيع واجهات برمجة التطبيقات الخاصة بمحولات Hugging Face والاستفادة من Intel® Neural Compressor
تحسينات متقدمة للبرامج ووقت تشغيل فريد مدرك للضغط (تم إصداره مع ورقة Fast Distilbert الخاصة بـ NeurIPS 2022 على وحدات المعالجة المركزية وQuala-MiniLM: MiniLM التكيفي ذو الطول الكمي، وورقة NeurIPS 2021 Prune مرة واحدة للجميع: نماذج لغة متفرقة مُدربة مسبقًا)
حزم النماذج المستندة إلى المحولات مثل Stable Diffusion وGPT-J-6B وGPT-NEOX وBLOOM-176B وT5 وFlan-T5 وسير العمل الشامل مثل تصنيف النص المستند إلى SetFit وتحليل المشاعر على مستوى المستند (DLSA)
NeuralChat، هو إطار عمل لروبوتات الدردشة قابل للتخصيص لإنشاء روبوت الدردشة الخاص بك في غضون دقائق من خلال الاستفادة من مجموعة غنية من المكونات الإضافية مثل استرجاع المعرفة، والتفاعل مع الكلام، والتخزين المؤقت للاستعلام، وحاجز الأمان. يدعم هذا الإطار Intel Gaudi2/CPU/GPU.
استنتاج نموذج اللغة الكبير (LLM) بلغة C/C++ النقية مع نواة تكميم الوزن فقط لوحدة المعالجة المركزية Intel CPU وIntel GPU (TBD)، ودعم GPT-NEOX وLLAMA وMPT وFALCON وBLOOM-7B وOPT وChatGLM2-6B، GPT-J-6B، وDolly-v2-3B. دعم مجموعة تعليمات AMX وVNNI وAVX512F وAVX2. لقد قمنا بتعزيز أداء وحدات المعالجة المركزية Intel، مع التركيز بشكل خاص على معالج Intel Xeon Scalable من الجيل الرابع، والذي يحمل الاسم الرمزي Sapphire Rapids.
الأجهزة | الكون المثالى | الاستدلال | ||
ممتلىء | بيفت | 8 بت | 4 بت | |
إنتل غاودي2 | ✔ | ✔ | ويب (FP8) | - |
معالجات إنتل زيون القابلة للتطوير | ✔ | ✔ | ✔ (INT8، FP8) | ✔ (INT4، FP4، NF4) |
إنتل زيون وحدة المعالجة المركزية ماكس سلسلة | ✔ | ✔ | ✔ (INT8، FP8) | ✔ (INT4، FP4، NF4) |
سلسلة معالجات Intel Data Center GPU Max | قيد التنفيذ | قيد التنفيذ | العمل قيد التقدم (INT8) | ✔ (INT4) |
إنتل قوس A-سلسلة | - | - | العمل قيد التقدم (INT8) | ✔ (INT4) |
معالجات إنتل كور | - | ✔ | ✔ (INT8، FP8) | ✔ (INT4، FP4، NF4) |
في الجدول أعلاه، "-" تعني غير قابل للتطبيق أو لم يبدأ بعد.
برمجة | الكون المثالى | الاستدلال | ||
ممتلىء | بيفت | 8 بت | 4 بت | |
باي تورش | 2.0.1+وحدة المعالجة المركزية، 2.0.1a0 (وحدة معالجة الرسومات) | 2.0.1+وحدة المعالجة المركزية، 2.0.1a0 (وحدة معالجة الرسومات) | 2.1.0+وحدة المعالجة المركزية، 2.0.1a0 (وحدة معالجة الرسومات) | 2.1.0+وحدة المعالجة المركزية، 2.0.1a0 (وحدة معالجة الرسومات) |
ملحق Intel® لـ PyTorch | 2.1.0+وحدة المعالجة المركزية، 2.0.110+إكس بي يو | 2.1.0+وحدة المعالجة المركزية، 2.0.110+إكس بي يو | 2.1.0+وحدة المعالجة المركزية، 2.0.110+إكس بي يو | 2.1.0+وحدة المعالجة المركزية، 2.0.110+إكس بي يو |
محولات | 4.35.2 (وحدة المعالجة المركزية)، 4.31.0 (إنتل GPU) | 4.35.2 (وحدة المعالجة المركزية)، 4.31.0 (إنتل GPU) | 4.35.2 (وحدة المعالجة المركزية)، 4.31.0 (إنتل GPU) | 4.35.2 (وحدة المعالجة المركزية)، 4.31.0 (إنتل GPU) |
المشبك الذكاء الاصطناعي | 1.13.0 | 1.13.0 | 1.13.0 | 1.13.0 |
سائق غاودي2 | 1.13.0-ee32e42 | 1.13.0-ee32e42 | 1.13.0-ee32e42 | 1.13.0-ee32e42 |
إنتل المستوى صفر GPU | 1.3.26918.50-736~22.04 | 1.3.26918.50-736~22.04 | 1.3.26918.50-736~22.04 | 1.3.26918.50-736~22.04 |
يرجى الرجوع إلى المتطلبات التفصيلية في وحدة المعالجة المركزية وGaudi2 وIntel GPU.
أوبونتو 20.04/22.04، سينتوس 8.
يوجد أدناه نموذج التعليمات البرمجية لإنشاء برنامج الدردشة الآلي الخاص بك. رؤية المزيد من الأمثلة.
يوفر NeuralChat واجهات برمجة تطبيقات RESTful المتوافقة مع OpenAI للدردشة، لذا يمكنك استخدام NeuralChat كبديل مباشر لواجهات برمجة تطبيقات OpenAI. يمكنك بدء تشغيل خادم NeuralChat إما باستخدام أمر Shell أو كود Python.
# Shell Command
neuralchat_server start --config_file ./server/config/neuralchat.yaml
# Python Code
from intel_extension_for_transformers . neural_chat import NeuralChatServerExecutor
server_executor = NeuralChatServerExecutor ()
server_executor ( config_file = "./server/config/neuralchat.yaml" , log_file = "./neuralchat.log" )
يمكن الوصول إلى خدمة NeuralChat من خلال مكتبة عملاء OpenAI وأوامر curl
ومكتبة requests
. رؤية المزيد في NeuralChat.
from intel_extension_for_transformers . neural_chat import build_chatbot
chatbot = build_chatbot ()
response = chatbot . predict ( "Tell me about Intel Xeon Scalable Processors." )
يوجد أدناه نموذج التعليمات البرمجية لاستخدام واجهات برمجة تطبيقات المحولات الموسعة. رؤية المزيد من الأمثلة.
نحن نشجعك على تثبيت NeuralSpeed للحصول على أحدث الميزات (على سبيل المثال، دعم GGUF) لاستدلال LLM منخفض البت على وحدات المعالجة المركزية (CPU). قد ترغب أيضًا في استخدام الإصدار 1.3 بدون NeuralSpeed باتباع المستند
from transformers import AutoTokenizer
from intel_extension_for_transformers . transformers import AutoModelForCausalLM
model_name = "Intel/neural-chat-7b-v3-1"
prompt = "Once upon a time, there existed a little girl,"
tokenizer = AutoTokenizer . from_pretrained ( model_name , trust_remote_code = True )
inputs = tokenizer ( prompt , return_tensors = "pt" ). input_ids
model = AutoModelForCausalLM . from_pretrained ( model_name , load_in_4bit = True )
outputs = model . generate ( inputs )
يمكنك أيضًا تحميل نموذج تنسيق GGUF من Huggingface، ونحن ندعم فقط تنسيق Q4_0/Q5_0/Q8_0 gguf في الوقت الحالي.
from transformers import AutoTokenizer
from intel_extension_for_transformers . transformers import AutoModelForCausalLM
# Specify the GGUF repo on the Hugginface
model_name = "TheBloke/Llama-2-7B-Chat-GGUF"
# Download the the specific gguf model file from the above repo
gguf_file = "llama-2-7b-chat.Q4_0.gguf"
# make sure you are granted to access this model on the Huggingface.
tokenizer_name = "meta-llama/Llama-2-7b-chat-hf"
prompt = "Once upon a time, there existed a little girl,"
tokenizer = AutoTokenizer . from_pretrained ( tokenizer_name , trust_remote_code = True )
inputs = tokenizer ( prompt , return_tensors = "pt" ). input_ids
model = AutoModelForCausalLM . from_pretrained ( model_name , gguf_file = gguf_file )
outputs = model . generate ( inputs )
يمكنك أيضًا تحميل نموذج PyTorch من Modelscope
ملحوظة : يتطلب نموذج النطاق
from transformers import TextStreamer
from modelscope import AutoTokenizer
from intel_extension_for_transformers . transformers import AutoModelForCausalLM
model_name = "qwen/Qwen-7B" # Modelscope model_id or local model
prompt = "Once upon a time, there existed a little girl,"
model = AutoModelForCausalLM . from_pretrained ( model_name , load_in_4bit = True , model_hub = "modelscope" )
tokenizer = AutoTokenizer . from_pretrained ( model_name , trust_remote_code = True )
inputs = tokenizer ( prompt , return_tensors = "pt" ). input_ids
streamer = TextStreamer ( tokenizer )
outputs = model . generate ( inputs , streamer = streamer , max_new_tokens = 300 )
يمكنك أيضًا تحميل نموذج البت المنخفض المُكمَّم بواسطة خوارزمية GPTQ/AWQ/RTN/AutoRound.
from transformers import AutoTokenizer
from intel_extension_for_transformers . transformers import AutoModelForCausalLM , GPTQConfig
# Hugging Face GPTQ/AWQ model or use local quantize model
model_name = "MODEL_NAME_OR_PATH"
prompt = "Once upon a time, a little girl"
tokenizer = AutoTokenizer . from_pretrained ( model_name , trust_remote_code = True )
inputs = tokenizer ( prompt , return_tensors = "pt" ). input_ids
model = AutoModelForCausalLM . from_pretrained ( model_name , trust_remote_code = True )
outputs = model . generate ( inputs )
import intel_extension_for_pytorch as ipex
from intel_extension_for_transformers . transformers . modeling import AutoModelForCausalLM
from transformers import AutoTokenizer
import torch
device_map = "xpu"
model_name = "Qwen/Qwen-7B"
tokenizer = AutoTokenizer . from_pretrained ( model_name , trust_remote_code = True )
prompt = "Once upon a time, there existed a little girl,"
inputs = tokenizer ( prompt , return_tensors = "pt" ). input_ids . to ( device_map )
model = AutoModelForCausalLM . from_pretrained ( model_name , trust_remote_code = True ,
device_map = device_map , load_in_4bit = True )
model = ipex . optimize_transformers ( model , inplace = True , dtype = torch . float16 , quantization_config = True , device = device_map )
output = model . generate ( inputs )
ملاحظة: يرجى الرجوع إلى المثال والبرنامج النصي لمزيد من التفاصيل.
يوجد أدناه نموذج التعليمات البرمجية لاستخدام واجهات برمجة تطبيقات Langchain الموسعة. رؤية المزيد من الأمثلة.
from langchain_community . llms . huggingface_pipeline import HuggingFacePipeline
from langchain . chains import RetrievalQA
from langchain_core . vectorstores import VectorStoreRetriever
from intel_extension_for_transformers . langchain . vectorstores import Chroma
retriever = VectorStoreRetriever ( vectorstore = Chroma (...))
retrievalQA = RetrievalQA . from_llm ( llm = HuggingFacePipeline (...), retriever = retriever )
يمكنك الوصول إلى النماذج التي تم التحقق من صحتها والدقة والأداء من بيانات الإصدار أو مدونة Medium.
ملخص | |||||||
---|---|---|---|---|---|---|---|
NeuralChat | السرعة العصبية | ||||||
نيورالتشات | |||||||
Chatbot على وحدة المعالجة المركزية Intel | Chatbot على Intel GPU | Chatbot على غاودي | |||||
Chatbot على العميل | المزيد من دفاتر الملاحظات | ||||||
السرعة العصبية | |||||||
السرعة العصبية | الجري ماجستير | حبات منخفضة الدقة | التوازي الموتر | ||||
ماجستير في الضغط | |||||||
سموث كوانت (INT8) | تكميم الوزن فقط (INT4/FP4/NF4/INT8) | QLoRA على وحدة المعالجة المركزية | |||||
الضغط العام | |||||||
التكميم | تشذيب | التقطير | التنسيق | ||||
زيادة البيانات | يصدّر | المقاييس | أهداف | ||||
خط أنابيب | طول التكيف | الخروج المبكر | |||||
الدروس والنتائج | |||||||
دروس | قائمة LLM | قائمة النماذج العامة | أداء النموذج |
عرض قائمة المنشورات الكاملة
مشاريع ممتازة مفتوحة المصدر: bitsandbytes، وFastChat، وfastRAG، وggml، وgptq، وllama.cpp، وlm-evauation-harness، وpeft، وtrl، وstreamllm وغيرها الكثير.
شكرا لجميع المساهمين.
مرحبًا بكم في طرح أي أفكار مثيرة للاهتمام حول تقنيات ضغط النماذج وتطوير برامج الدردشة الآلية المستندة إلى LLM! لا تتردد في الاتصال بنا، ونحن نتطلع إلى تعاوننا في Intel Extension for Transformers!