انتقل إلى المحتوى الرئيسي

مساعد كود 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:

  1. انتقل إلى صفحة نموذج Qiskit المطلوب على Hugging Face.
  2. اذهب إلى تبويب Files and Versions ونزِّل ملفات نموذج safetensors أو GGUF.
Download using the Hugging Face CLI

لتنزيل أي من نماذج مساعد كود Qiskit المتاحة باستخدام Hugging Face CLI، اتّبع الخطوات التالية:

  1. ثبِّت Hugging Face CLI

  2. سجِّل دخولك إلى حساب Hugging Face الخاص بك

    huggingface-cli login
  3. نزِّل النموذج الذي تفضله من القائمة السابقة

    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
  1. نزِّل تطبيق Ollama

  2. ثبِّت الملف المنزَّل

  3. شغِّل تطبيق Ollama المثبَّت

    معلومات

    يعمل التطبيق بنجاح عندما تظهر أيقونة Ollama في شريط قوائم سطح المكتب. يمكنك أيضًا التحقق من أن الخدمة تعمل بالانتقال إلى http://localhost:11434/.

  4. جرِّب 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.

  1. تأكد من أن تطبيق Ollama يعمل.

  2. انتقل إلى صفحة النموذج المطلوب وانسخ الرابط. على سبيل المثال، https://huggingface.co/Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF.

  3. من طرفيتك، نفِّذ الأمر:

    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 المحلي.

  1. أنشئ 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 0
    PARAMETER top_k 1
  2. نفِّذ الأمر التالي لإنشاء مثيل نموذج مخصص استنادًا إلى 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 الخاصة بهم.

  1. ثبِّت llama-cpp-python
  2. تفاعل مع النموذج من داخل تطبيقك باستخدام 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 للتفاعل مع نماذج 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 وانقر على أيقونة المحادثة في الشريط الجانبي الأيسر. في لوحة الإعدادات:

  1. تحت نموذج اللغة، اختر Ollama كموفر.
  2. أدخِل mistral-small-3.2-24b-qiskit كاسم للنموذج.
  3. لا يلزم مفتاح API لـ Ollama (اترك الحقل فارغًا).
  4. انقر على السهم الخلفي لبدء المحادثة.
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:

  1. Qiskit/mistral-small-3.2-24b-qiskit - صدر في أكتوبر 2025
  2. Qiskit/Qwen2.5-Coder-14B-Qiskit - صدر في يونيو 2025
  3. qiskit/granite-3.3-8b-qiskit - صدر في يونيو 2025
  4. qiskit/granite-3.2-8b-qiskit - صدر في يونيو 2025

نماذج GGUF (موصى بها للبيئات الشخصية/الحواسيب المحمولة)

نماذج تنسيق GGUF مُحسَّنة للاستخدام المحلي وتتطلب موارد حوسبة أقل:

  1. mistral-small-3.2-24b-qiskit-GGUF – صدر في أكتوبر 2025
    دُرِّب على بيانات Qiskit حتى الإصدار 2.1

  2. Qiskit/Qwen2.5-Coder-14B-Qiskit-GGUF – صدر في يونيو 2025
    دُرِّب على بيانات Qiskit حتى الإصدار 2.0

  3. qiskit/granite-3.3-8b-qiskit-GGUF – صدر في يونيو 2025
    دُرِّب على بيانات Qiskit حتى الإصدار 2.0

  4. qiskit/granite-3.2-8b-qiskit-GGUF – صدر في يونيو 2025
    دُرِّب على بيانات Qiskit حتى الإصدار 2.0

نماذج مساعد كود Qiskit مفتوحة المصدر متاحة بتنسيق safetensors أو تنسيق ملف GGUF ويمكن تنزيلها من Hugging Face كما هو موضح أدناه.

إصدارات Qiskit المستخدمة في التدريب

النموذج     مقاييس الأداء    تاريخ الإصدارمُدرَّب على إصدار Qiskit
 QiskitHumanEval-HardQiskitHumanEvalHumanEvalASDivMathQASciQMBPPIFEvalCrowsPairs (English)TruthfulQA (MC1 acc)  
mistral-small-3.2-24b-qiskit32.4547.0277.493.7749.6897.5064.0048.4467.0839.41يناير 20262.2
Qwen2.5-Coder-14B-Qiskit25.1749.0191.464.2153.9097.0077.6049.6465.1837.82يونيو 20252.0
granite-3.3-8b-qiskit14.5727.1562.800.4838.6693.3052.4059.7159.7539.05يونيو 20252.0
granite-3.2-8b-qiskit9.9324.5057.320.0941.4196.3051.8060.7966.7940.51يونيو 20252.0
granite-8b-qiskit-rc-0.1015.8938.4159.76فبراير 20251.3
granite-8b-qiskit17.8844.3753.66نوفمبر 20241.2

ملاحظة: جميع النماذج المدرجة في جدول الأداء جرى تقييمها باستخدام موجّه النظام الخاص بكل منها، المُعرَّف في نموذج Hugging Face الخاص به.

النماذج المتوقفة

هذه النماذج لم تعد تحت الصيانة الفعّالة لكنها لا تزال متاحة:

  1. qiskit/granite-8b-qiskit-rc-0.10 - صدر في فبراير 2025 (متوقف)
  2. 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},
}