
miniEvoAgent ni nini?
miniEvoAgent ni mfumo mdogo wa Python wa kujifunza jinsi mawakala wanaotumia LLM hujengwa na kuboreshwa. Ukiongozwa na EvoAgentX, unahifadhi dhana kuu za utekelezaji wa wakala, kuita zana, tathmini, uandishi upya wa vidokezo, na kujiboresha huku ukiondoa ugumu wa mfumo mkubwa wa mawakala.
Kifurushi hiki kwa sasa kinaitwa evo_repro. Muundo wake mdogo uliokusudiwa hufanya kila utaratibu kuwa rahisi kusoma, kujaribu, na kupanua. Badala ya kutoa grafu za mtiririko wa kazi, kumbukumbu, vihariri vya kuona, viunganishi vya vigezo vya majaribio, au mfumo mkubwa wa zana, inalenga wakala wa uwazi wa kitendo kimoja na mzunguko wa kubadilisha vidokezo.
Jinsi mfumo huu unavyofanya kazi
Programu ya miniEvoAgent huundwa kwa vipengele vichache vinavyolenga kazi maalum:
- PromptTemplate: Huinserti pembejeo za kazi katika kiolezo cha kidokezo.
- Action: Huita LLM, kwa hiari hufanya utekelezaji wa zana katika awamu nyingi, na kuchanganua jibu la mwisho.
- Agent: Hufunga kitendo na kurudisha ujumbe wenye muundo.
- Evaluator functions: Hupima utabiri wa QA kwa ulinganifu kamili, F1 ya kiwango cha tokeni, na usahihi.
- PromptRewriter: Hutumia LLM ya uboreshaji kupendekeza kidokezo kilichorekebishwa kutokana na mifano halisi ya mrejesho.
- PromptSelector: Hulinganisha kidokezo mzazi na pendekezo lake kwenye seti ileile ya uendelezaji na kuhifadhi kinachofanya vizuri zaidi.
- evolve: Hurudia utekelezaji wa mafunzo, uundaji wa mrejesho, uandishi upya, tathmini, na uteuzi.
Vipengele muhimu
- Muundo mdogo na unaoweza kukaguliwa wa wakala wa kitendo kimoja.
- Kibadilishaji cha LLM kinachooana na OpenAI, kinachosanidiwa kupitia vigezo vya mazingira au faili ya ndani ya
.env. - Zana za vitendaji za mtindo wa OpenAI zenye utekelezaji wa zana katika awamu nyingi.
- Uandishi upya wa vidokezo unaoendeshwa na mrejesho kupitia LLM ya uboreshaji.
- Uteuzi kwenye seti ya uendelezaji unaokubali pendekezo pale tu linapoboresha alama.
- Alama za mageuzi zenye utekelezaji wa mafunzo, pembejeo za uandishi upya, alama za uendelezaji, na maamuzi ya uteuzi.
- LLM bandia zinazoweza kutabirika kwa ajili ya kujaribu tabia ya mfumo bila kuita API za mbali.
Sakinisha miniEvoAgent
Mahitaji
Tumia Python 3.10 au mpya zaidi. Amri zifuatazo za PowerShell huingia kwenye hazina, huunda mazingira pepe, huyawasha, husasisha pip, na kusakinisha kifurushi katika hali ya kuhaririwa:
cd D:\Projects\RSIProject\student-project\Evo-repro
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install -e .Usakinishaji wa kuhaririwa ni muhimu unapojifunza au kurekebisha msimbo chanzo kwa sababu mabadiliko ya kifurushi cha ndani hupatikana mara moja katika mazingira yako ya Python.
Sanidi LLM inayoendana na OpenAI
Kibadilishaji chaguomsingi cha OpenAILLM husoma mipangilio yake kutoka kwa vigezo vya mazingira au faili ya ndani ya .env. Katika PowerShell, weka ufunguo wa API na modeli kama ifuatavyo:
$env:OPENAI_API_KEY="your_api_key"
$env:OPENAI_MODEL="gpt-4o-mini"Ukitumia huduma nyingine inayooana na OpenAI, weka kituo chake:
$env:OPENAI_BASE_URL="https://your-compatible-endpoint/v1"Vinginevyo, nakili .env.example kuwa .env na uongeze thamani zilezile za usanidi.
Jenga wakala msingi wa maswali na majibu
Wakala msingi anahitaji LLM, kiolezo cha kidokezo, kichanganua matokeo, na kitendo. Kisha wakala huweka sehemu hizi kupitia kiolesura rahisi cha utekelezaji.
from evo_repro import Action, Agent, OpenAILLM, PromptTemplate, TextOutputParser
llm = OpenAILLM()
action = Action(
name="answer_question",
prompt_template=PromptTemplate(
template="Answer the following question:\n\n{question}"
),
llm=llm,
output_parser=TextOutputParser(),
)
agent = Agent(
name="qa_agent",
description="Answers a single user question.",
action=action,
)
message = agent.execute({
"question": "What is Retrieval-Augmented Generation?"
})
print(message.content)Ufunguo wa question unaotolewa kwa agent.execute unalingana na kishikilia nafasi cha {question} katika kiolezo. Kitendo hutoa kidokezo, hukituma kwa LLM iliyosanidiwa, huchanganua maandishi yaliyorejeshwa, na kufunga matokeo katika ujumbe wenye muundo.
Pia unaweza kuendesha mfano uliounganishwa:
python examples\simple_agent.pyOngeza zana ya Python inayoweza kuitwa
Zana za miniEvoAgent ni vifungashio vyepesi vinavyozunguka vitendaji vya Python. Kila zana hutoa skimu ya JSON ambayo modeli inaweza kutumia kwa kuita vitendaji na kurudisha ToolResult yenye muundo.
Kifurushi hiki kinajumuisha get_word_length_tool, ambayo inaweza kuambatanishwa na kitendo kupitia hoja yake ya tools:
from evo_repro import Action, Agent, OpenAILLM, PromptTemplate, TextOutputParser
from evo_repro import get_word_length_tool
agent = Agent(
name="tool_agent",
description="Answers a question and can use tools.",
action=Action(
name="answer_with_tools",
prompt_template=PromptTemplate(
template=(
"Answer the following question. "
"Use tools when useful:\n\n{question}"
)
),
llm=OpenAILLM(),
output_parser=TextOutputParser(),
tools=[get_word_length_tool],
),
)
message = agent.execute({
"question": 'How many characters are in "retrieval"?'
})
print(message.content)
print(message.metadata["tool_results"])LLM inapoomba chaguo la kukokotoa linalotumika, kitendo hulitekeleza na kurejesha matokeo ya zana kwenye mazungumzo. Kitendo hiki kinaunga mkono raundi nyingi za mchakato huu kabla ya kuchanganua matokeo ya mwisho ya modeli. Rekodi za utekelezaji wa zana zinapatikana kupitia message.metadata["tool_results"].
Endesha mfano wa zana uliojumuishwa kwa:
python examples\tool_agent.pyElewa kujiboresha kwa kidokezo
Mfumo wa kujiboresha huboresha kidokezo kupitia mzunguko unaodhibitiwa wa mrejesho na tathmini:
- Endesha kidokezo cha sasa kwenye mifano ya mafunzo.
- Geuza utabiri, lebo zinazotarajiwa na vipimo vya tathmini kuwa mifano ya mrejesho.
- Omba
PromptRewriterinayotumia LLM ya uboreshaji izalishe kidokezo kimoja cha mgombea. - Tathmini kidokezo kikuu na kidokezo cha mgombea kwenye seti ileile ya uundaji.
- Tumia
PromptSelectorkuhifadhi kidokezo bora zaidi. - Rudia mchakato kwa idadi iliyosanidiwa ya vizazi.
Tumia evolve_once(...) unapotaka kuendesha kizazi kimoja. Hurejesha EvolutionRoundTrace. Tumia evolve(...) kuendesha vizazi vingi na kupokea kidokezo cha mwisho pamoja na historia kamili.
Kagua mchakato wa uboreshaji bila modeli ya mbali
Hazina inajumuisha mfano wa ukaguzi unaoweza kurudiwa unaotumia tabia ghushi ya LLM:
python examples\evolution_audit.pyMatokeo yanaonyesha kidokezo kikuu cha kila kizazi, rekodi za mafunzo, ingizo la uandishi upya, kidokezo cha mgombea, ulinganisho wa seti ya uundaji, na uamuzi wa kukubali au kukataa. Hii huwezesha kukagua mchakato wa uboreshaji badala ya kuuchukulia uboreshaji wa vidokezo kama operesheni iliyofichika.
Tathmini utabiri wa QA
Vitathmini vilivyojengwa ndani vinatoa vipimo vitatu vilivyorahisishwa kwa makusudi vya QA:
- Ulinganifu kamili: Hukagua ikiwa utabiri unalingana kabisa na jibu linalotarajiwa kulingana na namna ya ulinganishaji ya kitathmini.
- F1 katika kiwango cha tokeni: Hupima mwingiliano wa tokeni kati ya utabiri na jibu linalotarajiwa.
- Usahihi: Huripoti uwiano wa utabiri sahihi.
Vipimo hivi vimeundwa ili kuthibitisha na kuonyesha mzunguko wa uboreshaji. Maelezo ya mradi yanaeleza kuwa baadaye vinaweza kubadilishwa na vitathmini vinavyofaa kwa benchi au kazi mahususi.
Endesha seti ya majaribio
Tekeleza majaribio yote kutoka kwenye mzizi wa hazina:
python -m pytestSeti ya majaribio lengwa inahusisha mawakala, zana na tabia ya uboreshaji. Utekelezaji ghushi wa LLM hutumiwa inapowezekana, hivyo mantiki nyingi ya mfumo inaweza kuthibitishwa bila ufunguo wa API au mwito wa modeli ya mbali.
Vidokezo vya kina
Tumia majaribio yanayoweza kurudiwa kabla ya majaribio ya moja kwa moja
Anza na mifano na majaribio ya LLM ghushi unapobadilisha uteuzi wa vidokezo, ushughulikiaji wa zana au mantiki ya uboreshaji. Matokeo yanayoweza kurudiwa hufanya hitilafu ziwe rahisi kuzalisha tena na kusaidia kutenganisha hitilafu za mfumo na tofauti katika majibu ya modeli za moja kwa moja.
Kagua ufuatiliaji katika kila kizazi
Usitathmini mchakato wa uboreshaji kwa kuangalia kidokezo cha mwisho pekee. Kagua utekelezaji wa mafunzo uliorekodiwa, mrejesho uliotolewa kwa mwandishi upya, kidokezo cha mgombea, alama za uundaji na uamuzi wa uteuzi. Rekodi hizi hufichua kwa nini mgombea ulikubaliwa au kukataliwa.
Weka majukumu ya mafunzo na uundaji yakiwa tofauti
Mchakato wa uboreshaji huunda mrejesho wa uandishi upya kutoka kwa mifano ya mafunzo, lakini hulinganisha kidokezo kikuu na cha mgombea kwenye seti ileile ya uundaji. Dumisha mgawanyo huu unapowatayarisha majaribio ili uteuzi ufuate mchakato uliokusudiwa na mfumo.
Kagua matokeo ya zana yaliyopangwa
Kwa mawakala wanaowezeshwa na zana, kagua message.metadata["tool_results"] pamoja na maandishi ya mwisho. Hii husaidia kuthibitisha ikiwa modeli ilichagua zana, ikiwa utekelezaji ulifanikiwa, na ni matokeo gani yaliyopangwa yaliyorejeshwa.
Tumia kituo maalum kinachooana inapohitajika
Mpangilio wa OPENAI_BASE_URL huwezesha OpenAILLM kulenga kituo kinachooana na OpenAI. Weka ufunguo wa API na modeli iliyochaguliwa zilingane na mahitaji ya kituo hicho.
Elewa upeo wa sasa wa mradi
miniEvoAgent imewekewa upeo mdogo kwa makusudi kuliko EvoAgentX. Kwa sasa haidai kuwa na grafu za mtiririko wa kazi, upangaji wa mawakala wengi, kumbukumbu, vipengele vya binadamu-katika-mzunguko, ujumuishaji wa benchi, uhariri wa kuona au zana pana. Ramani ya maendeleo inajumuisha uundaji bora zaidi wa mtiririko wa kazi, adapta zaidi za watoa huduma, vipakiaji vya benchi, zana zinazoweza kutumika tena, uhifadhi wa JSON na nyaraka za ziada, lakini hivi ni vilivyopangwa, si vipengele vya sasa.
Angalia leseni kabla ya kusambaza tena
Kwa sasa hakuna faili la leseni lililojumuishwa kwenye mradi. Ongeza leseni linalofaa kabla ya kuchapisha au kusambaza tena msimbo.
Hitimisho
miniEvoAgent hutoa njia ndogo inayoweza kujaribiwa ya kuingia katika uhandisi wa mawakala wa LLM. Kwa kutumia kifurushi cha evo_repro, unaweza kuunda wakala unaoendeshwa na kidokezo, kuongeza zana za chaguo la kukokotoa za mtindo wa OpenAI, kupima utendaji wa QA, kuandika upya vidokezo kutokana na hitilafu, na kuhifadhi maboresho kupitia tathmini ya seti ya uundaji. Muundo wake mfupi na mifano inayoweza kurudiwa huufanya uwe muhimu hasa kwa kuchunguza jinsi utekelezaji wa mawakala na uboreshaji wa vidokezo unavyofanya kazi ndani.
