Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Modificação para ver resultados do projeto

Olá Pessoal,

Como a openAI descontinuou a parte de fine-tuning e também para economizar (a mãe da criatividade) , estou usando ollama com gemma4:e4b localmente e funcionou bem! Tanto o arquivo avaliacao.py como marketing.py, porém, eu fiz modificações, como o modelo é avançado apesar de 4b, resolvi experimentar, ao invés de fine-tuning, uma engenharia de prompt, em "system", mais elaborada! E, ver o resultado. A própria openAI recomenda fazer uso desse recurso, além de outros como RAG, mas para propósito do exercício, avaliar perfil do usuário e recomendação de marketing, selecionei o modelo mencionado com o prompt mais sofisticado, e o resultado foi bem similar ao do fine tunning, importante mencionar que em um modelo de provedor cloud vai gastar mais tokens, eu fiz uma troca pelo free tier groq com llama3.3 70b versatile, e o resultado também foi próximo sem qualquer fine-tuning, mas consumiu muito token e fez várias chamadas (precisava melhorar isso).

Conclusão: usar outros recursos, como engenharia de prompt, rag podem resolver uma gama de tipos de soluções, sem recorrer ao caro fine-tuning e que, modelos locais já dão conta de várias tarefas de forma razoável, com uma performance aceitável. O curso nos deu uma excelente ideia do fine-tuning e porque usa-lo, talvez explorar se da pra fazer algo similar com modelos abertos e localmente seria bem útil ( usando unsloth ou axolotl ou algo similar) já que openAI não tem mais.

trecho alterado

provider = "ollama"
modelo = "gemma4:e4b"

client = get_llm_client(provider)


def avaliar_perfil_usuario(comentarios, client):
    #system = """
    #Você deve avaliar comentários dos usuários, identificando a qual perfil ele se encaixa.
    #Retorne apenas o perfil do usuário, sem explicações adicionais
    #"""

    system = """
        Você é um especialista em análise de comportamento de usuários em fóruns de cinema.

        Sua tarefa é analisar um comentário e identificar o perfil predominante do usuário.

        Escolha exatamente uma das categorias abaixo:

        1. Cinéfilo Casual
        - Assiste filmes por entretenimento.
        - Faz comentários simples sobre gostar ou não do filme.
        - Pouca análise técnica.

        2. Cinéfilo Crítico
        - Analisa roteiro, direção, fotografia, atuações, trilha sonora ou montagem.
        - Demonstra conhecimento sobre cinema.

        3. Fã de Blockbusters
        - Demonstra preferência por filmes de ação, aventura, super-heróis ou grandes franquias.
        - Valoriza entretenimento, efeitos especiais e diversão.

        4. Explorador de Cinema
        - Demonstra interesse por filmes independentes, estrangeiros, festivais ou obras menos conhecidas.
        - Valoriza originalidade e diversidade de produções.

        5. Espectador Ocasional
        - Faz comentários muito curtos ou genéricos.
        - Não demonstra preferência clara nem conhecimento técnico.

        Regras:

        - Analise apenas o comentário fornecido.
        - Escolha apenas uma categoria.
        - Se houver dúvida, selecione a categoria que melhor representa o comportamento predominante.
        - Não invente informações sobre o usuário.
        - Não explique sua decisão.

        Retorne apenas o nome da categoria.
        """

    response = client.chat.completions.create(
        #model= "ft:gpt-4o-2024-08-06:alura-aulas:aluraforum-v1:BHDmI85a",
        model=modelo,
        messages=[
            {
                "role" : "system",
                "content" : system
            },
            {
                "role" : "user",
                "content": comentarios
            }
        ]
    )

    return response.choices[0].message.content

trsaída

1 resposta

Bom dia, Marcelo! Tudo bom?

Sua abordagem ficou bem interessante.

Parece que o uso de prompts mais elaborados conseguiu resultados comparáveis ao fine-tuning, o que é uma ótima notícia. Isso mostra como é possível adaptar soluções de IA para diferentes contextos e necessidades, especialmente quando se busca otimização de custos.

Sobre a modificação que você fez no script, a mudança no prompt para identificar perfis de comportamento em fóruns de cinema está bem detalhada e deve ajudar a obter classificações mais precisas dos usuários. A clareza nas categorias e regras é essencial para que o modelo entenda exatamente o que precisa fazer.

Se você está enfrentando problemas com o consumo de tokens, uma sugestão é tentar otimizar o prompt para ser o mais conciso possível, sem perder a clareza necessária. Além disso, explorar modelos locais, como você mencionou, pode ser uma boa alternativa para reduzir custos.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!