Inference Unlimited

Generovanie kódu s použitím lokálnych modelov LLM – praktické príklady

V súčasnosti umelé neurónové siete, zvlášť veľké jazykové modely (LLM), sa stávajú stále populárnejšími pri generovaní kódu. Dík možnosti spustenia modelov lokálne, programátori môžu využívať ich potenciál bez nutnosti používať cloudové riešenia. V tomto článku sa pozrieme na to, ako využiť lokálne modely LLM na generovanie kódu, a ukážeme si praktické príklady.

Prečo lokálne modely LLM?

Používanie lokálnych modelov LLM má niekoľko výhod:

Príprava prostredia

Aby ste mohli začať, potrebujete:

  1. Model LLM: Napríklad Mistral-7B alebo Llama-2.
  2. Knihovnice: transformers a accelerate z knihovnice Hugging Face.
  3. Podpora GPU: Pre lepšiu výkonnosť.

Inštalácia potrebných knihovníc

pip install transformers accelerate torch

Príklad 1: Generovanie jednoduchého kódu Python

Nižšie je príklad generovania jednoduchého kódu Python pomocou lokálneho modelu LLM.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Načítanie modelu a tokenizéra
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Príprava promptu
prompt = "Napíšte funkciu Python, ktorá vypočíta sumu dvoch čísel:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generovanie kódu
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)

Výsledok

def sum_two_numbers(a, b):
    return a + b

Príklad 2: Generovanie kódu s použitím knihovnice requests

V tomto príklade ukážeme, ako model môže vygenerovať kód používajúci knihovnicu requests na vykonanie HTTP žiadosti.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Načítanie modelu a tokenizéra
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Príprava promptu
prompt = "Napíšte kód Python, ktorý vykoná žiadost GET k API JSONPlaceholder:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generovanie kódu
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)

Výsledok

import requests

response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(response.json())

Príklad 3: Generovanie kódu s použitím triedy v Pythone

V tomto príklade ukážeme, ako model môže vygenerovať kód definujúci triedu v Pythone.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Načítanie modelu a tokenizéra
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Príprava promptu
prompt = "Vytvorte triedu Python, ktorá reprezentuje obdĺžnik:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generovanie kódu
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)

Výsledok

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)

Optimalizácia generovania kódu

Aby ste zlepšili kvalitu generovaného kódu, môžete použiť niekoľko techník:

  1. Presné prompty: Presné opisovanie, čo očekávate.
  2. Kontrola dĺžky: Nastavenie vhodnej dĺžky generovaného kódu.
  3. Viacnásobné generovanie: Generovanie viacerých verzií kódu a výber najlepšej.

Záver

Generovanie kódu pomocou lokálnych modelov LLM je silným nástrojom pre programátorov. Dík možnosti spustenia modelov lokálne, môžete sa tešiť súkromiu a kontrole nad kódom. V tomto článku sme vám ukázali niekoľko praktických príkladov, ktoré ukazujú, ako môžete využiť tieto technológie v každejdennej práci.

Pamätajte, že kvalita generovaného kódu závisí od kvality modelu a presnosti promptov. Experimentujte s rôznymi modelmi a technikami, aby ste dosiahli najlepšie výsledky.

Język: SK | Wyświetlenia: 15

← Powrót do listy artykułów