Buckets:

rtrm's picture
download
raw
30.6 kB
import{s as He,o as Ie,n as Fe}from"../chunks/scheduler.56730f09.js";import{S as ze,i as Le,g as i,s as n,r as o,A as Ye,h as p,f as l,c as a,j as Se,u as r,x as m,k as Ee,y as qe,a as s,v as u,d as c,t as f,w as d}from"../chunks/index.61415d3e.js";import{T as Pe}from"../chunks/Tip.81680c40.js";import{C as M}from"../chunks/CodeBlock.501e762d.js";import{H as bt,E as Ae}from"../chunks/index.42741e7d.js";function De(Tt){let b,g="لم يعد يتم دعم <code>transformers.onnx</code> يُرجى تصدير النماذج باستخدام 🤗 Optimum كما هو موضح أعلاه. سيتم إزالة هذا القسم في الإصدارات القادمة.";return{c(){b=i("p"),b.innerHTML=g},l(T){b=p(T,"P",{"data-svelte-h":!0}),m(b)!=="svelte-1whdxl8"&&(b.innerHTML=g)},m(T,dt){s(T,b,dt)},p:Fe,d(T){T&&l(b)}}}function Ke(Tt){let b,g,T,dt,J,yt,U,de="غالباً ما يتطلب نشر نماذج 🤗 Transformers في بيئات الإنتاج أو يمكن أن يستفيد من تصدير النماذج إلى تنسيق تسلسلي يُمكن تحميله وتنفيذه على أجهزة وبرامج تشغيل مُتخصصة.",gt,$,be="🤗 Optimum هو امتداد لـ Transformers يمكّن من تصدير النماذج من PyTorch أو TensorFlow إلى تنسيقات مُتسلسلة مثل ONNX و TFLite من خلال وحدة <code>exporters</code> الخاصة به. يوفر 🤗 Optimum أيضًا مجموعة من أدوات تحسين الأداء لتدريب النماذج وتشغيلها على أجهزة مستهدفة بكفاءة قصوى.",Jt,h,Me='يوضح هذا الدليل كيفية تصدير نماذج 🤗 Transformers إلى ONNX باستخدام 🤗 Optimum، وللحصول على الدليل الخاص بتصدير النماذج إلى TFLite، يُرجى الرجوع إلى صفحة <a href="tflite">التصدير إلى TFLite</a>.',Ut,w,$t,N,Te='مجمد <a href="http://onnx.ai" rel="nofollow">ONNX (Open Neural Network Exchange)</a> هو معيار مفتوح يُحدد مجموعة مشتركة من العوامل وتنسيق ملف مشترك لتمثيل نماذج التعلم العميق في مجموعة متنوعة واسعة من الأطر، بما في ذلك PyTorch وTensorFlow. عندما يتم تصدير نموذج إلى تنسيق ONNX، يتم استخدام هذه المشغلات لبناء رسم بياني حاسوبي (يُطلق عليه غالبًا اسم <em>تمثيل وسيط</em>) والذي يمثل تدفق البيانات عبر الشبكة العصبية.',ht,C,ye="من خلال عرض رسم بياني بعوامل وأنواع بيانات معيارية، يُسهّل ONNX التبديل بين الأطر. على سبيل المثال، يُمكن تصدير نموذج مدرب في PyTorch إلى تنسيق ONNX ثم استيراده في TensorFlow (والعكس صحيح).",wt,x,ge="بمجرد التصدير إلى تنسيق ONNX، يُمكن:",Nt,V,Je='<li>تحسين النموذج للاستدلال عبر تقنيات مثل <a href="https://huggingface.co/docs/optimum/onnxruntime/usage_guides/optimization" rel="nofollow">تحسين الرسم البياني</a> و <a href="https://huggingface.co/docs/optimum/onnxruntime/usage_guides/quantization" rel="nofollow">التكميم</a>.</li> <li>تشغيله باستخدام ONNX Runtime عبر فئات <a href="https://huggingface.co/docs/optimum/onnxruntime/package_reference/modeling_ort" rel="nofollow"><code>ORTModelForXXX</code></a>، والتي تتبع نفس واجهة برمجة التطبيقات (API) لـ <code>AutoModel</code> التي اعتدت عليها في 🤗 Transformers.</li> <li>تشغيله باستخدام <a href="https://huggingface.co/docs/optimum/main/en/onnxruntime/usage_guides/pipelines" rel="nofollow">قنوات معالجة الاستدلال مُحسّنة</a>، والتي لها نفس واجهة برمجة التطبيقات (API) مثل وظيفة <code>pipeline()</code> في 🤗 Transformers.</li>',Ct,j,Ue="يوفر 🤗 Optimum دعمًا لتصدير ONNX من خلال الاستفادة من كائنات التكوين. تأتي كائنات التكوين هذه جاهزة لعدد من معماريات النماذج، وقد تم تصميمها لتكون قابلة للتوسعة بسهولة إلى معماريات أخرى.",xt,X,$e='للاطلاع على قائمة بالتكوينات الجاهزة، يُرجى الرجوع إلى <a href="https://huggingface.co/docs/optimum/exporters/onnx/overview" rel="nofollow">وثائق 🤗 Optimum</a>.',Vt,v,he="هناك طريقتان لتصدير نموذج 🤗 Transformers إلى ONNX، نعرض هنا كليهما:",jt,_,we="<li>التصدير باستخدام 🤗 Optimum عبر واجهة سطر الأوامر (CLI).</li> <li>التصدير باستخدام 🤗 Optimum مع <code>optimum.onnxruntime</code>.</li>",Xt,Z,vt,W,Ne="لتصدير نموذج 🤗 Transformers إلى ONNX، قم أولاً بتثبيت اعتماد إضافي:",_t,B,Zt,R,Ce='للاطلاع على جميع المعامﻻت المتاحة، يرجى الرجوع إلى <a href="https://huggingface.co/docs/optimum/exporters/onnx/usage_guides/export_a_model#exporting-a-model-to-onnx-using-the-cli" rel="nofollow">وثائق 🤗 Optimum</a>، أو عرض المساعدة في سطر الأوامر:',Wt,O,Bt,k,Rt,G,xe="لتصدير نقطة تفتيش نموذج من 🤗 Hub، على سبيل المثال، <code>distilbert/distilbert-base-uncased-distilled-squad</code>، قم بتشغيل الأمر التالي:",Ot,Q,kt,S,Ve="يجب أن تشاهد السجلات التي تشير إلى التقدم المحرز وتظهر المكان الذي تم فيه حفظ ملف <code>model.onnx</code> الناتج، مثل هذا:",Gt,E,Qt,H,je='يوضح المثال أعلاه تصدير نقطة تفتيش من 🤗 Hub. عند تصدير نموذج محلي، تأكد أولاً من حفظ ملفات أوزان النموذج ومحول الرموز في نفس الدليل (<code>local_path</code>). عند استخدام واجهة سطر الأوامر، قم بتمرير <code>local_path</code> إلى وسيط <code>model</code> بدلاً من اسم نقطة التفتيش على 🤗 Hub وقدم وسيط <code>--task</code>. يمكنك مراجعة قائمة المهام المدعومة في <a href="https://huggingface.co/docs/optimum/exporters/task_manager" rel="nofollow">وثائق 🤗 Optimum</a>. إذا لم يتم توفير وسيط <code>task</code>، فسيتم تعيينه افتراضيًا إلى هندسة النموذج دون أي رأس محدد للمهمة.',St,I,Et,F,Xe='يمكن بعد ذلك تشغيل ملف <code>model.onnx</code> الناتج على أحد <a href="https://onnx.ai/supported-tools.html#deployModel" rel="nofollow">المسرعات</a> العديدة التي تدعم معيار ONNX. على سبيل المثال، يمكننا تحميل النموذج وتشغيله باستخدام <a href="https://onnxruntime.ai/" rel="nofollow">ONNX Runtime</a> كما يلي:',Ht,z,It,L,ve='تكون العملية مماثلة بالنسبة إلى نقاط تفتيش TensorFlow على Hub. على سبيل المثال، إليك كيفية تصدير نقطة تفتيش TensorFlow نقية من <a href="https://huggingface.co/keras-io" rel="nofollow">منظمة Keras</a>:',Ft,Y,zt,q,Lt,P,_e="كبديل لواجهة سطر الأوامر، يُمكنك تصدير نموذج 🤗 Transformers إلى ONNX برمجيًا كما يلي:",Yt,A,qt,D,Pt,K,Ze='إذا كنت ترغب في المساهمة من خلال إضافة دعم لنموذج لا يُمكن تصديره حاليًا، فيجب عليك أولاً التحقق مما إذا كان مدعومًا في <a href="https://huggingface.co/docs/optimum/exporters/onnx/overview" rel="nofollow"><code>optimum.exporters.onnx</code></a>، وإذا لم يكن مدعومًا، <a href="https://huggingface.co/docs/optimum/exporters/onnx/usage_guides/contribute" rel="nofollow">فيمكنك المساهمة في 🤗 Optimum</a> مُباشرةً.',At,tt,Dt,y,Kt,et,We="لتصدير نموذج 🤗 Transformers إلى ONNX باستخدام <code>transformers.onnx</code>، ثبّت التبعيات الإضافية:",te,lt,ee,st,Be="استخدم حزمة <code>transformers.onnx</code> كنموذج Python لتصدير نقطة حفظ باستخدام تكوين جاهز:",le,nt,se,at,Re=`يُصدّر هذا رسمًا بيانيًا ONNX لنقطة الحفظ المُحددة بواسطة وسيطة <code>--model</code>. مرر أي نقطة حفظ على 🤗 Hub أو نقطة حفظ مُخزنة محليًا.
يُمكن بعد ذلك تشغيل ملف <code>model.onnx</code> الناتج على أحد المُسرعات العديدة التي تدعم معيار ONNX. على سبيل المثال، قم بتحميل وتشغيل النموذج باستخدام ONNX Runtime كما يلي:`,ne,it,ae,pt,Oe="يُمكن الحصول على أسماء المخرجات المطلوبة (مثل <code>[&quot;last_hidden_state&quot;]</code>) من خلال إلقاء نظرة على تكوين ONNX لكل نموذج. على سبيل المثال، بالنسبة لـ DistilBERT، لدينا:",ie,mt,pe,ot,ke="العمليات مُتطابقة لنقاط الحفظ TensorFlow على Hub. على سبيل المثال، صدّر نقطة حفظ TensorFlow خالصة كما يلي:",me,rt,oe,ut,Ge="لتصدير نموذج مُخزن محليًا، احفظ أوزان النموذج ومجزىء اللغوى في نفس الدليل (على سبيل المثال <code>local-pt-checkpoint</code>)، ثم قم بتصديره إلى ONNX عن طريق توجيه وسيط <code>--model</code> لحزمة <code>transformers.onnx</code> إلى الدليل المطلوب:",re,ct,ue,ft,ce,Mt,fe;return J=new bt({props:{title:"التصدير إلى ONNX",local:"التصدير-إلى-onnx",headingTag:"h1"}}),w=new bt({props:{title:"التصدير إلى ONNX",local:"التصدير-إلى-onnx",headingTag:"h2"}}),Z=new bt({props:{title:"تصدير نموذج 🤗 Transformers إلى ONNX باستخدام واجهة سطر الأوامر",local:"تصدير-نموذج--transformers-إلى-onnx-باستخدام-واجهة-سطر-الأوامر",headingTag:"h3"}}),B=new M({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9wdGltdW0lNUJleHBvcnRlcnMlNUQ=",highlighted:"pip install optimum[exporters]",wrap:!1}}),O=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1oZWxw",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --<span class="hljs-built_in">help</span>',wrap:!1}}),k=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1oZWxw",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --<span class="hljs-built_in">help</span>',wrap:!1}}),Q=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1tb2RlbCUyMGRpc3RpbGJlcnQlMkZkaXN0aWxiZXJ0LWJhc2UtdW5jYXNlZC1kaXN0aWxsZWQtc3F1YWQlMjBkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZF9vbm54JTJG",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --model distilbert/distilbert-base-uncased-distilled-squad distilbert_base_uncased_squad_onnx/',wrap:!1}}),E=new M({props:{code:"VmFsaWRhdGluZyUyME9OTlglMjBtb2RlbCUyMGRpc3RpbGJlcnRfYmFzZV91bmNhc2VkX3NxdWFkX29ubnglMkZtb2RlbC5vbm54Li4uJTBBJTA5LSU1QiVFMiU5QyU5MyU1RCUyME9OTlglMjBtb2RlbCUyMG91dHB1dCUyMG5hbWVzJTIwbWF0Y2glMjByZWZlcmVuY2UlMjBtb2RlbCUyMChzdGFydF9sb2dpdHMlMkMlMjBlbmRfbG9naXRzKSUwQSUwOS0lMjBWYWxpZGF0aW5nJTIwT05OWCUyME1vZGVsJTIwb3V0cHV0JTIwJTIyc3RhcnRfbG9naXRzJTIyJTNBJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMCgyJTJDJTIwMTYpJTIwbWF0Y2hlcyUyMCgyJTJDJTIwMTYpJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMGFsbCUyMHZhbHVlcyUyMGNsb3NlJTIwKGF0b2wlM0ElMjAwLjAwMDEpJTBBJTA5LSUyMFZhbGlkYXRpbmclMjBPTk5YJTIwTW9kZWwlMjBvdXRwdXQlMjAlMjJlbmRfbG9naXRzJTIyJTNBJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMCgyJTJDJTIwMTYpJTIwbWF0Y2hlcyUyMCgyJTJDJTIwMTYpJTBBJTA5JTA5LSU1QiVFMiU5QyU5MyU1RCUyMGFsbCUyMHZhbHVlcyUyMGNsb3NlJTIwKGF0b2wlM0ElMjAwLjAwMDEpJTBBVGhlJTIwT05OWCUyMGV4cG9ydCUyMHN1Y2NlZWRlZCUyMGFuZCUyMHRoZSUyMGV4cG9ydGVkJTIwbW9kZWwlMjB3YXMlMjBzYXZlZCUyMGF0JTNBJTIwZGlzdGlsYmVydF9iYXNlX3VuY2FzZWRfc3F1YWRfb25ueA==",highlighted:`Validating ONNX model distilbert_base_uncased_squad_onnx/model.onnx...
-[✓] ONNX model output names match reference model (start_logits, end_logits)
- Validating ONNX Model output <span class="hljs-string">&quot;start_logits&quot;</span>:
-[✓] (2, 16) matches (2, 16)
-[✓] all values close (atol: 0.0001)
- Validating ONNX Model output <span class="hljs-string">&quot;end_logits&quot;</span>:
-[✓] (2, 16) matches (2, 16)
-[✓] all values close (atol: 0.0001)
The ONNX <span class="hljs-built_in">export</span> succeeded and the exported model was saved at: distilbert_base_uncased_squad_onnx`,wrap:!1}}),I=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1tb2RlbCUyMGxvY2FsX3BhdGglMjAtLXRhc2slMjBxdWVzdGlvbi1hbnN3ZXJpbmclMjBkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZF9vbm54JTJG",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --model local_path --task question-answering distilbert_base_uncased_squad_onnx/',wrap:!1}}),z=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEFmcm9tJTIwb3B0aW11bS5vbm54cnVudGltZSUyMGltcG9ydCUyME9SVE1vZGVsRm9yUXVlc3Rpb25BbnN3ZXJpbmclMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZF9vbm54JTIyKSUwQW1vZGVsJTIwJTNEJTIwT1JUTW9kZWxGb3JRdWVzdGlvbkFuc3dlcmluZy5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydF9iYXNlX3VuY2FzZWRfc3F1YWRfb25ueCUyMiklMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoJTIyV2hhdCUyMGFtJTIwSSUyMHVzaW5nJTNGJTIyJTJDJTIwJTIyVXNpbmclMjBEaXN0aWxCRVJUJTIwd2l0aCUyME9OTlglMjBSdW50aW1lISUyMiUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBb3V0cHV0cyUyMCUzRCUyMG1vZGVsKCoqaW5wdXRzKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> optimum.onnxruntime <span class="hljs-keyword">import</span> ORTModelForQuestionAnswering
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;distilbert_base_uncased_squad_onnx&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = ORTModelForQuestionAnswering.from_pretrained(<span class="hljs-string">&quot;distilbert_base_uncased_squad_onnx&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = tokenizer(<span class="hljs-string">&quot;What am I using?&quot;</span>, <span class="hljs-string">&quot;Using DistilBERT with ONNX Runtime!&quot;</span>, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>outputs = model(**inputs)`,wrap:!1}}),Y=new M({props:{code:"b3B0aW11bS1jbGklMjBleHBvcnQlMjBvbm54JTIwLS1tb2RlbCUyMGtlcmFzLWlvJTJGdHJhbnNmb3JtZXJzLXFhJTIwZGlzdGlsYmVydF9iYXNlX2Nhc2VkX3NxdWFkX29ubnglMkY=",highlighted:'optimum-cli <span class="hljs-built_in">export</span> onnx --model keras-io/transformers-qa distilbert_base_cased_squad_onnx/',wrap:!1}}),q=new bt({props:{title:"تصدير نموذج 🤗 Transformers إلى ONNX باستخدام optimum.onnxruntime",local:"تصدير-نموذج--transformers-إلى-onnx-باستخدام-optimumonnxruntime",headingTag:"h3"}}),A=new M({props:{code:"ZnJvbSUyMG9wdGltdW0ub25ueHJ1bnRpbWUlMjBpbXBvcnQlMjBPUlRNb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUwQSUwQW1vZGVsX2NoZWNrcG9pbnQlMjAlM0QlMjAlMjJkaXN0aWxiZXJ0X2Jhc2VfdW5jYXNlZF9zcXVhZCUyMiUwQXNhdmVfZGlyZWN0b3J5JTIwJTNEJTIwJTIyb25ueCUyRiUyMiUwQSUwQSUyMyUyMCVEOCVBQSVEOCVBRCVEOSU4NSVEOSU4QSVEOSU4NCUyMCVEOSU4NiVEOSU4NSVEOSU4OCVEOCVCMCVEOCVBQyUyMCVEOSU4NSVEOSU4NiUyMHRyYW5zZm9ybWVycyUyMCVEOSU4OCVEOCVBQSVEOCVCNSVEOCVBRiVEOSU4QSVEOCVCMSVEOSU4NyUyMCVEOCVBNSVEOSU4NCVEOSU4OSUyME9OTlglMEFvcnRfbW9kZWwlMjAlM0QlMjBPUlRNb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2NoZWNrcG9pbnQlMkMlMjBleHBvcnQlM0RUcnVlKSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2NoZWNrcG9pbnQpJTBBJTBBJTIzJTIwJUQ4JUFEJUQ5JTgxJUQ4JUI4JTIwJUQ5JTg2JUQ5JTg1JUQ5JTg4JUQ4JUIwJUQ4JUFDJTIwb25ueCUyMCVEOSU4OCVEOSU4NSVEOCVBQyVEOCVCMiVEOSU4OSVEOCVBMSUyMCVEOCVBNyVEOSU4NCVEOSU4NiVEOCVCNSVEOSU4OCVEOCVCNSUwQW9ydF9tb2RlbC5zYXZlX3ByZXRyYWluZWQoc2F2ZV9kaXJlY3RvcnkpJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZChzYXZlX2RpcmVjdG9yeSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> optimum.onnxruntime <span class="hljs-keyword">import</span> ORTModelForSequenceClassification
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
<span class="hljs-meta">&gt;&gt;&gt; </span>model_checkpoint = <span class="hljs-string">&quot;distilbert_base_uncased_squad&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>save_directory = <span class="hljs-string">&quot;onnx/&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># تحميل نموذج من transformers وتصديره إلى ONNX</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>ort_model = ORTModelForSequenceClassification.from_pretrained(model_checkpoint, export=<span class="hljs-literal">True</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># حفظ نموذج onnx ومجزىء النصوص</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>ort_model.save_pretrained(save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.save_pretrained(save_directory)`,wrap:!1}}),D=new bt({props:{title:"تصدير نموذج لهندسة غير مدعومة",local:"تصدير-نموذج-لهندسة-غير-مدعومة",headingTag:"h3"}}),tt=new bt({props:{title:"تصدير نموذج باستخدام transformers.onnx",local:"تصدير-نموذج-باستخدام-transformersonnx",headingTag:"h3"}}),y=new Pe({props:{warning:!0,$$slots:{default:[De]},$$scope:{ctx:Tt}}}),lt=new M({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRyYW5zZm9ybWVycyU1Qm9ubnglNUQ=",highlighted:"pip install transformers[onnx]",wrap:!1}}),nt=new M({props:{code:"cHl0aG9uJTIwLW0lMjB0cmFuc2Zvcm1lcnMub25ueCUyMC0tbW9kZWwlM0RkaXN0aWxiZXJ0JTJGZGlzdGlsYmVydC1iYXNlLXVuY2FzZWQlMjBvbm54JTJG",highlighted:"python -m transformers.onnx --model=distilbert/distilbert-base-uncased onnx/",wrap:!1}}),it=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEFmcm9tJTIwb25ueHJ1bnRpbWUlMjBpbXBvcnQlMjBJbmZlcmVuY2VTZXNzaW9uJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoJTIyZGlzdGlsYmVydCUyRmRpc3RpbGJlcnQtYmFzZS11bmNhc2VkJTIyKSUwQXNlc3Npb24lMjAlM0QlMjBJbmZlcmVuY2VTZXNzaW9uKCUyMm9ubnglMkZtb2RlbC5vbm54JTIyKSUwQSUyMyUyMCVEOSU4QSVEOCVBQSVEOSU4OCVEOSU4MiVEOCVCOSUyME9OTlglMjBSdW50aW1lJTIwJUQ5JTg1JUQ4JUI1JUQ5JTgxJUQ5JTg4JUQ5JTgxJUQ4JUE3JUQ4JUFBJTIwTnVtUHklMjAlRDklODMlRDklODUlRDglQUYlRDglQUUlRDklODQlRDglQTclRDglQUElMEFpbnB1dHMlMjAlM0QlMjB0b2tlbml6ZXIoJTIyVXNpbmclMjBEaXN0aWxCRVJUJTIwd2l0aCUyME9OTlglMjBSdW50aW1lISUyMiUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIybnAlMjIpJTBBb3V0cHV0cyUyMCUzRCUyMHNlc3Npb24ucnVuKG91dHB1dF9uYW1lcyUzRCU1QiUyMmxhc3RfaGlkZGVuX3N0YXRlJTIyJTVEJTJDJTIwaW5wdXRfZmVlZCUzRGRpY3QoaW5wdXRzKSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> onnxruntime <span class="hljs-keyword">import</span> InferenceSession
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;distilbert/distilbert-base-uncased&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>session = InferenceSession(<span class="hljs-string">&quot;onnx/model.onnx&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># يتوقع ONNX Runtime مصفوفات NumPy كمدخلات</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = tokenizer(<span class="hljs-string">&quot;Using DistilBERT with ONNX Runtime!&quot;</span>, return_tensors=<span class="hljs-string">&quot;np&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>outputs = session.run(output_names=[<span class="hljs-string">&quot;last_hidden_state&quot;</span>], input_feed=<span class="hljs-built_in">dict</span>(inputs))`,wrap:!1}}),mt=new M({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycy5tb2RlbHMuZGlzdGlsYmVydCUyMGltcG9ydCUyMERpc3RpbEJlcnRDb25maWclMkMlMjBEaXN0aWxCZXJ0T25ueENvbmZpZyUwQSUwQWNvbmZpZyUyMCUzRCUyMERpc3RpbEJlcnRDb25maWcoKSUwQW9ubnhfY29uZmlnJTIwJTNEJTIwRGlzdGlsQmVydE9ubnhDb25maWcoY29uZmlnKSUwQXByaW50KGxpc3Qob25ueF9jb25maWcub3V0cHV0cy5rZXlzKCkpKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers.models.distilbert <span class="hljs-keyword">import</span> DistilBertConfig, DistilBertOnnxConfig
<span class="hljs-meta">&gt;&gt;&gt; </span>config = DistilBertConfig()
<span class="hljs-meta">&gt;&gt;&gt; </span>onnx_config = DistilBertOnnxConfig(config)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(<span class="hljs-built_in">list</span>(onnx_config.outputs.keys()))
[<span class="hljs-string">&quot;last_hidden_state&quot;</span>]`,wrap:!1}}),rt=new M({props:{code:"cHl0aG9uJTIwLW0lMjB0cmFuc2Zvcm1lcnMub25ueCUyMC0tbW9kZWwlM0RrZXJhcy1pbyUyRnRyYW5zZm9ybWVycy1xYSUyMG9ubnglMkY=",highlighted:"python -m transformers.onnx --model=keras-io/transformers-qa onnx/",wrap:!1}}),ct=new M({props:{code:"cHl0aG9uJTIwLW0lMjB0cmFuc2Zvcm1lcnMub25ueCUyMC0tbW9kZWwlM0Rsb2NhbC1wdC1jaGVja3BvaW50JTIwb25ueCUyRg==",highlighted:"python -m transformers.onnx --model=local-pt-checkpoint onnx/",wrap:!1}}),ft=new Ae({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ar/serialization.md"}}),{c(){b=i("meta"),g=n(),T=i("p"),dt=n(),o(J.$$.fragment),yt=n(),U=i("p"),U.textContent=de,gt=n(),$=i("p"),$.innerHTML=be,Jt=n(),h=i("p"),h.innerHTML=Me,Ut=n(),o(w.$$.fragment),$t=n(),N=i("p"),N.innerHTML=Te,ht=n(),C=i("p"),C.textContent=ye,wt=n(),x=i("p"),x.textContent=ge,Nt=n(),V=i("ul"),V.innerHTML=Je,Ct=n(),j=i("p"),j.textContent=Ue,xt=n(),X=i("p"),X.innerHTML=$e,Vt=n(),v=i("p"),v.textContent=he,jt=n(),_=i("ul"),_.innerHTML=we,Xt=n(),o(Z.$$.fragment),vt=n(),W=i("p"),W.textContent=Ne,_t=n(),o(B.$$.fragment),Zt=n(),R=i("p"),R.innerHTML=Ce,Wt=n(),o(O.$$.fragment),Bt=n(),o(k.$$.fragment),Rt=n(),G=i("p"),G.innerHTML=xe,Ot=n(),o(Q.$$.fragment),kt=n(),S=i("p"),S.innerHTML=Ve,Gt=n(),o(E.$$.fragment),Qt=n(),H=i("p"),H.innerHTML=je,St=n(),o(I.$$.fragment),Et=n(),F=i("p"),F.innerHTML=Xe,Ht=n(),o(z.$$.fragment),It=n(),L=i("p"),L.innerHTML=ve,Ft=n(),o(Y.$$.fragment),zt=n(),o(q.$$.fragment),Lt=n(),P=i("p"),P.textContent=_e,Yt=n(),o(A.$$.fragment),qt=n(),o(D.$$.fragment),Pt=n(),K=i("p"),K.innerHTML=Ze,At=n(),o(tt.$$.fragment),Dt=n(),o(y.$$.fragment),Kt=n(),et=i("p"),et.innerHTML=We,te=n(),o(lt.$$.fragment),ee=n(),st=i("p"),st.innerHTML=Be,le=n(),o(nt.$$.fragment),se=n(),at=i("p"),at.innerHTML=Re,ne=n(),o(it.$$.fragment),ae=n(),pt=i("p"),pt.innerHTML=Oe,ie=n(),o(mt.$$.fragment),pe=n(),ot=i("p"),ot.textContent=ke,me=n(),o(rt.$$.fragment),oe=n(),ut=i("p"),ut.innerHTML=Ge,re=n(),o(ct.$$.fragment),ue=n(),o(ft.$$.fragment),ce=n(),Mt=i("p"),this.h()},l(t){const e=Ye("svelte-u9bgzb",document.head);b=p(e,"META",{name:!0,content:!0}),e.forEach(l),g=a(t),T=p(t,"P",{}),Se(T).forEach(l),dt=a(t),r(J.$$.fragment,t),yt=a(t),U=p(t,"P",{"data-svelte-h":!0}),m(U)!=="svelte-16rkrsn"&&(U.textContent=de),gt=a(t),$=p(t,"P",{"data-svelte-h":!0}),m($)!=="svelte-wxnp0k"&&($.innerHTML=be),Jt=a(t),h=p(t,"P",{"data-svelte-h":!0}),m(h)!=="svelte-6d79i"&&(h.innerHTML=Me),Ut=a(t),r(w.$$.fragment,t),$t=a(t),N=p(t,"P",{"data-svelte-h":!0}),m(N)!=="svelte-1s75eyr"&&(N.innerHTML=Te),ht=a(t),C=p(t,"P",{"data-svelte-h":!0}),m(C)!=="svelte-1ixd7ix"&&(C.textContent=ye),wt=a(t),x=p(t,"P",{"data-svelte-h":!0}),m(x)!=="svelte-1cahsoy"&&(x.textContent=ge),Nt=a(t),V=p(t,"UL",{"data-svelte-h":!0}),m(V)!=="svelte-12vzri9"&&(V.innerHTML=Je),Ct=a(t),j=p(t,"P",{"data-svelte-h":!0}),m(j)!=="svelte-4nseat"&&(j.textContent=Ue),xt=a(t),X=p(t,"P",{"data-svelte-h":!0}),m(X)!=="svelte-1j7kr65"&&(X.innerHTML=$e),Vt=a(t),v=p(t,"P",{"data-svelte-h":!0}),m(v)!=="svelte-6z8uxi"&&(v.textContent=he),jt=a(t),_=p(t,"UL",{"data-svelte-h":!0}),m(_)!=="svelte-1nrzftf"&&(_.innerHTML=we),Xt=a(t),r(Z.$$.fragment,t),vt=a(t),W=p(t,"P",{"data-svelte-h":!0}),m(W)!=="svelte-rya7vj"&&(W.textContent=Ne),_t=a(t),r(B.$$.fragment,t),Zt=a(t),R=p(t,"P",{"data-svelte-h":!0}),m(R)!=="svelte-tvh7c4"&&(R.innerHTML=Ce),Wt=a(t),r(O.$$.fragment,t),Bt=a(t),r(k.$$.fragment,t),Rt=a(t),G=p(t,"P",{"data-svelte-h":!0}),m(G)!=="svelte-60ztwq"&&(G.innerHTML=xe),Ot=a(t),r(Q.$$.fragment,t),kt=a(t),S=p(t,"P",{"data-svelte-h":!0}),m(S)!=="svelte-vsmaqd"&&(S.innerHTML=Ve),Gt=a(t),r(E.$$.fragment,t),Qt=a(t),H=p(t,"P",{"data-svelte-h":!0}),m(H)!=="svelte-1rdiyis"&&(H.innerHTML=je),St=a(t),r(I.$$.fragment,t),Et=a(t),F=p(t,"P",{"data-svelte-h":!0}),m(F)!=="svelte-e0hm5v"&&(F.innerHTML=Xe),Ht=a(t),r(z.$$.fragment,t),It=a(t),L=p(t,"P",{"data-svelte-h":!0}),m(L)!=="svelte-he4bhc"&&(L.innerHTML=ve),Ft=a(t),r(Y.$$.fragment,t),zt=a(t),r(q.$$.fragment,t),Lt=a(t),P=p(t,"P",{"data-svelte-h":!0}),m(P)!=="svelte-rlvus8"&&(P.textContent=_e),Yt=a(t),r(A.$$.fragment,t),qt=a(t),r(D.$$.fragment,t),Pt=a(t),K=p(t,"P",{"data-svelte-h":!0}),m(K)!=="svelte-v75hgt"&&(K.innerHTML=Ze),At=a(t),r(tt.$$.fragment,t),Dt=a(t),r(y.$$.fragment,t),Kt=a(t),et=p(t,"P",{"data-svelte-h":!0}),m(et)!=="svelte-yifyy3"&&(et.innerHTML=We),te=a(t),r(lt.$$.fragment,t),ee=a(t),st=p(t,"P",{"data-svelte-h":!0}),m(st)!=="svelte-ssnq1s"&&(st.innerHTML=Be),le=a(t),r(nt.$$.fragment,t),se=a(t),at=p(t,"P",{"data-svelte-h":!0}),m(at)!=="svelte-6qnfzb"&&(at.innerHTML=Re),ne=a(t),r(it.$$.fragment,t),ae=a(t),pt=p(t,"P",{"data-svelte-h":!0}),m(pt)!=="svelte-1sbwzj7"&&(pt.innerHTML=Oe),ie=a(t),r(mt.$$.fragment,t),pe=a(t),ot=p(t,"P",{"data-svelte-h":!0}),m(ot)!=="svelte-17rb04c"&&(ot.textContent=ke),me=a(t),r(rt.$$.fragment,t),oe=a(t),ut=p(t,"P",{"data-svelte-h":!0}),m(ut)!=="svelte-10vhfe1"&&(ut.innerHTML=Ge),re=a(t),r(ct.$$.fragment,t),ue=a(t),r(ft.$$.fragment,t),ce=a(t),Mt=p(t,"P",{}),Se(Mt).forEach(l),this.h()},h(){Ee(b,"name","hf:doc:metadata"),Ee(b,"content",tl)},m(t,e){qe(document.head,b),s(t,g,e),s(t,T,e),s(t,dt,e),u(J,t,e),s(t,yt,e),s(t,U,e),s(t,gt,e),s(t,$,e),s(t,Jt,e),s(t,h,e),s(t,Ut,e),u(w,t,e),s(t,$t,e),s(t,N,e),s(t,ht,e),s(t,C,e),s(t,wt,e),s(t,x,e),s(t,Nt,e),s(t,V,e),s(t,Ct,e),s(t,j,e),s(t,xt,e),s(t,X,e),s(t,Vt,e),s(t,v,e),s(t,jt,e),s(t,_,e),s(t,Xt,e),u(Z,t,e),s(t,vt,e),s(t,W,e),s(t,_t,e),u(B,t,e),s(t,Zt,e),s(t,R,e),s(t,Wt,e),u(O,t,e),s(t,Bt,e),u(k,t,e),s(t,Rt,e),s(t,G,e),s(t,Ot,e),u(Q,t,e),s(t,kt,e),s(t,S,e),s(t,Gt,e),u(E,t,e),s(t,Qt,e),s(t,H,e),s(t,St,e),u(I,t,e),s(t,Et,e),s(t,F,e),s(t,Ht,e),u(z,t,e),s(t,It,e),s(t,L,e),s(t,Ft,e),u(Y,t,e),s(t,zt,e),u(q,t,e),s(t,Lt,e),s(t,P,e),s(t,Yt,e),u(A,t,e),s(t,qt,e),u(D,t,e),s(t,Pt,e),s(t,K,e),s(t,At,e),u(tt,t,e),s(t,Dt,e),u(y,t,e),s(t,Kt,e),s(t,et,e),s(t,te,e),u(lt,t,e),s(t,ee,e),s(t,st,e),s(t,le,e),u(nt,t,e),s(t,se,e),s(t,at,e),s(t,ne,e),u(it,t,e),s(t,ae,e),s(t,pt,e),s(t,ie,e),u(mt,t,e),s(t,pe,e),s(t,ot,e),s(t,me,e),u(rt,t,e),s(t,oe,e),s(t,ut,e),s(t,re,e),u(ct,t,e),s(t,ue,e),u(ft,t,e),s(t,ce,e),s(t,Mt,e),fe=!0},p(t,[e]){const Qe={};e&2&&(Qe.$$scope={dirty:e,ctx:t}),y.$set(Qe)},i(t){fe||(c(J.$$.fragment,t),c(w.$$.fragment,t),c(Z.$$.fragment,t),c(B.$$.fragment,t),c(O.$$.fragment,t),c(k.$$.fragment,t),c(Q.$$.fragment,t),c(E.$$.fragment,t),c(I.$$.fragment,t),c(z.$$.fragment,t),c(Y.$$.fragment,t),c(q.$$.fragment,t),c(A.$$.fragment,t),c(D.$$.fragment,t),c(tt.$$.fragment,t),c(y.$$.fragment,t),c(lt.$$.fragment,t),c(nt.$$.fragment,t),c(it.$$.fragment,t),c(mt.$$.fragment,t),c(rt.$$.fragment,t),c(ct.$$.fragment,t),c(ft.$$.fragment,t),fe=!0)},o(t){f(J.$$.fragment,t),f(w.$$.fragment,t),f(Z.$$.fragment,t),f(B.$$.fragment,t),f(O.$$.fragment,t),f(k.$$.fragment,t),f(Q.$$.fragment,t),f(E.$$.fragment,t),f(I.$$.fragment,t),f(z.$$.fragment,t),f(Y.$$.fragment,t),f(q.$$.fragment,t),f(A.$$.fragment,t),f(D.$$.fragment,t),f(tt.$$.fragment,t),f(y.$$.fragment,t),f(lt.$$.fragment,t),f(nt.$$.fragment,t),f(it.$$.fragment,t),f(mt.$$.fragment,t),f(rt.$$.fragment,t),f(ct.$$.fragment,t),f(ft.$$.fragment,t),fe=!1},d(t){t&&(l(g),l(T),l(dt),l(yt),l(U),l(gt),l($),l(Jt),l(h),l(Ut),l($t),l(N),l(ht),l(C),l(wt),l(x),l(Nt),l(V),l(Ct),l(j),l(xt),l(X),l(Vt),l(v),l(jt),l(_),l(Xt),l(vt),l(W),l(_t),l(Zt),l(R),l(Wt),l(Bt),l(Rt),l(G),l(Ot),l(kt),l(S),l(Gt),l(Qt),l(H),l(St),l(Et),l(F),l(Ht),l(It),l(L),l(Ft),l(zt),l(Lt),l(P),l(Yt),l(qt),l(Pt),l(K),l(At),l(Dt),l(Kt),l(et),l(te),l(ee),l(st),l(le),l(se),l(at),l(ne),l(ae),l(pt),l(ie),l(pe),l(ot),l(me),l(oe),l(ut),l(re),l(ue),l(ce),l(Mt)),l(b),d(J,t),d(w,t),d(Z,t),d(B,t),d(O,t),d(k,t),d(Q,t),d(E,t),d(I,t),d(z,t),d(Y,t),d(q,t),d(A,t),d(D,t),d(tt,t),d(y,t),d(lt,t),d(nt,t),d(it,t),d(mt,t),d(rt,t),d(ct,t),d(ft,t)}}}const tl='{"title":"التصدير إلى ONNX","local":"التصدير-إلى-onnx","sections":[{"title":"التصدير إلى ONNX","local":"التصدير-إلى-onnx","sections":[{"title":"تصدير نموذج 🤗 Transformers إلى ONNX باستخدام واجهة سطر الأوامر","local":"تصدير-نموذج--transformers-إلى-onnx-باستخدام-واجهة-سطر-الأوامر","sections":[],"depth":3},{"title":"تصدير نموذج 🤗 Transformers إلى ONNX باستخدام optimum.onnxruntime","local":"تصدير-نموذج--transformers-إلى-onnx-باستخدام-optimumonnxruntime","sections":[],"depth":3},{"title":"تصدير نموذج لهندسة غير مدعومة","local":"تصدير-نموذج-لهندسة-غير-مدعومة","sections":[],"depth":3},{"title":"تصدير نموذج باستخدام transformers.onnx","local":"تصدير-نموذج-باستخدام-transformersonnx","sections":[],"depth":3}],"depth":2}],"depth":1}';function el(Tt){return Ie(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class pl extends ze{constructor(b){super(),Le(this,b,el,Ke,He,{})}}export{pl as component};

Xet Storage Details

Size:
30.6 kB
·
Xet hash:
5ca0c09727fd70e627d931bf47d0fc17da6ea0efba2fb92d4809136aad280b2d

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.