import{s as ke,n as He,o as Ue}from"../chunks/scheduler.5eb9d175.js";import{S as Xe,i as Be,g as p,s as n,r as m,A as Ie,h as f,f as l,c as a,j as Ze,u,x as s,k as We,y as Ee,a as i,v as r,d as g,t as d,w as c}from"../chunks/index.fcdcb606.js";import{C as Je}from"../chunks/CodeBlock.a7036e06.js";import{H as S,E as Pe}from"../chunks/EditOnGithub.98bf070f.js";function Se(de){let o,F,E,V,$,j,T,ce='تُستخدم صيغة ملف GGUF لتخزين النماذج للاستدلال باستخدام <a href="https://github.com/ggerganov/ggml" rel="nofollow">GGML</a> والمكتبات الأخرى التي تعتمد عليه، مثل <a href="https://github.com/ggerganov/llama.cpp" rel="nofollow">llama.cpp</a> أو <a href="https://github.com/ggerganov/whisper.cpp" rel="nofollow">whisper.cpp</a> الشهيرة جدًا.',q,_,$e='إنها صيغة ملف <a href="https://huggingface.co/docs/hub/en/gguf" rel="nofollow">مدعومة من قبل Hugging Face Hub</a> مع ميزات تسمح بالفحص السريع للموترات والبيانات الوصفية داخل الملف.',z,h,Te='تم تصميم تنسيق الملف هذا كـ “تنسيق ملف واحد” حيث يحتوي ملف واحد عادةً على كل من سمات التكوين ومفردات المجزىء اللغوي والخصائص الأخرى، بالإضافة إلى جميع الموترات التي سيتم تحميلها في النموذج. تأتي هذه الملفات بتنسيقات مختلفة وفقًا لنوع التكميم في الملف. نلقي نظرة موجزة على بعضها <a href="https://huggingface.co/docs/hub/en/gguf#quantization-types" rel="nofollow">هنا</a>.',Y,M,R,v,_e="أضفنا القدرة على تحميل ملفات <code>gguf</code> داخل <code>المحولات</code> لتوفير قدرات تدريب/ضبط إضافية لنماذج gguf، قبل إعادة تحويل تلك النماذج إلى <code>gguf</code> لاستخدامها داخل نظام <code>ggml</code>. عند تحميل نموذج، نقوم أولاً بإلغاء تكميمه إلى fp32، قبل تحميل الأوزان لاستخدامها في PyTorch.",N,b,he=`<p>[!NOTE]
لا يزال الدعم تجريبيًا للغاية ونرحب بالمساهمات من أجل ترسيخه عبر أنواع التكميم وبنى النماذج.</p>`,K,x,Me="فيما يلي، بنيات النماذج وأنواع التكميم المدعومة:",A,y,O,w,ve="تُحدد أنواع التكميم المدعومة مبدئيًا وفقًا لملفات التكميم الشائعة التي تمت مشاركتها على Hub.",D,C,be="<li>F32</li> <li>F16</li> <li>BF16</li> <li>Q4_0</li> <li>Q4_1</li> <li>Q5_0</li> <li>Q5_1</li> <li>Q8_0</li> <li>Q2_K</li> <li>Q3_K</li> <li>Q4_K</li> <li>Q5_K</li> <li>Q6_K</li> <li>IQ1_S</li> <li>IQ1_M</li> <li>IQ2_XXS</li> <li>IQ2_XS</li> <li>IQ2_S</li> <li>IQ3_XXS</li> <li>IQ3_S</li> <li>IQ4_XS</li> <li>IQ4_NL</li>",ee,L,xe=`<p>[!NOTE]
لدعم إلغاء تكميم gguf، يلزم تثبيت <code>gguf&gt;=0.10.0</code>.</p>`,te,G,le,Q,ye="في الوقت الحالي، بنيات النماذج المدعومة هي البنيات التي كانت شائعة جدًا على Hub، وهي:",ie,Z,we="<li>LLaMa</li> <li>Mistral</li> <li>Qwen2</li> <li>Qwen2Moe</li> <li>Phi3</li> <li>Bloom</li> <li>Falcon</li> <li>StableLM</li> <li>GPT2</li> <li>Starcoder2</li> <li>T5</li>",ne,W,ae,J,Ce="لتحميل ملفات <code>gguf</code> في <code>transformers</code>، يجب تحديد معامل <code>gguf_file</code> فى دالة <code>from_pretrained</code> لكل من المُجزّئ اللغوية والنموذج. فيما يلي كيفية تحميل المُجزّئ اللغوي ونموذج، يمكن تحميلهما من نفس الملف:",pe,k,fe,H,Le="الآن لديك إمكانية الوصول إلى النسخة الكامل غير المكممة للنموذج في بيئة PyTorch، حيث يمكنك دمجه مع مجموعة كبيرة من الأدوات الأخرى.",se,U,Ge='لإعادة التحويل إلى ملف <code>gguf</code>، نوصي باستخدام ملف <a href="https://github.com/ggerganov/llama.cpp/blob/master/convert-hf-to-gguf.py" rel="nofollow"><code>convert-hf-to-gguf.py</code></a> من llama.cpp.',oe,X,Qe="فيما يلي كيفية إكمال البرنامج النصي أعلاه لحفظ النموذج وإعادة تصديره مرة أخرى إلى <code>gguf</code>:",me,B,ue,I,re,P,ge;return $=new S({props:{title:"GGUF وتفاعلها مع المحولات",local:"gguf-وتفاعلها-مع-المحولات",headingTag:"h1"}}),M=new S({props:{title:"الدعم داخل المحولات",local:"الدعم-داخل-المحولات",headingTag:"h2"}}),y=new S({props:{title:"أنواع التكميم المدعومة",local:"أنواع-التكميم-المدعومة",headingTag:"h3"}}),G=new S({props:{title:"بنيات النماذج المدعومة",local:"بنيات-النماذج-المدعومة",headingTag:"h3"}}),W=new S({props:{title:"مثال الاستخدام",local:"مثال-الاستخدام",headingTag:"h2"}}),k=new Je({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBBdXRvTW9kZWxGb3JDYXVzYWxMTSUwQSUwQW1vZGVsX2lkJTIwJTNEJTIwJTIyVGhlQmxva2UlMkZUaW55TGxhbWEtMS4xQi1DaGF0LXYxLjAtR0dVRiUyMiUwQWZpbGVuYW1lJTIwJTNEJTIwJTIydGlueWxsYW1hLTEuMWItY2hhdC12MS4wLlE2X0suZ2d1ZiUyMiUwQSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX2lkJTJDJTIwZ2d1Zl9maWxlJTNEZmlsZW5hbWUpJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JDYXVzYWxMTS5mcm9tX3ByZXRyYWluZWQobW9kZWxfaWQlMkMlMjBnZ3VmX2ZpbGUlM0RmaWxlbmFtZSk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForCausalLM

model_id = <span class="hljs-string">&quot;TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF&quot;</span>
filename = <span class="hljs-string">&quot;tinyllama-1.1b-chat-v1.0.Q6_K.gguf&quot;</span>

tokenizer = AutoTokenizer.from_pretrained(model_id, gguf_file=filename)
model = AutoModelForCausalLM.from_pretrained(model_id, gguf_file=filename)`,wrap:!1}}),B=new Je({props:{code:"dG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZCgnZGlyZWN0b3J5JyklMEFtb2RlbC5zYXZlX3ByZXRyYWluZWQoJ2RpcmVjdG9yeScpJTBBJTBBIXB5dGhvbiUyMCUyNCU3QnBhdGhfdG9fbGxhbWFfY3BwJTdEJTJGY29udmVydC1oZi10by1nZ3VmLnB5JTIwJTI0JTdCZGlyZWN0b3J5JTdE",highlighted:`tokenizer.save_pretrained(<span class="hljs-string">&#x27;directory&#x27;</span>)
model.save_pretrained(<span class="hljs-string">&#x27;directory&#x27;</span>)

!python \${path_to_llama_cpp}/convert-hf-to-gguf.py \${directory}`,wrap:!1}}),I=new Pe({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ar/gguf.md"}}),{c(){o=p("meta"),F=n(),E=p("p"),V=n(),m($.$$.fragment),j=n(),T=p("p"),T.innerHTML=ce,q=n(),_=p("p"),_.innerHTML=$e,z=n(),h=p("p"),h.innerHTML=Te,Y=n(),m(M.$$.fragment),R=n(),v=p("p"),v.innerHTML=_e,N=n(),b=p("blockquote"),b.innerHTML=he,K=n(),x=p("p"),x.textContent=Me,A=n(),m(y.$$.fragment),O=n(),w=p("p"),w.textContent=ve,D=n(),C=p("ul"),C.innerHTML=be,ee=n(),L=p("blockquote"),L.innerHTML=xe,te=n(),m(G.$$.fragment),le=n(),Q=p("p"),Q.textContent=ye,ie=n(),Z=p("ul"),Z.innerHTML=we,ne=n(),m(W.$$.fragment),ae=n(),J=p("p"),J.innerHTML=Ce,pe=n(),m(k.$$.fragment),fe=n(),H=p("p"),H.textContent=Le,se=n(),U=p("p"),U.innerHTML=Ge,oe=n(),X=p("p"),X.innerHTML=Qe,me=n(),m(B.$$.fragment),ue=n(),m(I.$$.fragment),re=n(),P=p("p"),this.h()},l(e){const t=Ie("svelte-u9bgzb",document.head);o=f(t,"META",{name:!0,content:!0}),t.forEach(l),F=a(e),E=f(e,"P",{}),Ze(E).forEach(l),V=a(e),u($.$$.fragment,e),j=a(e),T=f(e,"P",{"data-svelte-h":!0}),s(T)!=="svelte-4fhmt1"&&(T.innerHTML=ce),q=a(e),_=f(e,"P",{"data-svelte-h":!0}),s(_)!=="svelte-vw77cg"&&(_.innerHTML=$e),z=a(e),h=f(e,"P",{"data-svelte-h":!0}),s(h)!=="svelte-1q994ju"&&(h.innerHTML=Te),Y=a(e),u(M.$$.fragment,e),R=a(e),v=f(e,"P",{"data-svelte-h":!0}),s(v)!=="svelte-11jvyzz"&&(v.innerHTML=_e),N=a(e),b=f(e,"BLOCKQUOTE",{"data-svelte-h":!0}),s(b)!=="svelte-c29948"&&(b.innerHTML=he),K=a(e),x=f(e,"P",{"data-svelte-h":!0}),s(x)!=="svelte-18xxnke"&&(x.textContent=Me),A=a(e),u(y.$$.fragment,e),O=a(e),w=f(e,"P",{"data-svelte-h":!0}),s(w)!=="svelte-w70ek2"&&(w.textContent=ve),D=a(e),C=f(e,"UL",{"data-svelte-h":!0}),s(C)!=="svelte-1f29qgp"&&(C.innerHTML=be),ee=a(e),L=f(e,"BLOCKQUOTE",{"data-svelte-h":!0}),s(L)!=="svelte-nizkno"&&(L.innerHTML=xe),te=a(e),u(G.$$.fragment,e),le=a(e),Q=f(e,"P",{"data-svelte-h":!0}),s(Q)!=="svelte-1p5cuqv"&&(Q.textContent=ye),ie=a(e),Z=f(e,"UL",{"data-svelte-h":!0}),s(Z)!=="svelte-1nax9k4"&&(Z.innerHTML=we),ne=a(e),u(W.$$.fragment,e),ae=a(e),J=f(e,"P",{"data-svelte-h":!0}),s(J)!=="svelte-1i2xd7l"&&(J.innerHTML=Ce),pe=a(e),u(k.$$.fragment,e),fe=a(e),H=f(e,"P",{"data-svelte-h":!0}),s(H)!=="svelte-jgncpg"&&(H.textContent=Le),se=a(e),U=f(e,"P",{"data-svelte-h":!0}),s(U)!=="svelte-r98qfv"&&(U.innerHTML=Ge),oe=a(e),X=f(e,"P",{"data-svelte-h":!0}),s(X)!=="svelte-2cef0p"&&(X.innerHTML=Qe),me=a(e),u(B.$$.fragment,e),ue=a(e),u(I.$$.fragment,e),re=a(e),P=f(e,"P",{}),Ze(P).forEach(l),this.h()},h(){We(o,"name","hf:doc:metadata"),We(o,"content",Fe)},m(e,t){Ee(document.head,o),i(e,F,t),i(e,E,t),i(e,V,t),r($,e,t),i(e,j,t),i(e,T,t),i(e,q,t),i(e,_,t),i(e,z,t),i(e,h,t),i(e,Y,t),r(M,e,t),i(e,R,t),i(e,v,t),i(e,N,t),i(e,b,t),i(e,K,t),i(e,x,t),i(e,A,t),r(y,e,t),i(e,O,t),i(e,w,t),i(e,D,t),i(e,C,t),i(e,ee,t),i(e,L,t),i(e,te,t),r(G,e,t),i(e,le,t),i(e,Q,t),i(e,ie,t),i(e,Z,t),i(e,ne,t),r(W,e,t),i(e,ae,t),i(e,J,t),i(e,pe,t),r(k,e,t),i(e,fe,t),i(e,H,t),i(e,se,t),i(e,U,t),i(e,oe,t),i(e,X,t),i(e,me,t),r(B,e,t),i(e,ue,t),r(I,e,t),i(e,re,t),i(e,P,t),ge=!0},p:He,i(e){ge||(g($.$$.fragment,e),g(M.$$.fragment,e),g(y.$$.fragment,e),g(G.$$.fragment,e),g(W.$$.fragment,e),g(k.$$.fragment,e),g(B.$$.fragment,e),g(I.$$.fragment,e),ge=!0)},o(e){d($.$$.fragment,e),d(M.$$.fragment,e),d(y.$$.fragment,e),d(G.$$.fragment,e),d(W.$$.fragment,e),d(k.$$.fragment,e),d(B.$$.fragment,e),d(I.$$.fragment,e),ge=!1},d(e){e&&(l(F),l(E),l(V),l(j),l(T),l(q),l(_),l(z),l(h),l(Y),l(R),l(v),l(N),l(b),l(K),l(x),l(A),l(O),l(w),l(D),l(C),l(ee),l(L),l(te),l(le),l(Q),l(ie),l(Z),l(ne),l(ae),l(J),l(pe),l(fe),l(H),l(se),l(U),l(oe),l(X),l(me),l(ue),l(re),l(P)),l(o),c($,e),c(M,e),c(y,e),c(G,e),c(W,e),c(k,e),c(B,e),c(I,e)}}}const Fe='{"title":"GGUF وتفاعلها مع المحولات","local":"gguf-وتفاعلها-مع-المحولات","sections":[{"title":"الدعم داخل المحولات","local":"الدعم-داخل-المحولات","sections":[{"title":"أنواع التكميم المدعومة","local":"أنواع-التكميم-المدعومة","sections":[],"depth":3},{"title":"بنيات النماذج المدعومة","local":"بنيات-النماذج-المدعومة","sections":[],"depth":3}],"depth":2},{"title":"مثال الاستخدام","local":"مثال-الاستخدام","sections":[],"depth":2}],"depth":1}';function Ve(de){return Ue(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Re extends Xe{constructor(o){super(),Be(this,o,Ve,Se,ke,{})}}export{Re as component};
