քոթուկ MetaGPT. Ամբողջական ուղեցույց լավագույն AI գործակալի համար, որն այժմ հասանելի է - Unite.AI
Միացեք մեզ

Արհեստական ​​ընդհանուր հետախուզություն

MetaGPT. Ամբողջական ուղեցույց այս պահին առկա լավագույն AI գործակալի համար

mm

Հրատարակված է

 on

Մարդկանց և մեքենաների համագործակցության MetaGP հիմնված նկարազարդումը

Լեզուների խոշոր մոդելների (LLM) միջոցով, ինչպիսին է ChatGPT-ն, OpenAI-ն ականատես է եղել ձեռնարկությունների և օգտատերերի ընդունման աճին, որը ներկայումս կազմում է շուրջ 80 միլիոն դոլար ամսական եկամուտ: Ըստ Ա վերջին զեկույցը Ըստ The Information-ի, Սան Ֆրանցիսկոյում գտնվող ընկերությունը, ըստ հաղորդվում է, տեմպերով հասել է 1 միլիարդ դոլարի տարեկան եկամուտ:

Վերջին անգամ մենք խորացել ենք AutoGPT և GPT-Engineering, վաղ հիմնական բաց կոդով LLM-ի վրա հիմնված AI գործակալները, որոնք նախատեսված են բարդ առաջադրանքների ավտոմատացման համար: Թեև խոստումնալից էին, այս համակարգերն ունեին խնդիրների իրենց բաժինը. անհամապատասխան արդյունքներ, կատարողական խոչընդոտներ և բազմաբնույթ պահանջների լուծման սահմանափակումներ: Նրանք տիրապետում են կոդերի ստեղծմանը, բայց նրանց հնարավորությունները հաճախ դադարում են այնտեղ: Նրանք չունեն ծրագրի կառավարման կարևոր գործառույթներ, ինչպիսիք են PRD-ի ստեղծումը, տեխնիկական դիզայնի ստեղծումը և API ինտերֆեյսի նախատիպավորումը:

Մտնել MetaGPT— Multi-agent համակարգ, որն օգտագործում է Sirui Hong-ի Large Language մոդելները, միացնում է ստանդարտացված գործառնական ընթացակարգերը (SOPs) LLM-ի վրա հիմնված բազմագործակալ համակարգերի հետ: Այս ձևավորվող պարադիգմը խաթարում է LLM-ների առկա սահմանափակումները՝ խթանելու արդյունավետ համագործակցությունը և առաջադրանքների տարրալուծումը բարդ, իրական աշխարհի ծրագրերում:

MetaGPT-ի գեղեցկությունը կայանում է նրա կառուցվածքի մեջ: Այն կապիտալացնում է մետածրագրավորման տեխնիկան՝ իրական ժամանակում ծածկագիրը շահարկելու, վերլուծելու և փոխակերպելու համար: Նպատակը? Արագաշարժ, ճկուն ծրագրային ճարտարապետություն իրականացնելու համար, որը կարող է հարմարվել դինամիկ ծրագրավորման առաջադրանքներին:

Արագաշարժ զարգացում - Metagpt

Արագաշարժ զարգացում

SOP-ները այստեղ գործում են որպես մետա-գործառույթ՝ համակարգելով գործակալներին՝ սահմանված մուտքերի հիման վրա կոդ ավտոմատ գեներացնելու համար: Պարզ բառերով, ասես դուք ծրագրային ապահովման ինժեներների խիստ համակարգված թիմը վերածել եք հարմարվող, խելացի ծրագրային համակարգի:

Հասկանալով MetaGPT շրջանակը

Հիմնադրամի և համագործակցության շերտեր

