Fabrice AI: การเดินทางทางเทคนิค

ดังที่ฉันได้กล่าวไว้ใน โพสต์ก่อนหน้านี้ การพัฒนา Fabrice AI พิสูจน์แล้วว่าซับซ้อนกว่าที่คาดไว้มาก ซึ่งบังคับให้ฉันต้องสำรวจแนวทางที่แตกต่างกันมากมาย

แนวทางเริ่มต้น: ดัชนีลามะ – การค้นหาเวกเตอร์

การบุกเบิกครั้งแรกของฉันในการปรับปรุงความสามารถในการค้นหาของ Fabrice AI เกี่ยวข้องกับการใช้ดัชนี Llama เพื่อค้นหาเวกเตอร์ แนวคิดนั้นเรียบง่าย: นำเนื้อหาจากบล็อกของฉันมาแปลงเป็นเอกสาร Langchain จากนั้นแปลงเป็นเอกสาร Llama เอกสาร Llama เหล่านี้จะถูกเก็บไว้ในดัชนีเวกเตอร์ ช่วยให้ฉันสามารถค้นหาข้อมูลที่เกี่ยวข้องในดัชนีนี้ได้

อย่างไรก็ตาม เมื่อฉันเริ่มทดสอบระบบ ก็พบว่าแนวทางนี้ไม่ได้ให้ผลลัพธ์ตามที่คาดหวัง โดยเฉพาะเมื่อฉันสอบถามระบบด้วยคำถามที่เน้นบริบท เช่น “ผู้ก่อตั้งตลาดซื้อขายออนไลน์มักทำผิดพลาดครั้งใหญ่ที่สุดอย่างไร” ระบบ AI ไม่สามารถให้คำตอบที่มีความหมายได้ แทนที่จะดึงเนื้อหาที่มีความละเอียดอ่อนซึ่งฉันรู้ว่าฝังอยู่ในข้อมูล ระบบกลับส่งคำตอบที่ไม่เกี่ยวข้องหรือไม่สมบูรณ์กลับมา

ความล้มเหลวเบื้องต้นนี้ทำให้ฉันต้องพิจารณาแนวทางใหม่ ฉันตระหนักว่าการจัดเก็บเนื้อหาในดัชนีเวกเตอร์เพียงอย่างเดียวไม่เพียงพอ กลไกการดึงข้อมูลจำเป็นต้องเข้าใจบริบทและรายละเอียดของคำถามที่ถูกถาม การตระหนักรู้ถึงเรื่องนี้เป็นเพียงบทเรียนแรกจากบทเรียนอื่นๆ มากมายที่จะหล่อหลอมวิวัฒนาการของ Fabrice AI

การจัดเก็บความรู้: การจัดเก็บและดึงข้อมูลเอกสาร MongoDB

เมื่อคำนึงถึงข้อจำกัดของแนวทาง Llama Index ฉันได้พิจารณาจัดเก็บเอกสาร Llama ใน MongoDB ต่อไป โครงสร้างที่ยืดหยุ่นและเน้นเอกสารของ MongoDB ดูเหมือนจะเป็นโซลูชันที่มีแนวโน้มดีในการจัดการเนื้อหาประเภทต่างๆ ที่ฉันสะสมมาหลายปี

แผนคือการสร้างประสบการณ์การค้นหาที่คล่องตัวและตอบสนองได้ดีขึ้น อย่างไรก็ตาม แนวทางนี้ประสบปัญหาอย่างรวดเร็ว ฟังก์ชันการค้นหาซึ่งฉันคาดว่าจะมีประสิทธิภาพมากกว่านี้ กลับไม่ทำงานตามที่คาดไว้ คำถามที่ควรส่งคืนเอกสารที่เกี่ยวข้องกลับไม่ได้ผลลัพธ์หรือเนื้อหาที่ไม่เกี่ยวข้อง

