Generasi Kode dengan Menggunakan Model LLM Lokal – Contoh Praktek
Pada zaman sekarang, jaringan saraf tiruan buatan, khususnya model bahasa besar (LLM), semakin populer dalam generasi kode. Dengan kemampuan menjalankan model secara lokal, para programmer dapat memanfaatkan potensi mereka tanpa harus menggunakan solusi cloud. Dalam artikel ini, kita akan membahas bagaimana menggunakan model LLM lokal untuk generasi kode, serta memberikan contoh praktik.
Mengapa Model LLM Lokal?
Menggunakan model LLM lokal memiliki beberapa keuntungan:
- Privasi: Kode sumber dan data tidak keluar dari komputer Anda.
- Kontrol: Pengendalian penuh atas lingkungan eksekusi.
- Biaya: Tidak ada biaya untuk API cloud.
Persiapan Lingkungan
Untuk memulai, Anda membutuhkan:
- Model LLM: Misalnya
Mistral-7BatauLlama-2. - Perpustakaan:
transformersdanacceleratedari perpustakaan Hugging Face. - Pengelolaan GPU: Untuk kinerja yang lebih baik.
Instalasi Perpustakaan yang Dibutuhkan
pip install transformers accelerate torch
Contoh 1: Generasi Kode Python Sederhana
Berikut adalah contoh generasi kode Python sederhana menggunakan model LLM lokal.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Memuat model dan tokenizer
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Persiapan prompt
prompt = "Tulis fungsi Python yang menghitung jumlah dua bilangan:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# Generasi kode
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)
Hasil
def sum_two_numbers(a, b):
return a + b
Contoh 2: Generasi Kode dengan Menggunakan Perpustakaan requests
Dalam contoh ini, kita akan menunjukkan bagaimana model dapat menghasilkan kode yang menggunakan perpustakaan requests untuk melakukan permintaan HTTP.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Memuat model dan tokenizer
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Persiapan prompt
prompt = "Tulis kode Python yang melakukan permintaan GET ke API JSONPlaceholder:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# Generasi kode
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)
Hasil
import requests
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(response.json())
Contoh 3: Generasi Kode dengan Menggunakan Kelas di Python
Dalam contoh ini, kita akan menunjukkan bagaimana model dapat menghasilkan kode yang mendefinisikan kelas di Python.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Memuat model dan tokenizer
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Persiapan prompt
prompt = "Buat kelas Python yang mewakili persegi panjang:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
# Generasi kode
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)
Hasil
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)
Optimasi Generasi Kode
Untuk meningkatkan kualitas kode yang dihasilkan, Anda dapat menggunakan beberapa teknik:
- Prompt yang Tepat: Mendeskripsikan dengan tepat apa yang Anda harapkan.
- Kontrol Panjang: Menetapkan panjang kode yang sesuai.
- Generasi Berulang: Menghasilkan beberapa versi kode dan memilih yang terbaik.
Ringkasan
Generasi kode menggunakan model LLM lokal adalah alat yang kuat bagi programmer. Dengan kemampuan menjalankan model secara lokal, Anda dapat menikmati privasi dan kontrol atas kode. Dalam artikel ini, kita telah memberikan beberapa contoh praktik yang menunjukkan bagaimana memanfaatkan teknologi ini dalam pekerjaan sehari-hari.
Ingatlah bahwa kualitas kode yang dihasilkan bergantung pada kualitas model dan ketepatan prompt. Eksperimen dengan model dan teknik yang berbeda untuk mencapai hasil terbaik.