Släpp lös autonoma agenter med Qwen-Agents bästa öppna källkods-modeller
Utforska kraften i Qwen-Agent's öppna källkodmodeller och lär dig hur du kan frigöra autonoma agenter genom funktionsanrop och anpassad agentskapande. Upptäck effekten av kvantisering på modellprestanda för verkliga tillämpningar.
17 februari 2025

Lås upp kraften hos autonoma agenter med Qwen-Agent, den banbrytande öppna källkods-ramverket som utnyttjar de bästa öppna viktmodellerna som finns tillgängliga. Upptäck hur du sömlöst kan integrera funktionsanrop och agentbaserade arbetsflöden för att bygga intelligenta applikationer som kan interagera med den verkliga världen och anpassa sig efter användarnas behov.
Bygg autonoma agenter med den bästa öppna viktmodellen
Funktionsanrop och agenter: Förstå skillnaderna
Kom igång med Qwen-agenter: Funktionsanrop och användning av agenter
Effekten av kvantisering på prestanda för stora språkmodeller
Bygg autonoma agenter med den bästa öppna viktmodellen
Bygg autonoma agenter med den bästa öppna viktmodellen
Quen 2-modellerna från Alibaba är de senaste och bästa öppna språkmodellerna, som erbjuder imponerande funktioner över ett brett spektrum av uppgifter. Dessa modeller varierar från 500 miljoner till 72 miljarder parametrar, där de större modellerna stöder upp till 128 000 tokens - en betydande förbättring jämfört med GPT-3:s gräns på 8 000 tokens.
En av de viktigaste funktionerna hos Quen 2 är dess starka prestanda inom programmering och matematik, samt dess förmåga att hantera långsiktigt förståelse - avgörande för verkliga tillämpningar. Dessutom erbjuder modellerna stöd för ett diversifierat språkutbud, inklusive fokus på språk från Mellanöstern och Sydostasien, vilket är en välkommen förändring från den västcentrerade inriktningen hos många andra modeller.
För att utnyttja kraften hos Quen 2 kan vi använda Quen Agent-ramverket, som ger tillgång till en inbyggd webbläsarassistent, kodtolkare och möjligheten att skapa anpassade assistenter. Detta gör det möjligt för oss att bygga autonoma agenter som kan planera, utföra och anpassa sina åtgärder baserat på uppgiften.
I det här avsnittet kommer vi att utforska hur man använder Quen Agent för att skapa en anpassad bildgenereringsagent. Agenten kommer att kunna generera bilder baserat på användarindata, ladda ner de genererade bilderna och till och med uppdatera sin egen kod om den stöter på några problem. Genom att kombinera Quen 2:s kraftfulla språkförståelse med Quen Agents planerings- och exekveringsförmågor kan vi skapa verkligt autonoma och kapabla agenter som kan hantera ett brett spektrum av uppgifter.
Funktionsanrop och agenter: Förstå skillnaderna
Funktionsanrop och agenter: Förstå skillnaderna
Funktionsanrop och agenter är två skilda koncept i världen av stora språkmodeller (LLM). Här är en koncis förklaring av skillnaderna mellan de två:
Funktionsanrop (Verktygsanvändning):
- Funktionsanrop, eller verktygsanvändning, gör det möjligt för LLM att interagera med den externa världen genom att komma åt externa API:er eller funktioner.
- LLM avgör vilken funktion som ska användas baserat på användarindata, genererar nödvändiga indata för funktionen och returnerar resultaten till användaren.
- Dock kan inte LLM själv utföra funktionsanropet; användaren eller ett separat system måste göra det faktiska funktionsanropet och returnera resultaten till LLM.
Agenter:
- Agenter är mer avancerade instanser av LLM som har tillgång till en uppsättning verktyg, precis som vid funktionsanrop.
- Agenter kan också utföra planering, dela upp uppgifter i delmål och utföra åtgärder med hjälp av de tillgängliga verktygen.
- Agenter har tillgång till både kortsiktigt och långsiktigt minne, vilket gör att de kan hålla koll på sitt framsteg och planera sina nästa steg i enlighet med detta.
- Agenter är avgörande för att göra LLM verkligt användbara i verkliga tillämpningar, eftersom de kan utföra komplexa uppgifter autonomt.
Sammanfattningsvis är funktionsanrop en mer begränsad interaktion där LLM endast kan generera nödvändiga indata för en funktion, medan agenter har förmågan att planera, utföra och anpassa sina åtgärder för att uppnå ett önskat resultat.
Kom igång med Qwen-agenter: Funktionsanrop och användning av agenter
Kom igång med Qwen-agenter: Funktionsanrop och användning av agenter
För att komma igång med Qwen-agenter kommer vi att använda 72 miljarders versionen av Qwen 2 och köra den lokalt med hjälp av AMA. Du kan också använda deras externa API, men för att använda Qwen Agent har vi två alternativ:
- Installera paketet med pip som ett fristående Python-paket.
- Klona repot och kör installationen lokalt om du vill ha den senaste utvecklingsversionen.
Jag kommer att köra det lokalt med AMA. Starta först en AMA-server och använd kommandot olama Run Qwen 272 billion
. Detta kommer att ladda ner AMA och modellen, vilket kan ta en stund beroende på din internetuppkoppling.
Skapa sedan en virtuell miljö med conda och aktivera den:
conda create -n qwen python=3.10
conda activate qwen
Installera nu Qwen Agent-paketet med pip:
pip install qwen-agent
Vi börjar med funktionsanrop. Modellen måste välja vilken funktion som ska användas, ta reda på indata och skicka dem till en Python-tolk. Tolken kommer att köra funktionen, få svaret och mata tillbaka det till LLM.
Här är ett exempel på funktionsanrop för att hämta det aktuella vädret:
# Skapa LLM-instansen
llm = QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1")
# Användarmeddelande
user_message = "Hur är vädret just nu i Paris?"
# Definiera funktionen
function_call = {
"description": "Hämta aktuellt väder för en given plats",
"function": "get_weather",
"arguments": {
"location": "Paris",
"unit": "celsius"
}
}
# Anropa LLM och kör funktionen
response = llm.call_with_function(user_message, [function_call])
print(response)
Detta kommer att generera aktuell vädrerinformation för Paris och returnera den till LLM.
Låt oss nu titta på ett exempel på att använda Qwen Agent. Vi kommer att skapa en anpassad agent som kan generera bilder och ladda ner dem till en lokal mapp. Agenten kommer att använda ett anpassat verktyg för bildgenerering och kodtolken för att köra den nödvändiga koden.
from qwen_agent import Assistant, CodeInterpreter, CustomTool
# Definiera det anpassade bildgenereringsverktyget
class MyImageGeneration(CustomTool):
def __init__(self):
self.description = "Generera bilder baserat på användarindata med hjälp av Pollinations.AI-API:et."
def run(self, args):
# Generera bilden med hjälp av API:et
image_url = generate_image(args["prompt"])
# Ladda ner bilden till en lokal mapp
download_image(image_url, "images")
return "Bild genererad och sparad i 'images'-mappen."
# Skapa agenten
agent = Assistant(
llm=QwenLLM(base_api="http://localhost:8000/v1", model_name="qwen-2-72b", version="v1"),
tools=[MyImageGeneration(), CodeInterpreter()]
)
# Be agenten att generera en bild
agent.run("Skapa en bild av en lama som bär solglasögon.")
Denna agent kommer att använda det anpassade bildgenereringsverktyget för att skapa bilden, ladda ner den till "images"-mappen och returnera resultatet.
Avslutningsvis ska vi titta på effekten av kvantisering på prestandan hos Qwen-modeller. Qwen-teamet har tillhandahållit detaljerade utvärderingar av MML-, C-Evolve- och I-Evolve-mått för olika kvantiseringsnivåer.
Resultaten visar att för större modeller (72 miljarder) är skillnaden mellan 16-bitars och 8-bitars kvantisering inte signifikant, men 4-bitars kvantisering kan ha en mer märkbar inverkan på prestandan. För mindre modeller (0,5 miljarder) är skillnaderna mer uttalade, där 4-bitars kvantisering visar en 5-poängs minskning i genomsnittliga poäng.
Generellt rekommenderas att använda minst 8-bitars eller 16-bitars kvantisering för produktionsdistributioner, eftersom 4-bitars kvantisering kan ha en mer betydande inverkan på modellprestandan, särskilt för mindre modeller.
FAQ
FAQ