MetaGPT-ի ճարտարապետությունը բաժանված է երկու շերտի՝ Հիմնադրամի բաղադրիչների շերտ և համագործակցության շերտ:

  1. Հիմնարար բաղադրիչների շերտԱյս շերտը կենտրոնանում է առանձին գործակալների գործառնությունների վրա և հեշտացնում է ամբողջ համակարգի տեղեկատվության փոխանակումը: Այն ներկայացնում է հիմնական շինարարական բլոկները, ինչպիսիք են շրջակա միջավայրը, հիշողությունը, դերերը, գործողությունները և գործիքները: Շրջակա միջավայրը հիմք է ստեղծում ընդհանուր աշխատանքային տարածքների և հաղորդակցման ուղիների համար, մինչդեռ Հիշողությունը ծառայում է որպես պատմական տվյալների արխիվ: Դերերն ամփոփում են տիրույթի հատուկ փորձաքննությունը, Գործողությունները կատարում են մոդուլային առաջադրանքներ, իսկ Գործիքներն առաջարկում են ընդհանուր ծառայություններ: Այս շերտը հիմնականում ծառայում է որպես գործակալների օպերացիոն համակարգ: Լրացուցիչ մանրամասներ այն մասին, թե ինչպես են դրանք աշխատում միասին, հասանելի են հոդվածում 'ChatGPT-ից այն կողմ; AI գործակալ. Աշխատողների նոր աշխարհ'
  2. Համագործակցության շերտԿառուցված հիմնարար բաղադրիչների վրա՝ այս շերտը կառավարում և հեշտացնում է առանձին գործակալների համատեղ ջանքերը: Այն ներդնում է երկու մեխանիզմ՝ Գիտելիքների փոխանակում և աշխատանքային հոսքերի ամփոփում:
    • Գիտելիքների փոխանակումՍա գործում է որպես համատեղ սոսինձ, որը կապում է գործակալներին: Գործակալները կարող են պահել, առբերել և տարածել տեղեկատվություն տարբեր մակարդակներում, հետևաբար նվազեցնելով ավելորդությունը և բարձրացնելով գործառնական արդյունավետությունը:
    • Կափսուլացնող աշխատանքային հոսքերՀենց այստեղ են գործում ստանդարտացված գործառնական ընթացակարգերը (SOPs): SOP-ները գործում են որպես նախագծեր, որոնք բաժանում են առաջադրանքները կառավարելի բաղադրիչների: Գործակալներին հանձնարարված են այս ենթախադրանքները, և նրանց կատարումը համահունչ է ստանդարտացված արդյունքներին:

MetaGPT-ն օգտագործում է նաև «Դերի սահմանումներնախաձեռնել տարբեր մասնագիտացված գործակալներ, ինչպիսիք են արտադրանքի մենեջերները, ճարտարապետները և այլն, ինչպես մենք քննարկեցինք վերևում: Այս դերերը բնութագրվում են հիմնական հատկանիշներով, ինչպիսիք են անունը, պրոֆիլը, նպատակը, սահմանափակումները և նկարագրությունը:

Ավելին, «Խարիսխ Գործակալներ», այս գործակալներին տրամադրում է հատուկ դերի ուղեցույց: Օրինակ, արտադրանքի մենեջերի դերը կարող է սկզբնավորվել «հաջող արտադրանքի արդյունավետ ստեղծման» սահմանափակմամբ: Խարիսխ գործակալները ապահովում են, որ գործակալների վարքագիծը համընկնում է գերակա նպատակների հետ՝ դրանով իսկ օպտիմալացնելով կատարումը:

Ճանաչողական գործընթացները MetaGPT գործակալներում

MetaGPT-ն կարող է դիտարկել, մտածել, արտացոլել և գործել: Նրանք գործում են հատուկ վարքային գործառույթների միջոցով, ինչպիսիք են _think(), _observe(), _publish_message()Այս ճանաչողական մոդելավորումը պատրաստում է գործակալներին լինել ակտիվ սովորողներ, որոնք կարող են հարմարվել և զարգանալ:

  1. ՊահպանելԳործակալները սկանավորում են իրենց միջավայրը և հիմնական տվյալները ներառում իրենց հիշողության մեջ:
  2. Մտածիր և արտացոլիրՄիջոցով _think() գործառույթը, դերերը կանխամտածված են գործողություններ ձեռնարկելուց առաջ:
  3. Հեռարձակման հաղորդագրություններՕգտագործված գործակալներ _publish_message() ընթացիկ առաջադրանքների կարգավիճակները և համապատասխան գործողությունների գրառումները կիսելու համար:
  4. Գիտելիքներ տեղումներ և ակտԳործակալները գնահատում են մուտքային հաղորդագրությունները և թարմացնում իրենց ներքին պահոցները՝ նախքան գործողությունների հաջորդ ընթացքը որոշելը:
  5. Պետական ​​կառավարումՀատկություններով, ինչպիսիք են առաջադրանքների կողպումը և կարգավիճակի թարմացումը, դերերը կարող են առանց ընդհատումների հաջորդաբար մշակել բազմաթիվ գործողություններ՝ արտացոլելով իրական աշխարհի մարդկային համագործակցությունը:

