Back home

หลังจากที่โมเดลโอเพ่นซอร์สถูกจำกัด สิ่งแรกที่ต้องเป็นอิสระคือเลเยอร์ที่เป็นกลางของโมเดล

ไม่สำคัญว่าสามารถเปลี่ยนรุ่นได้หรือไม่ สิ่งที่ลำบากจริงๆ คือพฤติกรรมเริ่มต้นที่ฮาร์ดโค้ดในโค้ด

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

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

พฤติกรรมเริ่มต้นจะเชื่อมโยงโมเดลเข้ากับธุรกิจ

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

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

บทบาทของเลเยอร์ที่เป็นกลางคือการกระจายสมมติฐานโดยนัยออกไป

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

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

ไม่ใช่ทุกฉากที่จะคุ้มค่ากับเลเยอร์นี้

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

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

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

FAQ

What to read next

Related

Continue reading

AI · 1 tags

หลังจากที่โมเดลโอเพ่นซอร์สถูกจำกัด สิ่งแรกที่ล้มเหลวคือการตัดสินการถดถอย

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