مساعد كود Qiskit
تهدف نماذج LLM لمساعد كود Qiskit إلى جعل الحوسبة الكمية أكثر سهولةً للمستخدمين الجدد على Qiskit، وتحسين تجربة البرمجة للمستخدمين الحاليين. وقد تدرَّبت على ملايين الرموز النصية من Qiskit SDK وسنوات من أمثلة كود Qiskit وميزات IBM Quantum®. يمكن لمساعد كود Qiskit تعزيز سير عمل تطويرك الكمي من خلال تقديم اقتراحات مولَّدة بنماذج اللغة الكبيرة استنادًا إلى نماذج IBM Granite وغيرها من النماذج مفتوحة المصدر، والتي تتضمن أحدث الميزات والوظائف من IBM®.
- هل تريد الانتقال مباشرةً إلى تعليمات التثبيت؟ اذهب إلى قسم تثبيت مساعد كود Qiskit.
- إن كان لديك ملاحظات أو تريد التواصل مع فريق المطورين، استخدم قناة Qiskit على Slack أو مستودعات GitHub العامة ذات الصلة.
نموذج اللغة الكبير (LLM) خلف مساعد كود Qiskit
لتقديم اقتراحات الكود، يستخدم مساعد كود Qiskit نموذج لغة كبير (LLM). في هذه الحالة، يعتمد مساعد كود Qiskit حاليًا على النموذج mistral-small-3.2-24b-qiskit، المبني على نموذج Mistral-Small-3.2-24B-Qiskit. يُحسِّن النموذج mistral-small-3.2-24b-qiskit قدرات توليد الكود للنموذج Mistral-Small-3.2-24B-Instruct-2506 في مجال Qiskit من خلال التدريب المسبق الموسَّع وضبطه الدقيق على بيانات Qiskit عالية الجودة، فضلًا عن التزامات Python والمحادثات. لمزيد من المعلومات حول عائلة نماذج Mistral AI، راجع توثيق Mistral AI. لمزيد من التفاصيل حول نماذج .*-qiskit، راجع مساعد كود Qiskit: تدريب نماذج LLM لتوليد كود الحوسبة الكمية.
نماذجنا الكبيرة المتخصصة في Qiskit متاحة أيضًا كنماذج مفتوحة المصدر. تحقق من جميع النماذج المتاحة على https://huggingface.co/Qiskit.
معياري Qiskit HumanEval و Qiskit HumanEval Hard
لاختبار النموذج mistral-small-3.2-24b-qiskit وغيره من النماذج، تعاونّا مع مناصري Qiskit والخبراء لإنشاء معياري التقييم القائمَين على التنفيذ، المعروفَين بـ Qiskit HumanEval (QHE) وQiskit HumanEval Hard (QHE Hard)، وأجرينا عليهما اختبارات النماذج. هذان المعياران مشابهان لـ HumanEval، ويتضمنان مسائل برمجية متعددة ومتحدية للحل، كلها مبنية على مكتبات Qiskit الرسمية.
يتكون كل معيار من نحو 150 اختبارًا، كل منها مبني من تعريف دالة يتبعه docstring يوضّح المهمة المطلوب من النموذج حلّها. يتضمن كل مثال أيضًا حلًّا مرجعيًّا قانونيًّا، فضلًا عن اختبارات وحدة للتحقق من صحة الحلول المولَّدة. توجد ثلاثة مستويات من الصعوبة للاختبارات: أساسي، ومتوسط، وصعب. معيار Qiskit HumanEval Hard هو نسخة من معيار Qiskit HumanEval، لكنه يزيل المعلومات المتعلقة باستيراد الكود، بحيث يحتاج النموذج اللغوي الكبير إلى تحديد الطريقة أو الكلاس المناسب للاستيراد. يجعل هذا التغيير مجموعة البيانات أكثر تحديًا لنماذج LLM وفقًا لاختباراتنا ونتائجنا الأولية.
مجموعتا بيانات Qiskit HumanEval وQiskit HumanEval Hard متاحتان على هذين الموقعَين: Qiskit HumanEval وQiskit HumanEval. يمكنك المساهمة في تطوير هذه المعايير عبر مستودع GitHub.
تثبيت مساعد كود Qiskit
تعلّم كيفية تثبيت أي من نماذج مساعد كود Qiskit وتهيئتها واستخدامها على جهازك المحلي.
Download from the Hugging Face website
اتّبع هذه الخطوات لتنزيل أي نموذج مرتبط بمساعد كود Qiskit من موقع Hugging Face:
- انتقل إلى صفحة نموذج Qiskit المطلوب على Hugging Face.
- اذهب إلى تبويب Files and Versions ونزِّل ملفات نموذج safetensors أو GGUF.
Download using the Hugging Face CLI
لتنزيل أي من نماذج مساعد كود Qiskit المتاحة باستخدام Hugging Face CLI، اتّبع الخطوات التالية:
-
ثبِّت Hugging Face CLI
-
سجِّل دخولك إلى حساب Hugging Face الخاص بك
huggingface-cli login -
نزِّل النموذج الذي تفضله من القائمة السابقة
huggingface-cli download <HF REPO NAME> <MODEL PATH> --local-dir <LOCAL PATH>
Manually deploy the Qiskit Code Assistant models in local through Ollama
ثمة طرق متعددة لنشر نموذج مساعد كود Qiskit المنزَّل والتفاعل معه. يوضح هذا الدليل استخدام Ollama على النحو التالي: إما مع تطبيق Ollama باستخدام تكامل Hugging Face Hub أو النموذج المحلي، أو مع حزمة llama-cpp-python.
استخدام تطبيق Ollama
يوفر تطبيق Ollama حلًّا بسيطًا لتشغيل نماذج LLM محليًا. وهو سهل الاستخدام، مع واجهة سطر أوامر تجعل عملية الإعداد الكاملة وإدارة النماذج والتفاعل معها أمرًا مباشرًا. وهو مثالي للتجريب السريع للمستخدمين الذين يريدون التعامل مع تفاصيل تقنية أقل.
تثبيت Ollama
-
نزِّل تطبيق Ollama
-
ثبِّت الملف المنزَّل
-
شغِّل تطبيق Ollama المثبَّت
معلوماتيعمل التطبيق بنجاح عندما تظهر أيقونة Ollama في شريط قوائم سطح المكتب. يمكنك أيضًا التحقق من أن الخدمة تعمل بالانتقال إلى
http://localhost:11434/. -
جرِّب Ollama في طرفيتك وابدأ تشغيل النماذج. على سبيل المثال:
ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
إعداد Ollama باستخدام تكامل Hugging Face Hub
يوفر تكامل Ollama/Hugging Face Hub طريقةً للتفاعل مع النماذج المستضافة على Hugging Face Hub دون الحاجة إلى إنشاء modelfile جديد أو تنزيل ملفات GGUF أو safetensors يدويًا. ملفات template وparams الافتراضية مدرجة بالفعل للنموذج على Hugging Face Hub.
-
تأكد من أن تطبيق Ollama يعمل.
-
انتقل إلى صفحة النموذج المطلوب وانسخ الرابط. على سبيل المثال، https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.
-
من طرفيتك، نفِّذ الأمر:
ollama run hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit
يمكنك استخدام نموذج hf.co/Qiskit/Qwen2.5-Coder-14B-Qiskit أو أي من النماذج الرسمية الحالية الأخرى الموصى بها بتنسيق GGUF hf.co/Qiskit/mistral-small-3.2-24b-qiskit-GGUF أو hf.co/Qiskit/granite-3.3-8b-qiskit-GGUF.
إعداد Ollama مع نموذج GGUF لمساعد كود Qiskit المنزَّل يدويًا
إن كنت قد نزّلت نموذج GGUF يدويًا مثل https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF وتريد تجريب قوالب ومعاملات مختلفة، يمكنك اتّباع هذه الخطوات لتحميله في تطبيق Ollama المحلي.
-
أنشئ
Modelfileبإدخال المحتوى التالي وتأكد من تحديث<PATH-TO-GGUF-FILE>إلى المسار الفعلي للنموذج المنزَّل.FROM <PATH-TO-GGUF-FILE>TEMPLATE """{{ if .System }}System:{{ .System }}{{ end }}{{ if .Prompt }}Question:{{ .Prompt }}{{ end }}Answer:```python{{ .Response }}"""PARAMETER stop "Question:"PARAMETER stop "Answer:"PARAMETER stop "System:"PARAMETER stop "```"PARAMETER temperature 0PARAMETER top_k 1 -
نفِّذ الأمر التالي لإنشاء مثيل نموذج مخصص استنادًا إلى
Modelfile.ollama create Qwen2.5-Coder-14B-Qiskit -f ./path-to-model-fileملاحظةقد تستغرق هذه العملية بعض الوقت حتى يقرأ Ollama ملف النموذج ويُهيئ مثيل النموذج ويُعدَّه وفقًا للمواصفات المقدَّمة.
تشغيل نموذج مساعد كود Qiskit المنزَّل يدويًا في Ollama
بعد إعداد نموذج Qwen2.5-Coder-14B-Qiskit في Ollama، نفِّذ الأمر التالي لتشغيل النموذج والتفاعل معه في الطرفية (في وضع المحادثة).
ollama run Qwen2.5-Coder-14B-Qiskit
بعض الأوامر المفيدة:
ollama list- سرد النماذج الموجودة على حاسوبكollama rm Qwen2.5-Coder-14B-Qiskit- حذف النموذجollama show Qwen2.5-Coder-14B-Qiskit- عرض معلومات النموذجollama stop Qwen2.5-Coder-14B-Qiskit- إيقاف نموذج قيد التشغيل حاليًاollama ps- سرد النماذج المحمَّلة حاليًا
Manually deploy the Qiskit Code Assistant models in local through the llama-cpp-python package
بديل عن تطبيق Ollama هو حزمة llama-cpp-python، وهي ربط Python للمكتبة llama.cpp. تمنحك مزيدًا من التحكم والمرونة لتشغيل نموذج GGUF محليًا، وهي مثالية للمستخدمين الذين يرغبون في دمج النموذج المحلي في سير عملهم وتطبيقات Python الخاصة بهم.
- ثبِّت
llama-cpp-python - تفاعل مع النموذج من داخل تطبيقك باستخدام
llama_cpp. على سبيل المثال:
from llama_cpp import Llama
model_path = <PATH-TO-GGUF-FILE>
model = Llama(
model_path,
seed=17,
n_ctx=10000,
n_gpu_layers=37, # to offload in gpu, but put 0 if all in cpu
)
input = 'Generate a quantum circuit with 2 qubits'
raw_pred = model(input)["choices"][0]["text"]
يمكنك أيضًا إضافة معاملات توليد النص إلى النموذج لتخصيص الاستنتاج:
generation_kwargs = {
"max_tokens": 512,
"echo": False, # Echo the prompt in the output
"top_k": 1
}
raw_pred = model(input, **generation_kwargs)["choices"][0]["text"]
Manually deploy the Qiskit Code Assistant models in local through llama.cpp
استخدام مكتبة llama.cpp
بديل آخر هو استخدام llama.cpp، وهي مكتبة مفتوحة المصدر لإجراء استنتاج نماذج LLM على وحدة المعالجة المركزية مع إعداد بسيط للغاية.
توفر تحكمًا متعمقًا في تنفيذ النموذج وتُشغَّل عادةً من سطر الأوامر مع الإشارة إلى ملف نموذج GGUF محلي.
ثمة عدة طرق لتثبيت llama.cpp على جهازك:
- ثبِّت llama.cpp باستخدام brew أو nix أو winget
- شغِّله باستخدام Docker: راجع توثيق Docker من فريق
llama.cpp - نزِّل ثنائيات مُجمَّعة مسبقًا من صفحة الإصدارات
- ابنِه من المصدر عبر استنساخ هذا المستودع
بعد التثبيت، يمكنك استخدام llama.cpp للتفاعل مع نماذج GGUF في وضع المحادثة على النحو التالي:
# Use a local model file
llama-cli -m my_model.gguf -cnv
# Or download and run a model directly from Hugging Face
llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF -cnv
يمكنك أيضًا تشغيل خادم API متوافق مع OpenAI للنموذج على النحو التالي:
llama-server -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF
المعاملات المتقدمة
باستخدام برنامج llama-cli، يمكنك التحكم في توليد النموذج عبر خيارات سطر الأوامر. على سبيل المثال، يمكنك تقديم موجّه “نظام” أولي باستخدام العلَم -p/--prompt. في وضع المحادثة (-cnv)، يعمل هذا الموجّه الأولي كرسالة النظام. وإلا، يمكنك ببساطة إضافة أي تعليمة مطلوبة في بداية نص موجّهك. يمكنك أيضًا ضبط معاملات أخذ العينات، مثل: درجة الحرارة (--temp)، وأعلى-k (--top-k)، وأعلى-p (--top-p)، وعقوبة التكرار (--repeat-penalty)، والبذرة المستخدمة (--seed). فيما يلي مثال على استدعاء يستخدم هذه الخيارات:
llama-cli -hf Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF \
-p "You are a friendly assistant." -cnv \
--temp 0.7 \
--top-k 50 \
--top-p 0.95 \
--repeat-penalty 1.1 \
--seed 42
لضمان الأداء الصحيح لنماذج Qiskit لدينا، نوصي باستخدام موجّه النظام المُقدَّم في مستودعات HF GGUF الخاصة بنا: موجّه النظام لـ mistral-small-3.2-24b-qiskit-GGUF، وQwen2.5-Coder-14B-Qiskit-GGUF، وgranite-3.3-8b-qiskit-GGUF، وgranite-3.2-8b-qiskit-GGUF.
Manually connect Continue (VS Code)
Continue (VS Code)
1. تثبيت الإضافة
افتح VS Code، واذهب إلى الإضافات (Cmd+Shift+X)، وابحث عن Continue، ثم ثبِّتها.
2. فتح الإعدادات
انقر على أيقونة Continue في الشريط الجانبي، ثم انقر على أيقونة الترس، أو افتح لوحة الأوامر (Cmd+Shift+P) ونفِّذ Continue: Open Config File.
يفتح هذا الملف ~/.continue/config.yaml (أو config.json في الإصدارات الأقدم).
3. تهيئة النموذج
أضف ما يلي إلى config.yaml:
models:
- name: Qiskit Code Assistant
provider: ollama
model: mistral-small-3.2-24b-qiskit
apiBase: http://localhost:11434
يجعل هذا نموذج Qiskit متاحًا في لوحة المحادثة (محادثات الشريط الجانبي، والأسئلة والأجوبة المضمَّنة) ولأوامر التحرير المضمَّن.
4. اختباره
- المحادثة: افتح لوحة Continue في الشريط الجانبي واطرح سؤالًا (مثلًا، "كيف أُنشئ دائرة مُعامَلة في Qiskit؟")
- التحرير المضمَّن: حدِّد كتلة من الكود، ثم اضغط
Cmd+I(Mac) أوCtrl+I(Linux/Windows)
Manually connect Jupyter AI (JupyterLab)
Jupyter AI (JupyterLab)
ملاحظة: تغطي هذه التعليمات Jupyter AI الإصدار v2.x.
1. تثبيت Jupyter AI وموفر Ollama
pip install "jupyter-ai<3" langchain-ollama
تضمن التثبيت المُقيَّد "jupyter-ai<3" الحصول على الإصدار v2.x. حزمة langchain-ollama مطلوبة حتى يتعرف Jupyter AI على Ollama كموفر. بدونها، لن يظهر Ollama في لوحة الإعدادات.
ثم أعِد تشغيل JupyterLab.
2. تهيئة نموذج المحادثة
افتح JupyterLab وانقر على أيقونة المحادثة في الشريط الجانبي الأيسر. في لوحة الإعدادات:
- تحت نموذج اللغة، اختر Ollama كموفر.
- أدخِل
mistral-small-3.2-24b-qiskitكاسم للنموذج. - لا يلزم مفتاح API لـ Ollama (اترك الحقل فارغًا).
- انقر على السهم الخلفي لبدء المحادثة.
3. استخدام أمر %%ai السحري
يتيح لك الأمر السحري %%ai الاستعلام عن النموذج مباشرةً في خلايا النوتبوك.
%load_ext jupyter_ai_magics
ثم في خلية:
%%ai ollama:mistral-small-3.2-24b-qiskit
Write a function that implements Grover's algorithm using Qiskit
4. مضيف Ollama مخصص (اختياري)
بشكل افتراضي، يتصل Jupyter AI بـ http://127.0.0.1:11434. إن كان خادم Ollama يعمل على عنوان أو منفذ مختلف:
في واجهة المحادثة: عيِّن حقل "Base API URL" في لوحة إعدادات AI.
Manually connect OpenCode (Terminal)
OpenCode (الطرفية)
1. تثبيت OpenCode
curl -fsSL https://opencode.ai/install | bash
2. تهيئة نموذج Qiskit
أنشئ ملف opencode.json في جذر مشروعك (أو ~/.config/opencode/opencode.json للإعداد العام):
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"mistral-small-3.2-24b-qiskit": {
"name": "Qiskit Code Assistant"
}
}
}
}
}
3. اختيار النموذج
شغِّل OpenCode في مجلد مشروعك:
opencode
داخل واجهة TUI، نفِّذ الأمر /models واختر Qiskit Code Assistant من القائمة.
4. اختباره
اطرح سؤالًا مباشرةً في المحادثة، مثلًا: "Define a Bell circuit and run it using QiskitRuntimeService"
النماذج المتاحة
النماذج الحالية
هذه هي أحدث النماذج الموصى بها للاستخدام مع مساعد كود Qiskit:
- Qiskit/mistral-small-3.2-24b-qiskit - صدر في أكتوبر 2025
- Qiskit/Qwen2.5-Coder-14B-Qiskit - صدر في يونيو 2025
- qiskit/granite-3.3-8b-qiskit - صدر في يونيو 2025
- qiskit/granite-3.2-8b-qiskit - صدر في يونيو 2025
نماذج GGUF (موصى بها للبيئات الشخصية/الحواسيب المحمولة)
نماذج تنسيق GGUF مُحسَّنة للاستخدام المحلي وتتطلب موارد حوسبة أقل:
-
mistral-small-3.2-24b-qiskit-GGUF – صدر في أكتوبر 2025
دُرِّب على بيانات Qiskit حتى الإصدار 2.1 -
Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – صدر في يونيو 2025
دُرِّب على بيانات Qiskit حتى الإصدار 2.0 -
qiskit/granite-3.3-8b-qiskit-GGUF – صدر في يونيو 2025
دُرِّب على بيانات Qiskit حتى الإصدار 2.0 -
qiskit/granite-3.2-8b-qiskit-GGUF – صدر في يونيو 2025
دُرِّب على بيانات Qiskit حتى الإصدار 2.0
نماذج مساعد كود Qiskit مفتوحة المصدر متاحة بتنسيق safetensors أو تنسيق ملف GGUF ويمكن تنزيلها من Hugging Face كما هو موضح أدناه.
إصدارات Qiskit المستخدمة في التدريب
| النموذج | مقاييس الأداء | تاريخ الإصدار | مُدرَّب على إصدار Qiskit | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| QiskitHumanEval-Hard | QiskitHumanEval | HumanEval | ASDiv | MathQA | SciQ | MBPP | IFEval | CrowsPairs (English) | TruthfulQA (MC1 acc) | |||
| mistral-small-3.2-24b-qiskit | 32.45 | 47.02 | 77.49 | 3.77 | 49.68 | 97.50 | 64.00 | 48.44 | 67.08 | 39.41 | يناير 2026 | 2.2 |
| Qwen2.5-Coder-14B-Qiskit | 25.17 | 49.01 | 91.46 | 4.21 | 53.90 | 97.00 | 77.60 | 49.64 | 65.18 | 37.82 | يونيو 2025 | 2.0 |
| granite-3.3-8b-qiskit | 14.57 | 27.15 | 62.80 | 0.48 | 38.66 | 93.30 | 52.40 | 59.71 | 59.75 | 39.05 | يونيو 2025 | 2.0 |
| granite-3.2-8b-qiskit | 9.93 | 24.50 | 57.32 | 0.09 | 41.41 | 96.30 | 51.80 | 60.79 | 66.79 | 40.51 | يونيو 2025 | 2.0 |
| granite-8b-qiskit-rc-0.10 | 15.89 | 38.41 | 59.76 | — | — | — | — | — | — | — | فبراير 2025 | 1.3 |
| granite-8b-qiskit | 17.88 | 44.37 | 53.66 | — | — | — | — | — | — | — | نوفمبر 2024 | 1.2 |
ملاحظة: جميع النماذج المدرجة في جدول الأداء جرى تقييمها باستخدام موجّه النظام الخاص بكل منها، المُعرَّف في نموذج Hugging Face الخاص به.
النماذج المتوقفة
هذه النماذج لم تعد تحت الصيانة الفعّالة لكنها لا تزال متاحة:
- qiskit/granite-8b-qiskit-rc-0.10 - صدر في فبراير 2025 (متوقف)
- qiskit/granite-8b-qiskit - صدر في نوفمبر 2024 (متوقف)
مزيد من المعلومات والاستشهادات العلمية
لمعرفة المزيد عن مساعد كود Qiskit، ومعياري Qiskit HumanEval وQiskit HumanEval Hard، والاستشهاد بهما في منشوراتك العلمية، راجع هذه الاستشهادات الموصى بها:
@misc{2405.19495,
Author = {Nicolas Dupuis and Luca Buratti and Sanjay Vishwakarma and Aitana Viudes Forrat and David Kremer and Ismael Faro and Ruchir Puri and Juan Cruz-Benito},
Title = {Qiskit Code Assistant: Training LLMs for generating Quantum Computing Code},
Year = {2024},
Eprint = {arXiv:2405.19495},
}
@misc{2406.14712,
Author = {Sanjay Vishwakarma and Francis Harkins and Siddharth Golecha and Vishal Sharathchandra Bajpe and Nicolas Dupuis and Luca Buratti and David Kremer and Ismael Faro and Ruchir Puri and Juan Cruz-Benito},
Title = {Qiskit HumanEval: An Evaluation Benchmark For Quantum Code Generative Models},
Year = {2024},
Eprint = {arXiv:2406.14712},
}
@misc{2508.20907,
Author = {Nicolas Dupuis and Adarsh Tiwari and Youssef Mroueh and David Kremer and Ismael Faro and Juan Cruz-Benito},
Title = {Quantum Verifiable Rewards for Post-Training Qiskit Code Assistant},
Year = {2025},
Eprint = {arXiv:2508.20907},
}