توليد الكود باستخدام نماذج LLM المحلية – أمثلة عملية
في الوقت الحالي، أصبحت الشبكات العصبية الاصطناعية، خاصة النماذج اللغوية الكبيرة (LLM)، أكثر شعبية في توليد الكود. بفضل إمكانية تشغيل النماذج محليًا، يمكن للمبرمجين الاستفادة من إمكانياتها دون الحاجة إلى استخدام الحلول السحابية. في هذا المقال، سنناقش كيف يمكن استخدام نماذج LLM المحلية لتوليد الكود، مع تقديم أمثلة عملية.
لماذا نماذج LLM المحلية؟
استخدام نماذج LLM المحلية له عدة مزايا:
- الخصوصية: لا تخرج الكود المصدر والبيانات من جهازك.
- السيطرة: السيطرة الكاملة على بيئة التنفيذ.
- التكاليف: عدم وجود رسوم API سحابية.
إعداد البيئة
لبدء العمل، ستحتاج إلى:
- نموذج LLM: مثل
Mistral-7BأوLlama-2. - المكتبات:
transformersوaccelerateمن مكتبة Hugging Face. - دعم GPU: لتحسين الأداء.
تثبيت المكتبات المطلوبة
pip install transformers accelerate torch
مثال 1: توليد كود Python بسيط
إليك مثال لتوليد كود Python بسيط باستخدام نموذج LLM محلي.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# تحميل النموذج والمشفّر
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# إعداد التوجيه
prompt = "اكتب دالة Python تحسب مجموع عددين:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# توليد الكود
output = model.generate(input_ids, max_length=100, num_return_sequences=1)
generated_code = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_code)
النتيجة
def sum_two_numbers(a, b):
return a + b
مثال 2: توليد الكود باستخدام مكتبة requests
في هذا المثال، سنظهر كيف يمكن للنموذج توليد كود يستخدم مكتبة requests لإجراء طلب HTTP.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# تحميل النموذج والمشفّر
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# إعداد التوجيه
prompt = "اكتب كود Python يقوم بطلب GET إلى API JSONPlaceholder:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# توليد الكود
output = model.generate(input_ids, max_length=150, num_return_sequences=1)
generated_code = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_code)
النتيجة
import requests
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(response.json())
مثال 3: توليد الكود باستخدام فئة في Python
في هذا المثال، سنظهر كيف يمكن للنموذج توليد كود يحدد فئة في Python.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# تحميل النموذج والمشفّر
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# إعداد التوجيه
prompt = "إنشاء فئة Python تمثل مستطيل:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# توليد الكود
output = model.generate(input_ids, max_length=200, num_return_sequences=1)
generated_code = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_code)
النتيجة
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def perimeter(self):
return 2 * (self.width + self.height)
تحسين توليد الكود
لتحسين جودة الكود المولد، يمكن استخدام عدة تقنيات:
- توجيهات دقيقة: وصف دقيق لما تود الحصول عليه.
- تحكم في الطول: تعيين طول مناسب للكود المولد.
- توليد متعدد: توليد عدة نسخ من الكود واختيار أفضلها.
الخاتمة
توليد الكود باستخدام نماذج LLM المحلية هو أداة قوية للمبرمجين. بفضل إمكانية تشغيل النماذج محليًا، يمكن الاستمتاع بالخصوصية والسيطرة على الكود. في هذا المقال، قدمنا عدة أمثلة عملية تظهر كيف يمكن استخدام هذه التقنيات في العمل اليومي.
تذكر أن جودة الكود المولد تعتمد على جودة النموذج ودقة التوجيهات. تجري مع نماذج مختلفة وتقنيات مختلفة لتحقيق أفضل النتائج.