แนวคิดและการประชุมเกี่ยวกับกระบวนการอื่นๆ ที่สามารถทำให้เป็นอัตโนมัติเกิดขึ้นได้ในธุรกิจขนาดต่างๆ ทุกวัน แต่นอกเหนือจากความจริงที่ว่าสามารถใช้เวลาจำนวนมากในการสร้างแบบจำลองได้ คุณต้องใช้เวลาในการประเมินและตรวจสอบว่าผลลัพธ์ไม่ได้สุ่ม หลังจากใช้งานแล้ว โมเดลใดๆ จะต้องได้รับการตรวจสอบและตรวจสอบเป็นระยะๆ
และนี่คือขั้นตอนทั้งหมดที่คุณต้องผ่านในบริษัทใดก็ตาม โดยไม่คำนึงถึงขนาดของบริษัท หากเรากำลังพูดถึงขนาดและมรดกของ Sberbank จำนวนการปรับแต่งอย่างละเอียดจะเพิ่มขึ้นแบบทวีคูณ ภายในสิ้นปี 2019 Sberbank มีการใช้งานโมเดลมากกว่า 2000 รุ่นแล้ว แค่การพัฒนาแบบจำลองนั้นไม่เพียงพอ แต่ยังจำเป็นต้องบูรณาการเข้ากับระบบอุตสาหกรรม พัฒนาดาต้ามาร์ทสำหรับการสร้างแบบจำลอง และรับรองการควบคุมการดำเนินงานบนคลัสเตอร์
ทีมของเรากำลังพัฒนาแพลตฟอร์ม Sber.DS ช่วยให้คุณสามารถแก้ปัญหาการเรียนรู้ของเครื่อง เร่งกระบวนการทดสอบสมมติฐาน โดยหลักการแล้วทำให้กระบวนการพัฒนาและตรวจสอบแบบจำลองง่ายขึ้น และยังควบคุมผลลัพธ์ของแบบจำลองใน PROM อีกด้วย
เพื่อไม่ให้หลอกลวงความคาดหวังของคุณ ฉันอยากจะบอกล่วงหน้าว่าโพสต์นี้เป็นโพสต์เบื้องต้น และในการเริ่มต้นจะมีการบอกเกี่ยวกับสิ่งที่อยู่ภายใต้ประทุนของแพลตฟอร์ม Sber.DS เราจะบอกเล่าเรื่องราวเกี่ยวกับวงจรชีวิตของแบบจำลองตั้งแต่การสร้างจนถึงการใช้งานแยกกัน
Sber.DS ประกอบด้วยองค์ประกอบหลายอย่าง องค์ประกอบหลักคือไลบรารี ระบบการพัฒนา และระบบการดำเนินการแบบจำลอง
ห้องสมุดควบคุมวงจรชีวิตของแบบจำลองตั้งแต่ช่วงเวลาที่แนวคิดในการพัฒนาปรากฏไปจนถึงการใช้งานใน PROM การตรวจสอบและการเลิกใช้งาน คุณสมบัติหลายประการของห้องสมุดถูกกำหนดโดยกฎของหน่วยงานกำกับดูแล เช่น การรายงานและการจัดเก็บตัวอย่างการฝึกอบรมและการตรวจสอบความถูกต้อง อันที่จริงนี่คือการลงทะเบียนของโมเดลทั้งหมดของเรา
ระบบการพัฒนามีไว้สำหรับการพัฒนาแบบจำลองและวิธีการตรวจสอบด้วยภาพ โมเดลที่พัฒนาแล้วได้รับการตรวจสอบเบื้องต้นและถูกส่งไปยังระบบปฏิบัติการเพื่อทำหน้าที่ทางธุรกิจ นอกจากนี้ ในระบบการดำเนินการ แบบจำลองสามารถวางบนจอภาพเพื่อเปิดใช้วิธีการตรวจสอบความถูกต้องเป็นระยะเพื่อควบคุมการทำงานของแบบจำลอง
มีโหนดหลายประเภทในระบบ บางส่วนได้รับการออกแบบมาเพื่อเชื่อมต่อกับแหล่งข้อมูลต่างๆ บางส่วน - เพื่อแปลงข้อมูลต้นฉบับและเพิ่มคุณค่า (มาร์กอัป) มีหลายโหนดสำหรับการสร้างแบบจำลองและโหนดต่างๆ สำหรับการตรวจสอบความถูกต้อง นักพัฒนาสามารถโหลดข้อมูลจากแหล่งใดก็ได้ แปลง กรอง แสดงภาพข้อมูลระดับกลาง และแยกออกเป็นส่วนๆ
แพลตฟอร์มนี้ยังมีโมดูลสำเร็จรูปที่สามารถลากไปยังพื้นที่โครงการได้ การดำเนินการทั้งหมดดำเนินการโดยใช้อินเทอร์เฟซที่มองเห็นได้ ในความเป็นจริง คุณสามารถแก้ไขปัญหาได้โดยไม่ต้องใช้โค้ดแม้แต่บรรทัดเดียว
หากความสามารถในตัวยังไม่เพียงพอ ระบบจะมอบความสามารถในการสร้างโมดูลของคุณเองอย่างรวดเร็ว เราได้จัดทำโหมดการพัฒนาแบบบูรณาการตาม
สถาปัตยกรรม Sber.DS สร้างขึ้นจากไมโครเซอร์วิส มีความคิดเห็นมากมายเกี่ยวกับไมโครเซอร์วิส บางคนคิดว่ามันเพียงพอที่จะแยกรหัสเสาหินออกเป็นส่วน ๆ แต่พวกเขายังคงไปที่ฐานข้อมูลเดียวกัน ไมโครเซอร์วิสของเราต้องสื่อสารกับไมโครเซอร์วิสอื่นผ่าน REST API เท่านั้น ไม่มีวิธีแก้ปัญหาสำหรับการเข้าถึงฐานข้อมูลโดยตรง
เราพยายามป้องกันไม่ให้บริการมีขนาดใหญ่มากและเชื่องช้า: อินสแตนซ์เดี่ยวไม่ควรใช้ RAM เกิน 4-8 กิกะไบต์ และควรสามารถปรับขนาดคำขอในแนวนอนได้ด้วยการเปิดตัวอินสแตนซ์ใหม่ แต่ละบริการสื่อสารกับผู้อื่นผ่าน REST API เท่านั้น (
แกนหลักของแอปพลิเคชันเขียนด้วยภาษา Java โดยใช้ Spring Framework เดิมทีโซลูชันนี้ออกแบบมาเพื่อการใช้งานที่รวดเร็วในโครงสร้างพื้นฐานคลาวด์ ดังนั้นแอปพลิเคชันจึงถูกสร้างขึ้นโดยใช้ระบบคอนเทนเนอร์
หนึ่งใน "ชิป" ของแพลตฟอร์มของเราคือเราสามารถรันโค้ดที่พัฒนาในส่วนต่อประสานภาพบนระบบการดำเนินการโมเดล Sberbank ใดก็ได้ ขณะนี้มีสองรายการแล้ว: อันหนึ่งบน Hadoop และอีกอันบน OpenShift (Docker) เราไม่ได้หยุดเพียงแค่นั้นและสร้างโมดูลการรวมเพื่อรันโค้ดบนโครงสร้างพื้นฐานใดๆ รวมถึงภายในองค์กรและในระบบคลาวด์ ในแง่ของความเป็นไปได้ในการบูรณาการอย่างมีประสิทธิภาพเข้ากับระบบนิเวศของ Sberbank เรายังวางแผนที่จะสนับสนุนการทำงานกับสภาพแวดล้อมรันไทม์ที่มีอยู่ ในอนาคต โซลูชันนี้สามารถบูรณาการ "นอกกรอบ" เข้ากับทุกภูมิทัศน์ขององค์กรได้อย่างยืดหยุ่น
ผู้ที่เคยพยายามดูแลรักษาโซลูชันที่ใช้ Python บน Hadoop ใน PROM จะรู้ดีว่าการเตรียมและส่งมอบสภาพแวดล้อม Python แบบกำหนดเองไปยังแต่ละดาต้าโหนดนั้นไม่เพียงพอ ไลบรารี C / C ++ จำนวนมากสำหรับการเรียนรู้ของเครื่องที่ใช้โมดูล Python จะไม่ยอมให้คุณพักผ่อนอย่างสงบ เราต้องไม่ลืมอัปเดตแพ็คเกจเมื่อเพิ่มไลบรารีหรือเซิร์ฟเวอร์ใหม่ ในขณะเดียวกันก็รักษาความเข้ากันได้แบบย้อนหลังด้วยโค้ดโมเดลที่นำไปใช้แล้ว
มีหลายวิธีในการทำเช่นนี้ ตัวอย่างเช่น เตรียมไลบรารีที่ใช้บ่อยหลายไลบรารีไว้ล่วงหน้าและนำไปใช้ใน PROM โดยปกติแล้วการกระจาย Hadoop ของ Cloudera
ธนาคารให้ความสำคัญกับความปลอดภัยของการรันโค้ดจากบุคคลที่สามเป็นอย่างมาก ดังนั้นเราจึงใช้ฟีเจอร์ใหม่ของเคอร์เนล Linux ให้เกิดประโยชน์สูงสุด โดยที่กระบวนการทำงานในสภาพแวดล้อมที่แยกออกมา
ปีนี้เราวางแผนที่จะทำให้ MVP ของโมเดลการรันที่เขียนด้วย Python/R/Java บน Hadoop เสร็จสมบูรณ์ เรากำหนดภารกิจอันทะเยอทะยานในการเรียนรู้วิธีรันสภาพแวดล้อมผู้ใช้บน Hadoop เพื่อไม่ให้จำกัดผู้ใช้แพลตฟอร์มของเราในทางใดทางหนึ่ง
นอกจากนี้ ปรากฏว่าผู้เชี่ยวชาญ DS หลายคนเก่งคณิตศาสตร์และสถิติ สร้างแบบจำลองเจ๋งๆ แต่ไม่เชี่ยวชาญด้านการแปลงข้อมูลขนาดใหญ่ และพวกเขาต้องการความช่วยเหลือจากวิศวกรข้อมูลของเราเพื่อเตรียมตัวอย่างการฝึกอบรม เราตัดสินใจที่จะช่วยเหลือเพื่อนร่วมงานของเราและสร้างโมดูลที่สะดวกสบายสำหรับการเปลี่ยนแปลงทั่วไปและการจัดเตรียมคุณสมบัติสำหรับรุ่นต่างๆ บนเครื่องยนต์ Spark ซึ่งจะช่วยให้มีเวลามากขึ้นในการพัฒนาโมเดล และไม่รอให้วิศวกรข้อมูลเตรียมชุดข้อมูลใหม่
เรามีคนที่มีความรู้ในด้านต่างๆ: Linux และ DevOps, Hadoop และ Spark, Java และ Spring, Scala และ Akka, OpenShift และ Kubernetes ครั้งต่อไปเราจะพูดถึงไลบรารีของโมเดล วิธีที่โมเดลผ่านวงจรชีวิตภายในบริษัท การตรวจสอบและการใช้งานเกิดขึ้นอย่างไร
ที่มา: will.com