โครงการนี้ช่วยให้การโต้ตอบกับฐานข้อมูลเชิงสัมพันธ์ผ่านภาษาธรรมชาติ โดยเฉพาะอย่างยิ่งมันใช้ส่วนผสมที่กระจัดกระจายของผู้เชี่ยวชาญ (MOE) แบบจำลอง Mixtral 8x7b แนะนำสำหรับการสร้างแบบสอบถาม SQL และตีความผลลัพธ์ตารางที่สอดคล้องกันเพื่อกลับไปยังผู้ใช้เป็นคำตอบ แอปพลิเคชันใช้ประโยชน์จากเครื่องมือโฮสติ้ง Sagemaker เพื่อให้บริการรุ่นซึ่งถูกปรับใช้ด้วยการคลิกไม่กี่ครั้งจาก Sagemaker Jumpstart สำหรับรายละเอียดเพิ่มเติมโปรดดูที่บล็อกนี้
ขณะนี้คุณสามารถปรับใช้ Mixtral 8x7b บน Sagemaker Jumpstart ด้วยคลิกเดียว Amazon Sagemaker JumpStart ให้วิธีที่ง่ายขึ้นในการเข้าถึงและปรับใช้โอเพ่นซอร์สมากกว่า 100 รุ่นที่แตกต่างกันและโมเดลรากฐานของบุคคลที่สาม ในการเปิดจุดสิ้นสุดเพื่อโฮสต์ Mixtral 8x7b จาก Sagemaker JumpStart คุณอาจต้องขอโควต้าบริการเพิ่มเพื่อเข้าถึงอินส แตนซ์ ML.G5.48xLarge สำหรับการใช้งานจุดสิ้นสุด คุณสามารถขอโควต้าบริการที่เพิ่มขึ้นผ่านคอนโซล AWS, CLI หรือ API เพื่อรับการเข้าถึง
คุณจะต้องเข้าถึงแหล่งข้อมูลเชิงสัมพันธ์ Amazon Redshift ใช้เป็นแหล่งข้อมูลหลักในโพสต์นี้ด้วยฐานข้อมูล TickIt ฐานข้อมูลนี้ช่วยให้นักวิเคราะห์ติดตามกิจกรรมการขายสำหรับเว็บไซต์ Tickit ตัวละครที่ผู้ใช้ซื้อและขายตั๋วออนไลน์สำหรับการแข่งขันกีฬาการแสดงและคอนเสิร์ต
โปรดตรวจสอบข้อกำหนดใบอนุญาตใด ๆ ที่ใช้กับชุดข้อมูลกับทีมกฎหมายของคุณและยืนยันว่ากรณีการใช้งานของคุณเป็นไปตามข้อกำหนดก่อนดำเนินการ
ก่อนอื่นคุณจะต้องตั้งค่าคลัสเตอร์ Redshift หากคุณยังไม่มี ใช้คอนโซล Amazon Redshift หรือ CLI เพื่อเปิดคลัสเตอร์ด้วยประเภทโหนดที่คุณต้องการและจำนวนโหนด ตรวจสอบให้แน่ใจว่าได้ทราบจุดสิ้นสุดของคลัสเตอร์ชื่อฐานข้อมูลและข้อมูลรับรองเพื่อเชื่อมต่อ
เมื่อคลัสเตอร์พร้อมใช้งานให้สร้างฐานข้อมูลและตารางใหม่เพื่อเก็บข้อมูลเชิงสัมพันธ์ คุณสามารถโหลดข้อมูลสำหรับฐานข้อมูลติ๊กจาก S3 ตามขั้นตอนเหล่านี้
เพื่อทดสอบว่าคุณเพิ่มข้อมูลลงในคลัสเตอร์ Redshift ของคุณได้สำเร็จ ทำตามขั้นตอนเหล่านี้:
/* Find total sales on a given date. */
SELECT sum(qtysold)
FROM sales, date
WHERE sales.dateid = date.dateid AND caldate = '2008-01-05';
/* Find the top 10 buyers. */
SELECT firstname, lastname, total_quantity
FROM (SELECT buyerid, sum(qtysold) total_quantity
FROM sales GROUP BY buyerid
ORDER BY total_quantity
desc limit 10) Q, users
WHERE Q.buyerid = users.userid
ORDER BY Q.total_quantity desc;
หากคุณได้รับการตอบกลับที่ประสบความสำเร็จหมายความว่าคุณได้โหลดข้อมูลฐานข้อมูลไปยังคลัสเตอร์อย่างถูกต้อง ตัวแก้ไขแบบสอบถามอนุญาตให้บันทึกการจัดตารางเวลาและการแชร์การสืบค้น นอกจากนี้คุณยังสามารถดูแผนสืบค้นรายละเอียดการดำเนินการและตรวจสอบประสิทธิภาพการค้นหา
เราขอแนะนำให้เรียกใช้สมุดบันทึกนี้ใน Amazon Sagemaker Studio ด้วยเหตุนี้คุณต้องตั้งค่าโดเมน Sagemaker ก่อนเพื่อให้แน่ใจว่ามีสิทธิ์ที่เหมาะสมในการโต้ตอบกับ Amazon Redshift จากนั้นโคลนพื้นที่เก็บข้อมูล GitHub นี้เข้าสู่ Sagemaker Studio Classic ด้วยคำสั่งต่อไปนี้:
git clone https://github.com/aws-samples/query-databases-with-natural-language.git
เปิด Query-Amazon-Redshift-with-mixtral-8x7b-instruct.ipynb โน้ตบุ๊กเพื่อเรียกใช้ผ่าน