อุปสรรคนี้สร้างความหงุดหงิดใจ แต่ยังเน้นย้ำถึงบทเรียนสำคัญอีกด้วย นั่นคือ วิธีการจัดเก็บมีความสำคัญพอๆ กับกลยุทธ์การดึงข้อมูล ฉันเริ่มพิจารณาตัวเลือกอื่นๆ เช่น การใช้ MongoDB Atlas เพื่อค้นหาเวกเตอร์ ซึ่งอาจให้ความแม่นยำและความสามารถในการปรับขนาดที่ฉันต้องการได้ อย่างไรก็ตาม ก่อนที่จะตัดสินใจเลือกทางเลือกนี้ ฉันต้องการสำรวจแนวทางอื่นๆ เพื่อดูว่าจะมีวิธีแก้ปัญหาที่มีประสิทธิภาพมากกว่านี้หรือไม่

ตัวดึงข้อมูลเมตาและที่เก็บเวกเตอร์: การค้นหาความเฉพาะเจาะจง

แนวทางต่อไปที่ฉันพิจารณาคือการใช้ตัวดึงข้อมูลเมตาที่รวมกับที่จัดเก็บเวกเตอร์ แนวคิดเบื้องหลังแนวทางนี้คือการจัดหมวดหมู่ข้อมูลจำนวนมากภายใน Fabrice AI จากนั้นจึงดึงคำตอบตามหมวดหมู่เหล่านี้ โดยการจัดโครงสร้างข้อมูลด้วยเมตา ฉันหวังว่าจะปรับปรุงความสามารถของ AI ในการให้คำตอบที่เฉพาะเจาะจงและตรงเป้าหมาย

อย่างไรก็ตาม วิธีนี้ยังมีข้อจำกัดอยู่เช่นกัน แม้ว่าจะดูมีแนวโน้มดีในผิวเผิน แต่ AI กลับไม่สามารถให้คำตอบที่ถูกต้องกับคำถามทุกประเภทได้ ตัวอย่างเช่น เมื่อฉันถามว่า “ผู้เขียนมีทัศนคติเชิงบวกหรือไม่” ระบบไม่สามารถตีความคำถามในบริบทของเนื้อหาที่เกี่ยวข้องได้ แทนที่จะให้การวิเคราะห์เชิงลึกตามข้อมูลเมตา ระบบกลับให้คำตอบที่คลุมเครือหรือไม่มีเลย

แนวทางนี้สอนบทเรียนอันมีค่าเกี่ยวกับความสำคัญของบริบทใน AI แก่ฉัน การจัดหมวดหมู่ข้อมูลเพียงอย่างเดียวไม่เพียงพอ AI ยังต้องเข้าใจด้วยว่าหมวดหมู่เหล่านี้โต้ตอบและทับซ้อนกันอย่างไรเพื่อให้เกิดความเข้าใจเนื้อหาที่สอดคล้องกัน หากขาดความเข้าใจเชิงลึกนี้ แม้แต่วิธีการค้นคืนข้อมูลที่ซับซ้อนที่สุดก็อาจล้มเหลวได้

การจัดโครงสร้างความรู้: สรุป TreeIndex

ขณะที่ฉันพัฒนา Fabrice AI ต่อไป ฉันได้ทดลองสร้าง SummaryTreeIndex แนวทางนี้มุ่งเน้นที่จะสรุปเอกสารทั้งหมดในรูปแบบต้นไม้ ช่วยให้ AI สามารถนำทางผ่านบทสรุปเหล่านี้และดึงข้อมูลที่เกี่ยวข้องตามโครงสร้างของเนื้อหาได้

แนวคิดก็คือ AI สามารถระบุประเด็นสำคัญและตอบคำถามด้วยข้อมูลที่กระชับและแม่นยำได้โดยการสรุปเอกสาร อย่างไรก็ตาม วิธีการนี้ยังเผชิญกับความท้าทายที่สำคัญอีกด้วย AI ประสบปัญหาในการให้คำตอบที่มีความหมายต่อคำถามที่ซับซ้อน เช่น “จะตัดสินใจที่สำคัญในชีวิตได้อย่างไร” แทนที่จะดึงเนื้อหาที่เข้มข้นและละเอียดอ่อนซึ่งจัดเก็บไว้ในบทสรุป คำตอบของ AI มักจะตื้นเขินหรือไม่สมบูรณ์

