Yerel LLM Modellerini Kullanarak Kod Oluşturma - Pratik Örnekler
Günümüzde yapay sinir ağları, özellikle büyük dil modelleri (LLM), kod oluşturma için daha da popüler hale geliyor. Yerel olarak modelleri çalıştırma olanağı sayesinde, programcılar bulut çözümlerine ihtiyaç duymadan bu modellerin potansiyelini kullanabilir. Bu makalede, yerel LLM modellerini kod oluşturmak için nasıl kullanabileceğinizi ve pratik örnekler sunacağız.
Yerel LLM Modellerinin Neden Kullanılması?
Yerel LLM modellerini kullanmanın birkaç avantajı vardır:
- Gizlilik: Kaynak kodları ve veriler bilgisayarınızdan çıkmıyor.
- Kontrol: Çalıştırma ortamı üzerindeki tam kontrol.
- Maliyet: Bulut API'si ücretleri yok.
Ortamı Hazırlama
Başlamak için şunları ihtiyacınız olacak:
- LLM Modeli: Örneğin
Mistral-7BveyaLlama-2. - Kütüphaneler: Hugging Face kütüphanesi
transformersveaccelerate. - GPU Destek: Daha iyi performans için.
Gereken Kütüphanelerin Yükleme
pip install transformers accelerate torch
Örnek 1: Basit Python Kodu Oluşturma
Aşağıda, yerel bir LLM modeli kullanarak basit bir Python kodu oluşturma örneği bulunmaktadır.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Modeli ve tokenizer'ı yükleme
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Prompt hazırlama
prompt = "İki sayının toplamını hesaplayan bir Python fonksiyonu yazın:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# Kod oluşturma
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)
Sonuç
def sum_two_numbers(a, b):
return a + b
Örnek 2: requests Kütüphanesi Kullanarak Kod Oluşturma
Bu örnekte, modelin requests kütüphanesini kullanarak HTTP isteği yapma kodu oluşturabileceğini göstereceğiz.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Modeli ve tokenizer'ı yükleme
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Prompt hazırlama
prompt = "JSONPlaceholder API'sine GET isteği yapan bir Python kodu yazın:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# Kod oluşturma
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)
Sonuç
import requests
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(response.json())
Örnek 3: Python Sınıfı Kullanarak Kod Oluşturma
Bu örnekte, modelin bir Python sınıfı tanımlama kodu oluşturabileceğini göstereceğiz.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Modeli ve tokenizer'ı yükleme
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Prompt hazırlama
prompt = "Dikdörtgeni temsil eden bir Python sınıfı oluşturun:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# Kod oluşturma
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)
Sonuç
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)
Kod Oluşturma Optimizasyonu
Oluşturulan kod kalitesini iyileştirmek için birkaç teknik uygulayabilirsiniz:
- Dikkatli Promptlar: Ne istediğinizi açıkça tanımlama.
- Uzunluk Kontrolü: Oluşturulan kodun uygun uzunluğunu ayarlama.
- Çoklu Oluşturma: Birkaç kod versiyonu oluşturma ve en iyisini seçme.
Özet
Yerel LLM modellerini kullanarak kod oluşturma, programcılar için güçlü bir araçtır. Modelleri yerel olarak çalıştırma olanağı sayesinde, kodunuzla ilgili gizlilik ve kontrol sağlayabilirsiniz. Bu makalede, günlük işinizde bu teknolojileri nasıl kullanabileceğinizi gösteren birkaç pratik örnek sunduk.
Oluşturulan kod kalitesi, model kalitesi ve promptların dikkatliliğine bağlıdır. Farklı modeller ve tekniklerle deney yaparak en iyi sonuçları elde etmeyi unutmayın.