Inference Unlimited

Generación de código utilizando modelos locales LLM – ejemplos prácticos

En la actualidad, las redes neuronales artificiales, especialmente los grandes modelos de lenguaje (LLM), se están volviendo cada vez más populares en la generación de código. Gracias a la posibilidad de ejecutar modelos localmente, los programadores pueden aprovechar su potencial sin necesidad de utilizar soluciones en la nube. En este artículo, discutiremos cómo utilizar modelos locales LLM para generar código, presentando ejemplos prácticos.

¿Por qué modelos locales LLM?

El uso de modelos locales LLM tiene varias ventajas:

Preparación del entorno

Para comenzar, necesitas:

  1. Modelo LLM: Por ejemplo, Mistral-7B o Llama-2.
  2. Bibliotecas: transformers y accelerate de la biblioteca Hugging Face.
  3. Soporte GPU: Para un mejor rendimiento.

Instalación de las bibliotecas requeridas

pip install transformers accelerate torch

Ejemplo 1: Generación de código Python simple

A continuación, se muestra un ejemplo de generación de código Python simple utilizando un modelo local LLM.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Carga del modelo y el tokenizador
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Preparación del prompt
prompt = "Escribe una función Python que calcule la suma de dos números:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generación de código
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)

Resultado

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

Ejemplo 2: Generación de código utilizando la biblioteca requests

En este ejemplo, mostraremos cómo el modelo puede generar código que utiliza la biblioteca requests para realizar una solicitud HTTP.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Carga del modelo y el tokenizador
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Preparación del prompt
prompt = "Escribe código Python que realice una solicitud GET a la API JSONPlaceholder:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generación de código
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)

Resultado

import requests

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

Ejemplo 3: Generación de código utilizando una clase en Python

En este ejemplo, mostraremos cómo el modelo puede generar código que define una clase en Python.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Carga del modelo y el tokenizador
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Preparación del prompt
prompt = "Crea una clase Python que represente un rectángulo:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Generación de código
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)

Resultado

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)

Optimización de la generación de código

Para mejorar la calidad del código generado, se pueden aplicar varias técnicas:

  1. Prompts precisos: Describir con precisión lo que esperas.
  2. Control de longitud: Establecer la longitud adecuada del código generado.
  3. Generación múltiple: Generar varias versiones de código y elegir la mejor.

Resumen

La generación de código utilizando modelos locales LLM es una herramienta poderosa para los programadores. Gracias a la posibilidad de ejecutar modelos localmente, se puede disfrutar de privacidad y control sobre el código. En este artículo, hemos presentado varios ejemplos prácticos que muestran cómo utilizar estas tecnologías en el trabajo diario.

Recuerda que la calidad del código generado depende de la calidad del modelo y la precisión de los prompts. Experimenta con diferentes modelos y técnicas para lograr los mejores resultados.

Język: ES | Wyświetlenia: 7

← Powrót do listy artykułów