ประสบการณ์นี้เน้นย้ำถึงความยากลำบากในการสร้างสมดุลระหว่างความกว้างและความลึกใน AI แม้ว่าบทสรุปสามารถให้ภาพรวมในระดับสูงได้ แต่บ่อยครั้งที่บทสรุปเหล่านี้ขาดบริบทโดยละเอียดที่จำเป็นต่อการตอบคำถามที่ซับซ้อนกว่านั้น ฉันตระหนักว่าวิธีแก้ปัญหาที่มีประสิทธิภาพใดๆ ก็ตามจะต้องรวมเนื้อหาโดยละเอียดและบทสรุปในระดับสูงเข้าด้วยกัน เพื่อให้ AI สามารถดึงเอาทั้งสองส่วนมาใช้ได้ตามต้องการ

นี่คือสาเหตุที่ในเวอร์ชันของ Fabrice AI ที่กำลังใช้งานอยู่ในปัจจุบัน ฉันจึงให้ AI สรุปคำตอบก่อนที่จะให้รายละเอียดเพิ่มเติม

การขยายขอบเขตความรู้: ดัชนีกราฟความรู้

เมื่อตระหนักถึงข้อจำกัดของวิธีการก่อนหน้านี้ ฉันจึงหันมาใช้วิธีการที่ซับซ้อนกว่า นั่นก็คือ Knowledge Graph Index วิธีนี้เกี่ยวข้องกับการสร้าง Knowledge Graph จากข้อความที่ไม่มีโครงสร้าง ซึ่งทำให้ AI สามารถดำเนินการสอบถามข้อมูลตามเอนทิตีได้ เป้าหมายคือการสร้างความเข้าใจเนื้อหาที่เชื่อมโยงกันและเป็นไดนามิกมากขึ้น ช่วยให้ Fabrice AI สามารถตอบคำถามที่ซับซ้อนและเน้นบริบทได้อย่างมีประสิทธิภาพมากขึ้น

แม้ว่าดัชนีกราฟความรู้จะมีแนวโน้มที่ดี แต่ก็ต้องเผชิญอุปสรรคสำคัญเช่นกัน โดย AI ประสบปัญหาในการสร้างผลลัพธ์ที่แม่นยำ โดยเฉพาะอย่างยิ่งสำหรับแบบสอบถามที่ต้องมีความเข้าใจบริบทอย่างลึกซึ้ง ตัวอย่างเช่น เมื่อถูกถามว่า “การประเมินมูลค่า Seed และ Series A ที่ยุติธรรมคืออะไร” AI ก็ไม่สามารถให้คำตอบที่เกี่ยวข้องได้อีกครั้ง ซึ่งแสดงให้เห็นถึงความยากลำบากในการผสานข้อความที่ไม่มีโครงสร้างเข้ากับกราฟความรู้ที่มีความสอดคล้องกัน

แม้ว่าแนวทางนี้จะไม่ประสบความสำเร็จในที่สุด แต่ก็ให้ข้อมูลเชิงลึกที่สำคัญเกี่ยวกับความท้าทายในการใช้กราฟความรู้ใน AI ความซับซ้อนของข้อมูลและความจำเป็นของบริบทที่แม่นยำ หมายความว่าแม้แต่กราฟความรู้ที่สร้างขึ้นอย่างดีก็อาจประสบปัญหาในการส่งมอบผลลัพธ์ที่ต้องการ ข้อเสียอีกประการหนึ่งของดัชนีกราฟความรู้คือความเร็วที่ช้า เวลาตอบสนองในการรับเอกสารที่เกี่ยวข้องนั้นสูงมากเมื่อเทียบกับดัชนีการจัดเก็บเวกเตอร์

