قم بتشغيل Llama وPhi وGemma وMistral باستخدام ONNX Runtime.
تمنحك واجهة برمجة التطبيقات هذه طريقة سهلة ومرنة وفعالة لتشغيل LLMs على الجهاز.
وهو ينفذ حلقة الذكاء الاصطناعي التوليدية لنماذج ONNX، بما في ذلك المعالجة المسبقة واللاحقة، والاستدلال باستخدام ONNX Runtime، ومعالجة السجلات، والبحث وأخذ العينات، وإدارة ذاكرة التخزين المؤقت KV.
يمكنك استدعاء طريقة generate()
عالية المستوى لإنشاء كل المخرجات مرة واحدة، أو دفق رمز مميز واحد للمخرجات في كل مرة.
راجع الوثائق على https://onnxruntime.ai/docs/genai.
مصفوفة الدعم | مدعوم الآن | قيد التطوير | على خارطة الطريق |
---|---|---|---|
البنى النموذجية | جيما اللاما * ميسترال + فاي (اللغة + الرؤية) كوين نيموترون | الهمس | انتشار مستقر |
واجهة برمجة التطبيقات | بايثون ج# ج/ج++ جافا ^ | الهدف-ج | |
منصة | لينكس ويندوز ماك ^ أندرويد ^ | دائرة الرقابة الداخلية | |
بنيان | x86 x64 الذراع64~ | ||
تسريع الأجهزة | كودا دايركتمل | QNN أوبن فينو روكم | |
سمات | فك التشفير التفاعلي التخصيص (الضبط الدقيق) | فك التشفير المضاربة |
* تدعم بنية نموذج Llama مجموعات نماذج مماثلة مثل CodeLlama وVicuna وYi والمزيد.
+ تدعم بنية نموذج ميسترال عائلات نموذجية مماثلة مثل Zephyr.
^ يتطلب البناء من المصدر
~ إصدارات Windows متاحة، وتتطلب إنشاء من المصدر لمنصات أخرى
راجع https://onnxruntime.ai/docs/genai/howto/install
قم بتنزيل النموذج
Huggingface-cli تنزيل microsoft/Phi-3-mini-4k-instruct-onnx --include cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/* --local-dir .
قم بتثبيت واجهة برمجة التطبيقات
نقطة تثبيت numpy تثبيت النقطة - قبل onnxruntime-genai
قم بتشغيل النموذج
استيراد onnxruntime_genai كـ ogmodel = og.Model('cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4')tokenizer = og.Tokenizer(model)tokenizer_stream = tokenizer.create_stream() # اضبط الحد الأقصى للطول على شيء معقول افتراضيًا،# وإلا فسيتم تعيينه على السياق بأكمله lengthsearch_options = {}search_options['max_length'] = 2048chat_template = '<|user|>n{input} <|end|> n<|assistant|>'text = input("Input: ")if not text: print("خطأ، لا يمكن أن يكون الإدخال فارغًا")exitprompt = f'{chat_template.format(input=text)}'input_tokens = tokenizer.encode(prompt)params = og.GeneratorParams(model)params.set_search_options(**search_options)params.input_ids = input_tokensgenerator = og.Generator(model, params )طباعة ("الإخراج: "، النهاية = ''، Flush=True)حاول: بينما لا generator.is_done(): generator.compute_logits() generator.generate_next_token() new_token = generator.get_next_tokens()[0] print(tokenizer_stream.decode(new_token), end='', Flush= True) باستثناء KeyboardInterrupt: print(" --control+c مضغوط، إحباط التوليد--")print()del generator
راجع المناقشات لطلب ميزات جديدة والتصويت لصالح الطلبات الحالية.
يرحب هذا المشروع بالمساهمات والاقتراحات. تتطلب معظم المساهمات منك الموافقة على اتفاقية ترخيص المساهم (CLA) التي تعلن أن لديك الحق في منحنا حقوق استخدام مساهمتك، بل وتفعل ذلك بالفعل. للحصول على التفاصيل، تفضل بزيارة https://cla.opensource.microsoft.com.
عند إرسال طلب سحب، سيحدد روبوت CLA تلقائيًا ما إذا كنت بحاجة إلى تقديم CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال، التحقق من الحالة، والتعليق). ما عليك سوى اتباع التعليمات التي يقدمها لك الروبوت. سوف تحتاج إلى القيام بذلك مرة واحدة فقط عبر جميع اتفاقيات إعادة الشراء باستخدام CLA الخاصة بنا.
اعتمد هذا المشروع قواعد السلوك الخاصة بشركة Microsoft مفتوحة المصدر. لمزيد من المعلومات، راجع الأسئلة الشائعة حول قواعد السلوك أو اتصل بـ [email protected] لطرح أي أسئلة أو تعليقات إضافية.
قد يحتوي هذا المشروع على علامات تجارية أو شعارات للمشاريع أو المنتجات أو الخدمات. يخضع الاستخدام المصرح به للعلامات التجارية أو الشعارات الخاصة بشركة Microsoft ويجب أن يتبع إرشادات العلامة التجارية والعلامات التجارية الخاصة بشركة Microsoft. يجب ألا يتسبب استخدام العلامات التجارية أو الشعارات الخاصة بشركة Microsoft في الإصدارات المعدلة من هذا المشروع في حدوث ارتباك أو الإشارة ضمنًا إلى رعاية Microsoft. ويخضع أي استخدام لعلامات تجارية أو شعارات تابعة لجهات خارجية لسياسات تلك الجهات الخارجية.