Inference Unlimited

Generierung von Code mit lokalen LLM-Modellen – praktische Beispiele

In der heutigen Zeit werden künstliche neuronale Netze, insbesondere große Sprachmodelle (LLM), immer beliebter bei der Codegenerierung. Dank der Möglichkeit, Modelle lokal auszuführen, können Programmierer deren Potenzial nutzen, ohne auf Cloud-Lösungen angewiesen zu sein. In diesem Artikel besprechen wir, wie lokale LLM-Modelle zur Codegenerierung genutzt werden können, und stellen praktische Beispiele vor.

Warum lokale LLM-Modelle?

Die Nutzung lokaler LLM-Modelle bietet mehrere Vorteile:

Vorbereitung der Umgebung

Um zu beginnen, benötigen Sie:

  1. LLM-Modell: Zum Beispiel Mistral-7B oder Llama-2.
  2. Bibliotheken: transformers und accelerate von der Hugging Face-Bibliothek.
  3. GPU-Unterstützung: Für bessere Leistung.

Installation der erforderlichen Bibliotheken

pip install transformers accelerate torch

Beispiel 1: Generierung eines einfachen Python-Codes

Nachfolgend finden Sie ein Beispiel zur Generierung eines einfachen Python-Codes mit einem lokalen LLM-Modell.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Laden des Modells und Tokenizers
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Vorbereitung des Prompts
prompt = "Schreibe eine Python-Funktion, die die Summe zweier Zahlen berechnet:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generierung des Codes
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)

Ergebnis

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

Beispiel 2: Generierung von Code mit der Bibliothek requests

In diesem Beispiel zeigen wir, wie das Modell Code generieren kann, der die Bibliothek requests zur Ausführung einer HTTP-Anfrage verwendet.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Laden des Modells und Tokenizers
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Vorbereitung des Prompts
prompt = "Schreibe Python-Code, der eine GET-Anfrage an die JSONPlaceholder-API ausführt:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generierung des Codes
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)

Ergebnis

import requests

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

Beispiel 3: Generierung von Code mit einer Klasse in Python

In diesem Beispiel zeigen wir, wie das Modell Code generieren kann, der eine Klasse in Python definiert.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Laden des Modells und Tokenizers
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Vorbereitung des Prompts
prompt = "Erstelle eine Python-Klasse, die ein Rechteck darstellt:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generierung des Codes
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)

Ergebnis

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)

Optimierung der Codegenerierung

Um die Qualität des generierten Codes zu verbessern, können Sie mehrere Techniken anwenden:

  1. Präzise Prompts: Präzise Beschreibung, was Sie erwarten.
  2. Kontrolle der Länge: Festlegung einer geeigneten Länge des generierten Codes.
  3. Mehrfache Generierung: Generierung mehrerer Codeversionen und Auswahl der besten.

Zusammenfassung

Die Generierung von Code mit lokalen LLM-Modellen ist ein mächtiges Werkzeug für Programmierer. Dank der Möglichkeit, Modelle lokal auszuführen, können Sie Datenschutz und Kontrolle über den Code genießen. In diesem Artikel haben wir mehrere praktische Beispiele vorgestellt, die zeigen, wie Sie diese Technologien in der täglichen Arbeit nutzen können.

Denken Sie daran, dass die Qualität des generierten Codes von der Qualität des Modells und der Präzision der Prompts abhängt. Experimentieren Sie mit verschiedenen Modellen und Techniken, um die besten Ergebnisse zu erzielen.

Język: DE | Wyświetlenia: 7

← Powrót do listy artykułów