การประเมินข้อมูลใหม่: ราศีเมถุน

หลังจากประสบปัญหาหลายครั้ง ฉันจึงตัดสินใจใช้แนวทางที่แตกต่างออกไปโดยใช้ประโยชน์จาก AI ของ Google ที่ชื่อว่า Gemini แนวคิดคือการสร้างชุดข้อมูลจากไฟล์ JSON-CSV จากนั้นจึงฝึกโมเดล LLM ที่กำหนดเองโดยใช้ข้อมูลนี้ ฉันหวังว่าการใช้ข้อมูลที่มีโครงสร้างและโมเดลการฝึกที่มีประสิทธิภาพจะช่วยให้ฉันเอาชนะความท้าทายบางประการที่รุมเร้าความพยายามก่อนหน้านี้ได้

อย่างไรก็ตาม แนวทางนี้ยังคงประสบปัญหาอยู่เช่นกัน กระบวนการฝึกอบรมหยุดชะงักเนื่องจากการจัดรูปแบบข้อมูลไม่ถูกต้อง ซึ่งทำให้ไม่สามารถฝึกอบรมโมเดลได้อย่างมีประสิทธิภาพ ความล้มเหลวนี้เน้นย้ำถึงความสำคัญของความสมบูรณ์ของข้อมูลในการฝึกอบรม AI หากไม่มีการจัดรูปแบบและโครงสร้างข้อมูลที่เหมาะสม แม้แต่โมเดลขั้นสูงที่สุดก็อาจทำงานไม่เป็นไปตามที่คาดหวัง

ประสบการณ์นี้ทำให้ฉันได้พิจารณาถึงศักยภาพของการใช้ BigQuery ในการจัดเก็บข้อมูล JSON โดยให้แพลตฟอร์มที่ปรับขนาดได้และเชื่อถือได้มากขึ้นสำหรับการจัดการชุดข้อมูลขนาดใหญ่ที่จำเป็นในการฝึก Fabrice AI ได้อย่างมีประสิทธิภาพ

การรวมจุดแข็ง: เอกสาร Langchain กับ Pinecone

แม้ว่าจะต้องเผชิญกับความท้าทายต่างๆ มากมาย แต่ฉันก็ยังมุ่งมั่นที่จะค้นหาวิธีแก้ปัญหาที่จะช่วยให้ Fabrice AI สามารถจัดเก็บและดึงความรู้ได้อย่างมีประสิทธิภาพ การตัดสินใจครั้งนี้ทำให้ฉันได้ทดลองใช้เอกสาร Langchain และ Pinecone แนวทางนี้เกี่ยวข้องกับการสร้างที่เก็บเวกเตอร์ Pinecone โดยใช้เอกสาร Langchain และการฝัง OpenAI จากนั้นจึงดึงเอกสารที่คล้ายคลึงกันอันดับต้นๆ ตามแบบสอบถาม

วิธีการนี้ดูมีแนวโน้มดี โดยเฉพาะเมื่อแบบสอบถามมีชื่อเอกสารรวมอยู่ด้วย ตัวอย่างเช่น เมื่อถูกถามว่า “กุญแจสู่ความสุขคืออะไร” AI ก็สามารถดึงข้อมูลและสรุปเนื้อหาที่เกี่ยวข้องได้อย่างถูกต้อง อย่างไรก็ตาม ยังมีข้อจำกัดอยู่บ้าง โดยเฉพาะเมื่อแบบสอบถามขาดคำสำคัญหรือชื่อเอกสารที่เฉพาะเจาะจง

แนวทางนี้แสดงให้เห็นถึงศักยภาพของการผสมผสานเทคโนโลยีต่างๆ เพื่อปรับปรุงประสิทธิภาพของ AI ด้วยการบูรณาการเอกสารของ Langchain เข้ากับคลังเวกเตอร์ของ Pinecone ฉันสามารถปรับปรุงความเกี่ยวข้องและความแม่นยำของการตอบสนองของ AI ได้ แม้ว่าจะมีข้อจำกัดบางประการก็ตาม

