- โครงการนี้ยังอยู่ในขั้นเริ่มต้นของการพัฒนา และเรากำลังดำเนินการอย่างจริงจัง หากคุณมีคำถามหรือข้อเสนอแนะกรุณาส่งประเด็นหรือประชาสัมพันธ์
EvalGPT เป็นเฟรมเวิร์กล่ามโค้ด โดยใช้ประโยชน์จากพลังของโมเดลภาษาขนาดใหญ่ เช่น GPT-4, CodeLlama และ Claude 2 เครื่องมืออันทรงพลังนี้ช่วยให้ผู้ใช้เขียนงานได้ และ EvalGPT จะช่วยในการเขียนโค้ด ดำเนินการ และส่งมอบ ผลลัพธ์.
สถาปัตยกรรมของ EvalGPT ได้รับแรงบันดาลใจจากระบบ Borg ของ Google ประกอบด้วยโหนดหลักที่เรียกว่า EvalGPT ซึ่งประกอบด้วยองค์ประกอบ 3 ส่วน ได้แก่ การวางแผน ตัวกำหนดเวลา และหน่วยความจำ
เมื่อ EvalGPT ได้รับคำขอ ระบบจะเริ่มวางแผนงานโดยใช้ Large Language Model (LLM) โดยแบ่งงานใหญ่ออกเป็นงานย่อยที่จัดการได้ สำหรับแต่ละงานย่อย EvalGPT จะสร้างโหนดใหม่ที่เรียกว่า EvalAgent
EvalAgent แต่ละตัวมีหน้าที่สร้างโค้ดตามงานเล็กๆ ที่ได้รับมอบหมาย เมื่อสร้างโค้ดแล้ว EvalAgent จะเริ่มต้นรันไทม์เพื่อรันโค้ด แม้จะใช้เครื่องมือภายนอกเมื่อจำเป็นก็ตาม จากนั้น EvalAgent จะรวบรวมผลลัพธ์
โหนด EvalAgent สามารถเข้าถึงหน่วยความจำจากโหนดหลัก EvalGPT ช่วยให้สามารถสื่อสารได้อย่างมีประสิทธิภาพและประสิทธิผล หาก EvalAgent พบข้อผิดพลาดใดๆ ในระหว่างกระบวนการ ระบบจะรายงานข้อผิดพลาดไปยังโหนดหลัก EvalGPT ซึ่งจะวางแผนงานใหม่เพื่อหลีกเลี่ยงข้อผิดพลาด
สุดท้าย โหนดหลัก EvalGPT จะเปรียบเทียบผลลัพธ์ทั้งหมดจากโหนด EvalAgent และสร้างคำตอบสุดท้ายสำหรับคำขอ
evalgpt
คุณสามารถติดตั้ง evalgpt ได้โดยใช้คำสั่งต่อไปนี้:
go install github.com/index-labs/evalgpt@latest
คุณสามารถตรวจสอบการติดตั้งได้โดยการรันคำสั่งต่อไปนี้:
evalgpt -h
git clone https://github.com/index-labs/evalgpt.git
cd evalgpt
go mod tidy && go mod vendor
mkdir -p ./bin
go build -o ./bin/evalgpt ./ * .go
./bin/evalgpt -h
จากนั้นคุณสามารถค้นหาได้ในไดเร็กทอรี bin
หลังจากที่คุณติดตั้งบรรทัดคำสั่ง evalgpt ก่อนที่จะดำเนินการ คุณต้องกำหนดค่าตัวเลือกด้านล่าง:
กำหนดค่าคีย์ Openai API
export OPENAI_API_KEY=sk_ ******
นอกจากนี้ คุณสามารถกำหนดค่าคีย์ openai api ได้ด้วยคำสั่ง args แต่ไม่แนะนำ:
evalgpt --openai-api-key sk_ ***** -q < query >
กำหนดค่าล่าม Python
ตามค่าเริ่มต้น ตัวแปลโค้ดจะใช้ตัวแปล Python ของระบบ อย่างไรก็ตาม คุณสามารถสร้างล่าม Python ใหม่โดยใช้เครื่องมือสภาพแวดล้อมเสมือนของ Python และกำหนดค่าให้สอดคล้องกัน
python3 -m venv /path/evalgpt/venv
# install third python libraries
/path/evalgpt/venv/bin/pip3 install -r requirements.txt
# config python interpreter
export PYTHON_INTERPRETER=/path/evalgpt/venv/bin/python3
หรือ
evalgpt --python-interpreter /path/evalgpt/venv/bin/python3 -q < query >
บันทึก:
ก่อนที่จะจัดการกับงานที่ซับซ้อน ตรวจสอบให้แน่ใจว่าได้ติดตั้งไลบรารีบุคคลที่สาม Python ที่จำเป็นแล้ว สิ่งนี้จะช่วยให้ล่ามโค้ดของคุณจัดการงานที่เกี่ยวข้อง เพิ่มประสิทธิภาพ และรับประกันการทำงานที่ราบรื่น
ช่วย
> evalgpt -h
NAME:
evalgpt help - A new cli application
USAGE:
evalgpt help [global options] command [command options] [arguments...]
DESCRIPTION:
description
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--openai-api-key value Openai Api Key, if you use open ai model gpt3 or gpt4, you must set this flag [ $OPENAI_API_KEY ]
--model value LLM name (default: " gpt-4-0613 " ) [ $MODEL ]
--python-interpreter value python interpreter path (default: " /usr/bin/python3 " ) [ $PYTHON_INTERPRETER ]
--verbose, -v print verbose log (default: false) [ $VERBOSE ]
--query value, -q value what you want to ask
--file value [ --file value ] the path to the file to be parsed and processed, eg. --file /tmp/a.txt --file /tmp/b.txt
--help, -h show help
บันทึก:
อย่าลืมกำหนดค่าคีย์ OpenAI API และล่าม Python ก่อนดำเนินการล่ามโค้ด ตัวอย่างต่อไปนี้ได้รับการกำหนดค่าด้วยตัวแปรสภาพแวดล้อมสำหรับคีย์ OpenAI API และล่าม Python แล้ว
แบบสอบถามง่ายๆ
รับที่อยู่ IP สาธารณะของเครื่อง:
❯ evalgpt -q ' get the public IP of my computer '
Your public IP is: 104.28.240.133
คำนวณแฮช sha256 ของสตริง:
❯ evalgpt -q ' calculate the sha256 of the "hello,world" '
77df263f49123356d28a4a8715d25bf5b980beeeb503cab46ea61ac9f3320eda
รับชื่อเว็บไซต์:
❯ evalgpt -q " get the title of a website: https://arxiv.org/abs/2302.04761 " -v
[2302.04761] Toolformer: Language Models Can Teach Themselves to Use Tools
ไปป์ไลน์
คุณสามารถใช้ไปป์ไลน์เพื่อป้อนข้อมูลบริบทและสืบค้นข้อมูลได้:
> cat a.csv
date,dau
2023-08-20,1000
2023-08-21,900
2023-08-22,1100
2023-08-23,2000
2023-08-24,1800
> cat a.csv | evalgpt -q ' calculate the average dau '
Average DAU: 1360.0
โต้ตอบกับไฟล์
แปลงไฟล์ PNG เป็นไฟล์ webp:
> ls
a.png
> evalgpt -q ' convert this png file to webp ' --file ./a.png
created file: a.webp
> ls
a.png a.webp
วาดกราฟเส้นตามข้อมูลจาก CSV
> cat a.csv
date,dau
2023-08-20,1000
2023-08-21,900
2023-08-22,1100
2023-08-23,2000
2023-08-24,1800
> evalgpt -q ' draw a line graph based on the data from the CSV ' --file ./a.csv
เอาท์พุท:
โหนดหลัก EvalGPT ทำหน้าที่เป็นศูนย์กลางการควบคุมของเฟรมเวิร์ก โดยประกอบด้วยองค์ประกอบที่สำคัญสามประการ: การวางแผน ตัวกำหนดเวลา และหน่วยความจำ
ส่วนประกอบการวางแผนใช้ประโยชน์จากแบบจำลองภาษาขนาดใหญ่เพื่อวางแผนงานตามคำขอของผู้ใช้ โดยแบ่งงานที่ซับซ้อนออกเป็นงานย่อยที่เล็กลงและจัดการได้ ซึ่งแต่ละงานจะได้รับการจัดการโดยโหนด EvalAgent แต่ละโหนด
ส่วนประกอบตัวกำหนดเวลามีหน้าที่รับผิดชอบในการกระจายงาน โดยจะมอบหมายงานย่อยแต่ละงานให้กับโหนด EvalAgent เพื่อให้มั่นใจว่ามีการใช้ทรัพยากรอย่างมีประสิทธิภาพและดำเนินงานแบบขนานเพื่อประสิทธิภาพสูงสุด
ส่วนประกอบหน่วยความจำทำหน้าที่เป็นพื้นที่หน่วยความจำที่ใช้ร่วมกันสำหรับโหนด EvalAgent ทั้งหมด โดยจะจัดเก็บผลลัพธ์ของงานที่ดำเนินการและเป็นแพลตฟอร์มสำหรับการแลกเปลี่ยนข้อมูลระหว่างโหนดต่างๆ โมเดลหน่วยความจำที่ใช้ร่วมกันนี้อำนวยความสะดวกในการคำนวณที่ซับซ้อนและช่วยในการจัดการข้อผิดพลาดโดยอนุญาตให้มีการวางแผนงานใหม่ในกรณีที่เกิดข้อผิดพลาด
ในกรณีที่เกิดข้อผิดพลาดระหว่างการเรียกใช้โค้ด โหนดหลักจะวางแผนงานใหม่เพื่อหลีกเลี่ยงข้อผิดพลาด จึงรับประกันการทำงานที่แข็งแกร่งและเชื่อถือได้
สุดท้าย โหนดหลัก EvalGPT จะรวบรวมผลลัพธ์จากโหนด EvalAgent ทั้งหมด คอมไพล์ และสร้างคำตอบสุดท้ายสำหรับคำขอของผู้ใช้ การควบคุมและการประสานงานแบบรวมศูนย์นี้ทำให้โหนดหลัก EvalGPT เป็นส่วนสำคัญของเฟรมเวิร์ก EvalGPT
โหนด EvalAgent เป็นส่วนสำคัญของเฟรมเวิร์ก EvalGPT สร้างโดยโหนดหลักสำหรับแต่ละงานย่อย โดยมีหน้าที่รับผิดชอบในการสร้างโค้ด การเรียกใช้งาน และการรวบรวมผลลัพธ์
กระบวนการสร้างโค้ดในโหนด EvalAgent จะได้รับคำแนะนำจากงานเฉพาะที่ได้รับมอบหมาย การใช้โมเดลภาษาขนาดใหญ่จะสร้างโค้ดที่จำเป็นเพื่อให้งานสำเร็จ มั่นใจได้ว่าเหมาะสมกับความต้องการและความซับซ้อนของงาน
เมื่อสร้างโค้ดแล้ว โหนด EvalAgent จะเริ่มต้นสภาพแวดล้อมรันไทม์เพื่อรันโค้ด รันไทม์นี้มีความยืดหยุ่น สามารถรวมเครื่องมือภายนอกได้ตามต้องการ และเป็นแพลตฟอร์มที่แข็งแกร่งสำหรับการเรียกใช้โค้ด
ในระหว่างการดำเนินการ โหนด EvalAgent จะรวบรวมผลลัพธ์และสามารถเข้าถึงหน่วยความจำที่ใช้ร่วมกันได้จากโหนดหลัก EvalGPT ช่วยให้สามารถแลกเปลี่ยนข้อมูลได้อย่างมีประสิทธิภาพ และอำนวยความสะดวกในการคำนวณที่ซับซ้อนซึ่งจำเป็นต้องมีการจัดการข้อมูลที่สำคัญหรือการเข้าถึงผลลัพธ์ที่คำนวณไว้ก่อนหน้านี้
ในกรณีที่มีข้อผิดพลาดใดๆ ระหว่างการเรียกใช้โค้ด โหนด EvalAgent จะรายงานข้อผิดพลาดเหล่านี้กลับไปยังโหนดหลัก EvalGPT จากนั้นโหนดหลักจะวางแผนงานใหม่เพื่อหลีกเลี่ยงข้อผิดพลาด เพื่อให้มั่นใจว่าการดำเนินงานมีประสิทธิภาพและเชื่อถือได้
โดยพื้นฐานแล้ว โหนด EvalAgent เป็นหน่วยอัตโนมัติภายในเฟรมเวิร์ก EvalGPT ซึ่งสามารถสร้างและรันโค้ด การจัดการข้อผิดพลาด และการสื่อสารผลลัพธ์ได้อย่างมีประสิทธิภาพ
รันไทม์ของ EvalGPT ได้รับการจัดการโดยโหนด EvalAgent โหนด EvalAgent แต่ละโหนดจะสร้างโค้ดสำหรับงานเฉพาะ และเริ่มรันไทม์เพื่อรันโค้ด สภาพแวดล้อมรันไทม์มีความยืดหยุ่นและสามารถรวมเครื่องมือภายนอกได้ตามความจำเป็น โดยให้บริบทการดำเนินการที่ปรับเปลี่ยนได้สูง
รันไทม์ยังรวมถึงกลไกการจัดการข้อผิดพลาดด้วย หากโหนด EvalAgent พบข้อผิดพลาดใดๆ ระหว่างการเรียกใช้โค้ด โหนดจะรายงานข้อผิดพลาดเหล่านี้กลับไปยังโหนดหลัก EvalGPT จากนั้นโหนดหลักจะวางแผนงานใหม่เพื่อหลีกเลี่ยงข้อผิดพลาด เพื่อให้มั่นใจว่ามีการเรียกใช้โค้ดที่มีประสิทธิภาพและเชื่อถือได้
รันไทม์สามารถโต้ตอบกับหน่วยความจำของโหนดหลัก EvalGPT ทำให้สามารถแลกเปลี่ยนข้อมูลได้อย่างมีประสิทธิภาพ และอำนวยความสะดวกในการคำนวณที่ซับซ้อน โมเดลหน่วยความจำที่ใช้ร่วมกันนี้ช่วยให้สามารถดำเนินงานที่ต้องมีการจัดการข้อมูลที่สำคัญหรือเข้าถึงผลลัพธ์ที่คำนวณไว้ก่อนหน้านี้