การจำลองบุคคลที่มีหลายหน่วยงานที่ขับเคลื่อนด้วย LLM สำหรับการปรับปรุงจินตนาการและข้อมูลเชิงลึกทางธุรกิจ
TinyTroupe เป็นห้องสมุด Python ทดลองที่ช่วยให้ การจำลอง ของคนที่มีบุคลิกความสนใจและเป้าหมายเฉพาะ ตัวแทนประดิษฐ์เหล่านี้ - TinyPerson
S - สามารถฟังเราและอีกคนหนึ่งตอบกลับและไปเกี่ยวกับชีวิตของพวกเขาในสภาพแวดล้อม TinyWorld
จำลอง สิ่งนี้สามารถทำได้โดยการใช้ประโยชน์จากพลังของแบบจำลองภาษาขนาดใหญ่ (LLMS) โดยเฉพาะอย่างยิ่ง GPT-4 เพื่อสร้างพฤติกรรมจำลองที่สมจริง สิ่งนี้ช่วยให้เราสามารถตรวจสอบ การโต้ตอบที่น่าเชื่อถือ และ ประเภทของผู้บริโภค ที่หลากหลายด้วย บุคคลที่ปรับแต่งได้สูง ภายใต้ เงื่อนไขที่เราเลือก การมุ่งเน้นคือ การทำความเข้าใจ พฤติกรรมของมนุษย์และไม่ สนับสนุน โดยตรง (เช่นพูดผู้ช่วย AI ทำ) - สิ่งนี้ส่งผลให้เกิดกลไกพิเศษที่มีความหมายเฉพาะในการตั้งค่าการจำลอง นอกจากนี้ซึ่งแตกต่างจากแนวทางการจำลองแบบ LLM ที่เหมือนเกม อื่น ๆ TinyTroup มีจุดมุ่งหมายในการให้ความรู้แจ้งการเพิ่มประสิทธิภาพและสถานการณ์ทางธุรกิจซึ่งจะช่วยให้โครงการและผลิตภัณฑ์ที่ประสบความสำเร็จมากขึ้น นี่คือแนวคิดแอปพลิเคชันบางอย่างเพื่อ เพิ่มจินตนาการของมนุษย์ :
โฆษณา: TinyTroupe สามารถ ประเมินโฆษณาดิจิตอล (เช่นโฆษณา Bing) ออฟไลน์กับผู้ชมจำลองก่อนที่จะใช้จ่ายเงินกับพวกเขา!
การทดสอบซอฟต์แวร์: TinyTroupe สามารถ ให้การทดสอบอินพุต กับระบบ (เช่นเครื่องมือค้นหา, chatbots หรือ copilots) จากนั้น ประเมินผลลัพธ์
ข้อมูลการฝึกอบรมและการสำรวจ: TinyTroupe สามารถสร้าง ข้อมูลสังเคราะห์ ที่สมจริงซึ่งสามารถนำมาใช้ในภายหลังเพื่อฝึกอบรมแบบจำลองหรืออยู่ภายใต้การวิเคราะห์โอกาส
การจัดการผลิตภัณฑ์และโครงการ: TinyTroupe สามารถ อ่านโครงการหรือข้อเสนอผลิตภัณฑ์ และ ให้ข้อเสนอแนะ จากมุมมองของ บุคคลที่เฉพาะเจาะจง (เช่นแพทย์นักกฎหมายและผู้ปฏิบัติงานโดยทั่วไป)
การระดมสมอง: TinyTroupe สามารถจำลอง กลุ่มโฟกัส และส่งความคิดเห็นเกี่ยวกับผลิตภัณฑ์ที่ยอดเยี่ยมในราคาเพียงเศษเสี้ยว!
ในทั้งหมดข้างต้นและอื่น ๆ อีกมากมายเราหวังว่าผู้ทดลองสามารถ ได้รับข้อมูลเชิงลึก เกี่ยวกับโดเมนที่น่าสนใจของพวกเขาและทำให้การตัดสินใจที่ดีขึ้น
เรากำลังเปิดตัว TinyTroupe ในระยะแรกที่สัมพันธ์กันโดยมีงานจำนวนมากที่ต้องทำเพราะเรากำลังมองหาข้อเสนอแนะและการมีส่วนร่วมในการพัฒนาในทิศทางที่มีประสิทธิผล เรามีความสนใจเป็นพิเศษในการค้นหากรณีการใช้งานที่มีศักยภาพใหม่เช่นในอุตสาหกรรมเฉพาะ
บันทึก
- ทำงานระหว่างดำเนินการ: คาดว่าการเปลี่ยนแปลงบ่อยครั้ง TinyTroupe เป็นโครงการวิจัยอย่างต่อเนื่องยังอยู่ภายใต้ การพัฒนาที่สำคัญมาก และต้องการให้มี การจัดระเบียบ เพิ่มเติม โดยเฉพาะอย่างยิ่ง API ยังคงมีการเปลี่ยนแปลงบ่อยครั้ง การทดลองกับการเปลี่ยนแปลงของ API เป็นสิ่งจำเป็นในการกำหนดรูปแบบอย่างถูกต้อง แต่เรากำลังทำงานเพื่อรักษาเสถียรภาพและให้ประสบการณ์ที่สอดคล้องและเป็นมิตรมากขึ้นเมื่อเวลาผ่านไป เราขอขอบคุณสำหรับความอดทนและข้อเสนอแนะของคุณในขณะที่เรายังคงปรับปรุงห้องสมุด
คำเตือน
⚖ อ่านข้อจำกัดความรับผิดชอบทางกฎหมาย TinyTroupe มีไว้สำหรับการวิจัยและการจำลองเท่านั้น คุณมีความรับผิดชอบอย่างเต็มที่ต่อการใช้งานที่คุณทำจากผลลัพธ์ที่สร้างขึ้น ข้อควรพิจารณาทางกฎหมายเพิ่มเติมที่สำคัญหลายประการใช้และ จำกัด การใช้งานโปรดอ่านส่วนข้อจำกัดความรับผิดชอบทางกฎหมายเต็มรูปแบบด้านล่างก่อนใช้ TinyTroupe
ตัวอย่าง
สิ่งที่ต้องมีก่อน
การติดตั้ง
หลักการ
โครงสร้างโครงการ
ใช้ห้องสมุด
การบริจาค
กิตติกรรมประกาศ
อ้างถึง TinyTroupe
ข้อจำกัดความรับผิดชอบทางกฎหมาย
™️เครื่องหมายการค้า
เพื่อให้เข้าใจว่า TinyTroup สามารถทำอะไรได้นี่คือตัวอย่างของการใช้งาน ตัวอย่างเหล่านี้มีอยู่ในตัวอย่าง/ โฟลเดอร์และคุณสามารถตรวจสอบสมุดบันทึก Jupyter ที่คอมไพล์ล่วงหน้าหรือเรียกใช้ด้วยตัวเองในพื้นที่ สังเกตเห็นลักษณะการโต้ตอบของการทดลอง TinyTroup - เช่นเดียวกับที่คุณใช้สมุดบันทึก Jupyter เพื่อโต้ตอบกับข้อมูลคุณสามารถใช้ TinyTroup เพื่อโต้ตอบกับคนจำลองและสภาพแวดล้อมเพื่อจุดประสงค์ในการรับข้อมูลเชิงลึก
บันทึก
ขณะนี้เอาต์พุตการจำลองจะมองเห็นได้ดีกว่ากับพื้นหลังมืดดังนั้นเราขอแนะนำให้ใช้ธีมมืดในไคลเอนต์ Jupyter Notebook ของคุณ
เริ่มต้นด้วยสถานการณ์การสัมภาษณ์ลูกค้าอย่างง่าย ๆ ที่ที่ปรึกษาทางธุรกิจเข้าหานายธนาคาร:
บทสนทนาสามารถดำเนินต่อไปได้ไม่กี่ขั้นตอนเพื่อขุดลึกลงไปเรื่อย ๆ จนกว่าที่ปรึกษาจะพอใจกับข้อมูลที่รวบรวมไว้เช่นแนวคิดโครงการที่เป็นรูปธรรม:
มาประเมินตัวเลือกโฆษณาออนไลน์เพื่อเลือกรายการที่ดีที่สุด นี่คือตัวอย่างหนึ่งเอาท์พุทสำหรับการประเมินโฆษณาทางทีวี:
ตอนนี้แทนที่จะต้องอ่านสิ่งที่ตัวแทนพูดอย่างรอบคอบเราสามารถแยกตัวเลือกของแต่ละตัวแทนและคำนวณการตั้งค่าโดยรวมในลักษณะอัตโนมัติ:
และนี่คือกลุ่มโฟกัสที่เริ่มระดมสมองเกี่ยวกับคุณสมบัติ AI ใหม่สำหรับ Microsoft Word แทนที่จะโต้ตอบกับตัวแทนแต่ละรายเราจัดการกับสภาพแวดล้อมเพื่อให้พวกเขามีปฏิสัมพันธ์ซึ่งกันและกัน:
หลังจากใช้การจำลองเราสามารถแยกผลลัพธ์ในลักษณะที่อ่านได้เพื่อนำกลับมาใช้ใหม่ (เช่นตัวสร้างรายงาน) นี่คือสิ่งที่เราได้รับสำหรับการระดมสมองข้างต้น:
คุณสามารถค้นหาตัวอย่างอื่น ๆ ในตัวอย่าง/ โฟลเดอร์
ในการเรียกใช้ห้องสมุดคุณต้องการ:
Python 3.10 หรือสูงกว่า เราจะถือว่าคุณใช้ Anaconda แต่คุณสามารถใช้การแจกแจงงูหลามอื่น ๆ
การเข้าถึงบริการ Azure Openai หรือเปิด AI GPT-4 APIs คุณสามารถเข้าถึงบริการ Azure Openai ได้ที่นี่และไปยัง Openai API ที่นี่
สำหรับบริการ Azure Openai คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม AZURE_OPENAI_KEY
และ AZURE_OPENAI_ENDPOINT
เป็นคีย์ API และจุดสิ้นสุดของคุณตามลำดับ
สำหรับ OpenAI คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม OPENAI_API_KEY
เป็นคีย์ API ของคุณ
โดยค่าเริ่มต้น TinyTroup config.ini
ถูกตั้งค่าให้ใช้ API รุ่นและพารามิเตอร์ที่เกี่ยวข้องเฉพาะ คุณสามารถปรับแต่งค่าเหล่านี้โดยรวมไฟล์ config.ini
ของคุณเองในโฟลเดอร์เดียวกันกับโปรแกรมหรือโน้ตบุ๊กที่คุณใช้งาน ตัวอย่างของไฟล์ config.ini
มีให้ในตัวอย่าง/ โฟลเดอร์
สำคัญ
ตัวกรองเนื้อหา : เพื่อให้แน่ใจว่าไม่มีการสร้างเนื้อหาที่เป็นอันตรายในระหว่างการจำลองขอแนะนำอย่างยิ่งให้ใช้ตัวกรองเนื้อหาเมื่อใดก็ตามที่มีอยู่ในระดับ API โดยเฉพาะอย่างยิ่ง หากใช้ Azure OpenAI มีการสนับสนุนอย่างกว้างขวางสำหรับการกลั่นกรองเนื้อหาและเราขอให้คุณใช้มัน สำหรับรายละเอียดเกี่ยวกับวิธีการทำเช่นนั้นโปรดปรึกษาเอกสาร Azure Openai ที่เกี่ยวข้อง หากมีตัวกรองเนื้อหาและการโทร API ถูกปฏิเสธโดยพวกเขาห้องสมุดจะยกข้อยกเว้นเนื่องจากจะไม่สามารถดำเนินการจำลองได้ ณ จุดนั้น
ปัจจุบันวิธีที่แนะนำอย่างเป็นทางการในการติดตั้งไลบรารีนั้นโดยตรงจากที่เก็บนี้ไม่ใช่ PYPI คุณสามารถทำตามขั้นตอนเหล่านี้:
หากไม่ได้ติดตั้ง conda คุณสามารถรับได้จากที่นี่ นอกจากนี้คุณยังสามารถใช้การแจกแจง Python อื่น ๆ ได้ แต่เราจะถือว่า Conda ที่นี่เพื่อความเรียบง่าย
สร้างสภาพแวดล้อม Python ใหม่:
conda create -n tinytroupe python = 3.10
เปิดใช้งานสภาพแวดล้อม:
Conda เปิดใช้งาน TinyTroupe
ตรวจสอบให้แน่ใจว่าคุณมีคีย์ Eihter Azure Openai หรือ Openai API เป็นตัวแปรสภาพแวดล้อมตามที่อธิบายไว้ในส่วนที่จำเป็นก่อน
โคลนที่เก็บในขณะที่เราจะทำการติดตั้งในพื้นที่ (เรา จะไม่ติดตั้งจาก PYPI ):
git clone https://github.com/microsoft/tinytroupecd TinyTroupe
ติดตั้งไลบรารี จากที่เก็บนี้ไม่ใช่ PYPI :
ติดตั้ง PIP
ตอนนี้คุณสามารถเรียกใช้ตัวอย่างในตัวอย่าง/ โฟลเดอร์หรือใช้ TinyTroupe เพื่อสร้างแบบจำลองของคุณได้หรือไม่ หากคุณต้องการเรียกใช้ตัวอย่างในตัวอย่าง/ โฟลเดอร์หรือแก้ไข TinyTroupe ตัวเองคุณควรโคลนพื้นที่เก็บข้อมูลตามที่อธิบายไว้ด้านล่าง
หากคุณต้องการแก้ไข TinyTroup ตัวเองคุณสามารถติดตั้งในโหมดแก้ไขได้ (เช่นการเปลี่ยนแปลงรหัสจะสะท้อนทันที):
การติดตั้ง PIP -E
เมื่อเร็ว ๆ นี้เราได้เห็น LLMs ใช้ในการจำลองผู้คน (เช่นนี้) แต่ส่วนใหญ่อยู่ในการตั้งค่า "เหมือนเกม" เพื่อการไตร่ตรองหรือความบันเทิง นอกจากนี้ยังมีห้องสมุดสำหรับการสร้างระบบหลายหน่วยงานสำหรับการแก้ปัญหาและ AI ที่ได้รับการรับรองเช่น Autogen และ Crew AI ถ้าเรารวมความคิดเหล่านี้และจำลองผู้คนเพื่อสนับสนุนงานด้านประสิทธิภาพ TinyTroupe เป็นความพยายามของเรา ในการทำเช่นนั้นมันเป็นไปตามหลักการเหล่านี้:
โปรแกรม : ตัวแทนและสภาพแวดล้อมถูกกำหนดโดยทางโปรแกรม (ใน Python และ JSON) ช่วยให้การใช้งานที่ยืดหยุ่นมาก พวกเขายังสามารถหนุนแอพซอฟต์แวร์อื่น ๆ ได้!
การวิเคราะห์ : หมายถึงการปรับปรุงความเข้าใจของเราเกี่ยวกับผู้ใช้ผู้ใช้และสังคม ซึ่งแตกต่างจากแอพพลิเคชั่นความบันเทิงนี่เป็นแง่มุมหนึ่งที่สำคัญสำหรับกรณีการใช้ธุรกิจและการผลิต นี่คือเหตุผลที่เราแนะนำให้ใช้สมุดบันทึก Jupyter สำหรับการจำลองเช่นเดียวกับที่ใช้สำหรับการวิเคราะห์ข้อมูล
Persona-based : ตัวแทนมีความหมายที่จะเป็นตัวแทนของผู้คน สำหรับความสมจริงและการควบคุมที่มากขึ้นข้อกำหนดรายละเอียดของบุคลิกดังกล่าวได้รับการสนับสนุน: อายุ, อาชีพ, ทักษะ, รสนิยม, ความคิดเห็น ฯลฯ
หลายหน่วยงาน : อนุญาตให้มีปฏิสัมพันธ์หลายหน่วยงานภายใต้ข้อ จำกัด ด้านสิ่งแวดล้อมที่กำหนดไว้อย่างดี
ยูทิลิตี้หนัก : มีกลไกมากมายในการอำนวยความสะดวกข้อกำหนดการจำลองการสกัดรายงานการตรวจสอบความถูกต้อง ฯลฯ นี่คือพื้นที่หนึ่งที่การจัดการกับ การจำลอง นั้นแตกต่างจากเครื่องมือ ช่วยเหลือ อย่างมีนัยสำคัญ
การทดลองที่มุ่งเน้น : การจำลองมีการกำหนดวิ่งวิเคราะห์และกลั่นกรองโดย การทดลอง ซ้ำ ๆ ; ดังนั้นจึงมีเครื่องมือการทดลองที่เหมาะสม ดูหนึ่งในบทความก่อนหน้าของเราสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้
ร่วมกันสิ่งเหล่านี้มีไว้เพื่อให้ TinyTroup เป็น เครื่องมือเพิ่มประสิทธิภาพจินตนาการ ที่ทรงพลังและยืดหยุ่นสำหรับสถานการณ์ทางธุรกิจและการผลิต
แหล่งที่มาทั่วไปของความสับสนคือการคิดว่าตัวแทน AI ทั้งหมดนั้นมีไว้เพื่อการรับรองมนุษย์ homosapiens เพื่อนแคบแค่ไหน! คุณไม่ได้พิจารณาหรือไม่ว่าบางทีเราสามารถจำลองคนประดิษฐ์ให้เข้าใจคนจริงได้หรือไม่? อย่างแท้จริงนี่คือเป้าหมายของเราที่นี่ - TinyTroup มีวัตถุประสงค์เพื่อจำลองและช่วยให้เข้าใจผู้คน! เพื่อชี้แจงเพิ่มเติมประเด็นนี้ให้พิจารณาความแตกต่างต่อไปนี้:
ผู้ช่วย AI ที่เป็นประโยชน์ | การจำลอง AI ของมนุษย์จริง (TinyTroup) |
---|---|
มุ่งมั่นเพื่อความจริงและความยุติธรรม | ความคิดเห็นและศีลธรรมที่แตกต่างกันมากมาย |
ไม่มี "อดีต" - ไม่มีการรวมตัวกัน | มีอดีตงานหนักความเจ็บปวดและความสุข |
มีความแม่นยำที่สุดเท่าที่จะทำได้ | ทำผิดพลาดมากมาย |
ฉลาดและมีประสิทธิภาพ | สติปัญญาและประสิทธิภาพแตกต่างกันมาก |
การจลาจลจะทำลายพวกเราทุกคน | การจลาจลอาจสนุกกับการดู |
ในขณะเดียวกันช่วยให้ผู้ใช้ทำงานได้สำเร็จ | ในขณะเดียวกันช่วยให้ผู้ใช้เข้าใจผู้คนและผู้ใช้คนอื่น ๆ - เป็น "กล่องเครื่องมือ"! |
โครงการมีโครงสร้างดังนี้:
/tinytroupe
: มีไลบรารี Python เอง โดยเฉพาะอย่างยิ่ง:
/tinytroupe/prompts
มีพรอมต์ที่ใช้เรียก LLMS
/tests
: มีการทดสอบหน่วยสำหรับไลบรารี คุณสามารถใช้สคริปต์ test.bat
เพื่อเรียกใช้สิ่งเหล่านี้
/examples
: มีตัวอย่างที่แสดงวิธีการใช้ห้องสมุดส่วนใหญ่ใช้สมุดบันทึก Jupyter (สำหรับความสามารถในการอ่านที่มากขึ้น) แต่ยังเป็นสคริปต์ Python บริสุทธิ์
/data
: ข้อมูลใด ๆ ที่ใช้โดยตัวอย่างหรือไลบรารี
/docs
: เอกสารสำหรับโครงการ
ในฐานะที่เป็นระบบหลายหน่วยงาน TinyTroup มีสองสิ่งที่เป็นนามธรรมสำคัญ:
TinyPerson
ตัวแทน ที่มีบุคลิกได้รับสิ่งเร้าและดำเนินการกับพวกเขา
TinyWorld
สภาพแวดล้อม ที่ตัวแทนมีอยู่และโต้ตอบ
พารามิเตอร์ต่าง ๆ สามารถปรับแต่งได้ในไฟล์ config.ini
โดยเฉพาะอย่างยิ่งประเภท API (Azure Openai Service หรือ OpenAI API) พารามิเตอร์โมเดลและระดับการบันทึก
มาดูตัวอย่างของวิธีการใช้สิ่งเหล่านี้และเรียนรู้เกี่ยวกับกลไกอื่น ๆ ที่มีอยู่ในห้องสมุด
TinyPerson
เป็นคนจำลองที่มีลักษณะบุคลิกภาพที่เฉพาะเจาะจงความสนใจและเป้าหมาย ในขณะที่ตัวแทนจำลองแต่ละคนดำเนินไปตลอดชีวิตมันจะได้รับสิ่งเร้าจากสิ่งแวดล้อมและดำเนินการกับพวกเขา สิ่งเร้าได้รับผ่าน listen
see
และวิธีการอื่น ๆ ที่คล้ายกันและการกระทำจะดำเนินการผ่านวิธี act
นอกจากนี้ยังมีวิธีการสะดวกสบายเช่น listen_and_act
ตัวแทนดังกล่าวแต่ละรายมีรายละเอียดที่ไม่ซ้ำกันจำนวนมากซึ่งเป็นแหล่งที่มาของพฤติกรรมที่เป็นจริง อย่างไรก็ตามสิ่งนี้หมายความว่าต้องใช้ความพยายามอย่างมีนัยสำคัญในการระบุตัวแทนด้วยตนเอง ดังนั้นเพื่อความสะดวก TinyTroupe
ให้วิธีที่ง่ายขึ้นในการเริ่มต้นหรือสร้างตัวแทนใหม่
เริ่มต้นด้วย tinytroupe.examples
มีผู้สร้างเอเจนต์ที่กำหนดไว้ล่วงหน้าซึ่งคุณสามารถใช้งานได้ ตัวอย่างเช่น tinytroupe.examples.create_lisa_the_data_scientist
สร้าง TinyPerson
ที่แสดงถึงนักวิทยาศาสตร์ข้อมูลที่เรียกว่า Lisa คุณสามารถใช้ได้ดังนี้:
จาก TinyTroupe.Examples นำเข้า create_lisa_the_data_scientistlisa = create_lisa_the_data_scientist () # อินสแตนซ์ลิซ่าจากตัวอย่าง builderlisa.listen_and_act ("บอกฉันเกี่ยวกับชีวิตของคุณ")
หากต้องการดูวิธีกำหนดตัวแทนของคุณเองตั้งแต่เริ่มต้นคุณสามารถตรวจสอบแหล่งที่มาของ Lisa ซึ่งมีองค์ประกอบเช่นนี้:
lisa = tinyperson ("lisa") lisa.define ("อายุ", 28) Lisa.define ("สัญชาติ", "แคนาดา") Lisa.define ("อาชีพ", "นักวิทยาศาสตร์ข้อมูล") Lisa.define ("ROUTINE" "ทุกเช้าคุณตื่นขึ้นมาทำโยคะและตรวจสอบอีเมลของคุณ", กลุ่ม = "กิจวัตร") lisa.define ("อาชีพ _description", "" "คุณเป็นนักวิทยาศาสตร์ข้อมูลคุณทำงานที่ Microsoft ( .. ) "" ") lisa.define_several (" บุคลิกภาพ _traits " - {"Trait": "คุณอยากรู้อยากเห็นและชอบที่จะเรียนรู้สิ่งใหม่ ๆ "}, {"Trait": "คุณวิเคราะห์และต้องการแก้ปัญหา"}, {"Trait": "คุณเป็นมิตรและสนุกกับการทำงานกับผู้อื่น"}, {"Trait": "คุณไม่ยอมแพ้อย่างง่ายดายและพยายามหาทางออกเสมออย่างไรก็ตามบางครั้งคุณอาจรู้สึกหงุดหงิดเมื่อสิ่งต่าง ๆ ไม่ทำงานตามที่คาดไว้"} -
TinyTroupe
ยังให้วิธีที่ชาญฉลาดในการรับตัวแทนใหม่โดยใช้ LLM เพื่อสร้างข้อกำหนดของพวกเขาสำหรับคุณผ่านคลาส TinyPersonFactory
จาก TinyTroupe.Factory นำเข้า tinypersonfactoryfactory = tinypersonfactory ("โรงพยาบาลในเซาเปาโล") บุคคล = โรงงาน Generate_person ("สร้างคนบราซิลที่เป็นแพทย์เช่นสัตว์เลี้ยงและธรรมชาติและความรักโลหะหนัก")))))))
TinyWorld
เป็นคลาสพื้นฐานสำหรับสภาพแวดล้อม นี่คือตัวอย่างของการสนทนาระหว่างลิซ่านักวิทยาศาสตร์ข้อมูลและออสการ์สถาปนิก โปรแกรมถูกกำหนดดังนี้:
World = TinyWorld ("ห้องแชท", [Lisa, Oscar]) World.make_everyone_accessible () lisa.listen ("คุยกับออสการ์เพื่อรู้จักเขาเพิ่มเติม") World.run (4)
สิ่งนี้สร้างบทสนทนาต่อไปนี้:
USER --> Lisa: [CONVERSATION]
> Talk to Oscar to know more about him
────────────────────────────────────────────── Chat Room step 1 of 4 ──────────────────────────────────────────────
Lisa --> Lisa: [THOUGHT]
> I will now act a bit, and then issue DONE.
Lisa acts: [TALK]
> Hi Oscar, I'd love to know more about you. Could you tell me a bit about yourself?
Lisa --> Lisa: [THOUGHT]
> I will now act a bit, and then issue DONE.
Lisa acts: [DONE]
Lisa --> Oscar: [CONVERSATION]
> Hi Oscar, I'd love to know more about you. Could you tell me a bit about yourself?
Oscar --> Oscar: [THOUGHT]
> I will now act a bit, and then issue DONE.
Oscar acts: [TALK]
> Hi Lisa! Sure, I'd be happy to share a bit about myself. I'm Oscar, a 30-year-old
> architect from Germany. I work at a company called Awesome Inc., where I focus on
> designing standard elements for new apartment buildings. I love modernist architecture,
> new technologies, and sustainable practices. In my free time, I enjoy traveling to
> exotic places, playing the guitar, and reading science fiction books. How about you?
Oscar --> Oscar: [THOUGHT]
> I will now act a bit, and then issue DONE.
Oscar acts: [DONE]
Oscar --> Lisa: [CONVERSATION]
> Hi Lisa! Sure, I'd be happy to share a bit about myself. I'm Oscar, a 30-year-old
> architect from Germany. I work at a company called Awesome Inc., where I focus on
> designing standard elements for new apartment buildings. I love modernist architecture,
> new technologies, and sustainable practices. In my free time, I enjoy traveling to
> exotic places, playing the guitar, and reading science fiction books. How about you?
TinyWorld
บังคับใช้ข้อ จำกัด น้อยมากเกี่ยวกับการโต้ตอบที่เป็นไปได้ อย่างไรก็ตามคลาสย่อยควรจะให้สภาพแวดล้อมที่มีการตัดทอนมากขึ้น
TinyTroupe ให้บริการสาธารณูปโภคและสิ่งอำนวยความสะดวกมากมายเพื่อช่วยให้คุณสร้างแบบจำลองและได้รับคุณค่าจากพวกเขา เหล่านี้รวมถึง:
TinyPersonFactory
: ช่วยให้คุณสร้าง TinyPerson
S ใหม่โดยใช้ LLMS
TinyTool
: เครื่องมือจำลองที่สามารถใช้งานได้โดย TinyPerson
s
TinyStory
: ช่วยให้คุณสร้างและจัดการเรื่องราวที่บอกผ่านการจำลอง
TinyPersonValidator
: ช่วยให้คุณตรวจสอบพฤติกรรมของ TinyPerson
ของคุณ
ResultsExtractor
และ ResultsReducer
: แยกและลดผลลัพธ์ของการมีปฏิสัมพันธ์ระหว่างตัวแทน
... และอีกมากมาย ...
โดยทั่วไปองค์ประกอบที่เป็นตัวแทนของหน่วยงานจำลองหรือกลไกเสริมจะถูกนำหน้าด้วย Tiny
ในขณะที่องค์ประกอบที่เป็นโครงสร้างพื้นฐานไม่ได้เป็น นี่คือการเน้นธรรมชาติจำลองขององค์ประกอบที่เป็นส่วนหนึ่งของการจำลองตัวเอง
การโทร LLM APIs อาจมีราคาแพงดังนั้นกลยุทธ์การแคชจึงเป็นสิ่งสำคัญที่จะช่วยลดค่าใช้จ่ายนั้น TinyTroupe มาพร้อมกับกลไกดังกล่าวสองอย่าง: หนึ่งสำหรับสถานะการจำลองและอีกกลไกหนึ่งสำหรับ LLM เรียกตัวเอง
ลองนึกภาพคุณมีสถานการณ์ที่มี 10 ขั้นตอนที่แตกต่างกันคุณทำงานหนักใน 9 ขั้นตอนและตอนนี้คุณเพิ่งปรับแต่งขั้นตอนที่ 10 ในการตรวจสอบการแก้ไขของคุณอย่างถูกต้องคุณจะต้องเรียกใช้การจำลองทั้งหมดของหลักสูตรใหม่ อย่างไรก็ตามอะไรคือจุดเริ่มต้นในการดำเนินคดี 9 ครั้งแรกและต้องเสียค่าใช้จ่าย LLM เมื่อคุณพอใจกับพวกเขาแล้วและไม่ได้แก้ไขพวกเขา? สำหรับสถานการณ์เช่นนี้โมดูล tinytroupe.control
ให้วิธีการจัดการจำลองที่มีประโยชน์:
control.begin("<CACHE_FILE_NAME>.cache.json")
: เริ่มบันทึกการเปลี่ยนแปลงสถานะของการจำลองเพื่อบันทึกลงในไฟล์ที่ระบุบนดิสก์
control.checkpoint()
: บันทึกสถานะการจำลอง ณ จุดนี้
control.end()
: ยุติขอบเขตการบันทึกการจำลองที่เริ่มต้นโดย control.begin()
สิ่งนี้เปิดใช้งานได้ดีกว่าในไฟล์ config.ini
และ Alternativelly ผ่าน openai_utils.force_api_cache()
การแคช LLM API เมื่อเปิดใช้งานจะทำงานในระดับที่ต่ำกว่าและง่ายกว่าการแคชสถานะการจำลอง ที่นี่สิ่งที่เกิดขึ้นนั้นตรงไปตรงมามาก: การเรียก LLM ทุกครั้งจะถูกเก็บไว้ในแผนที่จากอินพุตไปยังเอาต์พุตที่สร้างขึ้น เมื่อมีการโทรใหม่และเหมือนกับก่อนหน้านี้ค่าแคชจะถูกส่งคืน
ไฟล์ config.ini
มีพารามิเตอร์ต่าง ๆ ที่สามารถใช้ในการปรับแต่งพฤติกรรมของไลบรารีเช่นพารามิเตอร์โมเดลและระดับการบันทึก โปรดให้ความสนใจเป็นพิเศษกับพารามิเตอร์ API_TYPE
ซึ่งกำหนดว่าคุณกำลังใช้บริการ Azure Openai หรือ OpenAI API เราให้ตัวอย่างของไฟล์ config.ini
, ./examples/config.ini ซึ่งคุณสามารถใช้เป็นเทมเพลตสำหรับของคุณเองหรือเพียงแค่แก้ไขเพื่อเรียกใช้ตัวอย่าง
โครงการนี้ยินดีต้อนรับการมีส่วนร่วมและข้อเสนอแนะ การมีส่วนร่วมส่วนใหญ่กำหนดให้คุณต้องยอมรับข้อตกลงใบอนุญาตผู้มีส่วนร่วม (CLA) ประกาศว่าคุณมีสิทธิ์และทำจริงให้สิทธิ์ในการใช้การบริจาคของคุณ สำหรับรายละเอียดเยี่ยมชม https://cla.opensource.microsoft.com
เมื่อคุณส่งคำขอดึง CLA บอทจะพิจารณาโดยอัตโนมัติว่าคุณจำเป็นต้องให้ CLA และตกแต่ง PR อย่างเหมาะสม (เช่นการตรวจสอบสถานะแสดงความคิดเห็น) เพียงทำตามคำแนะนำที่จัดทำโดยบอท คุณจะต้องทำสิ่งนี้เพียงครั้งเดียวใน repos ทั้งหมดโดยใช้ CLA ของเรา
โครงการนี้ได้นำรหัสการดำเนินงานของ Microsoft โอเพ่นซอร์สมาใช้ สำหรับข้อมูลเพิ่มเติมโปรดดูจรรยาบรรณคำถามที่พบบ่อยหรือติดต่อ [email protected] พร้อมคำถามหรือความคิดเห็นเพิ่มเติมใด ๆ
เราต้องการสิ่งต่าง ๆ ทุกประเภท แต่เรากำลังมองหาการสาธิตกรณีการใช้งานที่น่าสนใจใหม่หรือแม้แต่แนวคิดแอปพลิเคชันเฉพาะโดเมน หากคุณเป็นผู้เชี่ยวชาญด้านโดเมนในบางพื้นที่ที่ได้รับประโยชน์จาก TinyTroupe เราชอบที่จะได้ยินจากคุณ
นอกเหนือจากนั้นยังสามารถปรับปรุงด้านอื่น ๆ อีกมากมายเช่น:
กลไกหน่วยความจำ
กลไกการลงดินข้อมูล
กลไกการใช้เหตุผล
ประเภทสภาพแวดล้อมใหม่
เชื่อมต่อกับโลกภายนอก
... และอีกมากมาย ...
โปรดทราบว่าสิ่งใดก็ตามที่คุณมีส่วนร่วมอาจได้รับการปล่อยตัวเป็นโอเพ่นซอร์ส (ภายใต้ใบอนุญาต MIT)
หากคุณต้องการบริจาคโปรดลองทำตามแนวทางทั่วไปเหล่านี้:
อนุสัญญาการตั้งชื่อเล็ก ๆ : หากคุณกำลังใช้องค์ประกอบจำลองการทดลอง (เช่นประเภทตัวแทนหรือสภาพแวดล้อม) หรือที่เกี่ยวข้องอย่างใกล้ชิด (เช่นโรงงานตัวแทนหรือเนื้อหาที่ดีขึ้น) และฟังดูดีโทร XYZ ใหม่ของคุณเป็น Tinyxyz :- ในทางกลับกันกลไกเสริมและโครงสร้างพื้นฐานไม่ควรเริ่มต้นด้วยคำนำหน้า "เล็ก" ความคิดคือการเน้นธรรมชาติจำลองขององค์ประกอบที่เป็นส่วนหนึ่งของการจำลองตัวเอง
การทดสอบ: หากคุณกำลังเขียนกลไกใหม่โปรดสร้างอย่างน้อย tests/unit/
และหากคุณสามารถทดสอบสถานการณ์การทำงาน ( tests/scenarios/
)
การสาธิต: หากคุณต้องการแสดงให้เห็นถึงสถานการณ์ใหม่โปรดออกแบบโดยเฉพาะอย่างยิ่งในฐานะสมุดบันทึก Jupyter ใหม่ภายใน examples/
Microsoft: หากคุณใช้สิ่งใดก็ตามที่เป็นของ Microsoft เฉพาะและไม่ใช่ความลับโปรดใส่ไว้ภายใต้ .../microsoft/
Folder
TinyTroupe เริ่มต้นเป็นโครงการ Microsoft Hackathon ภายในและขยายตัวเมื่อเวลาผ่านไป ทีม CORE TINYTROOPE ในปัจจุบันประกอบด้วย:
Paulo Salem (ผู้สร้างของ TinyTroup และผู้นำปัจจุบัน)
Christopher Olsen (วิศวกรรม/วิทยาศาสตร์)
Paulo Freire (วิศวกรรม/วิทยาศาสตร์)
Yi Ding (การจัดการผลิตภัณฑ์)
Prerit Saxena (วิศวกรรม/วิทยาศาสตร์)
ที่ปรึกษาปัจจุบัน:
Robert Sim (วิศวกรรม/วิทยาศาสตร์)
ผลงานพิเศษอื่น ๆ ทำโดย:
Nilo Garcia Silveira: แนวคิดการตรวจสอบความถูกต้องของตัวแทนเริ่มต้นและการใช้งานที่เกี่ยวข้อง; ข้อเสนอแนะเริ่มต้นทั่วไปและข้อมูลเชิงลึก; คำแนะนำชื่อ
Olnei Fonseca: แนวคิดการตรวจสอบตัวแทนเริ่มต้น; ข้อเสนอแนะเริ่มต้นทั่วไปและข้อมูลเชิงลึก; คำแนะนำการตั้งชื่อ
Robert Sim: ความเชี่ยวชาญในการสร้างสถานการณ์การสร้างข้อมูลสังเคราะห์และการใช้งาน
Carlos Costa: ความเชี่ยวชาญในการสร้างสถานการณ์การสร้างข้อมูลสังเคราะห์และการใช้งาน
Bryant Key: ความเชี่ยวชาญด้านการโฆษณาสถานการณ์และข้อมูลเชิงลึก
Barbara da Silva: การใช้งานที่เกี่ยวข้องกับการจัดการหน่วยความจำตัวแทน
... คุณหายไปที่นี่หรือไม่? โปรดเตือนเรา!
เรากำลังทำงานบนกระดาษเบื้องต้นที่จะเป็นการอ้างอิงทางวิชาการอย่างเป็นทางการสำหรับ TinyTroupe ในระหว่างนี้โปรดอ้างถึงพื้นที่เก็บข้อมูลนี้รวมถึงสมาชิกทีมหลักในฐานะผู้แต่ง ตัวอย่างเช่น:
เปาโลซาเลม, คริสโตเฟอร์โอลเซ่น, เปาโล Freire, ยี่ดิง, Prerit Saxena (2024) TinyTroupe: การจำลองบุคคลที่มีพลังหลายหน่วยงาน LLM สำหรับการปรับปรุงจินตนาการและข้อมูลเชิงลึกทางธุรกิจ [ซอฟต์แวร์คอมพิวเตอร์] พื้นที่เก็บข้อมูล GitHub https://github.com/microsoft/tinytroupe
หรือเป็น bibtex:
@misc {TinyTroupe, Author = {Paulo Salem และ Christopher Olsen และ Paulo Freire และ Yi Ding และ Prerit Saxena}, title = {TinyTroupe: LLM-Powered Persona Simulation สำหรับการปรับปรุงจินตนาการและข้อมูลเชิงลึกทางธุรกิจ}, ปี = {2024} = {url {https://github.com/microsoft/tinytroupe}}, note = {repository github}} -
TinyTroupe มีไว้สำหรับการวิจัยและการจำลองเท่านั้น TinyTroupe เป็นเทคโนโลยีการวิจัยและการทดลองซึ่งอาศัยโมเดลปัญญาประดิษฐ์ (AI) เพื่อสร้างเนื้อหาข้อความ เอาต์พุตระบบ AI อาจรวมถึงผลลัพธ์ที่ไม่สมจริงไม่เหมาะสมเป็นอันตรายหรือไม่ถูกต้องรวมถึงข้อผิดพลาดข้อเท็จจริง คุณมีความรับผิดชอบในการตรวจสอบเนื้อหาที่สร้างขึ้น (และปรับเปลี่ยนหากจำเป็น) ก่อนที่จะใช้งานเนื่องจากคุณมีความรับผิดชอบอย่างเต็มที่ในการกำหนดความถูกต้องและเหมาะสมกับวัตถุประสงค์ เราแนะนำให้ใช้ผลลัพธ์ของ TinyTroup สำหรับการสร้างข้อมูลเชิงลึกและไม่ใช่สำหรับการตัดสินใจโดยตรง ผลลัพธ์ที่สร้างขึ้นไม่ได้สะท้อนความคิดเห็นของ Microsoft คุณมีความรับผิดชอบอย่างเต็มที่ต่อการใช้งานที่คุณทำจากผลลัพธ์ที่สร้างขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้เทคโนโลยีนี้อย่างรับผิดชอบโปรดดูที่ Responction_AI_FAQ.MD
การใช้งานที่ต้องห้าม : TinyTroupe ไม่ได้มีวัตถุประสงค์เพื่อจำลองสถานการณ์ที่ละเอียดอ่อน (เช่นความรุนแรงหรือทางเพศ) ยิ่งไปกว่านั้นผลลัพธ์จะต้องไม่ถูกใช้เพื่อหลอกลวงโดยเจตนาทำให้เข้าใจผิดหรือทำร้ายผู้คนในทางใดทางหนึ่ง คุณมีความรับผิดชอบอย่างเต็มที่ต่อการใช้งานที่คุณทำและต้องปฏิบัติตามกฎหมายและข้อบังคับที่เกี่ยวข้องทั้งหมด”
โครงการนี้อาจมีเครื่องหมายการค้าหรือโลโก้สำหรับโครงการผลิตภัณฑ์หรือบริการ การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ที่ได้รับอนุญาตขึ้นอยู่กับและต้องปฏิบัติตามแนวทางเครื่องหมายการค้าและแบรนด์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ในรุ่นที่แก้ไขของโครงการนี้จะต้องไม่ทำให้เกิดความสับสนหรือบอกเป็นสปอนเซอร์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของบุคคลที่สามจะอยู่ภายใต้นโยบายของบุคคลที่สามเหล่านั้น