การบรรลุความสม่ำเสมอ: GPT Builder OpenAI

หลังจากสำรวจวิธีการและเทคโนโลยีต่างๆ แล้ว ฉันจึงหันมาใช้ GPT Builder ของ Open AI เพื่อรวบรวมและปรับแต่งความรู้ที่จัดเก็บไว้ภายใน Fabrice AI ด้วยการอัปโหลดเนื้อหาทั้งหมดลงในฐานความรู้ GPT ฉันจึงตั้งเป้าที่จะสร้างแพลตฟอร์มที่สอดคล้องและเชื่อถือได้มากขึ้นสำหรับการดึงข้อมูลและโต้ตอบกับความรู้ของฉัน

แนวทางนี้ได้รับการพิสูจน์แล้วว่าเป็นหนึ่งในแนวทางที่ประสบความสำเร็จมากที่สุด โดย AI สามารถให้ผลลัพธ์ที่ดีขึ้นได้จากการสอบถามข้อมูลต่างๆ กุญแจสำคัญของความสำเร็จนี้คือการรวมความรู้ทั้งหมดเข้าไว้ในระบบเดียวที่เชื่อมโยงกัน ทำให้ AI สามารถดึงเอาเนื้อหาทั้งหมดมาใช้เมื่อตอบคำถาม

ตามที่ได้กล่าวไว้ในโพสต์ก่อนหน้านี้ ฉันไม่สามารถเรียกใช้งานโปรแกรมนี้บนเว็บไซต์ของฉันได้ และโปรแกรมนี้มีให้เฉพาะสมาชิกที่ชำระเงินของ Chat GPT เท่านั้น ซึ่งฉันรู้สึกว่าจำกัดเกินไป นอกจากนี้ แม้ว่าโปรแกรมนี้จะดีกว่า แต่ฉันก็ยังไม่ชอบคุณภาพของคำตอบ และไม่สะดวกใจที่จะเผยแพร่ให้สาธารณชนได้ใช้

การปรับปรุงขั้นสุดท้าย: ผู้ช่วย GPT ที่ใช้โมเดล 4o

ชิ้นส่วนสุดท้ายของการพัฒนา Fabrice AI มาพร้อมกับการแนะนำ ผู้ช่วย GPT โดยใช้ Model 4o แนวทางนี้ถือเป็นจุดสุดยอดของทุกสิ่งที่ผมได้เรียนรู้ตลอดทั้งโครงการ ด้วยการใช้ฐานข้อมูลเวกเตอร์และปรับแต่งคำแนะนำ ผมตั้งเป้าที่จะบรรลุระดับความแม่นยำสูงสุดและความเข้าใจเชิงบริบทในคำตอบของ AI

วิธีการนี้เกี่ยวข้องกับการอัปโหลดความรู้ทั้งหมดที่ฉันสะสมไว้ในฐานข้อมูลเวกเตอร์ ซึ่งต่อมาจะถูกใช้เป็นพื้นฐานสำหรับการโต้ตอบของ AI ฐานข้อมูลเวกเตอร์ช่วยให้ AI สามารถค้นหาข้อมูลที่ซับซ้อนมากขึ้น โดยดึงข้อมูลตามความหมายเชิงความหมายของแบบสอบถามแทนที่จะต้องพึ่งพาการจับคู่คำหลักเพียงอย่างเดียว ซึ่งถือเป็นความก้าวหน้าที่สำคัญเมื่อเทียบกับวิธีการก่อนหน้านี้ ทำให้ AI สามารถเข้าใจและตอบสนองต่อคำถามที่ซับซ้อนและมีรายละเอียดได้ดีขึ้น

