Inference Unlimited

Geração de código usando modelos locais LLM – exemplos práticos

Nos dias de hoje, redes neurais artificiais, especialmente grandes modelos de linguagem (LLM), estão se tornando cada vez mais populares na geração de código. Graças à possibilidade de executar modelos localmente, programadores podem aproveitar seu potencial sem a necessidade de usar soluções em nuvem. Neste artigo, discutiremos como usar modelos locais LLM para gerar código, apresentando exemplos práticos.

Por que modelos locais LLM?

O uso de modelos locais LLM tem várias vantagens:

Preparação do ambiente

Para começar, você precisa de:

  1. Modelo LLM: Por exemplo, Mistral-7B ou Llama-2.
  2. Bibliotecas: transformers e accelerate da biblioteca Hugging Face.
  3. Suporte a GPU: Para melhor desempenho.

Instalação das bibliotecas necessárias

pip install transformers accelerate torch

Exemplo 1: Geração de código Python simples

Abaixo está um exemplo de geração de código Python simples usando um modelo local LLM.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Carregando o modelo e o tokenizador
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Preparando o prompt
prompt = "Escreva uma função Python que calcula a soma de dois números:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Gerando o 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

Exemplo 2: Geração de código usando a biblioteca requests

Neste exemplo, mostraremos como o modelo pode gerar código usando a biblioteca requests para fazer uma requisição HTTP.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Carregando o modelo e o tokenizador
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Preparando o prompt
prompt = "Escreva um código Python que faz uma requisição GET para a API JSONPlaceholder:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Gerando o 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())

Exemplo 3: Geração de código usando uma classe em Python

Neste exemplo, mostraremos como o modelo pode gerar código definindo uma classe em Python.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Carregando o modelo e o tokenizador
model_name = "mistral-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Preparando o prompt
prompt = "Crie uma classe Python que representa um retângulo:"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids

# Gerando o 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)

Otimização da geração de código

Para melhorar a qualidade do código gerado, podem ser aplicadas várias técnicas:

  1. Prompts precisos: Descrever com precisão o que você espera.
  2. Controle de comprimento: Definir o comprimento apropriado do código gerado.
  3. Geração múltipla: Gerar várias versões de código e escolher a melhor.

Resumo

A geração de código usando modelos locais LLM é uma ferramenta poderosa para programadores. Com a possibilidade de executar modelos localmente, pode-se desfrutar de privacidade e controle sobre o código. Neste artigo, apresentamos vários exemplos práticos que mostram como usar essas tecnologias no trabalho diário.

Lembre-se de que a qualidade do código gerado depende da qualidade do modelo e da precisão dos prompts. Experimente com diferentes modelos e técnicas para alcançar os melhores resultados.

Język: PT | Wyświetlenia: 7

← Powrót do listy artykułów