Libere Agentes Autônomos com os Melhores Modelos de Código Aberto da Qwen-Agent
Explore o poder dos modelos de código aberto da Qwen-Agent e aprenda como liberar agentes autônomos através da chamada de funções e da criação de agentes personalizados. Descubra o impacto da quantização no desempenho do modelo para aplicações do mundo real.
15 de fevereiro de 2025

Desbloqueie o poder dos agentes autônomos com o Qwen-Agent, a estrutura de código aberto de ponta que aproveita os melhores modelos de peso aberto disponíveis. Descubra como integrar perfeitamente a chamada de função e os fluxos de trabalho baseados em agentes para construir aplicativos inteligentes que podem interagir com o mundo real e se adaptar às necessidades do usuário.
Construa Agentes Autônomos com o Melhor Modelo de Peso Aberto
Chamada de Função e Agentes: Entendendo as Diferenças
Iniciando com Agentes Qwen: Chamada de Função e Uso de Agente
O Impacto da Quantização no Desempenho de Grandes Modelos de Linguagem
Construa Agentes Autônomos com o Melhor Modelo de Peso Aberto
Construa Agentes Autônomos com o Melhor Modelo de Peso Aberto
Os modelos Quen 2 da Alibaba são os mais recentes e avançados modelos de linguagem de código aberto, oferecendo capacidades impressionantes em uma ampla gama de tarefas. Esses modelos variam de 500 milhões a 72 bilhões de parâmetros, com os modelos maiores suportando até 128.000 tokens - uma melhoria significativa em relação ao limite de 8.000 tokens do GPT-3.
Uma das principais características do Quen 2 é seu forte desempenho em codificação e matemática, bem como sua capacidade de lidar com o entendimento de contexto longo - crucial para aplicações do mundo real. Além disso, os modelos oferecem suporte a um conjunto diversificado de idiomas, incluindo um foco em idiomas do Oriente Médio e do Sudeste Asiático, o que é uma mudança bem-vinda em relação ao foco centrado em idiomas ocidentais de muitos outros modelos.
Para aproveitar o poder do Quen 2, podemos usar a estrutura do Quen Agent, que fornece acesso a um assistente de navegador integrado, um interpretador de código e a capacidade de criar assistentes personalizados. Isso nos permite construir agentes autônomos que podem planejar, executar e adaptar suas ações com base na tarefa em questão.
Nesta seção, exploraremos como usar o Quen Agent para criar um agente personalizado de geração de imagens. O agente será capaz de gerar imagens com base na entrada do usuário, baixar as imagens geradas e até mesmo atualizar seu próprio código se encontrar algum problema. Ao combinar o poderoso entendimento da linguagem do Quen 2 com as capacidades de planejamento e execução do Quen Agent, podemos criar agentes verdadeiramente autônomos e capazes de lidar com uma ampla gama de tarefas.
Chamada de Função e Agentes: Entendendo as Diferenças
Chamada de Função e Agentes: Entendendo as Diferenças
A chamada de função e os agentes são dois conceitos distintos no mundo dos modelos de linguagem de grande porte (LLMs). Aqui está uma explicação concisa das diferenças entre os dois:
Chamada de Função (Uso de Ferramentas):
- A chamada de função, ou uso de ferramentas, permite que o LLM interaja com o mundo externo acessando APIs ou funções externas.
- O LLM determina qual função usar com base na entrada do usuário, gera os inputs necessários para a função e retorna os resultados ao usuário.
- No entanto, o próprio LLM não pode executar a chamada de função; o usuário ou um sistema separado deve fazer a chamada de função real e retornar os resultados ao LLM.
Agentes:
- Os agentes são instâncias mais sofisticadas de LLMs que têm acesso a um conjunto de ferramentas, assim como na chamada de função.
- Os agentes também podem realizar planejamento, decompor tarefas em sub-objetivos e executar ações usando as ferramentas disponíveis.
- Os agentes têm acesso à memória de curto e longo prazo, permitindo que eles acompanhem seu progresso e planejem seus próximos passos de acordo.
- Os agentes são fundamentais para tornar os LLMs realmente úteis em aplicações do mundo real, pois podem executar tarefas complexas de forma autônoma.
Em resumo, a chamada de função é uma interação mais limitada em que o LLM pode apenas gerar os inputs necessários para uma função, enquanto os agentes têm a capacidade de planejar, executar e adaptar suas ações para alcançar um resultado desejado.
Iniciando com Agentes Qwen: Chamada de Função e Uso de Agente
Iniciando com Agentes Qwen: Chamada de Função e Uso de Agente
Para começar com os agentes Qwen, usaremos a versão de 72 bilhões do Qwen 2 e a executaremos localmente usando o AMA. Você também pode usar sua API externa, mas para usar o Qwen Agent, temos duas opções:
- Instale o pacote usando o pip como um pacote Python independente.
- Clone o repositório e execute a instalação localmente se você quiser a versão de desenvolvimento mais recente.
Eu vou executá-lo localmente usando o AMA. Primeiro, inicie um servidor AMA e use o comando olama Run Qwen 272 billion
. Isso baixará o AMA e o modelo, o que pode levar algum tempo, dependendo da sua velocidade de internet.
Em seguida, crie um ambiente virtual usando o conda e ative-o:
conda create -n qwen python=3.10
conda activate qwen
Agora, instale o pacote Qwen Agent usando o pip:
pip install qwen-agent
Vamos começar com a chamada de função. O modelo precisa escolher a função a ser usada, descobrir os inputs e passá-los para um interpretador Python. O interpretador executará a função, obterá a resposta e a enviará de volta ao LLM.
Aqui está um exemplo de chamada de função para obter o clima atual:
# Crie a instância do LLM
llm = QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1")
# Mensagem do usuário
mensagem_usuario = "Como está o clima atual em Paris?"
# Definir a função
chamada_funcao = {
"description": "Obter o clima atual para um determinado local",
"function": "get_weather",
"arguments": {
"location": "Paris",
"unit": "celsius"
}
}
# Chamar o LLM e executar a função
resposta = llm.call_with_function(mensagem_usuario, [chamada_funcao])
print(resposta)
Isso gerará as informações climáticas atuais de Paris e as retornará ao LLM.
Agora, vamos ver um exemplo de uso do Qwen Agent. Criaremos um agente personalizado que pode gerar imagens e baixá-las em uma pasta local. O agente usará uma ferramenta personalizada para geração de imagens e o interpretador de código para executar o código necessário.
from qwen_agent import Assistant, CodeInterpreter, CustomTool
# Definir a ferramenta personalizada de geração de imagens
class MyImageGeneration(CustomTool):
def __init__(self):
self.description = "Gerar imagens com base na entrada do usuário usando a API da Pollinations.AI."
def run(self, args):
# Gerar a imagem usando a API
url_imagem = gerar_imagem(args["prompt"])
# Baixar a imagem para uma pasta local
baixar_imagem(url_imagem, "imagens")
return "Imagem gerada e salva na pasta 'imagens'."
# Criar o agente
agente = Assistant(
llm=QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1"),
tools=[MyImageGeneration(), CodeInterpreter()]
)
# Pedir ao agente para gerar uma imagem
agente.run("Crie uma imagem de uma lhama usando óculos de sol.")
Esse agente usará a ferramenta personalizada de geração de imagens para criar a imagem, baixá-la para a pasta "imagens" e retornar o resultado.
Finalmente, vamos examinar o impacto da quantização no desempenho dos modelos Qwen. A equipe do Qwen forneceu avaliações detalhadas sobre as métricas MML, C-Evolve e I-Evolve para diferentes níveis de quantização.
Os resultados mostram que, para modelos maiores (72 bilhões), a diferença entre a quantização de 16 bits e 8 bits não é significativa, mas a quantização de 4 bits pode ter um impacto mais perceptível no desempenho. Para modelos menores (0,5 bilhão), as diferenças são mais pronunciadas, com a quantização de 4 bits mostrando uma queda de 5 pontos na pontuação média.
Em geral, é recomendado usar pelo menos a quantização de 8 bits ou 16 bits para implantações de produção, pois a quantização de 4 bits pode ter um impacto mais significativo no desempenho do modelo, especialmente para modelos menores.
Perguntas frequentes
Perguntas frequentes