นวัตกรรมสำคัญประการหนึ่งของแนวทางนี้คือการปรับแต่งคำกระตุ้นอย่างระมัดระวัง โดยการสร้างและทดสอบคำกระตุ้นต่างๆ อย่างพิถีพิถัน ฉันสามารถชี้นำ AI ให้ให้คำตอบที่แม่นยำและเกี่ยวข้องมากขึ้น ซึ่งไม่เพียงแต่ต้องปรับเปลี่ยนคำกระตุ้นเท่านั้น แต่ยังต้องทดลองใช้วิธีต่างๆ ในการจัดโครงสร้างคำถามเพื่อให้ได้คำตอบที่ดีที่สุดอีกด้วย

ผลลัพธ์ที่ได้นั้นน่าประทับใจมาก ตอนนี้ AI สามารถจัดการกับคำถามที่หลากหลายได้อย่างแม่นยำ แม้ว่าคำถามเหล่านั้นจะเป็นคำถามปลายเปิดหรือต้องการความเข้าใจบริบทอย่างลึกซึ้งก็ตาม ตัวอย่างเช่น เมื่อถูกถามว่า “จะตัดสินใจเรื่องที่สำคัญที่สุดในชีวิตของคุณอย่างไร” AI จะให้คำตอบที่ครอบคลุมและมีประโยชน์ โดยใช้แหล่งข้อมูลและมุมมองที่หลากหลายเพื่อให้ได้คำตอบที่ครอบคลุม

ความสำเร็จนี้เป็นผลจากการทำงานหลายร้อยชั่วโมงและการทดลองนับไม่ถ้วน ซึ่งแสดงให้เห็นว่าด้วยการผสมผสานเทคโนโลยีและการปรับแต่งที่เหมาะสม ทำให้สามารถสร้าง AI ที่ไม่เพียงแต่จัดเก็บและเรียกค้นข้อมูลได้อย่างมีประสิทธิภาพเท่านั้น แต่ยังทำงานร่วมกับข้อมูลได้อย่างมีความหมายอีกด้วย การพัฒนา GPT Assistants โดยใช้ Model 4o ถือเป็นจุดที่ Fabrice AI ก้าวขึ้นมาเป็นของตัวเองอย่างแท้จริง โดยบรรลุถึงระดับความซับซ้อนและความแม่นยำที่ฉันจินตนาการไว้ตั้งแต่แรก จากนั้น GPT Assistants API จึงถูกผสานรวมเข้ากับบล็อกของฉันเพื่อให้ผู้ใช้ปลายทางสามารถโต้ตอบกับ Fabrice AI ได้ในลักษณะที่คุณเห็นในบล็อกตอนนี้

การไตร่ตรองถึงการเดินทาง

กระบวนการพัฒนา Fabrice AI เน้นย้ำถึงความซับซ้อนของการทำงานกับ AI โดยเฉพาะอย่างยิ่งเมื่อต้องทำความเข้าใจและจัดบริบทข้อมูล กระบวนการนี้สอนฉันให้รู้ว่าการพัฒนา AI ไม่มีทางลัด ทุกขั้นตอน ทุกการทำซ้ำ และทุกการทดลองล้วนเป็นส่วนสำคัญในการเดินทางสู่การสร้างสรรค์สิ่งที่มีประสิทธิผลอย่างแท้จริง

เมื่อมองไปข้างหน้า ฉันรู้สึกตื่นเต้นที่จะได้ปรับปรุงและขยาย Fabrice AI ต่อไป ดังที่ได้กล่าวไว้ในโพสต์ก่อนหน้านี้ ฉันจะทบทวนคำถามที่ถามเพื่อทำให้ฐานความรู้สมบูรณ์ขึ้นในส่วนที่ยังขาดอยู่ นอกจากนี้ ฉันยังหวังว่าจะสามารถเผยแพร่เวอร์ชันโต้ตอบที่มีลักษณะและเสียงเหมือนฉันในที่สุด ซึ่งคุณสามารถพูดคุยด้วยได้

>