ในระดับสูงโซลูชัน Text2SQL เช่นหนึ่งในที่เก็บนี้ประกอบด้วยสามองค์ประกอบหลัก:
แหล่งข้อมูลที่มีโครงสร้าง : นี่อาจเป็นแหล่งข้อมูลเชิงสัมพันธ์ใด ๆ เช่น Amazon RDS, Amazon Aurora, AWS Athena หรือ Snowflake มันมีข้อมูลทางธุรกิจเพื่อสอบถาม
แบบจำลองพื้นฐาน : รูปแบบภาษาขนาดใหญ่ (LLM) ที่สามารถเข้าใจสคีมาข้อมูลของฐานข้อมูลต้นฉบับและคำถามภาษาธรรมชาติของ MAP ลงในแบบสอบถาม SQL ที่สอดคล้องกัน
Orchestrator Back-end : สคริปต์รหัสสามารถดำเนินการในสภาพแวดล้อมเช่นสมุดบันทึกสตูดิโอ Sagemaker, ฟังก์ชั่นแลมบ์ดา, EC2 หรือ ECS ยิ่งไปกว่านั้นคุณสามารถเลือกบริการ orchestration เช่นฟังก์ชั่น AWS Step ได้หากจำเป็น
ในรหัสที่ให้ไว้ในที่เก็บนี้สถาปัตยกรรมมีดังต่อไปนี้:

การไหลแบบ end-to-end มีดังนี้:
ผู้ใช้ถามคำถามภาษาธรรมชาติซึ่งส่งผ่านไปยังโมเดล Mixtral 8x7B ที่เป็นเจ้าภาพใน Sagemaker
LLM วิเคราะห์คำถามและใช้สคีมาที่ดึงมาจากฐานข้อมูล Redshift ที่เชื่อมต่อเพื่อสร้างแบบสอบถาม SQL
แบบสอบถาม SQL ทำงานกับฐานข้อมูล ในกรณีที่เกิดข้อผิดพลาดจะมีการดำเนินการเวิร์กโฟลว์ลองใหม่
ผลลัพธ์ที่ได้รับแบบตารางจะถูกส่งกลับไปยัง LLM เพื่อตีความและแปลงให้เป็นการตอบสนองภาษาธรรมชาติต่อคำถามดั้งเดิมของผู้ใช้
สำหรับการดำเนินการแบบทีละขั้นตอนของการใช้งานโปรดตรวจสอบ BlogPost อ้างอิง