Կոդի վերանայման մեխանիզմներ MetaGPT-ի համար

Կոդի վերանայումը կարևոր բաղադրիչ է ծրագրային ապահովման մշակման կյանքի ցիկլի մեջ, սակայն այն բացակայում է մի քանի հանրաճանաչ շրջանակներում: Ինչպես MetaGPT, այնպես էլ AgentVerse աջակցում է կոդի վերանայման հնարավորություններին, բայց MetaGPT-ն մի քայլ առաջ է գնում: Այն նաև ներառում է նախնական կոմպիլյացիայի կատարումը, որն օգնում է սխալների վաղ հայտնաբերմանը և հետագայում բարձրացնում կոդի որակը: Հաշվի առնելով կոդավորման կրկնվող բնույթը, այս հատկությունը ոչ միայն հավելում է, այլ պահանջ է ցանկացած հասուն զարգացման շրջանակի համար:

Մի քանի առաջադրանքների վրա իրականացված քանակական փորձերը ցույց տվեցին, որ MetaGPT-ն գերազանցում է իր գործընկերներին գրեթե բոլոր սցենարներում: Pass@1-ը շրջանակի ունակության չափումն է մեկ կրկնությամբ ճշգրիտ կոդ ստեղծելու համար: Այս չափիչն առաջարկում է շրջանակի օգտակարության ավելի իրատեսական արտացոլում գործնական միջավայրում: Pass@1-ի ավելի բարձր դրույքաչափը նշանակում է ավելի քիչ վրիպազերծում և ավելի արդյունավետություն՝ ուղղակիորեն ազդելով զարգացման ցիկլերի և ծախսերի վրա: Երբ կուտակվում է այլ առաջադեմ կոդերի ստեղծման գործիքների հետ, ինչպիսիք են Կոդեքս, CodeT, և նույնիսկ GPT-4, MetaGPT գերազանցում է առեւտրի կենտրոն. Շրջանակի կարողությունը հասնելու մի 81.7% դեպի 82.3% Անցում@1 տոկոսադրույքը միացված է HumanEval և MBPP չափանիշներ

