LangChain คืออะไร
LangChain เป็นเฟรมเวิร์กโอเพนซอร์สสำหรับการสร้างแอปพลิเคชันตามโมเดลภาษาขนาดใหญ่ (LLM) LLM เป็นโมเดลดีปเลิร์นนิงขนาดใหญ่ที่ได้รับการฝึกมาล่วงหน้าเกี่ยวกับข้อมูลจำนวนมาก ซึ่งสามารถสร้างการตอบสนองต่อข้อสงสัยของผู้ใช้ได้ เช่น การตอบคำถามหรือการสร้างภาพจากพรอมต์ LangChain มีเครื่องมือและ Abstraction มากมายเพื่อปรับปรุงการปรับแต่ง ความแม่นยำ และความเกี่ยวข้องของข้อมูลที่โมเดลสร้างขึ้น ตัวอย่างเช่น นักพัฒนาสามารถใช้ส่วนประกอบของ LangChain เพื่อสร้าง Prompt Chain (เชนพรอมต์) ใหม่หรือปรับแต่งเทมเพลตที่มีอยู่ได้ นอกจากนี้ LangChain ยังมีส่วนประกอบที่อนุญาตให้ LLM เข้าถึงชุดข้อมูลใหม่โดยไม่ต้องฝึกซ้ำอีกด้วย
ทำไม LangChain ถึงมีความสำคัญ
LLM เชี่ยวชาญในการตอบสนองต่อคำแนะนำในบริบททั่วไป แต่ต้องประสบปัญหาในขอบเขตเฉพาะที่ไม่เคยได้รับการฝึกมาก่อน พร้อมท์ คือการสืบค้นที่ผู้คนใช้เพื่อค้นหาคำตอบจาก LLM ตัวอย่างเช่น LLM สามารถให้คำตอบว่าคอมพิวเตอร์มีค่าใช้จ่ายเท่าใดโดยการประมาณการ อย่างไรก็ตาม LLM ไม่สามารถระบุราคาของคอมพิวเตอร์รุ่นใดรุ่นหนึ่งที่บริษัทของคุณขายได้
ในการทำเช่นนั้น วิศวกรแมชชีนเลิร์นนิงจะต้องรวม LLM เข้ากับแหล่งที่มาของข้อมูลภายในขององค์กร และใช้ วิศวกรรมการโต้ตอบ ซึ่งเป็นแนวทางปฏิบัติที่นักวิทยาศาสตร์ด้านข้อมูลปรับแต่งอินพุตให้เป็นโมเดลสร้างสรรค์ที่มีโครงสร้างและบริบทเฉพาะ
LangChain จะปรับปรุงขั้นตอนกลางให้มีประสิทธิภาพมากขึ้นเพื่อพัฒนาแอปพลิเคชันที่ตอบสนองต่อข้อมูลดังกล่าว ทำให้การสร้างพร้อมท์มีประสิทธิภาพมากขึ้น ซึ่งได้รับการออกแบบมาเพื่อพัฒนาแอปพลิเคชันที่หลากหลายซึ่งขับเคลื่อนโดยโมเดลภาษาต่างๆ ได้อย่างง่ายดายยิ่งขึ้น รวมถึง Chatbot การตอบคำถาม การสร้างเนื้อหา การสรุป และอื่นๆ
ส่วนต่อไปนี้จะอธิบายถึงประโยชน์ของ LangChain
ปรับใช้โมเดลภาษาใหม่
ด้วย LangChain องค์กรต่างๆ สามารถนำ LLM ไปปรับใช้สำหรับแอปพลิเคชันเฉพาะโดเมนโดยไม่ต้องฝึกใหม่หรือปรับแต่งอย่างละเอียด ทีมพัฒนาสามารถสร้างแอปพลิเคชันที่ซับซ้อนโดยอ้างอิงข้อมูลที่เป็นกรรมสิทธิ์เพื่อเพิ่มการตอบสนองของโมเดล ตัวอย่างเช่น คุณสามารถใช้ LangChain เพื่อสร้างแอปพลิเคชันที่อ่านข้อมูลจากเอกสารภายในที่เก็บไว้และสรุปให้เป็นการตอบกลับการสนทนา คุณสามารถสร้างเวิร์กโฟลว์ Retrieval Augmented Generation (RAG) ที่แนะนำข้อมูลใหม่ให้กับโมเดลภาษาในระหว่างการพร้อมท์ การใช้เวิร์กโฟลว์การรับรู้บริบทเช่น RAG ช่วยลดอาการหลอนของโมเดลและปรับปรุงความแม่นยำในการตอบสนอง
ลดความยุ่งยากในการพัฒนา AI
LangChain ทำให้การพัฒนา ปัญญาประดิษฐ์ (AI) ง่ายขึ้นโดยการสรุปความซับซ้อนของการบูรณาการแหล่งที่มาของข้อมูลและการปรับปรุงอย่างรวดเร็ว นักพัฒนาสามารถปรับแต่งลำดับเพื่อสร้างแอปพลิเคชันที่ซับซ้อนได้อย่างรวดเร็ว แทนที่จะเขียนโปรแกรมตรรกะทางธุรกิจ ทีมซอฟต์แวร์สามารถปรับเปลี่ยนเทมเพลตและไลบรารีที่ LangChain จัดเตรียมไว้ให้เพื่อลดเวลาในการพัฒนา
การสนับสนุนนักพัฒนา
LangChain มอบเครื่องมือให้นักพัฒนา AI เพื่อเชื่อมต่อโมเดลภาษากับแหล่งที่มาของข้อมูลภายนอก โดยเป็นโอเพ่นซอร์สและได้รับการสนับสนุนจากชุมชนที่มีความมุ่งมั่น องค์กรต่างๆ สามารถใช้ LangChain ได้ฟรีและได้รับการสนับสนุนจากนักพัฒนารายอื่นๆ ที่เชี่ยวชาญด้านเฟรมเวิร์ก
LangChain ทำงานอย่างไร
ด้วย LangChain นักพัฒนาสามารถปรับโมเดลภาษาได้อย่างยืดหยุ่นให้เข้ากับบริบททางธุรกิจที่เฉพาะเจาะจง โดยการกำหนดขั้นตอนที่จำเป็นเพื่อให้ได้ผลลัพธ์ที่ต้องการ
เชน
เชน เป็นหลักการพื้นฐานที่เก็บองค์ประกอบ AI ต่างๆ ใน LangChain เพื่อให้การตอบสนองตามบริบท เชนคือชุดของการดำเนินการอัตโนมัติตั้งแต่คำค้นหาของผู้ใช้ไปจนถึงเอาต์พุตของโมเดล ตัวอย่างเช่น นักพัฒนาสามารถใช้เชนเพื่อ:
- การเชื่อมต่อกับแหล่งที่มาของข้อมูลที่แตกต่างกัน
- การสร้างเนื้อหาที่ไม่ซ้ำกัน
- การแปลหลายภาษา
- การตอบคำถามของผู้ใช้
ลิงก์
เชนทำจากลิงก์ การกระทำแต่ละรายการที่นักพัฒนาร้อยเข้าด้วยกันเพื่อสร้างลำดับที่เชื่อมโยงกันเรียกว่าลิงก์ ด้วยลิงก์ นักพัฒนาสามารถแบ่งงานที่ซับซ้อนออกเป็นงานเล็กๆ หลายงานได้ ตัวอย่างของลิงก์ ได้แก่:
- การจัดรูปแบบอินพุตของผู้ใช้
- การส่งการสืบค้นไปยัง LLM
- การดึงข้อมูลจากที่เก็บข้อมูลบนคลาวด์
- การแปลจากภาษาหนึ่งไปยังอีกภาษาหนึ่ง
ในกรอบงาน LangChain ลิงก์จะยอมรับอินพุตจากผู้ใช้และส่งไปยังไลบรารี LangChain เพื่อประมวลผล LangChain ยังอนุญาตให้จัดเรียงลิงก์ใหม่เพื่อสร้างเวิร์กโฟลว์ AI ที่แตกต่างกันด้วย
ภาพรวม
หากต้องการใช้ LangChain นักพัฒนาจะติดตั้งเฟรมเวิร์กใน Python ด้วยคำสั่งต่อไปนี้:
pip install langchain
จากนั้นนักพัฒนาจึงใช้ chain building block หรือ LangChain Expression Language (LCEL) เพื่อเขียนเชนด้วยคำสั่งการเขียนโปรแกรมง่ายๆ ฟังก์ชัน chain() จะส่งอาร์กิวเมนต์ของลิงก์ไปยังไลบรารี คำสั่ง execute() จะดึงผลลัพธ์ นักพัฒนาสามารถส่งผลลัพธ์ของลิงก์ปัจจุบันไปยังลิงก์ต่อไปนี้หรือส่งคืนเป็นเอาต์พุตสุดท้ายได้
ด้านล่างนี้เป็นตัวอย่างฟังก์ชันเชนแชทบอทที่ส่งคืนรายละเอียดสินค้าในหลายภาษา
chain([
retrieve_data_from_product_database()
send_data_to_language_model()
format_output_in_a_list()
translate_output_in_target_language()
])
องค์ประกอบหลักของ LangChain คืออะไร
เมื่อใช้ LangChain ทีมซอฟต์แวร์สามารถสร้างระบบโมเดลภาษาแบบรับรู้บริบทด้วยโมดูลต่อไปนี้
อินเทอร์เฟซ LLM
LangChain นั้นมอบ API ที่นักพัฒนาสามารถเชื่อมต่อและสืบค้น LLM จากโค้ดได้ นักพัฒนาสามารถเชื่อมต่อกับโมเดลสาธารณะและที่เป็นกรรมสิทธิ์ เช่น GPT, Bard และ PaLM ด้วย LangChain โดยการเรียกใช้ API แบบง่ายๆ แทนที่จะต้องเขียนโค้ดที่ซับซ้อน
เทมเพลตพร้อมท์
เทมเพลตพร้อมท์ เป็นโครงสร้างที่สร้างไว้ล่วงหน้าที่นักพัฒนาใช้เพื่อจัดรูปแบบการสืบค้นสำหรับโมเดล AI อย่างสม่ำเสมอและแม่นยำ นักพัฒนาสามารถสร้างเทมเพลตพร้อมท์สำหรับแอปพลิเคชันแชทบอท การเรียนรู้แบบไม่กี่ขั้นตอน หรือส่งคำแนะนำเฉพาะไปยังโมเดลภาษา นอกจากนี้ยังสามารถนำเทมเพลตกลับมาใช้ซ้ำกับแอปพลิเคชันและโมเดลภาษาต่างๆ ได้อีกด้วย
เจ้าหน้าที่
นักพัฒนาใช้เครื่องมือและไลบรารีที่ LangChain จัดเตรียมไว้เพื่อเขียนและปรับแต่งเชนที่มีอยู่สำหรับแอปพลิเคชันที่ซับซ้อน เจ้าหน้าที่คือเชนพิเศษที่แจ้งให้โมเดลภาษาตัดสินใจลำดับที่ดีที่สุดเพื่อตอบสนองต่อการสืบค้น เมื่อใช้เจ้าหน้าที่ นักพัฒนาจะให้ข้อมูลของผู้ใช้ เครื่องมือที่มีอยู่ และขั้นตอนกลางที่เป็นไปได้เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ จากนั้น โมเดลภาษาจะส่งกลับลำดับการดำเนินการที่แอปพลิเคชันสามารถทำได้
โมดูลการดึงข้อมูล
LangChain ช่วยให้สามารถออกแบบสถาปัตยกรรมของระบบ RAG ด้วยเครื่องมือมากมายในการแปลง จัดเก็บ ค้นหา และเรียกค้นข้อมูลที่ปรับแต่งการตอบสนองของโมเดลภาษา นักพัฒนาสามารถสร้างการนำเสนอข้อมูลเชิงความหมายด้วยการฝังคำ และจัดเก็บไว้ในฐานข้อมูลเวกเตอร์ภายในเครื่องหรือบนคลาวด์
หน่วยความจำ
แอปพลิเคชันโมเดลภาษาสนทนาบางแอปพลิเคชันจะปรับแต่งการตอบกลับด้วยข้อมูลที่เรียกคืนจากการโต้ตอบในอดีต LangChain ช่วยให้นักพัฒนาสามารถรวมความสามารถด้านหน่วยความจำในระบบของตนได้ โดยรองรับ:
- ระบบหน่วยความจำแบบธรรมดาที่จำการสนทนาล่าสุดได้
- โครงสร้างหน่วยความจำที่ซับซ้อนซึ่งวิเคราะห์ข้อความในอดีตเพื่อให้ได้ผลลัพธ์ที่เกี่ยวข้องมากที่สุด
การเรียกกลับ
การเรียกกลับคือโค้ดที่นักพัฒนาวางไว้ในแอปพลิเคชันของตนเพื่อบันทึก ตรวจสอบ และสตรีมเหตุการณ์เฉพาะในการดำเนินงานของ LangChain ตัวอย่างเช่น นักพัฒนาสามารถติดตามได้ว่าเมื่อใดที่เชนถูกเรียกครั้งแรกและพบข้อผิดพลาดในการเรียกกลับ
AWS จะช่วยเรื่องข้อกำหนด LangChain ของคุณได้อย่างไรบ้าง
เมื่อใช้ Amazon Bedrock, Amazon Kendra, Amazon SageMaker JumpStart, LangChain และ LLM คุณจะสามารถสร้างแอปพลิเคชันปัญญาประดิษฐ์ช่วยสร้าง (AI ช่วยสร้าง) ที่มีความแม่นยำสูงบนข้อมูลองค์กรได้ LangChain เป็นอินเทอร์เฟซที่เชื่อมโยงส่วนประกอบเหล่านี้เข้าด้วยกัน:
- Amazon Bedrock เป็นบริการที่ได้รับการจัดการซึ่งองค์กรต่าง ๆ สามารถสร้างและปรับใช้แอปพลิเคชัน AI ช่วยสร้างได้ คุณสามารถใช้ Amazon Bedrock เพื่อตั้งค่าโมเดลช่วยสร้างที่คุณสามารถเข้าถึงได้จาก LangChain
- Amazon Kendra เป็นบริการที่ขับเคลื่อนด้วยแมชชีนเลิร์นนิง (ML) ซึ่งช่วยให้องค์กรดำเนินการค้นหาภายในได้ คุณสามารถเชื่อมต่อ Amazon Kendra กับ LangChain ได้ ซึ่งจะใช้ข้อมูลจากฐานข้อมูลที่เป็นกรรมสิทธิ์ในการปรับแต่งเอาต์พุตโมเดลภาษา
- Amazon SageMaker Jumpstart เป็นฮับ ML ที่มีอัลกอริทึมที่สร้างไว้ล่วงหน้าและโมเดลพื้นฐานที่นักพัฒนาสามารถปรับใช้ได้อย่างรวดเร็ว คุณสามารถโฮสต์โมเดลพื้นฐานบน SageMaker Jumpstart และแจ้งเตือนจาก LangChain
เริ่มต้นใช้งาน LangChain บน AWS ด้วยการสร้างบัญชีวันนี้