Vector Database Fundamentals — Transcript
Full transcript
- 0:00สวัสดีครับผมสุรศักดิ์อัครมณพงษ์นะครับ
- 0:02เทคนicalโค้ชจาก alve และ tus by
- 0:04กรุงไทยวันนี้จะมาสอนเรื่องเวกเตอร์
- 0:06database เป็นเรื่องที่พี่ต้องการจะสอน
- 0:10กับพวกเราไปตั้งนานแล้ว AI เนี่ยเป็นแฟน
- 0:12พัฒนาที่เร็วมากเราตามกันแทบจะไม่ทันเรา
- 0:15เลยลืมหลงลืมเรื่องของ Fundamental พี่
- 0:17เลยขอย้อนกลับมาสู่ Back to the Basic
- 0:20นิดนึงวันนี้เลยขอกลับย้อนกลับมาในเรื่อง
- 0:22ของ Vector Database ทำไมต้องเป็น vector
- 0:24database ถ้าเราเปรียบเทียบภูเขาน้ำแข็ง
- 0:28การที่เราใช้ database แบบเดิมหรือ
- 0:31traditional database เนี่ยมันอยู่ที่
- 0:3320% ด้านบนเท่านั้นเองคือเป็น structure
- 0:36data คือ data ที่เรามีโครงสร้าง table
- 0:39กันอยู่แล้วเราใช้ภาษา SQL ในการ data
- 0:42พวกนั้นขึ้นมาแต่มันมี data อีกมากมาย
- 0:44ครับที่ไม่สามารถเก็บเป็นแบบ structure
- 0:46data ได้เขาเรียกว่า unstructure data
- 0:49มันคือใต้ภูเขาน้ำแข็งอีก 80% ด้านล่าง
- 0:51ซึ่งมันเป็นพวก PDF ไฟ Word Document
- 0:55Space Sheet Presentation Social
- 0:57Media Post หรือแม้กระทั่งเป็นพวก
- 0:59หนังสือเอกสารต่างๆที่เราไม่สามารถจับยัด
- 1:01ลง table ของ SQL database ได้นี่คือ
- 1:04flow ของเราที่เราจะทำกันในวันนี้แค่นี้
- 1:06เองครับเราจะมี data เราใช้การกระทำด้วย
- 1:10แล้วก็มาแปลงเป็นเวกเตอร์เพื่อเก็บเราจะ
- 1:13เก็บไว้ที่ไหนล่ะเราจะเก็บไว้ที่ SQL
- 1:15database ใช่ไหมไม่ใช่เราต้องเลือกใช้
- 1:18วิธีการเก็บแบบใหม่คือการเก็บลงเป็น
- 1:20เวกเตอร์ database นั่นเองเวกเตอร์คือ
- 1:22อะไรเวกเตอร์ก็คือตัวเลขที่มีมิติยกตัว
- 1:25อย่างเช่น array ที่เราเคยเรียน
- 1:26โปรแกรมมิ่งกันมา Array 2 มิติอ 3 มิติ
- 1:29เป็นจุดๆๆๆเข้าไปแล้วเราก็พเป็นตัวเลขออก
- 1:32มายกตัวอย่างเช่นถ้าเกิดคุณมี unstructure
- 1:35data ประเภทนี้อยู่ในมือคุณต้องการจะ
- 1:37แปลงพวกนี้เก็บลง database ทำไงคุณคงเก็บ
- 1:39ลง database ไม่ได้คุณจะคี่ยังไงเพื่อจะ
- 1:41หาของที่เหมือนๆกันแบบนี้ได้เราต้องแปลง
- 1:44ไปเป็นเวกเตอร์ก่อนมาเรามาลองแปลง data
- 1:47เป็นเนี้ยให้เป็นเวกเตอร์กันเพื่อเก็บลง
- 1:49database กันดีกว่าทำไงดีเราจะมองมันว่า
- 1:53มันมีcทeriaอะไรบ้างแล้วแปลงมันเป็นตัว
- 1:55เลขให้หมดถ้าพี่มองตรงนี้พี่ขอตีความกัน
- 1:58ว่าภาพพวกเนี้ยมันมี 3 สิ่งเนี้ยคล้ายๆ
- 2:01กันก็คือสีเชฟแล้วก็ความยาว 3 อย่างนี้
- 2:05พี่มองเป็นของ 3 มิติแล้วกันเราเรียกว่า
- 2:08diension อจectที่ 1 ตัวสีแดงเนี่ยมัน
- 2:10คือมีสีเป็นสีแดงมันมีเชฟเป็นวงกลมมันมี
- 2:14เลงคือเป็นเรเดียสรัศมี 5 ซม.เราแปลงมัน
- 2:17เป็นตัวเลขก่อนอันที่ 2 มันเป็นสี่
- 2:19เหลี่ยมใช่ไหมก็คือสีบูue shap เป็น
- 2:21square แล้วมันมีไซส์คือ 10 อันที่ 3
- 2:25เหลี่ยมเป็นสีเขียวgreีนมีเป็นรูปสาม
- 2:27เหลี่ยม triangle มีเบสคือฐานและมีความ
- 2:30สูงคือ 6 ต่อมาวงกลมคือสีเหลืองเป็นวงกลม
- 2:33circle มีรัศมีคือ 7 ซม.สุดท้ายคือสี่
- 2:36เหลี่ยมสีแดงsแวร์มีไซส์ก็คือมีด้านละ 5
- 2:40ซม.ทั้งหมดเนี้ยเราแปลงเป็นแบบนี้ก่อน
- 2:42เพื่อจัดหมวดหมู่มันสังเกตว่าบางสิ่งบาง
- 2:45อย่างมันมีตัวเลขอยู่แล้วคำนวณเป็น
- 2:47คณิตศาสตร์ได้แต่บางสิ่งบางอย่างมันยัง
- 2:49เป็นตัวอักษรมันยังไม่เป็นตัวเลขเราก็
- 2:51ต้องแปลงมันเป็นตัวเลขก่อนเนาะพี่จะลอง
- 2:53เปลี่ยนจากสีแดงให้กลายเป็นเลข 1 เปลี่ยน
- 2:55สีฟ้าให้เป็นเลข 2 สีเขียวให้เป็นเลข 3
- 2:58สีเหลืองให้เป็นเลข 4 เชฟวงกลมให้เป็นเลข
- 3:011 sแคareสี่เหลี่ยมให้เป็นเลข 2 แล้วก็
- 3:03trangle สามเหลี่ยมให้เป็นเลข 3 ซะพอ
- 3:06แปลงเสร็จแสดงว่าเราสามารถที่จะทำให้ทุก
- 3:08อย่างเป็นตัวเลขได้หมดแล้วเรามาแปลงกัน
- 3:10obจectอันที่ 1 เนี่ยมันคือสีแดงใช่มั้ก็
- 3:13แปลงเป็น 1 ซะอันนี้เป็น 2 เป็น 3 เป็น 4
- 3:15แล้วเป็น 1 นะเหมือนกันครับเชฟก็คือแปลง
- 3:17เป็น 1 เป็น 2 เป็น 3 เป็น 1 เป็น 2 ส่วน
- 3:20เลงมันมีอยู่แล้วเป็นตัวเลขอยู่แล้วแล้ว
- 3:22สามารถใส่ได้เลยแต่ปัญหาของมันก็คือว่า
- 3:24ไอ้ตัวหมายเลข 3 เนี่ยมันไม่ค่อยแมตชกับ
- 3:26คนอื่นเพราะว่ามันมีฐานและส่วนสูงด้วยมัน
- 3:28มี 2 ตัวเลขอันเนี้ยทำไงดีเราต้องตัดครับ
- 3:31ของบางสิ่งบางอย่างแล้วไปซะที่จะเป๊ะมัน
- 3:33100% ได้เราจะตัดบางอย่างผมเก็บเป็นฐาน
- 3:36ก็พอเพราะอันนี้มันเกินมาเราจะตัดตัวความ
- 3:39สูงทิ้งก็กลายเป็นว่าพี่แปลงทุกอย่างจาก
- 3:42objectจตัวเนี้ยที่เป็นภาพเนี่ยให้กลาย
- 3:44เป็นตัวเลขแบบนี้ได้โดยที่เราจะใช้เป็น
- 3:47เวกเตอร์ represent มันเป็น TD array ก็
- 3:49คือ 1 5 2 10 3 8 ตัด 6 ทิ้งไม่เอา 4
- 3:551 7 1 2 5 นี่คือตัวเวกเตอร์ของเรา
- 3:59พอเราได้ TDR เราจะเก็บลง database กันลง
- 4:02database ปกติ SQL ได้มได้แต่คำถามคือ
- 4:05คุณจะคี่ยังไงอ่ะเพื่อจะถามว่าของสิ่งนี้
- 4:08อยู่ที่ไหนคืออะไรเหมือนกันมั้ย
- 4:10similarity คือค้นหาความเหมือนไม่ได้นี่
- 4:13คือตัวเลขธรรมดามนุษย์อ่านไม่ออกอยู่แล้ว
- 4:15เราต้องเอาตรงเเก็บลงเวกเตอร์ database
- 4:17แต่ก่อนจะเก็บลงเวกเตอร์ database นั้น
- 4:19คุณต้องอาศัยความสามารถของ database นิด
- 4:21นึงครับก็คือการทำ indexing มันมี
- 4:23algoritm ตัวนึงครับชื่อว่า higher
- 4:25navigable small world snw มันเป็น
- 4:29algoritึมในการสร้างโรคการเก็บเวกเตอร์
- 4:31ขึ้นมาเราคงไม่ต้องลงลึกกับมันนะเพราะเรา
- 4:33ก็ไม่รู้เหมือนกันยกตัวอย่างเช่นไอ้ภาพ
- 4:36เนี้ยมันเก็บอยู่ในเวกเตอร์ database ละ
- 4:37เราอยากจะทำการค้นหาบ้างบอกผมมีภาพอยู่
- 4:40ภาพนึงเป็นวงกลมที่มีขนาดรัศมี 4 ซม.สี
- 4:44แดงจะค้นหาว่าของสิ่งเนี้ยมีอะไรบ้างใน
- 4:47datาเราที่มันใกล้เคียงที่สุดคุณช่วยค้น
- 4:49หาให้เราหน่อยสังเกตมั้ยเราไม่ได้ค้นหา
- 4:51มันเป๊ะๆเราค้นหาด้วยความเหมือนอะไรที่
- 4:54เหมือนที่สุดกับรูปนี้วิธีการก็คือเราก็
- 4:57จะทำการ mb ก็เเรียก mb ก็คือการแปลงรูป
- 4:59นี้ให้มันมีความหมายในรูปร่างของเวกเตอร์
- 5:02เอาเวกเตอร์มา represent มันเมื่อกี้เรา
- 5:03ตั้งกดไว้แล้วใช่มั้สีแดงก็คือ 1 ใช่มเชฟ
- 5:06วงกลมก็คือ 1 สุดท้าย 4 ก็คือรัศมีเป็น
- 5:09114 เรา mb ได้เวกเตอร์มาแล้วเราจะทำการ
- 5:12เสิรชไปที่เวกเตอร์ database ตัวนี้เรา
- 5:15เสิร์ชยังไงอ่ะเรามองด้วยตาเปล่าเนี่ยเรา
- 5:17รู้เลยว่าไอ้วงกลมสีแดงแน่นอนมันต้องออก
- 5:19มาถูกป่ะในโลกของเวกเตอร์มันก็คือ array
- 5:22เมื่อกี้เป็น array 3 มิติอันนี้พี่ยก
- 5:24ตัวอย่างเช่น 2 มิติก่อนแล้วกันเพื่อความ
- 5:26ง่ายเรามีวิธีการคำนวณหาด้วยกันหลายเวที
- 5:28แต่พี่ขอยกตัวอย่างไปแค่ 2 วิธีพอวิธีแรก
- 5:31เเรียกว่า equient distance วิธีที่ 2
- 5:33เรียกว่า cosine similarity equient
- 5:36distance มันจะคำนวณระยะห่างระหว่างจุด
- 5:38เวกเตอร์ทั้ง 2 จุดนี้นี่คือ x และ y
- 5:41array 2 มิติที่มีจุด 2 จุดจุด
- 5:43equivalent คือระหว่างจุดกับจุดหาระยะ
- 5:45ห่างของมันแบบที่ 2 เเรียกว่า cosine
- 5:47simulity คือดูจากองศาของมันอ่ารู้จัก
- 5:50การทำ cos ใช่มยอ่ะโอเคมาดูสูตรกันครับ
- 5:53ถ้าเป็นสูตรของการequiียนเอาระหว่างจุด 2
- 5:56จุด x2 - x1 ^ 2 + y2 - y1 ^ 2
- 6:00เอามาsแ√roูได้ distance ทันทีซึ่งเดี๋ยว
- 6:02คำนวณมือกันนะต่อไปส่วน cos คืออะไรครับ
- 6:05ยกตัวอย่างเช่นเค้าเบอกให้กดกดมือซ้าย
- 6:07เพราะมันองศาตรงเนี้ยมันห่างอยู่ที่ 90
- 6:10องศก่อนคุณยกมือซ้ายมานะถ้าถ้าเกิดว่าคุณ
- 6:13ต้องการจะเป็น 0 องศาคือนิ้วโป้ง 90 องศ
- 6:16คือนิ้วก้อยวิธีการก็คือนับนิ้วแล้วใส่
- 6:19ส่ว2อ่ะผมเอา 90 องศก่อน 90 องศผมห 6
- 6:24นิ้วทั้งหมด 4 นิ้วหรือนิ้วก้อยทางขวามือ
- 6:27ของผมเนี่ยมีนิ้วมยไม่มีคือ 0 ใช่มยก็คือ
- 6:29√ 0/2 คือ 0 แต่ถ้าเกิดผมเป็น 0 องศา
- 6:33คือนิ้วโป้งใช่มั้ดูนิ้วโป้งผมมีนิ้ว
- 6:35เหลือทางขวามือตรงนี้เหลือ 4 นิ้วก็จะ
- 6:37เป็น √2 ก็คือเป็น 1 อ่านี่คือ cos cos
- 6:41นับนิ้วทางขวา sin นับนิ้วทางซ้ายนั่น
- 6:44หมายความว่าการใช้สูตร cos หาระยะห่างของ
- 6:47มันเนี่ยมันจะมีค่าแค่ 0-1 เท่านั้นไม่
- 6:52เหมือน distance คำนวณเป็นระยะทางอาจจะมี
- 6:54เกิน 1 ได้ใหญ่เท่าไหร่ก็ตามก็มากไป
- 6:56เรื่อยๆก็แล้วแต่นะว่าคุณจะเลือกใช้วิธี
- 6:59ไหนเดี๋ยวตอนเราเขียนโค้ดเนี่ยพี่จะให้
- 7:01คุณเลือกด้วยว่าคุณอยากใช้วิธีไหนในการ
- 7:02ค้นหาโอเคมาเรามาเริ่มคำนวณกันดีกว่าพี่
- 7:06ลองคำนวณสูตรแรกกันก่อนคือสูตรของ equient
- 7:08distance สูตรเป็นงี้ครับจุดที่ 2 ลบจุด
- 7:11จุดที่ 1 ^ 2 บวกจุดที่ 2 - จุดที่ 1
- 7:15ก^ลัง 2 แล้วใส่ √ เข้าไปพี่จะลองเอาจุด
- 7:18ระหว่างจุดแดงกับจุดเหลืองก่อนคือ 1 2
- 7:22กับ 1 4 วิธีการคำนวณก็คือว่า √ จุดที่ 2
- 7:25ก็คือ 1 ใช่มย 1 - 1 เหลือ 0 ^ 2 ได้
- 7:290 4 - 2 คือ 4 ตรงนี้ -2 ตรงนี้กำลัง
- 7:332 ก็คือ 4 - 2 ได้ 2 ^ 2 ได้ 4 4
- 7:36คือ √4 √4 ถอด √ มาเหลือ 2 นี่คือระยะ
- 7:40ห่างระหว่างจุดแดงกับจุดเหลืองอยากรู้ม
- 7:42ว่าแดงกับเหลืองกับแดงกับฟ้าใครไกลกว่า
- 7:45กันหาต่อครับเอาแดงกับฟ้ามาคำนวณถอดสูตร
- 7:49ออกมาปุ๊บคำนวณตามนี้จะได้ √8 2.82 ถ้า
- 7:54คุณมองด้วยตาเปล่าคุณจะเห็นว่าสีฟ้ามัน
- 7:56ไกลกว่าจริงถูกมั้ก็ถูกต้องคำนวณมาแล้ว
- 7:59ได้ 2.82 82 ซึ่งไกลกว่าจุดสีเหลืองแน่
- 8:01นอนในโลกของเวกเตอร์มันเลยรู้ว่าไอ้ของ 2
- 8:05จุดเนี้ยที่คุณพลตอลงไปในเวกเตอร์เนี่ย
- 8:07อะไรที่อยู่ห่างกันถือว่าความเหมือนอาจจะ
- 8:09น้อยกว่าถูกมั้อะไรที่อยู่ใกล้กันความ
- 8:12เหมือนก็จะใกล้กว่างั้นตอนที่เขาสร้างโรค
- 8:14เวกเตอร์เนี่ยเขาก็จะใช้ตัว embeding
- 8:16model เนี่ยในการคำนวณว่าอะไรที่เหมือนๆ
- 8:18กันเช่นปลาที่เป็นอะไรที่เป็นตระกูลปลา
- 8:21ทั้งหมดก็อยู่ในตระกูลเดียวกันพวกสัตว์
- 8:23น้ำอาจจะอยู่ในกลุ่มของสัตว์น้ำกลุ่ม
- 8:25เดียวกันพอเป็นสัตว์ปีกก็จะเป็นกลุ่มของ
- 8:27สัตว์ปีกกลุ่มเดียวกันอาจจะห่างห่างออกไป
- 8:29หน่อยคนอาจจะห่างออกจากกลุ่มของสัตว์นิด
- 8:32นึงพอเขาพอตแบบนี้ปุ๊บพอเขามาหาระยะห่าง
- 8:34ระหว่างคนกับสัตว์ก็ห่างกว่าถูกมยเวลาเรา
- 8:37ค้นหาอะไรที่มันเหมือนกันเช่นหาสัตว์น้ำ
- 8:39มันก็จะในกลุ่มของสัตว์น้ำที่มันมีจุด
- 8:41distance ที่ใกล้กว่ากันอย่างนี้เป็นต้น
- 8:43นี่คือการคำนวณหาตัวคือ equivalent
- 8:45distance อันนี้คือแบบ 2D ถ้าเกิดเป็น 3D
- 8:47อ่ะอย่างเมื่อกี้นี้เราเป็น 3D ใช่มยเรา
- 8:49คือเราใช้เป็น 3D เวกเตอร์หลักการเดียว
- 8:52กันก็คือเค้าก็จะไปเพิ่มจากแค่คุณไปบวก xy
- 8:56แล้วไปบวกที่ z ต่ออีกไปเรื่อยๆจากนี้ต่อ
- 8:58ต่อไปผมมีเวกเตอร์ขนาด 4 มิติคุณก็เพิ่ม
- 9:02ไปสิ 5 มิติ 5 diensชัก็เพิ่มไปเรื่อยๆ 6
- 9:05diensชัก็เพิ่มไปเรื่อยๆนี่คือคุณก็คำนวณ
- 9:06ได้อยู่แล้วใช้สูตรเดิมแค่เพิ่มจำนวนจุด
- 9:09เข้าไปยกตัวอย่างเช่นอันนี้ระหว่างจุดแดง
- 9:11กับจุดเหลืองอีกแล้วแดงกับเหลืองคุณก็แค่
- 9:13เอาเข้าสูตรตามนี้จะเห็นว่ามันคือมันอยู่
- 9:15ที่ 2.44 พอเป็นแดงกับฟ้าคือ 3.16 16
- 9:19ซึ่งก็ไก่เราคำนวณดูก็จะรู้ว่าความเหมือน
- 9:21ความต่างมันอยู่ตรงไหนหลักการคือประมาณ
- 9:23นี้นี่คือสิ่งที่โลกของเวกเตอร์ database
- 9:26เทำกันเราก็จะได้ของมาตามนี้ครับลองดู
- 9:28ครับคุณเอาตรงนี้ไปเข้าสูตรคำนวณกับ 114
- 9:32พอคำนวณเสร็จปุ๊บคนที่ใกล้เคียงสุดก็คือ
- 9:34หมายเลข 1 คือได้ 1 ระยะทาง distance คน
- 9:37ที่ใกล้เคียงอันดับ 2 คือหมายเลข 5
- 9:38สังเกตมั้ยพอคำนวณคณิตศาสตร์ปุ๊บ 5 ไม่
- 9:40ใกล้เคียงสุดเพราะมันเป็นสีแดงระยะห่าง
- 9:43มัน 5 ไอ้นี่มัน 7 ไง 7 มันห่างกว่าถูก
- 9:45ป่ะไอ้แต่นี่มันกับสีแดงด้วยมันเข้าแคป 2
- 9:47อย่างมันก็ก็เลยเข้าใกล้อันดับ 2 ก็คือ √2
- 9:50เป็น 1.4 อันดับ 3 คือหมายเลข 4 ทำไมถึง
- 9:53ใกล้เคียงเพราะมันเป็นวงกลมไงมันเริ่ม
- 9:54เข้าใกล้เคียงแล้วก็คือ s มาเป็นอันดับ 3
- 9:57ต่อมาก็คือหมายเลข 3 ก็คือสามเหลี่ยมตรง
- 9:59นั้นเพราะว่าไอ้เมื่อกี้มัน 4 ใช่มั้ยนี่
- 10:01คือ 8 มันใกล้เคียงกว่า 10 ไงสุดท้ายอัน
- 10:04นี้ครับห่างสุดเลยเพราะว่าหมายเลข 2
- 10:05เนี่ยมันเป็นสี่เหลี่ยมไม่มีอะไรเข้าใกล้
- 10:07เลยไซส์มันก็คือ 10 ซม.ซึ่งไกลกว่าคนอื่น
- 10:09ด้วยสังเกตมั้ยว่าหลักการเนี้ยมันพอที่จะ
- 10:12มาใช้ในการค้นหาสิ่งของที่ใกล้เคียงกัน
- 10:14ได้นั่นเองนะงั้นเราก็เข้าสู่เรื่องของ
- 10:17เราต่อไปเลยครับก็คือเรื่องของเวกเตอร์
- 10:18database วันนี้เราจะมาลองใช้ database
- 10:21เพื่อเก็บของสิ่งๆนั้นกันแล้วเราจะดูซิ
- 10:23ว่าเราจะค้นหาของสิ่งที่ใกล้เคียงแบบนี้
- 10:26ได้เหมือนกันกับเขามยง่ายมั้เขียนโปรแกรม
- 10:28กับมันจะยากมยแล้วมันบอกว่ามันเป็น
- 10:30database for the AI ด้วยเพราะเรา
- 10:32ต้องใช้มันในการช่วย AI ในการค้นหาของ
- 10:34ก่อนที่เราจะไปเลือก Database ได้นั้นเรา
- 10:36มาดูจัด Ranking กันหน่อยอันดับ 1 หนีไม่
- 10:39พ้น electric search แต่ electric
- 10:41search ไม่ใช่เวกเตอร์เพียวมันเป็น
- 10:44multimel มันคือสิ่งที่มันทำเวกเตอร์ได้
- 10:47แต่มันทำอย่างอื่นได้ด้วย 2 คือ open
- 10:49search transbase kdb แต่ตัวที่เป็น
- 10:52เวกเตอร์peวทำมาเพื่อเวกเตอร์ database
- 10:54โดยตรงเลยก็คือpายอันดับ 5 ต่อมา arrow
- 10:57spike milวใช่มไม่แน่ใจอ่านไงมีwูตัวนี้
- 11:01เขียนด้วยภาษา go อยู่อันดับ 7 เขียนด้วย
- 11:04rus อยู่อันดับ 8 แล้วก็ตัวนี้อันดับ 11
- 11:08วันนี้ที่พี่จะเลือกมาสอนคุณเนี่ยจะมี
- 11:10Chroma DB แล้วก็ QD พายคนไม่ได้มาสอน
- 11:14เพราะว่าPคนไม่ใช่ Open Source แล้วดู
- 11:16จากตรงนี้ครับกลุ่มตรงนี้ครับคือกลุ่มของ
- 11:18open source แถวบนนะ Open Source แถว
- 11:20ล่างก็คือ Commercial คือเขา้าไม่ได้ Open
- 11:22Source เอาไปใช้มีข้อจำกัดอยู่ส่วนด้าน
- 11:24ซ้ายเป็น database ที่ออกแบบมาเพื่อ
- 11:26เวกเตอร์โดยตรงด้านขวาคือ database ที่
- 11:29สามารถทำเวกเตอร์ได้งานหลักเขาคืออย่าง
- 11:31อื่นตัวนี้ DB ที่พี่เลือกใช้เพราะว่ามัน
- 11:34เป็น open source แล้วก็ Qance ตัวที่
- 11:36พี่เลือกใช้ตัวนี้ 2 ตัววันนี้จะมาสอนแต่
- 11:39ว่าสิ่งที่อยู่นอกเหนือจากที่อยู่ในตาราง
- 11:42เมื่อกี้ก็คือพี่ขอเริ่มจาก SQL ก่อนไม่
- 11:45อยู่ในตารางเมื่อกี้เลยทำไมถึงใช้ SQ
- 11:47เพราะว่า SQL น่าจะเป็นการทำแบบ manual
- 11:50สุดๆแล้วพี่ต้องการให้คุณก้าวข้ามมาหา
- 11:53เวกเตอร์โดยที่ยังมีinิอายของ structure
- 11:57database เหมือนเดิมอยู่แล้วค่อยเอามัน
- 11:59น่ะบังคับใส่เวกเตอร์เข้าไปแล้วลองใช้
- 12:01เวกเตอร์แบบนั้นดูก่อนพอคุณเริ่มใช้
- 12:03เวกเตอร์เก็บลง SQL database ได้แล้ว
- 12:06เนี่ยเราค่อยมากดสนใจใช้กับตัว chroma db
- 12:09ซึ่งเป็น database ที่ทำมาเพื่อเวกเตอร์
- 12:11โดยตรงอีกทีนึงนะเพราะฉะนั้นเดี๋ยวเราจะ
- 12:14มาเริ่มเขียนโค้ดกันะนะเริ่มจากตัวนี้
- 12:16ก่อนเลยมาทุกคนเปิดalขึ้นมาเลยครับใครที่
- 12:20ยังไม่ติดตั้ง UV ติดตั้งซะนะ Blue
- 12:24install UV ติดตั้งซะเมื่อติดตั้ง UV
- 12:27แล้วเราไปพิมพ์ว่า UV init สร้างโปรเจค
- 12:32มา 1 ตัวผมตั้งชื่อว่า Vector
- 12:34DB Enter เลยเสร็จแล้วเข้าไปที่ Vector
- 12:39DB ครับผมจะให้คุณสร้างตัว Virtuual
- 12:42Environment นะพิมพ์คำว่า UV V env
- 12:47แล้วค่อยเปิด VS Code ครับจุดนะ
- 12:51โอเคตอนนี้เราพร้อมแล้วผมขอแบ่งเป็นบท
- 12:55เรียนเป็นไฟล์ไปนะเริ่มตั้งแต่ไฟล์แรก
- 12:57ก่อนนะก็คือ 01sqli.py
- 13:01py เริ่มต้น SQL เรายอมมา import กันนะ
- 13:04import ตัว SQ 3 เข้ามาสร้าง connection
- 13:09connection เราใช้ SQL 3 connect ตัว
- 13:13นี้เนี่ยเราสามารถสร้างเป็นไฟล์เลยก็ได้
- 13:15หรือจะเก็บลง memmory ก็ได้เพื่อความ
- 13:18สะดวกผมขอใช้เป็นแบบ memmory ก่อนนะใส่
- 13:20colon memmory เข้าไป SQ อยู่ใน memmory
- 13:24เท่านั้นคุณจะได้รันมันได้ตลอดแต่ถ้าเกิด
- 13:27คุณอยากจะทำเป็นไฟล์ก็สามารถที่จะทำได้
- 13:29โดยการใช้จุด /data.sql
- 13:323 คุณก็ได้ไฟล์ะแต่ผมขอใช้ memory นะ
- 13:38การที่คุณจะใช้ SQL ทำ Vctor database
- 13:41ได้นั้นเราต้องการ Extension 1 ตัวครับ
- 13:44Extension ตัวนี้เนี่ยคุณต้องไปค้นหาที่
- 13:47PP.org ORG นิดนึงที่ผมดูใน Tutorial
- 13:50ทั้งหมดตัวที่เขาใช้กันก็คือใช้ตัวที่
- 13:52ชื่อว่า SQL- VSS
- 13:56SQ VSS อัปเดตเมื่อ 2023 แต่ว่าพอผม
- 13:59เข้าไปดูที่กิจหับเแล้วเนี่ยเขาบอกว่า
- 14:03เค้าเปลี่ยนหรอครับเาเปลี่ยนเป็น SQL ขี V
- 14:07เพราะนั้นทุกคนครับเปลี่ยนใหม่เราไม่ใช้
- 14:10SQL- VS แล้วนะSearชหาใหม่ว่า SQL
- 14:15ขีด
- 14:17SQ Trix อัปเดตล่าสุดคือ 2024
- 14:20เวอร์ชั่น 0.16 16 เมื่อได้ดังนั้นแล้ว
- 14:22ทุกคนมากลับมาที่ VS Code ครับเปิด
- 14:25Terminal ขึ้นมาคำสั่งในการติดตั้ง
- 14:27แพ็คเกจของ UV ก็คือ UV
- 14:30SQL ขีด
- 14:34ต่อมาเราจะทำการโหลด Extension ครับก็คือ
- 14:37connection ตัวนี้เราต้องเปิด enable
- 14:39โหลด extension ก่อนเป็น True พร้อมจะให้
- 14:42โหลด extension เข้า SQL ได้เราจะไป
- 14:45import ครับ SQL เข้ามา SQL.
- 14:50โหลดไปที่ connection ตัวนี้เรียบร้อยนี่
- 14:54คือการโหลด extension vector เข้าไปใน
- 14:57sq้าง cursor กัน cursor
- 15:01con. cursor
- 15:05cursor exxqute เรามาสร้าง table กัน
- 15:08ก่อนใช้ dou code 3 ตัว
- 15:12ปึ๊บโอเค create เป็น virtuual
- 15:17table ตั้งชื่อ table อะไรก็ได้ผมตั้ง
- 15:20ชื่อว่า document โดยที่ using 0 ใช้ vex
- 15:260 นี้นะเราจะมีคอลัมน์อยู่ 1 ตัวชื่อ
- 15:31เวกเตอร์ผม enter ลงมาแล้วกันนะ Enter ลง
- 15:33มามีคอลัมน์ 1 ตัวหรือ field 1 ตัวชื่อ
- 15:36ว่าเวกเตอร์ชื่ออะไรก็ได้นะโดยที่เราจะ
- 15:39ให้มันเป็น flat ขนาด 3 มิติเมื่อกี้เรา
- 15:43เก็บภาพเมื่อกี้เป็น 3 มิติใช่มเวกเตอร์ 3
- 15:46มิติเพราะฉะนั้นเราใช้ FL 3 นี่คือจำนวน
- 15:49diension นะถ้าคุณมีdiensชัมากกว่านี้ก็
- 15:52คือใส่เพิ่มได้เราใช้มีแค่ 3 เราจะเก็บ
- 15:55ภาพไอ้ตัวเมื่อกี้ลง database ตัวนี้กัน
- 15:57ต่อไปเราจะเอาข้อมูลภาพเมื่อกี้นี้ยังไม่
- 16:01ไปไหนนะภาพนี้ยังอยู่กับเราตัวเลขตัวนี้
- 16:04ทั้งหมดจะถูกเก็บลงเวกเตอร์ครับตัวเลขตัว
- 16:06นี้ 115 2 3 8 417
- 16:11ลงเวกเตอร์กันเพราะฉะนั้นผมก็ไปสร้าง
- 16:13เวกเตอร์ขึ้นมา
- 16:15โดยที่ปกติเราเก็บตัวเลขนี้ใช่ม 1 5 แต่
- 16:19พอดีมันเป็น flat ผมขอใส่เป็นจุด 0 ด้วย
- 16:22จุด 0 นะจุด 0 แล้วก็ 5.0 0 แบบนี้นี่
- 16:28คือ array ธรรมดาผมขอแพ็คเกจเพิ่มอีก 1
- 16:31ตัวครับเพื่อมาจัดการกับ array พวกนี้
- 16:33หน่อยมันมีแพ็คเกจตัวนึงชื่อว่านำพายนี่
- 16:38เป็นตัวนี้เป็นตัวจัดการ array ได้ดีมาก
- 16:40เพราะฉะนั้นทุกคนครับไป UV number นำ
- 16:45ติดตั้งนายเลยไป import ก่อน import นำ
- 16:50พายเราจะแปลง array ทปกติตรงนี้ให้กลาย
- 16:53เป็นนำพาย array โดยการใช้ nump. Array
- 16:57เป็นฟังก์ชันครอบไปเลยครับมันก็จะได้เป็น
- 17:00array ที่เป็นนำ array ละเพียงแต่ว่า
- 17:02database sq ตัวเนี้ยที่เป็น sqw เนี่ย
- 17:05มันsupพort flit ปกติจะมี 32 บิตที่เป็น
- 17:09fl กับ double ที่เป็น 64 บิตเนื่องจาก
- 17:12มันเป็น 32 แต่ไอ้นำพายมัน default เป็น
- 17:1564 เพราะฉะนั้นทุกคนครับใส่ d typ type
- 17:18คือแปลงทpหน่อยผมขอใช้เป็น number fl 32
- 17:22ถ้าเราไม่แปลงเป็น fl 32 sqwex จะไม่
- 17:25support
- 17:26การเก็บลง database ตัวนี้เนี่ยเราต้อง
- 17:28แปลงไปเป็น array of bik ก่อนเพราะ
- 17:30ฉะนั้นทุกคนครับนำ array สามารถ dot 2
- 17:32bik ได้แบบนี้เลยง่ายๆมันก็จะกลายเป็น
- 17:35array of bik เรียบร้อยนี่คือ array
- 17:37ธรรมดากลายเป็นนำพาย array เรียบร้อย
- 17:40พร้อมจะเก็บลง database กันแล้วคำสั่ง
- 17:43excuse ทำไง cursor เนี่ยมันจะมีคำสั่ง
- 17:46excuse โดยที่เราจะไปใช้คำสั่ง sql นะ
- 17:51มันมันคุ้นเคยนะพอเราอยู่กับ sql ที่เป็น
- 17:54structure แบบเนี้ยมันก็จะคุ้นเคยละก็
- 17:56แค่ insert into database ชื่อว่า
- 18:00document
- 18:03column คือ vector ใส่เข้าไป
- 18:07ตรงนี้เราใส่เป็นอะไรครับเราใส่เป็น
- 18:09question mark เข้าไปหรือเป็นพamตอร์
- 18:11การใส่พารามิเตอร์ใน Python ใน SQL ตรง
- 18:14นี้เนี่ยก็คือใช้คอสังเกตนะครับมันเป็น
- 18:17เครื่องหมายวงเล็บแบบนี้เขาเรียกว่าเป็น
- 18:19truple การใส่ truple ก็คือดูต้องใส่
- 18:21Purple แบบนี้คุณก็แค่ใส่เวกเตอร์เข้าไป
- 18:24ในนี้เป็น truple แต่ truple ของ python
- 18:26ต้องใส่คอมต่อท้ายงี้ด้วยอย่างงคอมนะอัน
- 18:29นี้ truple มีคอต่อท้ายนิดนึงถ้าเกิดคุณ
- 18:32excิตอนนี้เนี่ย data นี้ลง database sql
- 18:36แล้วเรียบร้อยเพียงแต่ว่าผมขอใช้อีกวิธี
- 18:38นึงแล้วกันเพราะว่าอันเนี้ยเราต้อง insert
- 18:41ทั้งหมด 5 ตัวด้วยกันเสียเวลาผมขอทำแบบ
- 18:44นี้ได้มยผมจะสร้างเป็นเวกเตอร์
- 18:49เป็น list เลยแบบนี้เราจะ exqute ทีเดียว
- 18:52พร้อมๆกันเพราะว่าในcursอเนี่ยเนี่ยมันจะ
- 18:55มีคำสั่ง excuse many อีก 1 ตัวนะเราจะ
- 18:58ใช้ตัวนี้เราจะทำพร้อมๆกันหมดเลยตั้งแต่
- 19:02แรกคุณcopี้ข้างบนมาอันนี้มาแปะไว้ที่อัน
- 19:05นี้นะคอมมเพียงแต่ว่าตอนนี้คุณไม่ได้ไป
- 19:10ใส่ใน money เนี่ยอันนี้มันเป็น truple
- 19:13ใช่มทุกๆอันต้องเป็น true หมดเลยงั้นผมขอ
- 19:16ทำให้มันเป็น truple เลยนะวงเล็บครอบนำ
- 19:19ภายอีก 1 ทีอ่ะปิดแล้วคอมมแบบนี้อย่างง
- 19:22คอมมนะคอมมข้างข้างในนี่คอของ TrueLE นี่
- 19:25คือคอมของเมื่อพร้อมแล้ว copy มาทั้งหมด 5
- 19:29ชุดครับ 2 3 4 5 แล้วใส่ตัวเลขตามที่
- 19:34ผมต้องการ 115 อันที่ 2 ก็คือ 2 0 338
- 19:39อ่ะใส่ไป 2 1 0
- 19:433 8
- 19:453
- 19:488
- 19:514 1
- 19:537 1 2 5 โอเคเรียบร้อยนี่คือ list
- 19:58ของเวกเตอร์ของเราเรา copy cursor ตรง
- 20:01นี้มา
- 20:03แล้วเปลี่ยนเป็น x many แทนส่วนเวกเตอร์
- 20:07ข้างหลังลบ truple ทิ้งแล้วใส่เป็น
- 20:10เวกเตอร์เติม s เข้าไปเพียงแค่นี้ data
- 20:13ทั้งหมดนี้จับใส่ไปที่ database sql ที่
- 20:16เป็นเวกเตอร์เรียบร้อยอยากลองดูมจริงๆถ้า
- 20:19อยากลองผมขอไปเปลี่ยนจาก memmory ให้กลาย
- 20:21เป็นไฟล์ก่อนครับ/data data.sql
- 20:253 พอคุณเปลี่ยน Connect data เป็นไฟล์
- 20:28แล้วเนี่ยผมขอรunนะ UV run ใช้ 01Q.py
- 20:33แบบนี้ Enter ไปดูซิว่ามีไฟล์ Data อยู่ม
- 20:37นี่ครับ data.sql SQL พอดีผมติดตั้ง
- 20:39Intention SQL ไว้แล้วนะใครที่ไม่มี
- 20:42เนี่ยค้นหาได้มันมี SQL Viewer ตรงนี้ใน
- 20:44การดูนะพอเราคลิกที่ไฟล์ในนี้ปุ๊บเนี่ย
- 20:47คุณจะเห็นว่านี่ครับ Table สังเกตมั้ว่า
- 20:50คุณไม่ได้ไปสร้างมันไอ้ตัว 0 เมื่อกี้มัน
- 20:53ทำให้คุณนะเพราะฉะนั้นเดี๋ยวผมขอไป
- 20:56เปลี่ยนเป็น database เหมือนเดิมก่อนจะ
- 20:58ได้ไม่ต้องมานั่งสั่งลบก็คือ colon
- 21:01memmory แล้วก็ไฟล์นี้ไม่ได้ใช้ะลบทิ้ง
- 21:04ไปามาดูเฉยๆ
- 21:07เราไม่ได้ไปแตะต้องมันอยู่แล้วต่อไปครับ
- 21:09เรามาคี่หาของกันดีกว่าเราอยากรู้ว่าของ
- 21:12ที่เราเก็บเอาไว้เนี่ยเราจะค้นหาของที่
- 21:14ใกล้เคียงอ่ะทำได้ยังไง
- 21:17ทุกคนครับสกอร์มาด้านล่างพิมพ์ต่อครับ
- 21:20เวกเตอร์
- 21:22เราสร้างquyกตorกันมาก่อนเวกเตอร์ที่จะ
- 21:25ค้นหาก็คือตัวนี้ครับ 114 ถูกเพราะฉะนั้น
- 21:28เวกเตอร์ 1.0
- 21:311.0
- 21:334.0 0 อย่าลืมครับทำเหมือนเดิมนำพาย
- 21:36array
- 21:38crop เข้าไปแล้วก็ใส่ dt type เป็น
- 21:41numpาย float 32 แล้วก็ do bik แบบนี้
- 21:47แล้วก็อย่าลืมครับมันเป็น truple ผมทำ
- 21:49truple เลยคอมต่อท้ายแบบนี้ให้เรียบร้อย
- 21:53พร้อมจะไป quy มา quy ครับ cursx
- 21:58dou 3 ตัว 6 ตัว enter ลงมาเขียนคิ Y
- 22:04SQL กันเนาะ Qury SQL ก็เหมือนเดิมครับ
- 22:06เคยเรียนกันมาแล้ว select เลยครับ Select
- 22:09อะไร form Document
- 22:13ที่เราทำเมื่อกี้เรามีแต่คอลัมน์อะไรนะ
- 22:15เวกเตอร์ใช่มมันมีเวกเตอร์เเราเอา
- 22:18เวกเตอร์มาดูแต่ไอ้ตัวสูตรที่เราทำมาจาก
- 22:21Virtual Table เมื่อกี้เนี่ยมันมี
- 22:23คอลัมน์เพิ่มให้เราครับเราไม่ต้องทำเองก็
- 22:25คือคอลัมน์ชื่อว่า Row ID แล้วมันมี
- 22:28คอลัมน์อีกคอลัมน์นึงที่พิเศษมากคุณ
- 22:30ต้องการใช้มันก็คือคอลัมน์ที่ชื่อว่า
- 22:32Distance
- 22:34สังเกตมว่าคุณไม่ได้ทำ distance เองไม่
- 22:37ได้คำนวณคณิตศาสตร์เองแต่มันทำให้คุณ
- 22:39เรียบร้อยด้วยไอ้ตัว extension HQ vect
- 22:42มันคำนวณ distance ให้เราแล้วเพราะฉะนั้น
- 22:44หน้าที่ของเราก็คือเราจะต้อง weare where
- 22:47อะไรอ่ะ weare ตัวเวกเตอร์
- 22:50ถามว่า match กับพารามิเตอร์ตัวนี้มนี่
- 22:54แหละไอ้ตัวที่จะส่งตัว quy เข้ามาหามัน
- 22:57แล้วไงต่อครับเมื่อมันแareเอามาให้แล้ว
- 23:00เราก็แค่ไปอordเดอ
- 23:02Distance นั่นเองเอาจากน้อยไปหามากถูกมย
- 23:05เพราะว่า distance ที่น้อยที่สุดคือใกล้
- 23:08เคียงสุดแต่คุณต้องอย่าลืมอีก 1 อย่างที่
- 23:10เขาบังคับให้คุณใส่ก็คือลิมิครับลิมิตเอา
- 23:14กี่ตัวผมเอามา 5 ตัวถ้าคุณลืมใส่ลิมิตตอน
- 23:17ที่คุณexcิเนี่ยมันจะ error แจ้งเตือนคุณ
- 23:19ว่าต้องใส่ลิมิตด้วยนะต่อมาครับใส่
- 23:22พารามิเตอร์เพิ่มหน่อยครับก็คือตรงนี้
- 23:24comma ใส่ qury vector เข้าไปมาเรียบ
- 23:28ร้อยแล้วครับเราจัดการไปกันดีกว่า row
- 23:31เท่ากับ cursor. F all เรียบร้อยเราเฟด
- 23:36มาแล้วเรามาที่เหลือเราก็แค่มาแสดงผลมา
- 23:38แสดงผลครับ for in low นะเอาอะไรบ้าง
- 23:43อ่ะปกติก็คือ low in low ใช่มแต่เรา
- 23:46สามารถ extract เอามันออกมาได้ผมเอาอะไร
- 23:48มาบ้างเมื่อกี้มันมีอันแรกคือ low id
- 23:51ใช่มอ่ะก็คือ ID อันที่ 2 distance ใช่ม
- 23:55distance อันที่ 3 คือเวกเตอร์ใช่มั้เอา
- 23:58เวกเตอร์มา
- 24:00ปริ้นครับผมขอปริ้นเป็นแบบ format นะใส่ F
- 24:03เข้าไปอือันแรกปริ้น ID มาดูก่อน ID ขีด
- 24:08อันที่ 2 อยากเห็นอะไรอยากเห็นเวกเตอร์มย
- 24:12ถ้าคุณอยากดูเวกเตอร์เนี่ยคุณเอาเวกเตอร์
- 24:14มาตรงๆไม่ได้เพราะเวกเตอร์มันเป็น array
- 24:16of bik มาอยู่คุณต้องแปลงเป็น array
- 24:18ปกติก่อนนะก็คือนำพาย do form bu brer
- 24:23ส่งเวกเตอร์เข้าไปจริงๆแค่นี้ก็แปลงได้ะ
- 24:27แต่มันเป็น float 64 โดย default เรา
- 24:30ต้องไปเพิ่ม option เพิ่มให้มันหน่อยคือ
- 24:33dt type ให้เป็นnumpาย df 32 อันที่ 3
- 24:37ผมอยากเห็น distance distance
- 24:42115 220 ผมใส่ตรงนี้ผิดครับ 22 10 นะ 2
- 24:4710 โอเคมันก็เลยไม่ตรงนะเอาใหม่รันถูกมย
- 24:521 5 4 3 2 คำตอบตรงนี้ตรงกับที่เรา
- 24:55คำนวณมย 1 4 3 2 ถูกต้องดู distance
- 24:59ครับ 1 1.41.2
- 25:0224.89
- 25:046.16 16 เป๊ะเลยเห็นมั้เห็นมว่าสิ่งที่
- 25:07เราคำนวณด้วยมือกับสิ่งที่ SQ เขาทำมัน
- 25:10คือเรื่องเดียวกันเนี่ยครับคือการใช้ SQR
- 25:14ใน exercise ที่ 1 จบแล้วเรื่องต่อไปครับ
- 25:18มีคำถามมาว่าถ้าเราจัดเวกเตอร์แบบนี้เอง
- 25:21เนี่ยมันจะจัดได้ดีขนาดไหนแน่นอนครับเรา
- 25:23จัดได้ไม่ดีหรอกนะเราคงจะไม่สามารถมีความ
- 25:26สามารถในการอธิบายทุกสิ่งทุกอย่างให้เป็น
- 25:28เวกเตอร์ได้ด้วยตัวเราเองเพราะฉะนั้นสิ่ง
- 25:30ที่สำคัญอย่างมากของเรื่องนี้เลยก็คือ
- 25:32เรื่องของการทำ embeding คุณสังเกตมว่า
- 25:36มันคือตัวที่จะทำให้เกิดโรคเวกเตอร์ขึ้น
- 25:39มาได้โดยสมบูรณ์แบบโดย model ตัวเนี้ยมัน
- 25:42มาจากพวก Deep Learning ต่างๆสร้างเป็น
- 25:45โมเดลขึ้นมาแล้วมาสร้างโรคเวกเตอร์ให้เรา
- 25:48เพราะฉะนั้นเรื่องต่อไปที่เราจะสนใจและ
- 25:51เรียนรู้ก็คือเรื่องของการทำingครับมาทุก
- 25:55คนครับสร้างไฟล์ที่ 2 02.py
- 26:00PY ตอนนี้เราจะทำ Aedding กันแล้วสิ่ง
- 26:04ที่ต้องจะต้องมีเนี่ยก็คือเครื่อง
- 26:06คอมพิวเตอร์ที่มีประสิทธิภาพในการรัน AI
- 26:09ได้ดีพอสมควรนะเดี๋ยวเราจะมี AI ให้คุณ
- 26:12ใช้หลายๆแบบทั้ง Local และ Oncloud ตอน
- 26:16นี้เริ่มต้นเดี๋ยวลองใช้ AI บน Local
- 26:18ก่อนแล้วเดี๋ยวค่อยๆไป On cloud ถ้าเกิด
- 26:20ใครที่โลคalไม่ไหวไม่เป็นไรรอก่อนได้มาดู
- 26:24กันผมขอเข้าไปที่ ppie.org org แล้วค้น
- 26:27หาแพ็คเกจตัวนึงชื่อว่า sentence
- 26:31transformer
- 26:35sentence ขีดกลางนะแล้วก็ transformer
- 26:38ตัวนี้นี่คือตัวที่คุณสามารถที่จะทำ
- 26:40embeding data ได้ง่ายสุดแล้วมาติดตั้ง
- 26:43กันเลยครับ
- 26:45UV add sentence transformer
- 26:54form sentence transformer
- 26:56Import sentence transformer ครั้งนี้
- 27:00เราจะไม่ embed รูปเมื่อกี้แล้วนะเราจะ
- 27:02เป็น text แล้วกันนะผมจะขอสร้างเป็น list
- 27:05ของ text ขึ้นมาก่อนอันนี้คือโจทย์ที่เรา
- 27:07จะใช้กันทุกๆ exercise เลยนะจะมี text
- 27:10อยู่ 3 ชุดแรกผมพิมพ์คำว่า vector
- 27:13database ชุดที่ 2 ผมตั้งชื่อว่า I love
- 27:16you
- 27:18อันที่ 3 Good morning
- 27:21เราจะใช้โมเดลคุณจะต้องมี embeding model
- 27:26ก่อนแล้ว embeding mod ตรงนั้นหาที่ไหน
- 27:28เราจะไปค้นหากันที่ hcking face ครับ doc
- 27:33เสร็จแล้วไปเสิร์ชหามันได้เลยนี่ครับ
- 27:37sentence transformer มันจะมีโมเดล
- 27:39embeding อยู่ตัวนึงที่คุณใช้ชื่อว่า All
- 27:42mini lm l2 เห็นป่ะกดเข้าไปเป็นโมเดล
- 27:46embedding ที่มีขนาด diension อยู่ที่
- 27:50384 diension โอ้โหเมื่อกี้คุณแค่ทำเอง
- 27:54คุณ manual ด้วยมือคุณทำแค่ 3 มิติก็ยาก
- 27:57แล้วอันนี้มันมี 300% diension ให้คุณ
- 27:59เลยนะมาวิธีใช้ครับคุณcopี้ตรงนี้ครับ
- 28:02เห็นตรงนี้มเนี่ยกดปุ่ม copy ได้เลยปึ๊บ
- 28:06เสร็จแล้วกลับไปที่โค้ดของเราแปะตรงนี้
- 28:08เลยครับปึ๊บต่อไปเราต้องใช้ตัวนี้ครับก็
- 28:11คือ sentence transformer class ตัว
- 28:14เนี้ยสร้างเป็นโมเดลขึ้นมา crop เข้าไป
- 28:17เสร็จแล้วสร้างต่อไป embedding
- 28:20แล้วใช้คำสั่ง model.ncode N Code ส่ง
- 28:23text เข้าไปแบบนี้มันจะ MBED ตัวนี้ทั้ง
- 28:26หมดเลยให้เราอยู่ใน Meding ตรงนี้ผมขอใส่
- 28:28S เข้าไปหน่อยให้รู้ว่ามันมีอยู่หลายตัว
- 28:31ทีนี้ถ้าเกิดคุณอยากเห็นมันเนี่ยคุณก็แค่
- 28:32สั่งปริinting
- 28:35Mwedding มันเป็น list นะถ้าอยากเห็นแค่
- 28:36ตัวเดียวเนี่ยใส่วงเล็บ 0 ดูก็ได้เอาแค่
- 28:39ตัวแรกมาดูก่อนอ่ะสั่งรันได้เลยครับ UV
- 28:42Run 02 ปึ๊บจังหวะแรกอาจจะนานนิดนึง
- 28:45เพราะว่ามันต้องไปดาวน์โหลดโมเดลตัวนี้มา
- 28:47ให้คุณก่อน
- 28:50นี่คือเวกเตอร์ขนาด 384 diension ถ้า
- 28:54อยากรู้เราสามารถใช้คำสั่งเลงดูได้นะเลง
- 28:58ครอบเข้าไปแล้วก็รันดูจะรู้ว่ามันมีขนาด
- 29:03384 โอเคนี่คือ sentence transformer
- 29:07โมเดลที่มันมาเนี่ยอยู่ที่ไหนถ้าคุณไป
- 29:10เปิด Terminal ขึ้นมาอยู่ที่ home ของคุณ
- 29:12นะเสร็จแล้วคุณ do cash
- 29:15ใน cat ตัวนี้มันจะมีโฟลเดอร์ชื่อว่า
- 29:17Huging Face อยู่คุณเข้าไปใน Huging
- 29:20Face ในนั้นจะมีหับ
- 29:23และคุณจะเจอ mod sentence transformer
- 29:26อยู่ที่นี่โอเคแต่วันนี้เราคงจะไม่ใช้
- 29:29sentence transformer ใช้โอามะ
- 29:32โอามะมันจะมีโมเดลที่เป็นตระกูล embedding
- 29:37ตัวนี้ไปที่ mod แล้วไปที่ embedding
- 29:41ชื่อว่า norictech
- 29:43ตัวนี้เนี่ยขนาดมันไม่ใหญ่ครับ 200 กว่า
- 29:46เมเองแล้วมันบอกอะไรครับมันบอกว่าictech
- 29:51เนี่ย is last context length encoder
- 29:55that suppress คือเหนือกว่า open ai
- 29:59โอ้มันคุยขนาดนั้นเลยนะเหนือกว่าไอตัว 002
- 30:03อีกและ 3 small ด้วยโหสุดยอด performance
- 30:07นี่นะแล้วก็เล็กด้วยช็อต longtext
- 30:10อื้อหือสุดยอดมามีใครไม่ได้ติดตั้งโอะ
- 30:13มั้ยดาวน์โหลดมาติดตั้งเลยไม่มีไม่เป็นไร
- 30:16เดี๋ยวไปใช้ open ในแทนตัวลิฟที่เราจะใช้
- 30:19กันเนี่ยผมจะใช้ลิฟของ Open AI นะเพราะ
- 30:22ว่าตัวโอะเองเนี่ยมันSupพพอร์ Open AI
- 30:24อยู่แล้วที่ P seสิร์ชหา Open AI
- 30:28แพ็คเกจตัวนี้นี่นะใช้ตัวนี้นะก็ติดตั้ง
- 30:33ได้เลยครับเปิด Terminal ขึ้นมาพิมพ์ UV
- 30:37open AI
- 30:39ผมจะ comment sentence transformer ไป
- 30:42ก่อนนะเราไปหันไปใช้ Open AI Library
- 30:45กันทุกคนครับมา form Open AI
- 30:49Import open AI ผมจะสร้างตัวแปรขึ้นมา
- 30:53ชื่อว่า AI client
- 30:56ใช้เป็น Open AI
- 30:59เราต้องการอะไรบ้างเราต้องการ 2 อย่างคือ
- 31:01Base URL
- 31:03กับ API Key Olamะไม่มี API key อยู่
- 31:08ใส่อะไรก็ได้
- 31:10ส่วนเบส URL ใครที่เคยเรียนกับผมแล้ว
- 31:13เรื่องโอละคุณจะรู้ว่าเมื่อคุณติดตั้ง
- 31:15โอามะแล้วเนี่ยมันจะมีตัว Server รันอยู่
- 31:17ตรงนี้ server มันรันอยู่นะและมันเป็น API
- 31:21server ให้คุณถ้าเกิดคุณ call local
- 31:24host colon 114
- 31:2711434 มาจากรามะนั่นเอง 11 ก็คือ LL A
- 31:33คุณไปเคดูจะเห็นว่าโอะมัน running เป็น
- 31:35API ให้คุณอยู่เราสามารถที่จะไปใส่ตรง
- 31:38นี้ได้ครับก็คือ HTTP
- 31:41local host port 11434
- 31:45แต่คุณต้องใส่/ V1 ไปด้วยเป็น API
- 31:47เวอร์ชั่น 1 แบบนี้ถึงจะใช้ตัว OAM ได้
- 31:50วันหน้าคุณไปตั้ง Server OM ไว้ที่ไหนก็
- 31:53ไปเปลี่ยนเอาแล้วกันแต่ไว้ตรงนี้ไม่ค่อย
- 31:55เหมาะเท่าไหร่ผมขอย้ายไปอยู่ใน env แล้ว
- 31:58กันนะทุกคนเปิดสร้างไฟล์ขึ้นมาชื่อว่า
- 32:02ENV แล้วเอา UL เนี้ยไปใส่ไว้ที่ ENV ดี
- 32:07กว่าอ่ะสร้างมันขึ้นมาโอะ
- 32:11N point
- 32:14แล้วก็แปะเข้าไปแบบนี้เสร็จแล้วตรงนี้
- 32:17ครับอยากจะโหลด ENV ทำไงผมต้องการแพ็คเกจ
- 32:20เพิ่มอีก 1 ตัวชื่อว่า Python.env
- 32:26Python.env
- 32:29ทุกคนไปที่ Terminal ครับพิมพ์ UV
- 32:32Python.env
- 32:34แบบนี้เสร็จแล้วไป import ครับ import.
- 32:39ENV แล้วก็ import os ด้วยเบื้องต้นคุณ
- 32:43ต้องไปสั่งv.loadโหลดก่อนนะเพื่อจะโหลด
- 32:46ENV เข้ามาใน Python ของเราอ่าได้ะทีนี้
- 32:49คุณก็สามารถที่จะใช้ Environment ได้แล้ว
- 32:51นะก็กลับมาด้านล่างครับที่ตรงนี้ Base UL
- 32:54เนี่ยเปลี่ยนใหม่ใช้เป็น OS.non Enveron
- 32:59บอกว่าผมจะดึงเป็นโอะ
- 33:02N point เข้ามา
- 33:04โอเคมาเรามาลอง embex
- 33:08ของเราตรงนี้กันดีกว่าเนาะ
- 33:10พิมพ์ response เท่ากับ ai client.cate
- 33:16create เราจะส่ง input เข้าไปก็คือส่ง
- 33:19text เข้าไปนั่นเองทำไมผมสั่งอย่างนี้
- 33:21ได้คุณดูนะที่ create เนี่ยมันรับ input
- 33:25เป็น string ที่เป็น list ได้เป็น string
- 33:28ธรรมดาก็ได้เป็นลิก็ได้หมดเลยนะคุณจะส่ง
- 33:32text ธรรมดาเป็นอย่างนี้ก็คุณก็ได้
- 33:34เหมือนกันก็คือส่ง Hello เงี้ยก็ทำได้
- 33:37เหมือนกันคุณจะส่งเป็นลิสแบบนี้ก็ได้
- 33:40เหมือนกันนะแต่คุณจะต้องระบุโมเดลครับอ่า
- 33:44โมเดลที่ใช้โมเดลที่ใช้ผมขอสร้างเป็นตัว
- 33:48แปรขึ้นมา 1 ตัวแล้วกันชื่อโมเดล
- 33:52เพราะว่าเราจะได้เก็บไว้ใช้หลายๆที่คุณ
- 33:55mbet แล้วตอนที่คุณมีคี่คือคุณต้องใช้
- 33:58โมเดลตัวเดิมเพราะฉะนั้นทุกคนครับไปที่
- 34:00โอามะใครที่ทำโอะเหมือนผมนะไปที่โมเดล
- 34:04ไปที่ embeding แล้วcopี้ชื่อตัวนี้มา
- 34:10text ตัวเนี้ยเสร็จแล้วก็ไปพิมพ์โอามะ
- 34:14P
- 34:16noric
- 34:18enter
- 34:20คุณถึงจะ runic ไปนั่นเองมาแปะไว้ตรงนี้
- 34:24ได้เลยโอเคแล้วสั่งตรงนี้เป็นโมเดลตอนนี้
- 34:28มันจะทำการ mbed ให้คุณแล้วลูกเรียบร้อย
- 34:30นะผมจะสั่ง print มาดูแล้วนะ print
- 34:33response มันจะมี data data ตัวเนี้ย
- 34:36มันเป็น list อันเนี้ยคือ 0 1 2 นะนี่
- 34:39คือลิสนะเพราะฉะนั้นผมจะเอามาแค่ตัวเดียว
- 34:42ก่อนก็คือ 0 แล้วจะมี embedding เพื่อบอก
- 34:45ว่าขอดู embedding ในที่เป็นเวกเตอร์จริง
- 34:48ๆถ้าเกิดพวกนี้คุณไม่รู้เนี่ยคุณลองปรint
- 34:50มาดูก่อนก็ได้นะปint respons มาดูเลยก็
- 34:52ได้มาดูทั้งหมดแล้วค่อยมาค่อยแกะมันที
- 34:53หลังคือ UV run 02
- 34:58เดี๋ยวคุณจะเห็นมันเองว่ามัน return อะไร
- 35:00ให้คุณมันจะ return เป็น data เห็นม data
- 35:03มันเป็น list ของ embedding เพราะฉะนั้น
- 35:05ผมก็เลยใช้ response do data เอามาแค่
- 35:09ตัวเดียวคือตัวที่ 0 embeding นี่คือ
- 35:12Aing ตรงนี้คุณจะได้เป็นเวกเตอร์ของอัน
- 35:15แรกมาคุณอยากรู้ว่ามันมีขนาด diension
- 35:19เท่าไหร่คุณก็แค่ใส่เลงเข้าไปครอบตัวนี้
- 35:23คุณจะได้มันมาเลยแต่มันมีอีก 1 อย่างที่
- 35:25respons มันส่งคืนมาให้ถ้าเกิดคุณสกอรไป
- 35:27ดูด้านล่างสุดปื๊ดมันยังมีตรงนี้ครับ
- 35:30Total Talken คำถามคือสำคัญมยคำตอบคือ
- 35:34สำคัญนะเพราะนี่คือราคาที่คุณต้องจ่ายตอน
- 35:37นี้พอดีคุณใช้โอามะคุณยังไม่เสียตังค์
- 35:39เดี๋คุณดูไว้ก่อนเดี๋ยวตอนที่คุณไปใช้
- 35:41Open AI มันจะมีค่า Token ที่คุณไป
- 35:44Mboken เป็น 7 นับยังไงดูครับการนับ
- 35:48Token ผมเคยสอนคุณแล้วเวกเตอร์ 1 2 3
- 35:524 5 6 7 เป๊ะเลยเห็นป่ะ 7 Token
- 35:55ยิ่งคุณ MB คำมากเท่าไหร่ก็ตามคุณก็เสีย
- 35:58ตังค์มากขึ้นเท่านั้นอ่ะผมจะลองปริ้นตัว
- 36:02เลงมาดูว่ามันใช้กี่นะรันดูโอ้โห 768
- 36:08diension แสดงว่าไอ้นี้มันสูงกว่า 384
- 36:12ของ sentence อีกนะเพราะฉะนั้นผมขอเก็บ
- 36:15เป็นตัวเลขตรงนี้ไว้ก่อนนะ diension
- 36:19ก็คือ 7 6 8 ใช่มยใส่เอาไว้ก่อนนี่คือ
- 36:23โอามะต่อไปใครที่อยากจะใช้ Open AI มา
- 36:28เรามาลองดูกันครับคุณจะต้องเข้าไปที่
- 36:31platform.opopenai.com open.com คอม
- 36:36ตัวนี้ล็อกอินให้เรียบร้อยเสร็จแล้วไปที่
- 36:39Setting แล้วก็ไปจ่ายตังค์ building ให้
- 36:42เรียบร้อยไปเติมเงินเข้าไปเมื่อคุณมี
- 36:44ตังค์แล้วเราจะไปที่ API key เพื่อไปเจน
- 36:47คีย์กันขึ้นมาซึ่งผมมีคีย์แล้วเรียบร้อย
- 36:50เมื่อคุณมีคีย์แล้วผมจะมาเก็บคีย์ไว้ที่
- 36:53ตรง environment คีย์ไว้ตรงนี้ชื่อว่า
- 36:57Open AI key แล้วก็ไปเอา Key มาโอเค
- 37:03ปิดไปอ่ะเรียบร้อยการใช้ Open AI ง่าย
- 37:06มากเพราะมันเป็นลิปของ Open AI อยู่แล้ว
- 37:08คุณก็แค่อันนี้ไปก่อนแล้วใช้เป็น AI Cant
- 37:13เท่ากับ Open AI ส่งเพียงแค่ API Key
- 37:16เข้าไปครับมาจาก OS.non Enveron ก็คือ
- 37:19Open AI คียเรียบร้อยเสร็จะอ่าโมเดล
- 37:27โมเดลเนี่ยถ้าคุณไปดูที่แพลตฟอร์ม
- 37:33Open AI เนี่ยคุณไปดูที่โมเดลตรงนี้
- 37:35ครับทางซ้ายมือโมเดลนะมันจะมีโมเดลอยู่
- 37:37ด้านล่างสุดเลยครับมีอยู่ 3 ตัวที่ 1 คือ
- 37:41Text Embeding Ada 002 ตัวที่ 2 คือ
- 37:44Texeding 3 Small ตัวที่ 3 คือ Texing
- 37:473
- 37:48อ่ะกดเข้าไปดูทั้ง 3 ตัวเลยตัวนี้ตัวแรก
- 37:50สุดครับพอคุณจะต้องเสียตังค์ก็ต้องสนใจ
- 37:53เรื่องราคานิดนึงครับ 0.1 ดอลลาร์ต่อ 1
- 37:57ล้าน token เมื่อกี้คุณเสียไป 7 token
- 37:59ใช่มั้เมื่อคุณ mbet ไปจนกระทั่ง 1 ล้าน
- 38:02token คุณเสีย 0.1 1 ดอลลารนี่คือ eda
- 38:06002 ความเร็วประมาณ 2 แล้วก็ Performance
- 38:08ต่ำมากไปดูอันที่ 2 ครับ Teching 3
- 38:12Small โอ้ความเร็วสูงขึ้น Performance
- 38:15ดีกว่าราคาล่ะเฮ้ยถูกกว่าอีก 0.02 ต่อ 1
- 38:20ล้าน Token ราคาถูกกว่า A ได้อีกแล้วถ้า
- 38:23เกิดเป็นตัวด
- 38:27นะแต่ช้านะช้ากว่าตัว Small อีกนะแล้ว
- 38:30เป็นไงครับราคาแพงกว่า 0.13 13 แพงกว่า
- 38:33นิดนึงแต่แพงกว่า small มากเลยเพราะ
- 38:36ฉะนั้นถ้าเกิดคุณใช้เนี่ยก็จ่ายแพงขึ้น
- 38:39เท่านั้นเองนะงั้นตอนนี้ผมขอไปใช้เป็น
- 38:43small แล้วกันเพราะว่ามันน่าจะถูกอ่ะใช้
- 38:46ตัว small ผมคงไม่ปริ้นมาดูนะผมจะขอดูเลง
- 38:49มันเฉยๆว่ามันใช้กี่ diension โอเครันดู
- 38:53ครับตัว Small ใช้อยู่ 1,536
- 38:57สูงกว่าโอามะ NORIC เมื่อกี้ผมใส่ตรงนี้
- 39:01ไปก่อน diension
- 39:041536
- 39:06โอเคจบส่วนของ Open AI ก่อนตัวที่ 3
- 39:10Asure Open AI ก็คือ Asure AI FY
- 39:13สามารถรันตัว Open AI ได้ซึ่งผมได้ไป
- 39:16สร้าง Open AI Model ไว้แล้วเรียบร้อย
- 39:18นะอยู่อยู่ที่นี่นะก็คือผมไปทำการ deoy
- 39:21modดที่เป็นนี่ Tex Meding 002 3
- 39:27Small 3 L เรียบร้อยหมดแล้วนะพอดี
- 39:30เนื่องจากว่าผมมี ASU เครดิตอยู่ผมขอลอง
- 39:33เลยแล้วกันมาทำไงผมคอมเมนต์ตรงนี้ไปก่อน
- 39:38พิมพ์ AI Cant
- 39:41open AI การ configure Open AI เนี่ย
- 39:44มันต้องมีความแตกต่างนิดนึงเราจะต้องใช้
- 39:47เป็น base URL ก่อนนะ 2 คือต้องมีตัว API
- 39:52key แน่นอนเอาจากไหนมาผมขอไปที่ ASU นะ
- 39:57ผมพิมพ์ Portal. Assur ผมไปเอา key and
- 40:01endpoint ซึ่ง endpoint ของผมเนี่ยอยู่
- 40:03ที่นี่ ariservice.ai.com
- 40:06com copี้มาผมก็เอาไปวางที่ไหนดีผมไป
- 40:10สร้างนี่ดีกว่าที่ env นะ
- 40:14Open AI end point
- 40:19โอเคผมแปะไว้ก่อนตัวที่ 2 ก็คือ key ผม
- 40:22copy key มา assure
- 40:25open AI key
- 40:29แปะปึ๊บ
- 40:31ต่อไปเราจะมาโหลดครับก็คือใช้ OS.nvon
- 40:35Enveron บอก Asure
- 40:38Open AI NP
- 40:45แล้วก็ OS OS.
- 40:52Open AI key
- 40:54มีปัญหานิดนึงครับก็คือว่าคุณอยู่ในช่วง
- 40:57เปลี่ยนถ่ายกันถ้าผมไปเสิร์ชหา document
- 41:00ของ AI Fundy เนี่ย
- 41:04แล้วไปดูที่โมเดลของ Aso Open AI FY
- 41:08model
- 41:10มันจะมีสิ่งที่เรียกว่า API Life Cycle
- 41:13เพราะว่าเค้ากำลังเข้าสู่ gen ใหม่ของ API
- 41:18ที่ผมได้ทำมาเมื่อปี 2 ปีที่แล้วเนี่ย ASO
- 41:21FII ใช้พรีวิวมาตั้งนานแล้วเพิ่งจะขยับ
- 41:25เป็นเวอร์ชั่น 1 เราเคยเขียนกันมาแต่ก่อน
- 41:27คือตรงนี้ของเก่าแต่พอของใหม่ Next
- 41:30Generation ตรงนี้จะ API ตัวใหม่ละเพราะ
- 41:32ฉะนั้นดูครับสิ่งที่เปลี่ยนแปลงก็คือว่า
- 41:36NP มีการไปเพิ่ม Open AI/V1 แต่ก่อนไม่
- 41:39มีนะแต่ตอนนี้มีแล้วเพราะฉะนั้นทุกคนครับ
- 41:43end point ที่ผมให้คุณไปเนี่ยมันมีแค่
- 41:48com เท่านั้นเองแต่ผมขอไม่เปลี่ยนตรงนี้
- 41:51นะผมขอไปใส่เพิ่มที่โค้ดตรงนี้แล้วกันก็
- 41:54คืออ่ะทุกคนใส่เพิ่มนิดนึงครับ +/open
- 41:58ai/V1
- 42:00เข้าไปในนี้ครับต่อมาเขาบอกว่า default
- 42:04quy ต้องใส่ตัว API verion ไว้ตรงนี้
- 42:06ด้วยคำสั่งว่า preview เพราะฉะนั้นผมขอ
- 42:10ใส่เพิ่มตามของเขานิดนึงนะก็คือ default
- 42:13quy
- 42:15API
- 42:18แล้วก็ preview โอเคเท่านี้เสร็จละใส่
- 42:24โมเดลเข้าไปโมเดลเนี่ย copy มาได้เลย
- 42:28เพราะว่ามันเป็น open ai เหมือนกันขอเพ
- 42:31เป็น last แล้วกัน
- 42:34โอเคเมื่อพร้อมแล้วผมจะขอลองรันดูนะ
- 42:41โอเคโอ้โห 3,072 diension ครับผมใส่ตรง
- 42:45นี้
- 42:46Dimension
- 42:493,72
- 42:52เห็นมั้ว่ายิ่งdiensชัใหญ่เท่าไหร่มันก็
- 42:53จะทำให้มันเก่งขึ้นแต่ก็ตามมาด้วยราคาที่
- 42:56แพงขึ้นจากนี้คุณอยากใช้ตัวไหนเลือกเอา
- 42:59เลยนะผมขอเปลี่ยนเป็นโอะแล้วกันผมใช้เป็น
- 43:03โอามะอันนี้แทนส่วนคุณจะใช้เป็นซัวก็ได้
- 43:11โอเค
- 43:12ing พร้อมแล้วครับต่อไปเราเข้าสู่การ
- 43:15สร้าง SQL database เหมือนเดิมเพื่อจะ
- 43:18เก็บเวกเตอร์พวกนี้กันดีกว่าเนาะมา import
- 43:23SQL 3 Import SQL ve
- 43:28import number
- 43:31อันนี้จะเข้าสเต็ปเดิมละเราเปลี่ยนแปลง
- 43:34ค่าตอนทำ embeding ที่เรา embeding ด้วย
- 43:36มือกลายเป็นโมเดลทำแทน
- 43:39ตรงนี้เราไม่ต้องแล้วคอมเมนตไปตอนสร้าง
- 43:43เเบิลอนุญาตเพราะมันเรื่องเดิมแล้วนะ Copy
- 43:46ของเดิมครับอนุญาต Copy Cursor ตรงนี้มา
- 43:50เหมือนเดิมได้เลย
- 43:52โอเคอย่าลืมสร้าง con เทกับ SQL 3
- 43:58connectory
- 44:00แล้วกันนะ
- 44:03แต่ประเด็นของเราก็คือว่า FL 3 มันไม่
- 44:05ใช่ขึ้นอยู่กับคุณว่าคุณจะใช้ตัวไหนแต่พอ
- 44:08ดีผมอ่ะสร้างตัวแปรชื่อว่า Dimension มา
- 44:10แล้วเพราะฉะนั้นผมจะส่งตัวแปรตัวนี้เข้า
- 44:12ไปในคำสั่งนี้นะครับใส่ตัว f เข้าไปตงนี้
- 44:15เป็น format แล้วเปลี่ยนเลข 3 เป็นปีกา
- 44:18dimension เราก็จะได้ table เก็บ
- 44:21เวกเตอร์ที่มี diension ตามที่คุณเข้าไป
- 44:25ต่อไปเข้าสู่กระบวนการ embed data แล้ว
- 44:28นะ data ของเราก็คือตัวนี้ถูกมโอเค
- 44:32แต่การตงนี้เราต้องเพื่อเข้า database
- 44:35ตัวนี้ด้วยเพราะฉะนั้นเราเลยจะต้องมีลูก
- 44:37เล่นพิเศษนิดนึงมา response เท่ากับ ai
- 44:41client.beding. embedding. create
- 44:44เหมือนเดิมครับก็คือ input เท่ากับ text
- 44:48ส่วน mod เท่ากับ modeled
- 44:52edding
- 44:54ผมจะสร้าง list แบบนี้เลยครับด้วยภาษา
- 44:57Python ก็คือ loop data in response
- 45:02dotdata ผมรู้ว่าไอ้ response ตัวเนี้ย
- 45:05data เนี่ยมันก็คือ list ตัวนึงผมวน loop
- 45:08เพื่อสร้าง list ใหม่แบบนี้ได้เลยโดยที่
- 45:11เราสามารถที่จะเอา data.mbeding Ming
- 45:13ตรงนี้มาได้เลยนะเพียงแต่เราต้องแปลง
- 45:15array ตัวนี้ให้กลายเป็น number array
- 45:17ก่อนนะก็คือใช้numpาย doar array เหมือน
- 45:22เมื่อกี้เลยเพื่อแปลง data. Mbeding ตัว
- 45:25นี้ให้เป็นนำ array sq support แค่ 32
- 45:29bit เพราะฉะนั้นผมแปลงครับ dt typ เป็น
- 45:32number.
- 45:34FL 32 ยังไม่พอเก็บลง SQL อะไรต้องแปลง
- 45:38เป็น Array of B ด้วย D by แบบนี้
- 45:43ใน SQ Lite ของเราเนี่ยพามเตอร์ของมัน
- 45:45เนี่ยเป็น True เพราะฉะนั้นวงเล็บครอบ
- 45:49ครอบแล้วก็คอมทิ้งท้ายบรรทัดเดียวจบเสร็จ
- 45:53แล้วสั่ง CursorxQu
- 45:56อันนี้อนุญาตให้ copy มาได้ excuse menu
- 45:59ตรงนี้ copy มาเลย
- 46:02ปึ๊บแต่เปลี่ยนเวกเตอร์เป็น beding
- 46:05เพียงเท่านี้คุณได้ database พร้อม data
- 46:08ตรงนี้เรียบร้อยแล้วนะสิ่งที่แตกต่างกว่า
- 46:10ข้อเมื่อกี้คือว่ามันเป็นเวกเตอร์ที่ถูก
- 46:12ด้วยโมเดลที่มันฉลาดกว่าที่เราไป best
- 46:16เองต่อไปครับเราจะไป quy ละ quy response
- 46:24aicien. embedding
- 46:27do create ส่ง input เข้าไป input ที่
- 46:30เราจะทำการถามเ้าเนี่ยคือคำ 3 คำเนี้ยผม
- 46:36ต้องการคำ wording ที่เกี่ยวข้องกับการ
- 46:39greeting
- 46:41greeting ถ้าเรามองด้วยตาเปล่าเราจะรู้
- 46:43ว่ามันต้อง return good morning มันแน่
- 46:45นอน vector database คงไม่ได้ greeting
- 46:47คงไม่มีใครเจอกันกันปุ๊บเอ้ยเวกเตอร์
- 46:50database คงไม่ใช่มาถึงปุ๊บ I love you
- 46:53อืก็ได้อยู่นะทักทายด้วยเอ้ยฉันรักคุณก็
- 46:56พอได้ถ้าเราจัดอันดับตามนี้เนี่ยด้วยตา
- 46:59เปล่าก็คงจะเป็น 3 2 1 ใช่มั้โอเค
- 47:03ส่งโมเดลเข้าไป
- 47:07ต่อไป
- 47:08wedding
- 47:11นำพาย array
- 47:14ส่ง cury response.data
- 47:18data ตัวที่ 0.membedding Embeding
- 47:21ส่ง D type เข้าไปเป็น numpire.
- 47:25Float 32.2
- 47:27Two bik เพื่อแปลงเป็น array of bik
- 47:29ให้เรียบร้อยทำ trle หน่อยครับวงเล็บครอบ
- 47:32เข้าไป comma ต่อท้ายโอเคเรียบร้อยแล้ว
- 47:35พร้อมจาก quy แล้วนะอนุญาตให้ copy code
- 47:39x ตรงนี้มาได้ copy มาเลยจนกระทั่งถึง
- 47:42fed ให้หมดเลยครับ
- 47:45ปึ๊บ
- 47:47แล้วเปลี่ยนตรง quyor เป็น quy embeding
- 47:50แต่ผมไม่อยากดูเวกเตอร์แล้วเพราะเวกเตอร์
- 47:53เมื่อกี้ที่เรา embed เองเป็นแค่ 3 มิติ
- 47:55มันสั้นแต่อันเนี้ยผมใช้ NORIC 700 กว่า
- 47:59ตัวผมคงไม่นั่งดูมันหรอกเพราะฉะนั้นผมขอ
- 48:01ไม่เอาเวกเตอร์มาแสดงผลแล้วกันผมขอเอาออก
- 48:04ใช้ und ไปแล้วก็ลบอันนี้ทิ้งไปเอาแค่
- 48:07distance ผมอยากรู้แค่ ID กับ distance
- 48:10พอดูซิว่ามันจัดอันดับถูกต้องหรือเปล่า
- 48:14โอเคครับโทษทีครับผมลืมผมcopี้มาไม่หมด
- 48:17เราลืมโหลด SQ เข้าไปเห็นมยผมcopี้มาแล้ว
- 48:21นะแต่ไปcopี้แค่นี้อ่าผมขอไปcopี้จังหวะ
- 48:25โหลด
- 48:26มาด้วยครับโหลด SQ เข้าไป
- 48:30โอเคลองใหม่ครับ
- 48:33ตอนนี้เห็นมว่าที่เราคำนวณกันว่า 321 ใช่
- 48:37มครับขนาดที่ได้เห็นมะ distance 0.8 0.9
- 48:439 1.1 ตามลำดับเช็คก่อนว่าแม่นจริงหรือ
- 48:46เปล่าผมเปลี่ยนใหม่ quy ด้วยคำว่า feeling
- 48:50feeling นี่เป็นไงครับ database ใช่ไหม
- 48:53คงไม่ได้อ่ะไม่ต้อง I love you ถูกม
- 48:55อันดับแรก Good morning อันดับ 2
- 48:56เวกเตอร์อันดับ 3 น้ำดวงด้วยตาเปล่านะอ่ะ
- 48:59ลองดู
- 49:012 3 1 เห็นป่ะโอ้โหมันใช้ได้เว้ยมัน
- 49:04สามารถทำในสิ่งที่เราไม่สามารถทำใน HQR
- 49:07database ได้แล้วไอ้เวกเตอร์ database
- 49:10ถ้าจะให้ขึ้นอันดับ 1 ใช้คำว่าอะไรดีผม
- 49:12ใช้คำนี้เลยครับคือคำว่า embedding อ่ะ
- 49:16ได้คำว่าอะไรมา
- 49:191 2 3 เวกเตอร์ database มาก่อนเลยอ่ะ
- 49:23นี่คือตัวอย่างการทำ embeding ที่เราเอา
- 49:28มาใช้แทนการ embeding ด้วยตัวเราเองนะเรา
- 49:31ใช้โมเดลมา embeding แล้วใช้ SQR มาทำor
- 49:35database ด้วยมือของเราเองทั้งหมดเลยนะ
- 49:38โอเคจบ exercise ที่ 2 เรื่องต่อไปครับ
- 49:41เป็นเรื่องของการใช้ database เวกเตอร์
- 49:44ที่ออกแบบมาเพื่อเวกเตอร์โดยเฉพาะตัวแรก
- 49:46ที่ผมจะนำเสนอในวันนี้ก็คือตัวชื่อว่า
- 49:49Chroma Chroma DB ตรงนี้คุณสามารถเข้า
- 49:51ไปดาวน์โหลดมาใช้งานได้เต็มที่เพราะมัน
- 49:53เป็น open source งานหลายๆอย่างที่คุณ
- 49:55เคยทำในแลเมื่อกี้เนี้ยคุณอาจจะไม่ต้องทำ
- 49:58อีกแล้วเพราะว่า database ตรงนี้จัดการ
- 49:59ให้คุณหมดเลยแอปมีแค่เขียน quyeding
- 50:03ให้คุณเลยไม่ได้เก็บแค่เวกเตอร์นะมันเก็บ
- 50:06ตัว document ให้คุณด้วยคุณสามารถไป quy
- 50:08มาแล้วก็มาทำแอปพลิเคชันถามตอบได้ง่ายๆ
- 50:11เลยครับด้วย Chroma DB ตรงนี้นะเดี๋มา
- 50:14ลองกันครับทุกคนเข้าเว็บไซต์ครับเว็บของ
- 50:16เค้าชื่อว่า try.com
- 50:20นี่คือเว็บของเค้าเลยนะไปดูdoอกได้ดูวิธี
- 50:24การใช้งานยังไงเรียนรู้ได้ซึ่งเดี๋ยวผมจะ
- 50:27มาแนะนำเบื้องต้นให้คุณก่อนนะรายละเอียด
- 50:29ต่างๆอยากเจาะลึกลงดีเทลมากกว่าที่ผมสอน
- 50:32ก็มาดูตรงนี้มีทั้งหมดให้คุณแล้วเรียบ
- 50:34ร้อยกลับไปที่ VS Code ครับแล้วสร้าง
- 50:38ไฟล์ขึ้นมา 1 ไฟล์ชื่อว่า 03 Chroma.py
- 50:44ไปดูครับ library ครับที่เราจะใช้ก็คือ
- 50:46ตัวที่ไปที่ pp.org นะตัวนี้มันชื่อว่า
- 50:49Chroma
- 50:51DB seสิรชหา Chroma DB ได้เลยครับตัว
- 50:54นี้เมื่อพร้อมแล้วครับกลับไปที่ VS Code
- 50:58พิมพ์ UV
- 51:00Chroma DB
- 51:05import เลยครับ Chroma DB โจทย์ที่เรา
- 51:10จะทำกับ Database ตัวนี้ก็เหมือนเดิมครับ
- 51:12ก็คือเราจะใช้
- 51:14โจทย์เดิม Text ทั้ง 3 ตัวนี้นั่น
- 51:19ต่อไปสร้าง choma kantน
- 51:24ด้วยคำสั่ง chroma db.c CL
- 51:28การสร้าง Chroma DB ตัวนี้เป็นการสร้าง
- 51:31in memmory database ก่อนนะถ้าใครอยาก
- 51:33สร้างเป็นไฟล์อยากสร้างเป็น server เดี๋
- 51:35ค่อยมาลองทำกันต่อไปเราต้องไปทำสิ่งที่
- 51:38เรียกว่า collection ครับ collection
- 51:42สร้างในคำสั่ง Chroma Client
- 51:45doc create collection
- 51:48ต่อไป name ตั้งชื่อ collection ของคุณผม
- 51:51ตั้งชื่อว่า My Collection
- 51:55ก็อาจจะเปรียบเสมือนเป็นชื่อของ table
- 51:57อย่างนี้เป็นต้นต่อไปจัดการ collection.
- 52:01add
- 52:03document document คืออะไรถ้าอยากรู้กด
- 52:05command ค้างแล้วคลิกไปดูที่ add คุณจะ
- 52:07เห็นว่า document คือ one or many
- 52:11document class ตัวนี้ถ้าผมกด command
- 52:13class คลิกไปที่ document อีกทีนึงจะ
- 52:15เห็นว่า document เป็นไปได้ทั้ง string
- 52:17และ list of document นั่นหมายความว่า
- 52:19ผมสามารถส่ง text แบบนี้เข้าไปได้
- 52:23add ตัวนี้ต้องการอะไรอีก add ตัวนี้
- 52:25ต้องการ id ครับคือการทำ indexing ตรงนี้
- 52:29ตัว document ทุกตัวจะต้องมี ID อย่างของ
- 52:32SQL เมื่อกี้นี้มันทำ Auto ID ให้เรานะ
- 52:34running 1 2 3 4 5 แต่ครั้งนี้เรา
- 52:37ต้องทำ ID ไปด้วยคุณสามารถส่งอย่างนี้ได้
- 52:39ครับก็คือ ID
- 52:41เป็นเข้าไปเช่นเวกเตอร์ database เป็น ID
- 52:441 ID 2 ID 3 แบบนี้ก็ได้แต่ถ้าเกิด
- 52:48คุณทำแบบนี้แล้วถ้าเกิดคุณมีเวกเตอร์หรือ
- 52:51มี text มากกว่าเดิมคุณต้องมานั่งใส่เสีย
- 52:53เวลาเพราะฉะนั้นผมจะทำการใช้คำสั่ง for
- 52:56เพื่อสร้าง ID ให้มันนะโดยที่ for in
- 53:00text ตัวนี้เราจะ generate id ยังไงดี
- 53:03อ่ะ running 1 2 3 มไม่เอาดีกว่าผมขอ
- 53:06ใช้เป็น uu id เพื่อ generate เป็น ID
- 53:08ให้มันนะงั้นทุกคนครับไป import
- 53:12uuid เข้ามาเพื่อจะทำเป็น ID ให้มัน uuid
- 53:16เนี่ยจะมีคำสั่งที่ชื่อว่า uuid 4 ผมใช้
- 53:19uuid 4 เพียงแต่ว่าผมต้องแปลงเป็น
- 53:22string ก่อนนะเพราะฉะนั้นผมขอใช้ string
- 53:24ครอบนะ str ครอบแปลงตัวนี้ให้เป็น string
- 53:29ซะโอเคมันจะ generate ID ให้ผมออโต้เลย
- 53:33เป็น Global ID ให้เราเรียบร้อยได้แล้ว
- 53:39ทีนี้เรามาดูกันว่าถ้าเราแอดไปแล้วเนี่ย
- 53:42สิ่งที่เกิดขึ้นเนี่ยมันทำอะไรกับ
- 53:43Database ตัวนี้บ้างผมจะทำงี้ครับก็คือ
- 53:46collection. Peak
- 53:50Colorction. พีคเนี่ยคุณจะทำการเอา data
- 53:52เนี่ยดึงขึ้นมาให้คุณดูนะผมขอดูนี้ resve
- 53:56เท่ากับ print resolve มาดูนะโอเคปริ้น
- 54:00ตรงนี้มาดูสังเกตมยโค้ดเราสะอาดมากเลยแทบ
- 54:03จะไม่ทำอะไรเลยโอเคผมขอลองดูก่อนนะว่ามัน
- 54:06ทำไงได้บ้างผมขอรันที่ UV Run 03
- 54:15สิ่งที่เกิดขึ้นคืออะไรสิ่งที่เกิดขึ้น
- 54:17คือก็คือว่าเครื่องคุณจะใช้อีกแล้วครับ
- 54:19เพราะมันจะมีการดาวน์โหลดโมเดลมาอีกแล้ว
- 54:22โมเดลที่มันดาวน์โหลดมาให้คุณนั้นอยู่ใน
- 54:25นี้ครับอยู่ใน Do cash
- 54:29แล้วก็อยู่ใน Chroma
- 54:32อยู่ใน Onix Model
- 54:35นี่ครับมันไปดาวน์โหลดโมเดล All Mini LM
- 54:39L6 V2 มาอีกแล้วแต่อยู่คนละที่นะคือ
- 54:42เบื้องหลังเนี่ยมันไปทำให้คุณออโต้พยายาม
- 54:44จะทำให้คนที่เริ่มต้นเนี่ยใช้งานง่ายที่
- 54:46สุดโดย default ตัวเนี้ยมาให้คุณเพราะ
- 54:48ฉะนั้นครั้งแรกที่คุณรันอาจจะช้าหน่อยนี่
- 54:51ครับเรียบร้อยมันลง database เรียบร้อย
- 54:53สังเกตนะครับมันมี ID มันเป็น UUID เห็น
- 54:57มั้ยกี่ตัว 1 2 3 ตัวต่อมามันมี beding
- 55:00เห็นป่ะ A Bedding เพียบเลยมันมี
- 55:03Document เห็นป่านี่คือความพิเศษของมัน
- 55:05ครับเมื่อกี้เวกเตอร์ database ของเราไม่
- 55:07ได้ทำใช่มยเราเก็บแต่เวกเตอร์เราไม่ได้
- 55:09เก็บตัว text document แต่นี้มันเก็บ
- 55:11document ตัวเดิมไว้ให้มี meta data
- 55:14เอ้ย meta data เราไม่ได้ใช้อะไรเลยนี่
- 55:16เดี๋ยวเรามาลองเล่น meta data กันหน่อย
- 55:19เพราะคุณอย่าลืมว่าบางสิ่งบางอย่างเรา
- 55:21ต้องเก็บdata้าคุณต้องมีคอลัมน์อื่นอีก
- 55:23เยอะแยะมากมายคำถามคือมีแค่ text กับ ID
- 55:25เท่านั้นหรอที่เก็บได้คำตอบคือเก็บมาก
- 55:27กว่านั้นก็ได้ครับเราจะใช้เป็น MAT Data
- 55:29data แทนคุณสามารถใส่เป็นดิสก์เข้าไปได้
- 55:32เลยเช่นคุณใส่เป็น Jon เข้าไปนะสมมุติผม
- 55:34บอกว่าแรงภาษาเป็นภาษาอังกฤษก็ทำงี้ได้
- 55:39เลยแต่คุณต้องทำบน Loop ทั้งหมด 3 ครั้ง
- 55:42เพราะคุณมี data อยู่ 3 ตัวคุณต้องทำให้
- 55:44ครบแต่ผมเอาง่ายก่อนแล้วกันนะผมขอ loop
- 55:47ให้ตามจำนวน data ที่วิ่งเข้าไปทั้งหมด
- 55:50เลยเท่ากับว่าทั้ง 3 ตัวจะมี data เป็น
- 55:53rank เท่ากับ en ทั้งหมดโอเคผมสั่งรันดู
- 55:58จะเห็นมว่าตัวนี้จะมีแรง en เป็น data มา
- 56:02ด้วยเห็นป่ะต่อไปผมต้องการที่จะคyเอา
- 56:05เฉพาะสิ่งที่ผมต้องการอ่ะมาลองดูครับคตรง
- 56:09นี้ไปก่อน result
- 56:12เท่ากับ collection. Qury Qury ก็คือมี
- 56:16Qury text ผมส่งได้เลยครับสังเกตมว่าผม
- 56:19ไม่ต้อง embeding เพราะ framework อ่ะมัน
- 56:21ช่วย embed ให้คุณอยู่แล้วในตัวนะคุณก็
- 56:24ใช้ได้เลยครับ greeting
- 56:26มันง่ายมากไอ้สิ่งที่คุณเคยทำทั้งหลาย
- 56:28ทั้งบนเนี่ยไม่ต้องทำแล้ว dissolve ก็คือ
- 56:30บอกว่าจะเอามากี่ตัวผมขอมา 3 ตัวที่ก็
- 56:34สั่งปริ้นนะครับปริ้นผมปริ้นตัว resource
- 56:37มาดู
- 56:39อ่ะสั่งดันดูครับ
- 56:42เรียบร้อยแต่ว่าผมต้องการดูแค่บางอย่าง
- 56:44ไม่เอา ID แล้วกัน ID ไม่ต้องการผม
- 56:47ต้องการดู document แล้วก็ต้องการดู
- 56:50distance อยากรู้ 2 อย่างกับ distance
- 56:53เพราะฉะนั้นผมจะปรintตัว document เห็นม
- 56:56นี่คือตัวนี้ document นะแล้วก็ปรint
- 57:00result
- 57:04นี่ดูตรงนี้ได้เลยครับจะมี distance อยู่
- 57:07ตรงนี้เห็นม distance s ด้วยโอเคเมื่อ
- 57:11ได้แล้วปึ๊บสั่ง
- 57:14เรียบร้อยครับ Good morning
- 57:17เอ่อเหมือนเดิมครับเปลี่ยนตรงนี้เป็น
- 57:18feeling ต้องเป็น I love you ใช่มยอ่ะ
- 57:24อ๋อที่เราใช้กันอยู่เนี่ยมันคือตัวไหนนะ
- 57:28มันคือตัวนี้ใช่มยมันไม่เก่งมันมีแค่ 300
- 57:32กว่า diension เองไม่เวิร์คเห็นมผมใช้
- 57:34Feling แล้วมันไม่เปลี่ยนให้เราแสดงว่า
- 57:37มีปัญหาที่ Mbeding ะเพราะฉะนั้นเรามา
- 57:40เปลี่ยนเป็น Open AI กันดีกว่าก็คือใช้
- 57:42โอามะที่ 768 diension โอเคทุกคนครับ
- 57:48สร้างไฟล์เพิ่มไป 1 ไฟล์
- 57:51ชื่อ 04a_opena.py
- 57:57PY
- 57:58เมื่อกี้แบบง่ายคือแบบที่ไม่ต้องทำอะไร
- 58:02เลยแล้วคุณก็ได้ของแต่ครั้งนี้จะดูให้มัน
- 58:04ยากหน่อยผมcopี้แล้วกันนะทุกคนcopี้ทั้ง
- 58:08หมดเลยมาไว้ที่อีกไฟล์นึงจะได้เก็บเอาไว้
- 58:11อ่านได้ในวันที่คุณต้องการจะทำแบบง่ายๆ
- 58:14รันเวกเตอร์แบบไม่ต้องทำอะไรเลยทุกอย่าง
- 58:16framework ทำให้หมดแต่ไฟล์ที่ 4 ตัวนี้
- 58:19คือสิ่งที่เราต้องการก็คือเราต้องการจะ
- 58:21เปลี่ยนตัว embeding เพราะเรารู้แล้วว่า
- 58:23ความเก่งของมันอยู่ที่ embeding ตัวที่
- 58:25เราต้องทำเพิ่มก็คือตอน create
- 58:28collection มันจะมีสิ่งนึงที่คุณต้อง
- 58:31เปลี่ยนเาเรียกว่า embedding function
- 58:33ตัวนี้แหละคือตัวที่จะมาบอกว่าใครเป็นคน
- 58:36ให้คุณโอเคเพราะฉะนั้นมาเราจะต้องไป
- 58:40import ของเพิ่มนิดนึงครับ form
- 58:44dbutil.
- 58:49Function.open Open AI embeding
- 58:52function Import Open AI embeding
- 58:54function เข้ามาแล้วก็ import. ENV
- 58:57ด้วยแล้วก็ import ตัว OS ด้วยเพื่อจะได้
- 59:00โหลด ENV เข้ามาแล้วก็ ENV.load.eninv
- 59:05inv ให้เรียบร้อยโอเคเพราะฉะนั้นตรงนี้
- 59:07ครับตรงใต้ client ตัวนี้ก่อนจะไป create
- 59:10collection คุณต้องมี embeding function
- 59:12ก่อนสร้าง EF ขึ้นมาครับพิมพ์ Open AI
- 59:16embeding function อันดับแรกคือส่ง
- 59:18Model name เข้าไปอันดับ 2 คุณต้องส่ง
- 59:22API base เข้าไปอันดับ 3 คุณต้องส่ง API
- 59:26key เข้าไป
- 59:29model name API base มาจาก
- 59:31environment ครับ OS.en Enveronะ
- 59:35N point
- 59:37API key ของโอะ
- 59:40เสร็จแล้ว embeding ฟังก์ชเพียงแค่คุณไป
- 59:44เพิ่ม eding ฟังกชให้มันแบบนี้ครับ
- 59:49เพียงแค่คุณทำแค่นี้ครับลองมาดูครับเมื่อ
- 59:51กี้นี้ greeting ใช่มโอเคผมลองรัน UV Run
- 59:5704 Tab ครับ Enter
- 1:00:01เห็นมยตอนนี้ Greeting เป็น Good morning
- 1:00:03I love you vector ผมลองเปลี่ยนเป็น
- 1:00:05ตรงนี้ feeling ดูครับเมื่อกี้ที่เราผิด
- 1:00:07พลาดใช่ม
- 1:00:09ดูซิว่าเขาจะแก้ปัญหานี้เได้ไหมไอ้เรียบ
- 1:00:13ร้อยเห็นมว่าการคุณเปลี่ยนตัวing model
- 1:00:16เข้าไปงานของคุณนั้นก็จะง่ายขึ้นอ่ะลองดู
- 1:00:19embedding บ้าง embedding
- 1:00:21ก็จะเก่งขึ้นนะเข้าใจนี่คือเวกเตอร์
- 1:00:25database
- 1:00:27ตัวเลขที่คุณเห็นตัวนี้มันเป็นตัวเลขเกิน
- 1:00:291 ใช่มั้ยเมื่อกี้ผมสอนคุณว่าการคำนวณ
- 1:00:32distance มี 2 แบบใช่ป่ะก็คือแบบที่เป็น
- 1:00:35ยูคียนกับการที่มันคำนวณเกิน 1 ได้แสดง
- 1:00:40ว่าเดาได้เลยว่ามันเป็นูคียนป่ะเพราะมัน
- 1:00:43คือ distance ระยะทางเพราะว่าการคอสไม่มี
- 1:00:46ทางที่คอสเกิน 0 กับ 1 ไปได้แสดงว่า
- 1:00:49default มันเป็นอยากลอง cos มยมาการ
- 1:00:53เปลี่ยนเป็น cos นั้นคุณจะต้องไป config
- 1:00:55เพิ่มเติมนิดนึงครับตอนที่คุณ create
- 1:00:57collection กด enter ลงมานะแล้วพิมพ์คำ
- 1:01:00ว่า configuration
- 1:01:01ใส่ปีกการเข้าไป double code พิมพ์คำว่า
- 1:01:04นี่ฮะ HNHW
- 1:01:06ถ้าคุณจำสไลด์ผมได้ HNHW
- 1:01:09คือตอนนี้เลยครับ Hari Navigable Small
- 1:01:12World คุณต้องกำหนดด้วยว่า World ของคุณ
- 1:01:15เนี่ยจะคำนวณ distance เป็นแบบไหนเพราะ
- 1:01:17ฉะนั้นผมจะ config HNHW
- 1:01:20ใส่ colon ใส่ปีกอีกทีนึงแล้วคราวนี้ใส่
- 1:01:23space ครับบอกว่า space อยากใช้อะไรครับ
- 1:01:26นี่ฮะมีให้คุณเลือกอยู่ 3 ตัว cos L2 2
- 1:01:30ip
- 1:01:32cos ก็คือ cos นั่นเองมุม l2 เนี่ยแหละ
- 1:01:37ครับคือ default มันเป็น l2 เพราะฉะนั้น
- 1:01:40คุณลองเปลี่ยนเป็น cos ดูครับ
- 1:01:43ลองรันอีกรอบนึงครับ
- 1:01:46จะเห็นว่าค่าของมันนั้นจะเป็น 0 กว่าๆไม่
- 1:01:51เกิน 1 เห็นมในตารางนี้เนี่ยผมได้แสดงให้
- 1:01:54เห็นแล้วว่าระหว่าง cos กับ L2 ที่เป็น
- 1:01:57equient เนี่ยมันมีความแตกต่างยังไงเรา
- 1:01:59ใช้งานประเภทไหนนะอย่าง cos เนี่ยมันเช็ค
- 1:02:03ความคล้ายยิ่งเป็น 0 ก็คือองศามันน้อย
- 1:02:06เท่ากับว่ามันจะใกล้เคียงส่วน equient
- 1:02:10อยู่ที่ระยะทางก็ยิ่งน้อยก็คือยิ่งใกล้
- 1:02:13ช่วงของค่าของมันเนี่ย cos เนี่ยอยู่ที่
- 1:02:15-1-1 นะก็คือมีค่าติดลบกับมีค่าบวกแต่
- 1:02:18ไม่เกิน 1 นะอยู่ประมาณนี้ก็ไม่สนใจ
- 1:02:21เรื่องขนาดสนใจแค่มุมนะส่วน L2 หรือ
- 1:02:25Equium เนี่ยสนใจเรื่องของระยะทางและ
- 1:02:27ขนาดงานที่ใช้โคซจะใช้เกี่ยวข้องกับพวก
- 1:02:31งาน text หรือข้อความต่างๆนะจะดีกว่าส่วน
- 1:02:36เอ่อตัวที่เป็น equient เนี่ยจะเหมาะพวก
- 1:02:39รูปนะพวกข้อมูลเชิงปริมาณอย่างนี้เป็นต้น
- 1:02:42ก็ลองไปเลือกใช้ดูแล้วกันต่อไปเมื่อกี้
- 1:02:46นี้ผมพูดถึงเรื่องของ meta data ใช่มย
- 1:02:49การค้นหานั้นเราค้นหากันแค่ Qex อย่าง
- 1:02:51เดียวเหรออยากค้นหาจาก MEA data ด้วยได้
- 1:02:54มั้ยมาลองดูกันถ้าอยากลองค้นหาจาก Met
- 1:02:58เพราะฉะนั้นผมต้องทำให้ data นั้นมีความ
- 1:03:00แตกต่างกันก่อนผมขอเพิ่มแบบนี้ครับ meta
- 1:03:05data เปลี่ยนใหม่เป็นแบบพิมงก็คือแรงอัน
- 1:03:11นี้เป็น EN
- 1:03:14ตัวที่ 2 ผมcopี้มาเลยนะ
- 1:03:19เอาไป 3 ตัวที่ 2 ผมมันเป็นภาษาไทยคือ TS
- 1:03:22ผมมั่วๆไปเพื่อให้เกิดความแตกต่างตัวที่ 3
- 1:03:27ผมเป็น EN เหมือนเดิมเห็นมยนะคือคุณต้อง
- 1:03:29มีให้ครบนะตามจำนวน data ที่คุณใส่ผมไม่
- 1:03:33ได้วน lo ไงผมต้องพ manual เองเพื่อให้
- 1:03:36เห็นความแตกต่างแต่ความเป็นจริงแล้วที่
- 1:03:38คุณเอา data ลงเวกเตอร์เนี่ยคุณคงมีวิธี
- 1:03:40การคำนวณเขียนโปรแกรมของคุณและนะเพื่อ
- 1:03:42แปลงจาก table ปกติให้กลายเป็นเวกเตอร์
- 1:03:47ทีนี้ถ้าเราจะ qu บอกว่าผมต้องการเอา
- 1:03:50เฉพาะ en ไม่เอา th ทำไงก็ใช้ where ครับ
- 1:03:56อใช้ชื่อเหมือน SQL เอาเลยแแล้วบอกว่าแรง
- 1:04:01เป็นเฉพาะ EN นะแบบนี้เป็นต้นเห็นมั้ยว่า
- 1:04:06แค่เนี้ยคุณสามารถเพิ่มcrครทีในการแare
- 1:04:08ได้ละแทนที่มันจะไปค้นหาคำๆนี้จากทั้งหมด
- 1:04:14มันกลายเป็นว่ามันมีการไปแareเพิ่มมันจะ
- 1:04:17เหลือแค่ 1 กับ 3 ถูกมั้ก็คือเหลือแค่
- 1:04:19เวกเตอร์กับ Good morning เพราะฉะนั้นผม
- 1:04:22ลองรันดูใหม่คราวนี้ถึงแม้ผมจะลิมิต 3 ก็
- 1:04:26ตามแต่มันออกมาแค่ 2 มันจะไม่มีตัวนั้น
- 1:04:29ออกมาแล้วนี่คือการแareเพิ่มได้
- 1:04:32โอเคทีนี้พอคุณเริ่มทำไปแล้วเนี่ยคุณอยาก
- 1:04:36จะให้มันมีตัวตนสักนิดนึงเพราะตอนนี้มัน
- 1:04:38เป็น memmory database อย่างเดียวผมอยาก
- 1:04:41ให้มันเก็บเป็นไฟล์ได้มทำได้วิธีการก็คือ
- 1:04:45คุณก็แค่ไปสร้าง chroma client อีกแบบ
- 1:04:48นึงขึ้นมาโดยครั้งนี้จะเป็น Chroma DB.
- 1:04:52persist client ะ persist client ก็
- 1:04:56แค่ไปบอกว่าคุณจะเก็บ data ไว้ที่ไหนผมขอ
- 1:04:58เก็บ data ไว้ที่/a
- 1:05:02อันนี้เป็นโฟลเดอร์นะฮะมันจะไปสร้างไว้
- 1:05:04ที่ตรงนี้ให้คุณผมจะลองรันดูนะครับรัน
- 1:05:08เหมือนเดิมแต่ครั้งนี้มันจะไป persit
- 1:05:11อยู่ที่นี่ครับโoldด Chroma เห็นมยและที่
- 1:05:14น่าสนใจก็คือ database ที่มันใช้คือ SQL
- 1:05:183 อีกแล้ว
- 1:05:20แต่ว่าโครงสร้างของ database เนั้นไม่
- 1:05:22เหมือนเดิมมันมีอะไรที่มากกว่านั้นเห็นม
- 1:05:25เก็บหลากหลายมากมายซึ่งคุณไม่ต้องไปแตะ
- 1:05:27ต้องมันนะนี่คือของมันเรียบร้อยเห็นมนี่
- 1:05:32คือได้ persist เรียบร้อยครั้งหน้าคุณมา
- 1:05:35แค่จาก database ที่นี่ก็พอทีนี้การทำ
- 1:05:39เป็นไฟล์โฟลเดอร์อย่างนี้เนี่ยมันก็คือ
- 1:05:42ถูกป่ะอยากทำเป็น server ได้มยได้ผมขอลบ
- 1:05:46โฟลเดอร์ตรงนี้ออกไปก่อนนะ
- 1:05:50dB ที่คุณติดตั้ง package Python มัน
- 1:05:52เนี่ยมันจะมีคำสั่งนี้ครับ Chroma แล้วก็
- 1:05:54คำสั่ง Run เพื่อ Start database Server
- 1:05:56ขึ้นมาได้เห็นมั้ว่ามันเป็นพort 8,000
- 1:05:59ต่อมาคุณก็ต้องไปเปลี่ยนตรงนี้ครับปกติ
- 1:06:02ที่เราคุณไปยิงที่โลคalแล้วจะไปยิงใหม่
- 1:06:04ที่ Chroma
- 1:06:06Client เท่ากับ Chroma DB.ht
- 1:06:11HTDV Cant โดยที่ส่ง Host เข้าไป Host
- 1:06:15ก็คือตัว Local Host แล้วก็ส่ง Port
- 1:06:17เข้าไป Default ก็คือตัว Port จะเห็นว่า
- 1:06:21ตอนนี้เขาจะไปสร้างโฟลเดอร์ Chroma ขึ้น
- 1:06:23มาแล้วแต่โฟลดตรงเนี้ยมันเป็นของ HTTP
- 1:06:25Server นะมันไม่ใช่ของตัวalตัวนี้ละผม
- 1:06:29เปิด Terminal อีก 1 ตัวขึ้นมาแล้วผมสั่ง
- 1:06:31run UV Run 04 คราวนี้มันจะไปยิงที่
- 1:06:37ตัว HTTP Server แทนแล้วนั่นหมายความว่า
- 1:06:41จากนี้ต่อไปคุณไปเขียน AI แอปพลิเคชก็แค่
- 1:06:45ใช้ไอตัวเนี้ยไปได้เลยนะแต่ว่าอยากจะรัน
- 1:06:51เป็นแบบdoอกerเลยมยได้ถ้าอยากรันแบบ
- 1:06:53doอกerเนี่ยมันก็จะมีให้คุณใช้เหมือนกัน
- 1:06:55ครับถ้าคุณไปเปิดที่ docker.com คอเนี่ย
- 1:06:59คุณไปค้นหาคำว่า Chroma DB
- 1:07:05ตัวนี้ Chroma DB/Chroma
- 1:07:08คุณก็แค่ไปพูตัวโมเดลตรงนี้มา
- 1:07:12ผมขอ stop server ก่อนนะปึ๊บโอเคลบทิ้ง
- 1:07:15ก่อน
- 1:07:18doer image just นะตอนนี้คุณจะเห็นว่า
- 1:07:23ผมจะมีโมเดลที่ชื่อว่า DB/A
- 1:07:27เห็นมยโอเคโคเพราะฉะนั้นเดี๋ยวเราจะไป
- 1:07:30สร้าง docker compost กันเนาะก็คือสร้าง
- 1:07:33ไฟล์doอกerขี compost. YML สร้างสวิตch
- 1:07:38ขึ้นมา
- 1:07:42DB
- 1:07:44image ก็คือ DB/A
- 1:07:49port ก็คือPortุ่ม
- 1:07:54ที่ใช้ก็คือผมขอใช้/a
- 1:08:00มันจะอยู่ที่ slash data ครับโอเคข้างใน
- 1:08:05ของ image อยู่ที่ slash data นะ map
- 1:08:07data มาข้างนอกนะนี่ผมลบโฟลเดอร์ coma
- 1:08:11ไปแล้วนะโอเค Start docker ได้เลยครับก็
- 1:08:14คือdoอกer
- 1:08:17up
- 1:08:19โอเค Start ได้เหมือนกันเห็นมั้ยทีนี้
- 1:08:21สามารถเอาตัวนี้ขึ้น Server ได้แล้วแล้ว
- 1:08:23ก็สั่ง Run ได้เหมือนเดิมเพราะว่าที่นี่
- 1:08:27เราไปที่โลคal Host Portะ
- 1:08:35ครับคือโคร DB ที่คุณสามารถเอาไปทำการต่อ
- 1:08:39ยอดได้เลยเนอะ
- 1:08:44โอเคครับจบเรื่อง Chroma DB เราจะเข้า
- 1:08:48สู่ database ตัวถัดไปก็คือ Qance ตัวนี้
- 1:08:50พัฒนาโดยประสาท Rus ก็เดี๋ยวเรามาลองดู
- 1:08:52กันว่าไอ้งานแบบเดิมที่เราทำที่ตัว Chroma
- 1:08:56SQ มาแล้วเนี่ยเมื่อมันอยู่บน QD จะมี
- 1:08:58วิธีการเขียนโค้ดยังไงนะแตกต่างกันขนาด
- 1:09:00ไหนก็เดี๋ยวเรามาลองดูนะเว็บไซต์ของ QD
- 1:09:03ก็คือ cdance.tech Text นะฮะคุณสามารถมา
- 1:09:06ดูข้อมูลได้ที่นี่นะมันจะมี droper ที่
- 1:09:08เป็น document ตรงนี้ตรงจุดไหนที่คุณไม่
- 1:09:11ได้เรียนจากคอร์สนี้ก็มานั่งศึกษาเพิ่ม
- 1:09:13เติมได้จากตรงนี้กลับไปที่ VS Code ครับ
- 1:09:16สร้างไฟล์เพิ่ม
- 1:09:1905.py
- 1:09:23py
- 1:09:26ตัวแพ็คเกจที่เราจะใช้กันเนี่ยก็คือตัว
- 1:09:28ที่ชื่อว่า
- 1:09:30เข้าไปที่พายายนะ
- 1:09:33ขีด clan
- 1:09:36ตัวนี้
- 1:09:40กลับไปที่ vs code ครับเราใช้คำสั่ง UV
- 1:09:44cant
- 1:09:51แล้วก็ไป import ครับ formance
- 1:09:55client import ตัว cant
- 1:10:00เข้ามาโจทย์ใช้โจทย์เดิมครับทุกคนไป copy
- 1:10:04โจทย์ text ตัวนี้มา
- 1:10:10เริ่มจากสร้าง client ขึ้นมาก่อนครับ
- 1:10:12cudent cant
- 1:10:20เริ่มต้นจาก mmory ก่อนนะ
- 1:10:25ใช้คล้ายๆ SQL เลยต่อไปเราต้องมีโมเดล
- 1:10:30โมเดลตรงนี้Supportพortอยู่กับ Huging
- 1:10:33Face เพราะฉะนั้นคุณต้องไปเอาโมเดลที่
- 1:10:34huging face ผมคิดว่าตัวที่ง่ายที่สุด
- 1:10:37สำหรับพวกเราณตอนนี้ก็คือ
- 1:10:41sentence transformer
- 1:10:44ตัวนี้ copy มาวางเป็นโมเดลคือก่อนที่เรา
- 1:10:49จะเอา text ตัวเนี้ยเข้าไปอยู่ใน QD
- 1:10:52เพื่อให้มันได้เนี่ยคุณจะต้องทำการแปลง
- 1:10:54มันนิดนึงครับก็คือแปลง text ตัวนี้ให้
- 1:10:56เป็น document ก่อนมันมี class อยู่ class
- 1:10:58นึงครับที่คุณต้องทำก็คือ form cdance
- 1:11:01client do model แล้วให้คุณไป import
- 1:11:04document เข้ามาแปลงจาก text ให้เป็น
- 1:11:07document ตรงนี้ทั้งหมดเลยวิธีแปลงก็คือ
- 1:11:09ผมจะสร้างเป็น document อย่างงี้
- 1:11:13แล้วก็ใช้เป็น list โดยที่บน loop เหมือน
- 1:11:15เดิมครับบน loop text inex
- 1:11:18เสร็จแล้วสร้าง document
- 1:11:21โดยที่ใน Document มี text ครับ text
- 1:11:23เท่ากับ text เข้าไปแล้วก็ส่ง model เท่า
- 1:11:26กับ model เข้าไปอย่างงี้ต่อไป collection
- 1:11:30ผมขอสร้างเป็น collection name ขึ้นมา
- 1:11:34ชื่อว่า My Collection
- 1:11:38เสร็จแล้วไปสั่ง QDance client.c Create
- 1:11:42collection ครับโดยที่จะต้องส่ง
- 1:11:45collection name collection name ตัว
- 1:11:47นี้เข้าไปและคุณจะต้องทำการไปตั้งค่า
- 1:11:51vector config ครับคือตัวที่คุณจะต้อง
- 1:11:53กำหนดว่าคุณจะต้องใช้ขนาดเท่าไหร่คุณจะ
- 1:11:57ต้องใช้ cos หรือจะใช้ equient คือ vector
- 1:12:01config เนี่ยมันคือ class ที่ชื่อว่ากด
- 1:12:03เข้าไปดูตรงนี้นะปึ๊บนี่มันคือเวกเตอร์
- 1:12:06พAMเพราะฉะนั้นผมจะไป import เพิ่มตรงนี้
- 1:12:09comma เวอร์
- 1:12:11พAM
- 1:12:13อืเสร็จแล้วสั่งเวกเตอร์พAMสร้างขึ้นมา
- 1:12:18โดยที่ข้างในจะมีอะไรบ้างมันจะมีไซส์นี่
- 1:12:22ครับเมื่อกี้นี้ในตัว dbz เนี่ยมัน
- 1:12:26อutโมติให้เราเลยนะแคุณแทบไม่ต้องไปใส่
- 1:12:28ไซส์เองเลยแต่คราวนี้มันต้องให้คุณใส่
- 1:12:30ไซส์อ่ะเมื่อกี้มัน 384 ใช่มั้ยแต่ Qance
- 1:12:34Kant เนี่ยมันมีคำสั่งชื่อว่า Get
- 1:12:37embeding size ด้วยมันสามารถรู้ไซส์ของ
- 1:12:41โมเดลตัวนี้ได้
- 1:12:43อีกอย่างนึงที่ต้องใส่ก็คือเรื่องของ
- 1:12:45distance
- 1:12:47คุณจะใช้วิธีการคำนวณ distance แบบไหน
- 1:12:50ซึ่ง distance ตัวนี้คุณจะต้องใช้อีกคลาส
- 1:12:54นึงครับ class ชื่อว่า distance เพราะ
- 1:12:57ฉะนั้นทุกคนไป import นิดนึงนะด้านบนคอม
- 1:13:00ตรงนี้เพิ่ม distance
- 1:13:04จังหวะนี้คุณจะสามารถใส่ distance แล้ว
- 1:13:08บอกได้ว่าจะเอาอะไร Equient ใช้อันนี้ cos
- 1:13:13ใช้อันนี้ใช้ cos ก็ cos ไปโอเคผมสร้าง
- 1:13:18คอชเรียบร้อยแล้วสังเกตมว่าตอนสร้างนั้น
- 1:13:21เราไม่ต้องรับอะไรกลับมาเลย resp กับมัน
- 1:13:23นะคือส่งสร้างเสร็จปุ๊บก็คือยิงไปที่
- 1:13:25server มันก็ปิดอยู่ที่นั่นต่อไป client
- 1:13:30upload collection
- 1:13:32คือเรา data เนี้ยอัปโหลดขึ้น server ที่
- 1:13:36เราทำเป็น document เนี่ยผม comment ตรง
- 1:13:38document ก่อนนะผมไม่ได้ปิดแล้วนะปึ๊บนะ
- 1:13:42อ่ะอัปโหลด collection กันซึ่งเราต้องบอก
- 1:13:45ว่า collection name ก่อน collection
- 1:13:48name เห็นมยว่าต่อไปคือ vector เวกเตอร์
- 1:13:52ก็คือไอ้ document นี่แหละที่เราจะใช้
- 1:13:56ID เหมือนเดิมครับคุณต้องส่ง ID ด้วยผม
- 1:13:59ขอใช้ท่าเดิมแล้วกันก็คือใช้ UUID เนาะผม
- 1:14:03ไป import UUID มันนิดนึงข้างบน import
- 1:14:07UUID ID เพื่อ generate ID เพราะผมไม่
- 1:14:10มี ID
- 1:14:12อ่ะก็เป็น for
- 1:14:16intext แล้วก็ใช้ str uuid.Uuidc UUIDC
- 1:14:23โอเค
- 1:14:24อ่ะต่อไปอยากลองดูมว่าอัปโหลดได้มจะทำให้
- 1:14:29คุณดู UV Run 05 Tab
- 1:14:34error Error ตรงนี้มันบอก Error อะไร
- 1:14:37คุณมันบอกว่าเฮ้ยคุณไม่ได้ import ตัว
- 1:14:40Fast MT มันเลยไม่ได้เพราะจังหวะที่มัน
- 1:14:43อัปโหลดเนี่ยมันการ Mb ทุกคนกลับไปดูที่
- 1:14:45แพ็คเกจของ Python Qance Client มันจะ
- 1:14:48มีอยู่ตัวนึงครับมันชื่อว่านี่ Extra ตรง
- 1:14:51นี้ fast embed
- 1:14:53จังหวะที่คุณอัปโหลดตัวเนี้ยมันจะใช้ fast
- 1:14:57นะในการไปให้คุณณตอนนั้นเลยมันไม่ได้ก่อน
- 1:15:01เพราะฉะนั้นทุกคนครับติดตั้งเพิ่มครับก็
- 1:15:05คือ UV add แตัวนี้ก็คือ Qance Client
- 1:15:13แต่คุณต้องใส่ extra เข้าไปด้วยเพราะ
- 1:15:16ฉะนั้น My Max เนี่ยมันใช้เครื่องหมายวง
- 1:15:18เล็บเปิดแบบนี้ไม่ได้มันจะเออ error คุณ
- 1:15:20ต้องใส่ double code ด้วยdoubleิ code
- 1:15:24เข้าไปแล้วใส่วงเล็บอย่างี้แล้วใส่คำว่า
- 1:15:28fast mbet ตัวนี้เข้าไป
- 1:15:33นี่แบบนี้ครับทุกคนติดตั้ง Fast MBT
- 1:15:37Enter
- 1:15:39เมื่อคุณได้ติดตั้ง Fast MB แล้วก็จัด
- 1:15:42การลองรัน Q อีกรอบนึงครับคราวนี้จะไม่
- 1:15:47Error
- 1:15:49เรียบร้อยผ่านแล้วแต่เหมือนเดิมครับครั้ง
- 1:15:51แรกอาจจะนานหน่อยเพราะมันต้องดาวน์โหลด
- 1:15:53โมเดลลงมามันจะอยู่ที่ CD data temp
- 1:15:57dir อยู่ที่นี่ครับ Open จุดที่นี่มันจะ
- 1:16:02อยู่ที่ Fast Embed Cash ตัวนี้นะนี่
- 1:16:06ครับโมเดลของมันอยู่นี่นั่นหมายความว่า
- 1:16:09ถ้าเกิดคุณเคลียร์ Temp เนี่ยตัวนี้ก็จะ
- 1:16:11หายไปนะโอเคตอนนี้คุณอัปโหลด Mb เรียบ
- 1:16:15ร้อยแล้วต่อไปเราจะไปทำการไปคyแล้วนะ
- 1:16:19พิมพ์ response เท่ากับ cdance client.
- 1:16:23Qury point เขาใช้เป็นคำว่า point นะ
- 1:16:27โอเคใส่ collection name เข้าไปก็คือ
- 1:16:30collection name
- 1:16:32ส่ง qury เข้าไป quy เนี่ยถ้าคุณเข้าไปดู
- 1:16:36เนี่ย quy คืออะไร quy ของอะไรก็ได้หลายๆ
- 1:16:40อย่างตามนี้ 1 ในนั้นคือ document แต่ที่
- 1:16:43แอบเห็นอีกอย่างก็คือนำพาย array เห็นมย
- 1:16:46เดี๋ยวจะมาใช้นำ array กันนะแต่ตอนนี้เรา
- 1:16:49ใช้ document ไปก่อนโอเค document ก็คือ
- 1:16:53document
- 1:16:54นะสร้างเดี๋ยวนี้เลย text ที่จะ greeting
- 1:16:58เหมือนเดิม
- 1:17:01แล้วก็ส่งโมเดลเข้าไป
- 1:17:06โอเค
- 1:17:08ต่อไปจะลิมิก็ได้นะปกติลิมิเนี่ยที่ qury
- 1:17:12point เนี่ยเขาจะ default ไว้ที่เท่า
- 1:17:14ไหร่ที่ 10 default ไว้ให้คุณจะใส่ลิมิต
- 1:17:18สัก 3 ก็ได้ใส่ไปแบบนี้โอเคได้มาเรียบ
- 1:17:23ร้อยะจังหวะนี้ก็ให้คุณ automatic เมื่อ
- 1:17:27ได้ resp มาแล้วผมขอสั่งปก่อนเลยนะ resp
- 1:17:30ปึ๊บเพื่อดูก่อนว่าผมได้อะไรกลับมาอ่ะลอง
- 1:17:34รันดูครับปึ๊บสิ่งที่ได้กลับมาก็คือตาม
- 1:17:39นี้เลยโอ้โหมีของมาเพียบเลยครับของที่ได้
- 1:17:43คุณดูนะมีอะไรบ้างใน point นี้เป็น list
- 1:17:46of point เห็นป่ะ list of point นะใน
- 1:17:48นั้นมี ID มี payload อะไรก็ไม่รู้ไม่ได้
- 1:17:52ส่งมาให้มีสกoreมาให้มีสกอร์มาให้มีสกอร์
- 1:17:58มาให้แค่นี้เองแล้วเมื่อกี้ที่มันเหมือน
- 1:18:02กับ DB อ่ะที่มันเก็บไว้ให้เราอ่ะที่มัน
- 1:18:04เก็บ text ไว้ให้เราอ่ะจะเห็นว่าใน qan
- 1:18:08ไม่ได้เก็บให้เราเห็นมไม่มีข้อความมันมี
- 1:18:11แต่เวกเตอร์มีแต่สกoreเออเพราะฉะนั้นสิ่ง
- 1:18:16ที่คุณได้ก็คือได้แค่สกoreแต่ว่าสิ่งที่
- 1:18:18ผมแอบเห็นอยู่อย่างก็คือมันมีplayโหลด
- 1:18:21ไอ้ Playload นี่แหละคือสิ่งที่คุณจะ
- 1:18:22สามารถเก็บเพิ่มเติมได้มันเหมือนเป็น MA
- 1:18:25Data เพราะฉะนั้นครับจังหวะที่คุณกำลัง
- 1:18:27จะอัปโหลดไปนั้นเนี่ยผมขอเพิ่มอีก 1
- 1:18:30อย่างคือเพิ่ม Playload Playload ตัวนี้
- 1:18:33เหมือนเดิมครับก็ใส่ไปเลยครับ for text
- 1:18:38in text แบบนี้
- 1:18:41ผมก็ใส่เป็น Jon เข้าไปบอกว่า Text ก็คือ
- 1:18:47Text นะเพราะว่าผมต้องการอะไรผมต้องการ
- 1:18:51เอาข้อความที่เป็นภาษาปกติอ่ะเก็บเอาไว้
- 1:18:55ด้วยไม่ได้ให้เก็บแค่เวกเตอร์อย่างเดียว
- 1:18:58เมื่อคุณใส่ Play ไปเพิ่มจะเห็นว่าถ้า
- 1:19:00เกิดคุณรันใหม่
- 1:19:02จากนี้สิ่งที่กลับมานั้นจะมีPlayโหลดที่
- 1:19:06เป็นข้อความเห็นม Good morning มาแล้ว
- 1:19:10ทีนี้ผมก็อยากจะเห็นแบบง่ายๆว่าสั่ง one
- 1:19:13loop for point in response dop
- 1:19:17point
- 1:19:19แล้วก็สั่งปริ้น
- 1:19:23ใส่เป็น format บอกว่าเอา point
- 1:19:27do payload ตัวที่ชื่อว่า text แล้วก็
- 1:19:31สิ่งที่อยากรู้อีกอย่างก็คืออยากรู้
- 1:19:33เรื่องของ point do score
- 1:19:37เนี่ยฮะคือตัวคะแนนที่ความใกล้เคียงที่
- 1:19:40ได้มาเป็น similarity
- 1:19:43โอเคลองรันดูใหม่ครับ
- 1:19:50อ้ามาแล้วครับ Good morning I love
- 1:19:53you และ vector database สังเกตว่ามัน
- 1:19:56มีค่าที่เป็น 0 - 1 มันจะไม่เกิน 1
- 1:19:58เพราะมันอะไรครับเพราะว่าเราตั้งตรงนี้
- 1:20:00เป็นcosนนั่นเองคุณลองเปลี่ยนตรงcosนเป็น
- 1:20:03equent ก็ได้นะก็คือเป็นequนentก็ได้อีก
- 1:20:07สกอร์นึงเนี่ยเห็นมจะเกิน 1 ปัญหาของเรา
- 1:20:11ตอนนี้คืออะไรครับยังไม่ได้ถูกใจเลยนะยัง
- 1:20:15เป็นมันแค่ 384 dimension นะปัญหามันไม่
- 1:20:19ได้อยู่ที่ vector database ปัญหามัน
- 1:20:21อยู่ที่ eding นะเพราะฉะนั้นเรามาเปลี่ยน
- 1:20:24eding กันดีกว่าครับทุกคนสร้างไฟล์ใหม่
- 1:20:26อีก 1 ตัวครับชื่อ 06_opena.py
- 1:20:34PY
- 1:20:36ไป copy 05 ครับ copy มาเลยมาไว้ที่ 06
- 1:20:41เพื่อความรวดเร็วแต่ครั้งนี้เราจะเปลี่ยน
- 1:20:45ครับจากที่เราใช้ Fast MBT เราใช้โมเดล
- 1:20:48ของ Hing Face มาเป็นของ Open AI ละ
- 1:20:53หรือOlamะโอเคมา import เพิ่มครับ Form
- 1:20:58Open AI import open AI
- 1:21:02import.v ENV มาเป็นชุดเลยครับ import
- 1:21:06OS
- 1:21:08แล้วก็ import number
- 1:21:12เพราะเราไม่ใช่ MS ของเขาเราต้อง MS เอง
- 1:21:15ข้างใต้ Qant
- 1:21:17เราสร้าง AI Cant ขึ้นมา
- 1:21:21เป็น Open AI เหมือนเดิม
- 1:21:25มี base URL เป็น OS. Enveronะ
- 1:21:32NP point
- 1:21:35มี API key เป็น
- 1:21:39โอเค
- 1:21:41จากเดิมที่เราใช้โมเดลกับ document ตัว
- 1:21:44นี้เราไม่ใช้ละ comment ไปแต่เราต้องไป
- 1:21:49เพิ่มโมเดลตัวแปรเพิ่มอีก 1 ตัวด้วยเพราะ
- 1:21:52เลยต้องใช้ตัวนี้ซ้ำโมเดลตรงนี้ไปcopี้มา
- 1:21:55เราใช้เป็นตัวเดิม noric
- 1:22:01มาเรามาเองก่อนคือตอนนี้เราไม่ได้ใช้ fast
- 1:22:04แล้วนะ response เท่ากับ AI.
- 1:22:09embedding. create input คือ text
- 1:22:13เหมือนเดิมเลยเหมือนที่เราทำใน SQ L เลย
- 1:22:15เห็นม model ก็คือ model
- 1:22:20eding
- 1:22:23เราทำเป็น list ให้พร้อมเลยเพราะว่าใน
- 1:22:27response เนี่ยมี for data in
- 1:22:29response data มันเป็น list อยู่แล้ว
- 1:22:33เพราะนั้นทำเป็น list แปลงจากตัวเนี้ยให้
- 1:22:35กลายเป็น number array ซะnumาย array
- 1:22:41แปลงตัว data
- 1:22:44embeding
- 1:22:46อันนี้ไปดูได้จากตรงหัวข้อ SQL embedding
- 1:22:49แต่สิ่งที่แตกต่างก็คือว่า Qance support
- 1:22:5364 ครับไม่ต้องไป buy ด้วยเพราะว่าคุณ
- 1:22:55ไม่ได้เก็บลง SQ เดี๋มันจัดการให้คุณเอง
- 1:22:59เาต้องการแค่นำภาย array ที่เป็น list
- 1:23:02เท่านั้นเองต่อไปตอนสร้าง collection
- 1:23:07ปัญหาของเราก็คือว่าไอ้ตัว Cant ตัวเมัน
- 1:23:09supporting face มันสามารถรู้ได้ว่า
- 1:23:11โมเดลตัวนั้นใช้กี่
- 1:23:14แต่ว่าของเราไม่รู้ไงนั่นหมายความว่าคุณ
- 1:23:17อาจจะต้องใส่เองครับ 7 6 8 ผมทำงี้ได้
- 1:23:20มยคือเนื่องมาจากว่าเราไปเรียบร้อยแล้ว
- 1:23:23นั่นหมายความว่าตัวingเนี่ยมันต้องรู้
- 1:23:25ขนาดสิผมลองขอคอมเมนต์ไว้ก่อนนะ
- 1:23:31ผมจะลองไป
- 1:23:34ปริ้น length ของ wedding
- 1:23:37ตัวที่ 0 มาดูก่อนดูซิว่ามันกี่ diension
- 1:23:41UV Run 06
- 1:23:45อุ๊สโอะอ้อลืมโหลดครับโทษทีทุกคนไป.load
- 1:23:52โหลด ENV ด้วยโอเคขอลองอีกรอบนึงรัน
- 1:23:58768
- 1:24:00768 แสดงว่าอันนี้คือdiensชionจริงนั่น
- 1:24:03หมายความว่าผมสามารถเอาอันเนี้ยไป
- 1:24:07เป็น
- 1:24:09ไซส์เลยได้มยก็คือขอตรงนี้
- 1:24:15เอากลับมาตรงนี้ที่เป็นไซส์เนี่ยขอเป็น
- 1:24:19length embeding 0 เลยได้มั้ย
- 1:24:22จะได้ว่านั่งใส่เป็นค่า constant นะเรา
- 1:24:25เปลี่ยนโมเดลเมื่อไหร่ก็ได้เลงอันนั้นมา
- 1:24:27ทันทีต่อไปเมื่อคุณ
- 1:24:32ทำเป็น beding ตรงนี้แล้วจะเห็นว่าตรงนี้
- 1:24:35จะ error เพราะ document เรามันไม่มีะแต่
- 1:24:37คุณอย่าลืมว่าตอนอัปโหลด correction
- 1:24:39เนี่ยเวกเตอร์เนี่ยมันเป็นนำพาย array
- 1:24:41งั้นแสดงว่าผมก็แค่ส่ง eding ไปเลยได้มย
- 1:24:46เพราะว่าผมใน beding เนี่ยผมเป็นนำ array
- 1:24:49อยู่แล้วหรือจุดจุดเดียวตอน qy
- 1:24:53quy เป็น document อยู่นะ qy เปลี่ยน
- 1:24:55ครับก็หาโอเคมา qy response
- 1:25:02aicent.
- 1:25:03embedding. Create input คือ creating
- 1:25:11model เท่ากับ model โอเค
- 1:25:15quyeding
- 1:25:20เท่ากับ npire. array
- 1:25:24Qury response
- 1:25:26data ตัวที่ 0
- 1:25:30eding แปลงเป็นนำพาย array ซะเพราะเรา
- 1:25:33รู้ว่า qy ตรงนี้supพort n array ใช่ม
- 1:25:37number array โอเคเพราะฉะนั้นทุกคนครับ
- 1:25:40เปลี่ยน document ตรงนี้เป็น qury
- 1:25:43embedding เรียบร้อยโอเคลอง run อีกรอบ
- 1:25:49นึงครับ
- 1:25:51ได้แล้วครับตอนนี้คุณใช้เป็น Open AI
- 1:25:55Library โดยการใช้ ORAM เรียบร้อยแต่ถ้า
- 1:26:00เกิดว่าคุณอยากใช้ตัว Open AI ก็ไม่ยาก
- 1:26:02นะก็ทำคล้ายๆเดิมเลยก็แค่ไปใส่
- 1:26:05Configuration เพิ่มตรงนี้ BAS UL API
- 1:26:08Key เท่านั้นเองถ้าคุณอยากใช้ที่เป็นรูป
- 1:26:13แบบไฟล์บ้างตอนนี้มันอยู่ใน memmory เน
- 1:26:15comment ออกไปใช้ cdance
- 1:26:19clan เท่ากับ Cance client ตัวนี้ครับ
- 1:26:24แล้วบอกว่าฉันจะเอาผdance
- 1:26:30แบบนี้เป็นต้นเสร็จแล้วเพียงแค่นี้ครับ
- 1:26:34เดี๋ยวจะมีโoldด qdance อยู่ตรงนี้นะผมขอ
- 1:26:36ลบคAไปก่อน
- 1:26:40ถ้าเกิดคุณรัน
- 1:26:4206
- 1:26:44นี่ครับจะมีโderขึ้นมาซึ่งมันได้ใช้ SQL
- 1:26:48เก็บเหมือนกันเห็นนะ
- 1:26:51แบบนี้เป็น point และถ้าเกิดว่าคุณ
- 1:26:54ต้องการจะ run เป็น server ล่ะผมจะต้องไป
- 1:26:58ใช้เป็น docker compost ครับที่doอกer
- 1:27:01ถ้าเกิดคุณเข้าไปที่ ub
- 1:27:05seสิรชหา
- 1:27:09ตัวนี้ครับ qdance/qdance
- 1:27:12ก็ไปpูมา
- 1:27:16เขียน compose กันก็คือ
- 1:27:22image ชื่อว่า/dance
- 1:27:27พortที่ใช้เนี่ยโดย default มันคือพort
- 1:27:30633 ครับ 633
- 1:27:35ส่วนvolุeที่ใช้ถ้าจะแมapออกมาเนี่ยผมขอ
- 1:27:38ลบคตรงนี้ออกไปก่อนนะ
- 1:27:43ก็คือ/qdance
- 1:27:46map ไปที่/cD/storage
- 1:27:53มาลอง start server c กันดูก่อนนะก็คือ
- 1:27:57ใช้คำสั่ง
- 1:28:00compose ผมอัพเฉพาะนะ
- 1:28:05ปึ๊บอ่า start เรียบร้อยผมเปิดอีก
- 1:28:07terminal นึงครับแล้วก็ที่นี่ครับ
- 1:28:11เปลี่ยนใหม่จาก cdance kant นะผมเปลี่ยน
- 1:28:16เป็น
- 1:28:18qance
- 1:28:21client เท่ากับ qdance client ตัวเดิม
- 1:28:24นะแต่แค่เปลี่ยนตรงนี้เป็น host host
- 1:28:28เป็น local host แล้วก็พortเป็น
- 1:28:34633
- 1:28:36เท่านั้นเองโอเคคราวนี้ผมจะยิงเป็น server
- 1:28:39แทนแล้วนะลองดู
- 1:28:42UV run
- 1:28:456 ปึ๊บ
- 1:28:47โอเคเรียบร้อยใช้ได้เหมือนกันแต่คราวนี้
- 1:28:50เป็น server ละเท่ากับว่าคุณมี server
- 1:28:54vector database ใช้งานได้แล้วโอเคก็
- 1:28:56อันนี้เป็นเรื่องของ vector database
- 1:28:59ระดับ fundamental นะก็คุณสามารถที่จะ
- 1:29:01เรียนรู้เบื้องต้นเพื่อไปศึกษาต่อเนื่อง
- 1:29:03ได้คุณต้องมีเรื่องศึกษาต้องเยอะแยะหลายๆ
- 1:29:06อย่างนะเดี๋ยวคุณต้องเอาไปใช้งานในโปรเจค
- 1:29:08จริงเข้าไปเอา data จริงๆมาลงถ่ายข้อมูล
- 1:29:12ยังไงแล้วก็เอาไปใช้งานได้อย่างอะไรก็ลอง
- 1:29:15ดูนะครับมีเวกเตอร์ database อีกหลายเจ้า
- 1:29:18ให้คุณได้ลองก็ดูข้อดีข้อเสียกันแล้วกัน
- 1:29:21สำหรับคอร์สนี้เอ่อเวกเตอร์ database
- 1:29:23ระดับ fundamental ก็ขอจบแต่เพียงเท่านี้
- 1:29:25ครับสวัสดีครับ
About this transcript
This page contains the full transcript of Vector Database Fundamentals by Sphere, generated from the public captions YouTube serves with the video. The transcript has 4,928 words across 1,702 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.