Համեմատելով MBPP և HumanEval Metrics b/w MetaGPT և այլ առաջատար մոդելներ (https://arxiv.org/pdf/2308.00352.pdf)

Համեմատելով MBPP և HumanEval Metrics b/w MetaGPT և այլ առաջատար մոդելներ (https://arxiv.org/pdf/2308.00352.pdf)

Շրջանակը նաև օգտագործում է ավելի քիչ նշաններ և հաշվողական ռեսուրսներ՝ հասնելով հաջողության բարձր մակարդակի ավանդական ծրագրային ճարտարագիտության ծախսերի մի մասի դեպքում: Տվյալները ցույց են տվել, որ միջին արժեքը ընդամենը $1.09 MetaGPT-ով մեկ նախագծի համար, որը ընդամենը մի մասն է այն բանի, ինչ ծրագրավորողը կգանձեր նույն առաջադրանքի համար:

Ձեր համակարգում MetaGPT-ի տեղական տեղադրման քայլեր

NPM, Python-ի տեղադրում

  1. Ստուգեք և տեղադրեք NPM-ըԱռաջին հերթին, համոզվեք, որ NPM-ը տեղադրված է ձեր համակարգում: Եթե ​​դա այդպես չէ, դուք պետք է տեղադրեք node.js. Ստուգելու համար, թե արդյոք ունեք npm, գործարկեք այս հրամանը ձեր տերմինալում. npm --version. Եթե ​​տեսնում եք տարբերակի համարը, պատրաստ եք գնալ:
  2. Տեղադրել mermaid-js, կախվածություն MetaGPT-ի համար, գործարկել՝ sudo npm install -g @mermaid-js/mermaid-cli or npm install -g @mermaid-js/mermaid-cli
  3. Ստուգեք Python տարբերակըՀամոզվեք, որ ունեք Python 3.9 կամ ավելի բարձր: Python-ի ձեր տարբերակը ստուգելու համար բացեք ձեր տերմինալը և մուտքագրեք. python --version. Եթե ​​դուք արդի չեք, ներբեռնեք վերջին տարբերակը Python-ի պաշտոնական կայք.
  4. Կլոնավորել MetaGPT պահեստըՍկսեք կլոնավորելով MetaGPT GitHub պահոցը՝ օգտագործելով հրամանը git clone https://github.com/geekan/metagpt. Համոզվեք, որ դրա համար ձեր համակարգում տեղադրել եք Git-ը: Եթե ​​ոչ, այցելեք այստեղ.
  5. Նավարկեք դեպի տեղեկատուԿլոնավորվելուց հետո նավարկեք դեպի MetaGPT գրացուցակ՝ օգտագործելով հրամանը cd metagpt.
  6. տեղակայումԿատարեք Python-ի տեղադրման սկրիպտը՝ հրամանով MetaGPT տեղադրելու համար python setup.py install.
  7. Ստեղծեք հավելված. Գործարկել python startup.py "ENTER-PROMPT" --code_review True

Նշում:

  • Ձեր նոր նախագիծն այժմ պետք է լինի workspace/ Հայաստան.
  • --code_review True թույլ կտա GPT մոդելին կատարել լրացուցիչ գործողություններ, որոնք կապահովեն ծածկագրի ճշգրիտ գործարկումը, բայց նշեք, որ այն ավելի թանկ կարժենա:
  • Եթե ​​տեղադրման ժամանակ թույլտվության սխալի հանդիպեք, փորձեք գործարկել python setup.py install --user որպես այլընտրանք:
  • Հատուկ թողարկումներին և լրացուցիչ մանրամասներին ծանոթանալու համար այցելեք MetaGPT GitHub-ի թողարկումների պաշտոնական էջը. MetaGPT թողարկումներ.

Դոկերի տեղադրում

Նրանց համար, ովքեր նախընտրում են կոնտեյներացումը, Docker-ը պարզեցնում է գործընթացը.

  • Քաշեք Docker Image-ըՆերբեռնեք MetaGPT պաշտոնական պատկերը և պատրաստեք կազմաձևման ֆայլը.
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • Գործարկեք MetaGPT կոնտեյներըԿատարեք կոնտեյները հետևյալ հրամանով.
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "Create a simple and interactive CLI based rock, paper and scissors game" --code_review True

MetaGPT-ի կարգավորում ձեր OpenAI API բանալիով

Նախնական կարգավորումից հետո դուք պետք է ինտեգրեք MetaGPT ձեր OpenAI API բանալիով: Ահա քայլերը դա անելու համար.

  1. Գտեք կամ ստեղծեք ձեր OpenAI բանալինԴուք կարող եք գտնել այս բանալին ձեր OpenAI Dashboard-ում՝ API-ի կարգավորումներում:
  2. Սահմանեք API բանալինԴուք կարող եք տեղադրել API ստեղնը ցանկացածում config/key.yaml, config/config.yamlկամ սահմանել այն որպես շրջակա միջավայրի փոփոխական (env). Գերակայության կարգն է config/key.yaml > config/config.yaml > env.
  3. Բանալին կարգավորելու համար անցեք դեպի config/key.yaml և փոխարինեք տեղապահի տեքստը ձեր OpenAI բանալիով. OPENAI_API_KEY: "sk-..."

Հիշեք, որ պաշտպանեք ձեր OpenAI API բանալին: Երբեք մի հանձնեք այն հանրային պահեստին կամ մի տարածեք այն չարտոնված անձանց հետ:

Օգտագործման դեպքի նկարազարդում

Ես նպատակ դրեցի մշակել CLI-ի վրա հիմնված ռոք, թուղթ և մկրատ խաղ, և MetaGPT-ն հաջողությամբ կատարեց առաջադրանքը:

Ստորև ներկայացված է մի տեսանյութ, որը ցույց է տալիս ստեղծված խաղի կոդի իրական գործարկումը:

MetaGPT Demo Run

MetaGPT-ն տրամադրեց համակարգի նախագծման փաստաթուղթ Markdown-ում՝ սովորաբար օգտագործվող թեթև նշագրման լեզու: Այս Markdown ֆայլը հագեցած էր UML գծապատկերներով՝ դրանով իսկ առաջարկելով ճարտարապետական ​​նախագծման հատիկավոր տեսք: Ավելին, API-ի բնութագրերը մանրամասնվել են HTTP մեթոդների, վերջնակետերի, հարցում/պատասխանի օբյեկտների և կարգավիճակի կոդերի հետ։

MetaGPT ելք - Համակարգի ձևավորում

MetaGPT ելք – Համակարգի դիզայնի նշում

Դասի դիագրամը մանրամասնում է մեր ատրիբուտներն ու մեթոդները Game դասարան՝ ապահովելով հեշտ ընկալելի աբստրակցիա: Այն նույնիսկ պատկերացնում է ծրագրի զանգերի հոսքը՝ արդյունավետորեն վերացական գաղափարները վերածելով շոշափելի քայլերի:

Սա ոչ միայն զգալիորեն նվազեցնում է ձեռնարկի ծախսերը պլանավորման ժամանակ, այլ նաև արագացնում է որոշումների կայացման գործընթացը՝ ապահովելով, որ ձեր զարգացման խողովակաշարը մնա ճկուն: MetaGPT-ի միջոցով դուք ոչ միայն ավտոմատացնում եք կոդերի ստեղծումը, այլև ավտոմատացնում եք նախագծի խելացի պլանավորումը՝ այդպիսով ապահովելով մրցակցային առավելություն հավելվածների արագ զարգացման գործում:

Եզրակացություն. MetaGPT-Հեղափոխական ծրագրային ապահովման մշակում

MetaGPT-ն վերաիմաստավորում է գեներատիվ AI-ի և ծրագրային ապահովման մշակման լանդշաֆտը` առաջարկելով խելացի ավտոմատացման և արագաշարժ նախագծերի կառավարման միաձուլում: Շատ գերազանցելով ChatGPT, AutoGPT և ավանդական LangChain մոդելների հնարավորությունները, այն գերազանցում է առաջադրանքների տարրալուծման, արդյունավետ կոդի ստեղծման և նախագծի պլանավորմանը: Իմացեք ավելին

Ահա այս հոդվածի հիմնական կետերը.

  1. Մետածրագրավորման ուժըՕգտագործելով մետածրագրավորում՝ MetaGPT-ն ապահովում է ճկուն և հարմարվողական ծրագրային շրջանակ: Այն գերազանցում է ժառանգական գործիքների նեղ ֆունկցիոնալությունը և ներկայացնում է փոխակերպող մոտեցում, որը վերաբերում է ոչ միայն կոդավորմանը, այլև ծրագրի կառավարմանը և որոշումների կայացմանը:
  2. Երկշերտ ճարտարապետությունԻր հիմնարար և համագործակցային շերտերով MetaGPT-ն արդյունավետորեն ստեղծում է սիներգետիկ էկոհամակարգ, որտեղ գործակալները կարող են համահունչ աշխատել՝ նման փորձով կառավարվող ծրագրային թիմի:
  3. Կոդի օպտիմիզացված վերանայումՊարզապես կոդ ստեղծելուց բացի, MetaGPT-ն առաջարկում է նախնական կոմպիլյացիայի կատարման առանձնահատկություններ, որոնք, ըստ էության, վաղ նախազգուշացման համակարգ են սխալների համար: Սա ոչ միայն խնայում է վրիպազերծման ժամանակը, այլև ապահովում է կոդի որակը:
  4. Ճանաչողական գործակալներMetaGPT-ի խելացի գործակալները, որոնք հագեցած են ճանաչողական գործառույթներով, ինչպիսիք են _observe(), _think() և _publish_message(), զարգանում և հարմարվում են՝ ապահովելով, որ ձեր ծրագրային լուծումը ոչ միայն կոդավորված է, այլև «խելացի»:
  5. Տեղադրում և տեղակայումՄենք ցույց ենք տվել, որ MetaGPT-ը կարող է հեշտությամբ կարգավորվել՝ անկախ նրանից՝ դուք նախընտրում եք տեղական տեղադրում npm-ի և Python-ի միջոցով, կամ կոնտեյներացմանը՝ Docker-ի միջոցով:

Ես անցկացրել եմ վերջին հինգ տարիները՝ ընկղմվելով մեքենայական ուսուցման և խորը ուսուցման հետաքրքրաշարժ աշխարհում: Իմ կիրքն ու փորձառությունը ստիպել են ինձ ներդրում ունենալ ավելի քան 50 տարբեր ծրագրային ապահովման ինժեներական նախագծերում՝ հատուկ ուշադրություն դարձնելով AI/ML-ին: Իմ շարունակական հետաքրքրասիրությունը նաև ինձ ձգում է դեպի Բնական լեզվի մշակումը, մի ոլորտ, որը ես ցանկանում եմ հետագայում ուսումնասիրել: