ข้อมูลเบื้องต้นเกี่ยวกับ รหัส Pad แบบใช้ครั้งเดียว

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

รหัสแพดแบบใช้ครั้งเดียวทำงานอย่างไร 

เมื่อใช้แป้นแบบใช้ครั้งเดียว ข้อความและรหัสลับจะต้องเริ่มทำงาน ข้อความต้นฉบับแต่ละบิต สมมติว่าเราสามารถใช้ข้อมูลไบนารีได้ จะถูกเข้ารหัสโดยใช้การXORดำเนินการกับข้อความนั้นและบิตที่สอดคล้องกันจากรหัสลับ

ทบทวน XOR 

XOR หรือ “exclusive or” เป็นตัวดำเนินการไบนารีที่ทำงานกับข้อมูลไบนารี มันจะส่งกลับtrueหากอินพุตทั้งสองตรงกันข้าม (หนึ่งเท็จและหนึ่งจริง) มิฉะนั้นจะส่งfalseกลับ

true XOR false = true
false XOR true = true
true XOR true = false
false XOR false = false

ลองดูบทความอื่นของฉันทำไมถึงเป็นเอกสิทธิ์หรือมีความสำคัญในการเข้ารหัสถ้าคุณต้องการข้อมูลเพิ่มเติม

ลงชื่อเข้าใช้ด้วยรหัสผ่านสำหรับแอป
เคล็ดลับ: รหัสผ่านสำหรับแอปไม่จำเป็นในกรณีส่วนใหญ่และเราไม่แนะนำให้ใช้ วิธีที่จะช่วยรักษาบัญชีให้ปลอดภัยอยู่เสมอคือใช้ “ลงชื่อเข้าใช้ด้วย Google” เพื่อเชื่อมต่อแอปกับบัญชี Google

รหัสผ่านสำหรับแอปคือรหัสผ่าน 16 หลักที่ให้สิทธิ์แอปหรืออุปกรณ์ที่มีความปลอดภัยน้อยในการเข้าถึงบัญชี Google รหัสผ่านสำหรับแอปใช้ได้กับบัญชีที่เปิดการยืนยันแบบ 2 ขั้นตอนไว้เท่านั้น

เมื่อใดที่ควรใช้รหัสผ่านสำหรับแอป
เคล็ดลับ: iPhone และ iPad ที่ใช้ iOS 11 ขึ้นไปไม่ต้องใช้รหัสผ่านสำหรับแอป ให้ใช้ “ลงชื่อเข้าใช้ด้วย Google” แทน

หากแอปไม่เสนอให้ “ลงชื่อเข้าใช้ด้วย Google” ให้ทำดังนี้

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

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

รหัส Pad แบบใช้ครั้งเดียว แผ่นเดียวทีละขั้นตอน 

ตัวอย่างเช่น หากเราเริ่มต้นด้วยข้อความ “คำสวัสดี” และคีย์ “ฉันไม่รู้” อันดับแรก เราจะแปลงข้อความเป็นข้อมูลไบนารี

hello world = 01101000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01100100
I not know = 01001001 00100000 01101110 01101111 01110100 00100000 01101011 01101110 01101111 01110111

ต่อไป เราจะดำเนินXORการกับข้อมูลทั้งหมด

01101000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01100100

XOR

01001001 00100000 01101110 01101111 01110100 00100000 01101011 01101110 01101111 01110111

=

00100001 01000101 00000010 00000011 00011011 00000000 00011100 00000001 00011101 00010011

ข้อมูลไบนารีที่ได้คือ “ข้อความรหัส” ในการแปลงกลับ สิ่งที่เราต้องทำคือXORข้อความเข้ารหัสที่มีคีย์ และเราจะได้รับข้อความต้นฉบับกลับมา

00100001 01000101 00000010 00000011 00011011 00000000 00011100 00000001 00011101 00010011

XOR

01001001 00100000 01101110 01101111 01110100 00100000 01101011 01101110 01101111 01110111

=

01101000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01100100

แปลงผลลัพธ์กลับเป็นข้อความและเราได้ถอดรหัสข้อความต้นฉบับแล้ว

01101000 01100101 01101100 01101100 01101111 00100000 01110111 01101111 01110010 01100100

=

hello world

รหัส Pad แบบใช้ครั้งเดียว ความลับที่สมบูรณ์แบบในแผ่น 

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

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

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

ปัญหาการใช้แผ่นแบบครั้งเดียวในการผลิต 

รหัสการผลิตส่วนใหญ่ไม่ปลอดภัยอย่างสมบูรณ์ แต่ “ใกล้พอ” กล่าวโดยย่อคือการแลกเปลี่ยนเกิดขึ้นเพื่อเพิ่ม ความปลอดภัยใน ทางปฏิบัติของระบบในขณะที่เสียสละ ความปลอดภัย ทางทฤษฎี ที่สมบูรณ์แบบ ของตัวเข้ารหัสเอง

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

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

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

ตัวอย่างรหัสแพ็ดแบบใช้ครั้งเดียวใน Go 

func encrypt(plaintext, key []byte) []byte {
	final := []byte{}
	for i := range plaintext {
		final = append(final, plaintext[i]^key[i])
	}
	return final
}

func decrypt(ciphertext, key []byte) []byte {
	final := []byte{}
	for i := range ciphertext {
		final = append(final, ciphertext[i]^key[i])
	}
	return final
}

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

การเข้ารหัส 101One Time Pad การเข้ารหัสเพียงครั้งเดียว

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

หากคุณต้องการข้อมูลเชิงลึกเกี่ยวกับการเข้ารหัสมากกว่าที่บทความแนะนำเหล่านี้มีให้ เราขอแนะนำหนังสือที่ชื่อว่าApplied Cryptographyโดย Bruce Schneier หนังสือเล่มนั้นเกือบจะไม่ได้รับการตีพิมพ์เพราะ NSA ไม่ต้องการให้ข้อมูลนี้ออกสู่สาธารณะ ใช่สำหรับการแก้ไขครั้งที่ 1!

ข้อความธรรมดา ข้อความไซเฟอร์เท็กซ์ และคีย์

เมื่อพูดถึงการเข้ารหัส คุณมักจะได้ยินคำสองคำ: ข้อความธรรมดาและข้อความเข้ารหัส

ข้อความธรรมดาคือข้อมูลที่ไม่ได้เข้ารหัสและอาจเป็นข้อความหรือข้อมูลไบนารีก็ได้

Ciphertext เป็นข้อมูลที่เข้ารหัส

ตามหลักการแล้ว ไซเฟอร์เท็กซ์จะไม่ให้ข้อมูลเกี่ยวกับธรรมชาติของข้อความธรรมดาที่สร้างมันขึ้นมา นอกเสียจากขนาดของข้อความธรรมดาเอง ไซเฟอร์เท็กซ์ที่ดีจะดูแยกไม่ออกจากตัวเลขสุ่ม ทั้งด้วยสายตามนุษย์และในทางคณิตศาสตร์

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

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

แผ่นเวลาเดียว

แผ่นบันทึกเวลาแบบครั้งเดียวเป็นวิธีการเข้ารหัสข้อมูลที่เรียบง่ายแต่ปลอดภัย

มันง่ายมากที่จะใช้เพียงการดำเนินการ xor และปลอดภัยมากที่ ciphertext ไม่สามารถถอดรหัสได้อย่างแท้จริงหากทำอย่างถูกต้อง

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

ข้อมูลที่แชร์ล่วงหน้านี้เป็นคีย์ที่ใช้สำหรับการเข้ารหัสและยกเลิกการเข้ารหัส

กำลังดำเนินการ

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

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

จากนั้น คุณส่งข้อความไซเฟอร์ไปยังบุคคลที่คุณแบ่งปันข้อมูลไทม์แพดล่วงหน้าด้วย

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

เมื่อเสร็จสิ้นการถอดรหัส พวกเขาจะมีข้อมูลข้อความล้วน และแป้นเวลาเดียวจะอยู่ในสถานะเดียวกับที่คุณอยู่ (เช่น หมายเลขถัดไปจะเป็นหมายเลขถัดไปของคุณ)

จากที่นี่คุณสามารถล้างและทำซ้ำได้จนกว่าข้อมูลแผ่นเวลาจะหมด

ง่ายมาก และตราบใดที่ไม่มีใครมีข้อมูลไทม์แพดของคุณ และข้อมูลไทม์แพดของคุณนั้นสุ่มอย่างแท้จริง จะไม่มีใครสามารถถอดรหัสไซเฟอร์เท็กซ์ของคุณและรับเพลนเท็กซ์ได้

ความสำคัญของการสุ่ม

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

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

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

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

ฉันไม่ได้ล้อเล่นเกี่ยวกับหนังสือพวกนี้นะ ลองดูสิ นี่คือหนังสือประเภทนั้นเล่มหนึ่ง!
ตัวเลขสุ่มหลักล้านที่มีค่าเบี่ยงเบนปกติ 100,000 ค่า

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

คุณยังสามารถซื้อข้อมูลสุ่มคุณภาพสูงจำนวนมากทางออนไลน์ได้จากที่ต่างๆเช่นRandom.org

ผู้อ่านที่ชาญฉลาดอาจถามว่า “ทำไมฉันไม่ใช้ตัวสร้างตัวเลขสุ่มหลอกในแต่ละด้านและไม่เคยใช้ข้อมูลแผ่นเวลาเดียวหมด”

ถ้ามีคนรู้ PRNG ที่คุณกำลังใช้และ seed ของคุณ พวกเขาจะสามารถถอดรหัสข้อมูลของคุณได้เหมือนกับที่เป้าหมายของคุณสามารถทำได้

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

การโจมตีเฉพาะต่อการสุ่ม

ตัวอย่างเช่น สมมติว่าแทนที่จะใช้ตัวเลขสุ่ม ข้อมูลแป้นเวลาเดียวของคุณจะเป็น 0xFFFFFFFF ทั้งหมด และคุณกำลังใช้ข้อมูลนี้เพื่อเข้ารหัสไฟล์ข้อความ (เช่น บทความนี้)

เมื่อคุณเข้ารหัสข้อมูลของคุณโดย XORing แต่ละไบต์เทียบกับ 255 (0xFF) บิตทั้งหมดของแต่ละไบต์จะถูกพลิกจาก 0 เป็น 1 หรือ 1 เป็น 0

แม้ว่าจะเป็นเรื่องจริงที่จะทำให้ข้อมูลไม่สามารถอ่านได้ และดูเหมือนเป็นการสุ่ม ข้อมูลขยะในสายตามนุษย์ แต่ในทางคณิตศาสตร์แล้ว มันเป็นเรื่องที่แตกต่างออกไปมาก

หากมีคนวิเคราะห์ข้อความไซเฟอร์ของคุณ ก่อนอื่นพวกเขาจะสังเกตเห็นว่าค่าไบต์ 154 (ซึ่งดูเหมือน Ü และมีค่าเลขฐานสองเท่ากับ 10011010) เกิดขึ้นในข้อความไซเฟอร์เท็กซ์ในปริมาณเดียวกับที่ตัวอักษร ‘e’ ปรากฏในข้อความภาษาอังกฤษทั่วไป เอกสาร. นี่อาจเป็นเรื่องฉลาดเพราะค่า 154 นั้นเป็นเพียงบิตพลิกของ ‘e’ ซึ่งมีค่าไบต์ 105 และค่าไบนารี 1100101 (บิตไบนารีถูกพลิกเนื่องจาก XOR เทียบกับ 0xFF)

จากนั้น พวกเขาอาจสังเกตเห็นเช่นเดียวกันกับตัวอักษรอื่นๆ… ค่าอื่นๆ บางอย่างเกิดขึ้นบ่อยเท่าที่คุณคาดหวังให้ ‘o’ ปรากฏในภาษาอังกฤษ หรือ ‘m’ เป็นต้น

ในไม่ช้าพวกเขาก็เห็นภาพที่ชัดเจนว่านี่คือข้อความธรรมดาภาษาอังกฤษ และพวกเขาสามารถเริ่มแทนที่ตัวอักษรด้วยสิ่งที่ดูเหมือนว่าควรจะเป็นในเชิงสถิติ (สำหรับตัวอักษรที่มีนัยสำคัญทางสถิติ)

หลังจากนั้น พวกเขาจะมีข้อความธรรมดาบางส่วนของคุณ และการค้นหาส่วนที่เหลือก็คล้ายกับการเล่นซูโดกุ… การหาว่าตัวอักษรใดพอดีกับตำแหน่ง โดยพิจารณาจากวิธีการสะกดคำ จากนั้นทำการค้นหา / แทนที่ในเอกสารทั้งหมดสำหรับแต่ละตัวอักษร คุณคิดออก

ในท้ายที่สุด พวกเขามีข้อความธรรมดาของคุณและการเข้ารหัสของคุณล้มเหลว

นี่เป็นกรณีที่รุนแรงซึ่งง่ายต่อการทำลาย แต่หวังว่าคุณจะเห็นว่าถ้าคุณใช้ตัวเลขสุ่มที่มีคุณภาพต่ำกว่าเล็กน้อย (เช่น ฟังก์ชัน rand() ในตัวของ C++ ไม่ว่าคุณจะใช้ srand(time(0) หรือไม่ก็ตาม )) หรือไม่!) ที่คุณเปิดตัวเองเพื่อโจมตี และมันสามารถประนีประนอมกระแสการสื่อสารทั้งหมดของคุณได้

ต้องการข้อมูลที่แชร์ล่วงหน้าน้อยลง

คุณสามารถแก้ไขอัลกอริทึม one time pad เพื่อใช้ข้อมูลที่แบ่งปันล่วงหน้าน้อยลง หากคุณตกลงกับการเปลี่ยนแปลงในโปรไฟล์ความปลอดภัยของคุณ (ข้อมูลของคุณอาจอ่อนแอลงเมื่อถูกโจมตีบ้าง

มีหลายวิธีในการถลกหนังแมว แต่ฉันจะพูดถึงสองสามวิธี

วิธีหนึ่งคือสร้างข้อมูลสุ่มเพิ่มเติมจากข้อมูลสุ่มที่คุณมี ตัวอย่างเช่น หากคุณและบุคคลที่คุณแบ่งปันข้อมูลล่วงหน้าด้วยตกลงร่วมกันในโปรโตคอลของ MD5 ที่แฮชทุกๆ 100 ไบต์ของข้อมูลไทม์แพดหนึ่งครั้งเพื่อสร้างไบต์สุ่มมากขึ้น ซึ่งคุณสามารถสอดแทรกข้อมูลไทม์แพดของคุณ คุณจะต้อง วิธีสร้างข้อมูลแพดครั้งเดียวมากกว่าที่คุณรวบรวมหรือแชร์กับบุคคลอื่นถึง 16% (เพิ่มขึ้น 16% เนื่องจากแฮช MD5 ของบล็อก 100 ไบต์แยกแฮช 16 ไบต์ของตัวเลขที่ดูเหมือนเป็นตัวเลขสุ่ม – ดูบทความก่อนหน้าเกี่ยวกับการแฮชสำหรับข้อมูลเพิ่มเติม!)

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

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

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

ตัวอย่างเช่น คุณสามารถเข้ารหัสข้อมูล 2GB โดยใช้ 16 ไบต์แรกของไทม์แพด จากนั้นส่งไปยังบุคคลนั้น จากนั้นคุณเข้ารหัส 500MB ด้วย 16 ไบต์ถัดไปและส่งไปยังบุคคลนั้น

คุณใช้ 32 ไบต์ของ one time pad ของคุณอย่างมีประสิทธิภาพเพื่อเข้ารหัสข้อมูล 2.5GB ซึ่งเป็นอัตราส่วนที่ดีอย่างเหลือเชื่อเมื่อเทียบกับโปรโตคอล one time pad แบบเดิมซึ่งต้องใช้ข้อมูลแบบสุ่มของ one time pad ที่แชร์ล่วงหน้า 2.5GB

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

จุดอ่อนอื่น ๆ

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

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

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

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

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

ผู้ประสงค์ร้ายที่อยู่ตรงกลางสามารถขัดขวางความสามารถในการสื่อสารของคุณอย่างปลอดภัย!

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

นี่ไม่ใช่ชายดั้งเดิมในการโจมตีตรงกลางแต่เป็น *A* ชายในการโจมตีตรงกลางอย่างแน่นอน

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

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

จนกว่าจะถึงครั้งต่อไป!

นั่นคือสาระสำคัญของแผ่นเวลาและฉันหวังว่าคุณจะพบว่ามันน่าสนใจ!

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

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

กระแส Chatbots แชทบอทเริ่มตอนนี้จะทันกระแสหรือไม่?

กระแส Chatbots ให้คำมั่นสัญญามากมายในฐานะเครื่องมือซอฟต์แวร์ แต่ความก้าวหน้าของ NLP ในอนาคตอันใกล้จะทำให้พวกเขาสอดคล้องกับโฆษณามากขึ้น

แม้จะมีกระแสโฆษณาอยู่หลายปี—และความก้าวหน้าทางเทคโนโลยีที่น่าทึ่งบางอย่าง—หลายคนคิดว่าแชทบอทเป็นสิ่ง ทดแทนที่ น่าหงุดหงิดยิ่งกว่าสำหรับศูนย์บริการนอกชายฝั่ง ฉันเป็น CEO ของบริษัทแช ทบอ ท และแม้แต่ฉันก็ยังบอกชื่อแชทบอทที่ยอดเยี่ยมไม่ได้เลย

ฉันไม่คิดว่านั่นเป็นแผนการเล่นแชทบอทของใคร มันไม่ใช่ แผนการเล่น ของฉัน อย่างแน่นอน เมื่อฉันสร้าง Botpress เวอร์ชันแรกในปี 2558

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

ทำไมแชทบอทถึงห่วย?

แม้จะมีความก้าวหน้าในการประมวลผลภาษาธรรมชาติ (NLP) แต่แชทบอทส่วนใหญ่ใช้รูปแบบพื้นฐานที่สุดเท่านั้น พวกเขาแยกวิเคราะห์การสนทนาผ่านการจัดประเภทเจตนา —พยายามจัดระเบียบทุกสิ่งที่ลูกค้าอาจพูดลงในถังอุปาทานตามความตั้งใจในการสอบถามของพวกเขา

ตัวอย่างเช่น “สวัสดี ฉันต้องการเปลี่ยนที่อยู่สำหรับการเรียกเก็บเงินของฉัน” อาจจัดอยู่ในกลุ่มการเปลี่ยนแปลงที่อยู่สำหรับการเรียกเก็บเงิน —และแชทบอทจะตอบกลับตามนั้น

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

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

ในมุมมองของฉัน สิ่งนี้แทบไม่มีคุณสมบัติเป็น AI เลย—มันใกล้เคียงกับฟังก์ชันการค้นหามากกว่า คุณไม่มีการสนทนา คุณกำลังโต้ตอบกับเครื่องสนทนา เล่นข้อความการผจญภัยเช่นZork ฟังก์ชันนี้เกิดข้อผิดพลาดได้ง่ายและต้องสร้างงานจำนวนมาก แต่ที่สำคัญกว่านั้น ฟังก์ชันนี้ผิดโดยพื้นฐาน นี่คือตัวอย่างว่าทำไม:

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

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

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

แชทบอทสามารถทำอะไรได้บ้าง และทำไมเราถึงยังทำไม่ได้?

ทุกวันนี้ มีวิธีการออกแบบแชทบอทที่ดีกว่าและ “ไม่ตั้งใจ” พวกเขาอาศัยความก้าวหน้าในด้าน AI, การเรียนรู้ของเครื่อง (ML) และ NLP เช่นการดึงข้อมูล การตอบคำถาม การเข้าใจภาษาธรรมชาติ (NLU) และการสร้างภาษาธรรมชาติ (NLG)

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

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

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

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

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

ความก้าวหน้าของ NLP สี่ประการที่จะช่วยให้แชทบอทดำเนินชีวิตตามโฆษณา

แบบจำลอง NLP เป็น “สมอง” ของแชทบอทโดยพื้นฐานแล้ว

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

รองรับ NLP รุ่นใหญ่

ตั้งแต่ปี 2018 เป็นต้นมา โมเดล NLP ได้เติบโตขึ้นแบบทวีคูณ กราฟด้านล่างแสดงให้เห็นว่าจำนวนพารามิเตอร์ในโมเดล NLP สมัยใหม่เพิ่มขึ้น อย่างรวดเร็วเพียงใด

คุณสามารถนึกถึงพารามิเตอร์ที่เปรียบได้กับไซแนปส์เดียวภายในสมองของมนุษย์ Nvidia ประมาณการว่าภายในปี 2023 จะพัฒนาโมเดลที่ตรงกับค่า Parameter-for-synapse ของสมองมนุษย์โดยเฉลี่ยที่ 100 ล้านล้านพารามิเตอร์ เพื่อรองรับโมเดลขนาดใหญ่เหล่านี้ Nvidia เพิ่งเปิดตัวHopper engineซึ่งสามารถเทรนโมเดลขนาดใหญ่เหล่านี้ได้เร็วขึ้นถึงหกเท่า 

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

เครื่องมือ

วิวัฒนาการของเฟรมเวิร์กและไลบรารี เช่นPyTorch , TensorFlowและอื่นๆ ช่วยให้สร้างโมเดลการเรียนรู้ที่ทรงพลังได้เร็วและง่ายขึ้น เวอร์ชันล่าสุด ทำให้การสร้างโมเดลที่ซับซ้อนและเรียกใช้การฝึกโมเดลเชิงกำหนดได้ง่ายขึ้น 

เริ่มแรกชุดเครื่องมือเหล่านี้ได้รับการพัฒนาโดยผู้นำระดับโลกด้าน AI/ML—Pytorch ถูกสร้างขึ้นโดย AI Research Lab (FAIR) ของ Facebook และ TensorFlow โดยทีม Google Brain และต่อมาได้ถูกสร้างเป็นโอเพ่นซอร์ส โครงการเหล่านี้ได้รับการบำรุงรักษาอย่างต่อเนื่องและจัดเตรียมทรัพยากรที่ได้รับการพิสูจน์แล้วซึ่งสามารถประหยัดเวลาในการพัฒนาหลายปี ทำให้ทีมสามารถสร้างแชทบอทที่ซับซ้อนได้โดยไม่ต้องใช้ทักษะ AI, ML และ NLP ขั้นสูง กระแส Chatbots

ตั้งแต่นั้นเป็นต้นมา เครื่องมือใหม่ๆ ได้เร่งประสิทธิภาพของโมเดล NLP ให้เร็วขึ้นไปอีก สำหรับผู้ที่ต้องการพลังของเครื่องมือเหล่านี้โดยไม่มีภาระในการกำหนดค่า แพลตฟอร์ม MLOps เช่นWeights & Biasesเป็นแพลตฟอร์มบริการเต็มรูปแบบสำหรับการเพิ่มประสิทธิภาพโมเดล การฝึกอบรม และการติดตามการทดสอบ เมื่อฟิลด์ ML มีความซับซ้อนมากขึ้น เครื่องมือที่มีประสิทธิภาพมากขึ้นก็จะตามมาด้วย 

ฮาร์ดแวร์คอมพิวเตอร์แบบขนาน

ในขณะที่ CPU ให้การประมวลผลตามวัตถุประสงค์ทั่วไปสำหรับฟังก์ชันที่กำหนด GPU ได้รับการพัฒนาเพื่อประมวลผลการแปลงทางคณิตศาสตร์อย่างง่ายจำนวนมากพร้อมกัน ความสามารถในการคำนวณแบบขนานขนาดใหญ่นี้ทำให้เหมาะสำหรับ NLP ฮาร์ดแวร์เฉพาะทาง เช่นTPUและNPUs/AI acceleratorได้ใช้ความสามารถเหล่านี้และสร้างฮาร์ดแวร์พิเศษสำหรับแอปพลิเคชัน ML และ AI 

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

ชุดข้อมูล

ชุดข้อมูล NLP เติบโตขึ้นอย่างทวีคูณ ส่วนหนึ่งเป็นผลมาจากการเปิดซอร์สชุดข้อมูลที่สร้างขึ้นในเชิงพาณิชย์และฝึกอบรมโดยบริษัทต่างๆ เช่น Microsoft, Google และ Facebook ชุดข้อมูลเหล่านี้เป็นสินทรัพย์ขนาดใหญ่เมื่อสร้างโมเดล NLP เนื่องจากประกอบด้วยการสืบค้นของผู้ใช้ในปริมาณมากที่สุดเท่าที่เคยมีมา ชุมชนใหม่เช่น HuggingFace ได้เกิดขึ้นเพื่อแบ่งปันรูปแบบที่มีประสิทธิภาพกับชุมชนขนาดใหญ่ 

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

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

คุณควรสร้างหรือซื้อ?

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

  1. สร้างแชทบอทตั้งแต่เริ่มต้นเพื่อรวมเทคโนโลยีที่เหนือกว่าในปัจจุบัน
  2. ซื้อชุดเครื่องมือที่สรุปด้าน NLP ที่ยากๆ ของสิ่งต่างๆ โดยเฉพาะอย่างยิ่งด้วยคุณสมบัติเพิ่มเติมบางอย่าง และสร้างจากที่นั่น

นี่เป็นภาวะที่กลืนไม่เข้าคายไม่ออกแบบคลาสสิก “สร้างหรือซื้อ” แต่ในกรณีนี้ คำตอบนั้นง่ายกว่าที่คุณคิด 

สำหรับทีมพัฒนาขนาดเล็กที่มีทรัพยากรจำกัด การสร้างแชทบอทตั้งแต่เริ่มต้นเพื่อรวมแนวคิด AI, ML และ NLP ล่าสุดต้องใช้ความสามารถที่ยอดเยี่ยมและการทำงานอย่างมาก ทักษะในด้านเหล่านี้เป็นเรื่องยาก (และมีราคาแพง) และนักพัฒนาส่วนใหญ่ไม่ต้องการใช้เวลาหลายปีในการแสวงหาทักษะเหล่านี้

แล้วทีมพัฒนาในองค์กรขนาดใหญ่ที่มีทรัพยากรให้จ้างนักวิทยาศาสตร์ข้อมูลและผู้เชี่ยวชาญด้าน AI/ML/NLP ล่ะ ฉันเชื่อว่ามันยังไม่คุ้มค่าที่จะสร้างใหม่ตั้งแต่ต้น

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

ที่แย่กว่านั้น เนื่องจากแชทบอทอาศัยไปป์ไลน์ NLP แบบกำหนดเอง จึงไม่มีวิธีง่ายๆ ในการรวมความก้าวหน้าเพิ่มเติมของ NLP หรือเทคโนโลยีที่เกี่ยวข้อง การทำเช่นนั้นจะต้องใช้ความพยายามอย่างมาก ซึ่งจะลด ROI ของโครงการลงไปอีก

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

ทางเลือกคืออะไร?

ชุดเครื่องมือเช่น Botpress สามารถสรุปด้าน NLP ของสิ่งต่าง ๆ และจัดเตรียม IDE สำหรับนักพัฒนาเพื่อสร้างแชทบอทโดยไม่ต้องจ้างหรือเรียนรู้ทักษะใหม่ ๆ หรือสร้างเครื่องมือที่พวกเขาต้องการตั้งแต่เริ่มต้น สิ่งนี้สามารถให้ประโยชน์หลายประการสำหรับโครงการแชทบอท:

  • ลดเวลาในการพัฒนาลงอย่างมาก
  • อัปเกรดเป็นเทคโนโลยี NLP ล่าสุดได้ง่ายโดยไม่ต้องทำใหม่ครั้งใหญ่
  • ความพยายามน้อยลงในการดูแลแชทบอทเนื่องจากการอัปเดตเป็นไปโดยอัตโนมัติ กระแส Chatbots

เหนือสิ่งอื่นใด นักพัฒนาสามารถมุ่งเน้นไปที่การสร้างและปรับปรุงประสบการณ์และฟังก์ชันการทำงานของซอฟต์แวร์ของตนเอง โดยไม่ต้องเรียนรู้ AI/ML/NLP

เริ่มสร้างแชทบอทวันนี้

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

ในการเริ่มต้น ให้ไปที่หน้าผู้พัฒนาแช ทบอ ท ของเรา สำหรับแนวทางปฏิบัติเกี่ยวกับวิธีการติดตั้งแพลตฟอร์มและสร้างแชทบอทตัวแรกของคุณ โปรดดูคู่มือเริ่มต้นใช้งาน Botpress ของเรา

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

รูปแบบการ ออกแบบสำหรับการสื่อสาร API แบบอะซิงโครนัส

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

โดยสรุป วิธีการนี้ใช้นายหน้าข้อความซึ่งจัดการหัวข้อ จำนวนหนึ่ง (หรือที่เรียกว่าบันทึกหรือสตรีม ) บริการหนึ่งสร้างหัวข้อในขณะที่บริการอื่นใช้จากหัวข้อ

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

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

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

มาเริ่มตอบคำถามเหล่านั้นกันเลย

คาฟแกสก์

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

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

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

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

ด้วยคุณสมบัติเหล่านี้และข้อมูลที่มีโครงสร้างแข็งแกร่ง เราสามารถออกแบบหัวข้อสำหรับแต่ละสถานการณ์ต่อไปนี้:

  • หัวข้อเอนทิตี – “นี่คือสถานะปัจจุบันของ X”
  • หัวข้อกิจกรรม – “X เกิดขึ้น”
  • หัวข้อคำขอและคำตอบ” – “Please do X” → “X has been done”

หัวข้อเอนทิตี: แหล่งที่มาของความจริง

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

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

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

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

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

ผู้บริโภคสามารถเพิ่มข้อมูลลูกค้าลงในฐานข้อมูล—แทรกเข้าไปหากไม่มีอยู่ อัปเดตหากมี คาฟคายังมีแบบแผนในการระบุการลบ: ข้อความที่มีคีย์แต่เพย์โหลดเป็นโมฆะ หรือที่เรียกว่าหลุมฝังศพ สิ่งนี้บ่งชี้ว่าควรลบเรกคอร์ด เนื่องจากการบีบอัด ข้อความที่ไม่ใช่หลุมฝังศพทั้งหมดจะหายไปในที่สุด ไม่เหลืออะไรเลยนอกจากบันทึกการลบ (และสามารถบีบอัดอัตโนมัติได้เช่นกัน)

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

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

  • ต้องการให้ข้อมูลของคุณมีความถูกต้อง 100 เปอร์เซ็นต์ ณ เวลาที่ใช้งานหรือ
  • คุณต้องรวบรวมข้อมูลจากมากกว่าหนึ่งแหล่ง และทั้งสองแหล่งมีลิงก์ที่ต้องตรงกันอย่างสมบูรณ์

ดังนั้นการใช้การประมวลผลแบบอะซิงโครนัสอาจไม่ใช่สิ่งที่คุณต้องการ: คุณต้องพึ่งพาการสืบค้น API แบบเก่าที่ดี

หัวข้อเหตุการณ์: บันทึกข้อเท็จจริง

หัวข้อกิจกรรมแตกต่างจากหัวข้อเอนทิตีอย่างสิ้นเชิง หัวข้อเหตุการณ์ระบุว่ามีบางสิ่งเกิดขึ้น แทนที่จะให้ข้อมูลชิ้นใดชิ้นหนึ่งที่เป็นเวอร์ชันล่าสุด หัวข้อเหตุการณ์ให้บันทึก “โง่ๆ” ของสิ่งที่เกิดขึ้น

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

เหตุการณ์ส่วนใหญ่ใช้ด้วยเหตุผลสองประการ:

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

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

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

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

หัวข้อคำขอและการตอบสนอง: Async API

หัวข้อ คำขอและการตอบสนองเป็นเสียงที่ฟังดูเหมือนไม่มากก็น้อย:

  • ลูกค้าส่งข้อความร้องขอผ่านหัวข้อไปยังผู้บริโภค
  • ผู้บริโภคดำเนินการบางอย่าง จากนั้นส่งข้อความตอบกลับผ่านหัวข้อกลับไปยังผู้บริโภค

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

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

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

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

เข้าร่วมและปรับปรุงหัวข้อ

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

มีเครื่องมือที่มีอยู่แล้วที่ช่วยในกรณีการใช้งานเหล่า นี้เช่นKafka Streams สิ่งเหล่านี้มีประโยชน์ แต่มีข้อผิดพลาดมากมายที่เกี่ยวข้องกับการใช้:

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

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

บทสรุป

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

อัลกอริทึมแมชชีนเลิร์นนิง คิดได้อย่างไรว่าคุณควรดูอะไรต่อไป

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

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

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

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

ในบทความนี้ เราจะพูดถึงสิ่งที่เรากำลังทำกับ ML เพื่อให้แน่ใจว่ารายการโปรดใหม่ของคุณกำลังรอคุณอยู่เมื่อคุณเปิดDiscovery +หรือHBO Max

การย้ายจากกระบวนการของมนุษย์ไปสู่กระบวนการของเครื่องจักร

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

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

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

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

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

Warner Brothers Discovery กำลังเปลี่ยนโดยรวมจากการเป็นกองบรรณาธิการที่หนักหน่วงและขับเคลื่อนโดยมนุษย์ไปสู่ ​​ML ที่หนักหน่วงมากขึ้น หนึ่งในสถานที่ที่เราเพิ่งเริ่มเข้าสู่วัฒนธรรมบรรณาธิการคือในสิ่งที่เราเรียกว่าแผงฮีโร่ ซึ่งเป็นแผงขนาดใหญ่ที่ด้านบนที่แสดงตัวอย่างรายการเดียวสำหรับรายการเด่น บรรณาธิการของเรามักจะเลือกสิ่งที่จะไปที่นั่น—ไม่ใช้เครื่องจักร เป็นเพียงชุดตัวเลือกที่หมุนเวียนตลอดเวลา ตอนนี้ เรากำลังเปลี่ยนสิ่งนี้ให้กลายเป็นปัญหาการเรียนรู้ของเครื่อง โดยพยายามหาวิธีปรับแต่งพื้นที่นั้นให้เป็นส่วนตัวด้วยชุดโปรแกรมที่เกี่ยวข้องกับผู้ที่กำลังดูพื้นที่นั้นหมุนเวียนอยู่ตลอดเวลา 

เครื่องที่แนะนำภาพยนตร์ให้คุณ

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

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

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

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

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

แน่นอนว่าเครื่องมือ อัลกอริทึม และโมเดลไม่ใช่ส่วนที่ยากที่สุดเกี่ยวกับแมชชีนเลิร์นนิง มันคือข้อมูล 

ปัญหาที่แท้จริงคือข้อมูล

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

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

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

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

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

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

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

ปัญหามากมายในการใช้การ ลงชื่อครั้งเดียว

ลงชื่อครั้งเดียว สตาร์ทอัพ SaaS ส่วนใหญ่ต้องการขายให้กับองค์กร แต่หลายๆ แห่งไม่ได้เตรียมพร้อมสำหรับข้อกำหนดที่องค์กรร้องขอมากที่สุด นั่นคือ การลงชื่อเพียงครั้งเดียว (SSO) ผลิตภัณฑ์ SaaS มักจะออกแบบมาสำหรับชื่อผู้ใช้และรหัสผ่าน ไม่ใช่การผสานรวมที่ซับซ้อนกับผู้ให้บริการข้อมูลประจำตัว (IdP) เช่น Okta, Google หรือ Active Directory 

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

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

การสร้าง SSO นั้นยากอะไร

ให้ฉันบอกคุณเกี่ยวกับครั้งแรกที่ฉันพยายามใช้ SSO 

ฉันเริ่ม Nylas Mail ในปี 2013 หลังจากเขียนโค้ดบรรทัดแรกในห้องหอพักของฉันที่ MIT กลายเป็นโครงการโอเพ่นซอร์สที่ประสบความสำเร็จอย่างมากและเราระดมเงินได้มากกว่า 10 ล้านเหรียญในความพยายามที่จะโค่น Microsoft Outlook ไม่นานก่อนที่เราจะต้องทำการค้า ซึ่งก็คือตอนที่เราต้องเผชิญหน้ากับผู้ชมกลุ่มใหม่ที่เป็นผู้ซื้อ ซึ่งได้แก่ ผู้นำด้านไอทีและผู้เชี่ยวชาญด้านการจัดซื้อจัดจ้าง เรารู้สึกตื่นเต้นที่จะได้พูดคุยกับลูกค้าระดับองค์กรเกี่ยวกับการนำไปใช้ แต่พวกเขาต้องการคุณสมบัติระดับองค์กรเพื่อเปิดตัว Nylas ในวงกว้าง ในฐานะบริษัทสตาร์ทอัพเล็กๆ เราได้ออกแบบแอปสำหรับผู้ใช้ทั่วไป ไม่ใช่เพื่อการใช้งานในองค์กร ดังนั้นเราจึงไม่พร้อมที่จะรวมเข้ากับ IdP หรือตอบสนองข้อกำหนดอื่นๆ ขององค์กร การทำงานเพื่อเพิ่มคุณลักษณะเหล่านั้นได้รับการพิสูจน์แล้วว่ามากเกินไปสำหรับเรา และขัดขวางไม่ให้เราประสบความสำเร็จในตลาดเชิงพาณิชย์ 

บทเรียนในที่นี้คือหากไม่มี SSO และฟีเจอร์สำหรับองค์กรอื่นๆ ผลิตภัณฑ์ก็จะไปได้ไกลเท่านั้น

สิ่งสำคัญที่ต้องทำความเข้าใจเกี่ยวกับ SSO คือปัญหาการรวมระบบ นักพัฒนาส่วนใหญ่สร้างแอปโดยใช้แพ็คเกจ OSS เช่นDeviseซึ่งจัดการการพิสูจน์ตัวตนสำหรับ Ruby on Rails สิ่งนี้ใช้ได้กับลูกค้าที่มีความต้องการพื้นฐาน ช่วยให้ผู้คนสามารถใช้โมเดลต่างๆ ที่มีโมดูลาร์สูงได้ เมื่อถึงจุดหนึ่ง นักพัฒนาจำเป็นต้องผสานรวมผลิตภัณฑ์ของตนเข้ากับ IdP ซึ่งมักจะเริ่มต้นด้วยอะไรก็ตามที่ลูกค้าต้องการมากที่สุด องค์กรต่างๆ ใช้โซลูชัน IdP ที่แตกต่างกัน: บางแห่งอาจใช้โซลูชันที่จำหน่ายทั่วไป เช่น Okta หรือ Azure Active Directory ในขณะที่บางแห่งมีโซลูชันที่ผลิตขึ้นเองเอง

ผู้ขายรายใดก็ตามที่ต้องการขายให้กับบริษัทเหล่านี้จะต้องผสานรวมกับ IdP เหล่านี้ทั้งหมด ซึ่งหมายถึงการจัดการทั้งการตรวจสอบความถูกต้องของ IdP และผู้ใช้ที่ใช้ข้อมูลรับรองดั้งเดิม (นั่นคือ ชื่อผู้ใช้และรหัสผ่านที่มาจากแพลตฟอร์มของผู้ขาย) เนื่องจากไม่มีฟังก์ชัน IdPs ใดที่เหมือนกันและมีผู้ให้บริการ SSO จำนวนมาก คุณจึงต้องรักษาการผสานรวมหลายรายการพร้อมกัน 

หากคุณต้องการอ่านเกี่ยวกับขั้นตอนอื่นในการเพิ่ม SSO ให้กับผลิตภัณฑ์ขององค์กร นี่คือวิธี ที่  Stack Overflow ทำ

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

SAML มีชัยไปกว่าครึ่ง

มีหลายวิธีในการดำเนินการ SSO หนึ่งในความนิยมมากที่สุดคือผ่านมาตรฐานเปิดแบบ XML ที่เรียกว่า Security Assertion Markup Language (SAML) ข้อกำหนดSAMLมีความยืดหยุ่นและมีตัวเลือกมากมายเพื่อให้ครอบคลุมกรณีต่างๆ ที่เป็นไปได้ ไม่มีผู้ขายสองรายใช้ข้อมูลจำเพาะในลักษณะเดียวกัน กล่าวอีกนัยหนึ่ง มันไม่ได้ใช้งานอย่างสม่ำเสมอ และ SAML มี “รสชาติ” หลายอย่าง เป็นผลให้มีโอกาสมากมายสำหรับปัญหาด้านความปลอดภัย

พูดให้ชัดเจน ไม่ใช่ว่าสเปคได้รับการออกแบบมาไม่ดี เมื่อโปรโตคอลได้รับการออกแบบ นักออกแบบต้องการครอบคลุมความเป็นไปได้มากมาย สามารถทำได้หลายอย่างด้วย SAML ที่ไม่ค่อยได้นำมาใช้ แต่การผสานรวม SSO ยังคงต้องพร้อมรองรับกรณีขอบบางกรณี ซึ่งเป็นจุดที่ช่องโหว่ปรากฏขึ้น

เพย์โหลด SAML

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

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

การขาดมาตรฐานสามารถนำไปสู่ความล้มเหลวและความเปราะบางได้ง่าย

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

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

ลักษณะที่ใช้ XML ของ SAML มาพร้อมกับความท้าทายที่เกี่ยวข้องกับ XML การเรียงลำดับวัตถุและการจัดเรียงเอนทิตีที่ซ้อนกัน (นั่นคือแท็ก) อาจทำให้เกิดปัญหาได้ การแมปแอตทริบิวต์ไม่ได้มาตรฐานในทุกแพลตฟอร์ม ตัวระบุสำหรับผู้ใช้บนแพลตฟอร์มไม่ได้มาตรฐาน บางครั้งคุณได้รับ ID บางครั้งอีเมล บางครั้งไม่มีตัวระบุและมีลักษณะทึบแสง เช่น สตริง Active Directory ที่ทำให้เป็นอนุกรม อาจเป็นเรื่องดึงดูดใจที่จะใช้ไลบรารีโอเพนซอร์ส ซึ่งไม่มีอะไรดีไปกว่าของฟรีราคาถูก แต่มีแพ็คเกจโอเพ่นซอร์สไม่มากนักที่จัดการกับ XML ได้ดี 

การออกแบบแอปอาจส่งผลต่อฟังก์ชันการทำงานและความปลอดภัยของ SAML

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

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

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

การสร้างส่วนต่อประสานผู้ใช้ที่รองรับ SSO นั้นยากและทุกบริษัทต่างทำสิ่งที่แตกต่างออกไป รูปแบบที่พบบ่อยที่สุดคือให้มีช่องชื่อผู้ใช้และรหัสผ่านพร้อมไอคอน IdP ด้านล่างและในข้อความขนาดเล็ก “ลงชื่อเข้าใช้ด้วย SAML/SSO” การเข้าสู่ระบบ iCloud ของ Apple จะไม่แสดงฟิลด์รหัสผ่านทันที เนื่องจากจะตรวจสอบว่าโดเมนของชื่อผู้ใช้ครอบคลุมอยู่ในโฟลว์ SSO หรือไม่ Slack ใช้ CNAME ที่กำหนดเองใน URL เช่น StackOverflow.slack.com และส่งคุณไปยังขั้นตอนการเข้าสู่ระบบที่ถูกต้อง ไม่มีวิธีมาตรฐานในการทำ ซึ่งเป็นเหตุผลว่าทำไมทุกคนจึงทำแตกต่างกัน

การต้อนรับองค์กรและการออกจากพนักงาน

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

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

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

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

ความท้าทายในการจัดการเซสชัน

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

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

ผู้ใช้นอกระบบ

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

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

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

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

ข้ามช่องว่างขององค์กร

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

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

ชุดข้อมูลแมชชีนเลิร์นนิง ที่เป็นมิตรต่อความเป็นส่วนตัว: ข้อมูลสังเคราะห์

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

นั่นคือที่มาของข้อมูลสังเคราะห์ ข้อมูลสังเคราะห์คือข้อมูลที่สร้างขึ้นผ่านโปรแกรมคอมพิวเตอร์แทนที่จะรวบรวมผ่านเหตุการณ์ในโลกแห่งความเป็นจริง เราติดต่อกับ Kalyan Veeramachaneni นักวิทยาศาสตร์การวิจัยหลักของ MIT และผู้ร่วมก่อตั้ง DataCebo บริษัทสตาร์ทอัพด้านข้อมูลขนาดใหญ่เกี่ยวกับโครงการของเขาในการเปิดแหล่งที่มาของพลังของข้อมูลขนาดใหญ่และให้การเรียนรู้ของเครื่องรวบรวมข้อมูลที่จำเป็นในการสร้างแบบจำลองของจริง โลกโดยไม่มีปัญหาความเป็นส่วนตัวในโลกแห่งความจริง

ก่อนหน้านี้เราได้กล่าวถึงข้อมูลสังเคราะห์ในพอดคาสต์ในอดีต 

คำตอบด้านล่างได้รับการแก้ไขเพื่อรูปแบบและความชัดเจน 

ถาม:คุณช่วยบอกเราเล็กน้อยเกี่ยวกับข้อมูลสังเคราะห์และสิ่งที่ทีมของคุณกำลังจะเผยแพร่ได้ไหม

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

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

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

ตรวจสอบ  เว็บไซต์ SDMetrics  เพื่อดูองค์ประกอบต่างๆ ของกล่องเครื่องมือ SDMetrics

ถาม:ข้อมูลสังเคราะห์มีการป้องกันสถานการณ์ประเภทใดบ้าง

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

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

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

ถาม:คุณจะสร้างข้อมูลสังเคราะห์ที่ดูเหมือนข้อมูลจริงได้อย่างไร

ตอบ:ข้อมูลสังเคราะห์ถูกสร้างขึ้นโดยใช้วิธีการเรียนรู้ของเครื่องที่มีทั้งการเรียนรู้ของเครื่องแบบดั้งเดิมและวิธีการเรียนรู้เชิงลึกที่เกี่ยวข้องกับโครงข่ายประสาทเทียม 

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

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

ในทางตรงกันข้าม วิธีการเรียนรู้เชิงลึกมักจะเกี่ยวข้องกับเครือข่ายฝ่ายตรงข้ามเชิงกำเนิด (GAN) ตัวเข้ารหัสแบบแปรผัน (VAE) หรือฟิลด์ความกระจ่างใสของระบบประสาท (NeRF) วิธีการเหล่านี้ได้รับชุดย่อยของข้อมูลจริงและเรียนรู้รูปแบบเชิงกำเนิด เมื่อเรียนรู้แบบจำลองแล้ว คุณสามารถสร้างข้อมูลสังเคราะห์ได้มากเท่าที่คุณต้องการ วิธีการอัตโนมัตินี้ทำให้การสร้างข้อมูลสังเคราะห์เป็นไปได้สำหรับแอปพลิเคชันทุกประเภท ข้อมูลสังเคราะห์จำเป็นต้องตรงตามเกณฑ์บางประการจึงจะเชื่อถือได้และมีประสิทธิภาพ ตัวอย่างเช่น การรักษารูปร่างของคอลัมน์การครอบคลุมหมวดหมู่และความสัมพันธ์. เพื่อเปิดใช้งานสิ่งนี้ กระบวนการที่ใช้สร้างข้อมูลสามารถควบคุมได้โดยการระบุการแจกแจงทางสถิติเฉพาะสำหรับคอลัมน์ สถาปัตยกรรมแบบจำลอง และวิธีการแปลงข้อมูล การเลือกวิธีการแจกแจงหรือการแปลงที่จะใช้นั้นขึ้นอยู่กับข้อมูลและกรณีการใช้งานเป็นอย่างมาก 

ถาม:ข้อดีของการใช้ข้อมูลสังเคราะห์เทียบกับข้อมูลจำลองคืออะไร

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

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

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

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

เราจะหารือเกี่ยวกับข้อจำกัดของข้อมูลจำลองในรายละเอียดเพิ่มเติมในบล็อกของเรา 

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

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

นอกจากนี้ยังมีเทคนิคการเพิ่มความเป็นส่วนตัวบางอย่างที่เพิ่มเข้ามาในระหว่างกระบวนการฝึกอบรม เทคนิคเหล่านี้ไม่ได้เป็นส่วนหนึ่งของไลบรารีโอเพ่นซอร์ส ในขณะที่อธิบายไว้ในเอกสาร  

การรู้เทคนิคเหล่านี้ในตัวมันเองอาจไม่นำไปสู่การทำวิศวกรรมย้อนกลับ เนื่องจากมีการสุ่มเข้ามาเกี่ยวข้องในปริมาณที่เพียงพอ อย่างไรก็ตาม เป็นคำถามที่น่าสนใจที่ชุมชนควรพิจารณา 

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

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

ฮาร์ดแวร์และซอฟต์แวร์สามารถ เพิ่มสถานะโฟลว์ของคุณ ได้อย่างไร

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

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

อย่างไรก็ตาม เป็นเรื่องจริงที่นักพัฒนาใช้เวลาส่วนใหญ่ไปกับการเลื่อนแป้นพิมพ์ แปลความคิดของตนเป็นโค้ด ดังนั้นหากพวกเขาใช้Vim , Emacsหรือโปรแกรมแก้ไขข้อความบนคอนโซลอื่นๆ สำหรับพวกเราที่ไล่ตามความเร่งรีบอย่างมีประสิทธิผลของสถานะการไหล มันมักจะเริ่มต้นด้วยส่วนต่อประสานระหว่างนิ้วของคุณกับคอมพิวเตอร์: แป้นพิมพ์ที่เรียบง่าย คีย์บอร์ด (และเมาส์) ไม่จำเป็นต้องช่วยให้คุณเข้าสู่สถานะลื่นไหล แต่คีย์บอร์ดที่ดีอย่างMX Master Seriesสามารถช่วยให้คุณไปต่อได้ 

ในบทความนี้ เราจะพูดถึงการวิจัยเกี่ยวกับนักพัฒนาซอฟต์แวร์และสถานะโฟลว์ การเอาชนะสิ่งรบกวนที่ดึงคุณออกจากโฟกัส และเครื่องมือที่ดีที่สุดคือเครื่องมือที่คุณลืมได้อย่างไร 

สถานะการไหลและผู้พัฒนาซอฟต์แวร์

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

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

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

ศาสตราจารย์ Thomas Fritz แห่งมหาวิทยาลัย Zurich (ผู้ที่เราพูดคุยด้วยในบทความนี้) พบว่านักพัฒนาใช้เวลาประมาณ 50% ของวันทำงานหน้าคอมพิวเตอร์ ครึ่งหนึ่งของเวลานั้นถูกใช้ไปกับ IDE ที่ทำงานเกี่ยวกับโค้ด ในขณะที่การเขียนและอ่านโค้ดใช้เวลาเพียงหนึ่งในสี่ของวันของวิศวกรซอฟต์แวร์ นั่นเป็นช่วงเวลาที่พวกเขาต้องให้ความสำคัญมากที่สุด ขอบใด ๆ เพื่อลดความเครียดและปรับปรุงการไหลช่วยได้ 

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

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

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

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

แม้ว่าประสิทธิภาพการทำงานอาจเป็นเรื่องยากและเป็นอัตนัยในการวัด แต่เราสามารถค่อนข้างแน่ใจได้ในสิ่งที่ไม่ใช่: การขัดจังหวะและการเสียสมาธิ 

ลดการรบกวนด้วยเครื่องมือที่ดี

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

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

ศาสตราจารย์ฟริตซ์และทีมของเขาใช้ข้อมูลจากการศึกษาไบโอเมตริกและแป้นพิมพ์และเมาส์ด้านบนเพื่อระบุสถานะที่หยุดชะงัก พวกเขาใช้การวัดแบบอัตวิสัยบวกกับการจัดประเภทการเรียนรู้ของเครื่องเพื่อกำหนดโดยอัตโนมัติว่าบุคคลสามารถถูกขัดจังหวะโดยไม่ทำลายสถานะการไหลหรือไม่ ความมุ่งมั่นนี้ถูกป้อนเข้าไปในไฟ LED(เช่นเดียวกับสถานะสำหรับโปรแกรมแชท) เพื่อสร้างสถานะสีแดง เหลือง และเขียว จำลองตามสัญญาณไฟจราจร สีแดงหมายถึงมีสมาธิ และสีเขียวหมายถึงเปิดรับสิ่งรบกวน หลังจากทดสอบภาคสนามกับผู้เข้าร่วม 450 คน ทีมวิจัยพบว่าตัวบ่งชี้สถานะนี้มีความแม่นยำประมาณ 75% ของเวลาทั้งหมด มันไม่สมบูรณ์แบบ แต่ดีพอที่จะรักษาสถานะการไหล คิดว่ามันเหมือนกับตัวบ่งชี้สถานะในแอปแชทที่บอกคนอื่นว่าคุณว่างหรือไม่อยู่ แต่ตัวบ่งชี้นี้จะอัปเดตโดยอัตโนมัติเพื่อให้ตรงกับสภาวะจิตใจของคุณ เพิ่มสถานะโฟลว์ของคุณ

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

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

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

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

การออกแบบสำหรับการล่องหน

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

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

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

โดยเฉพาะอย่างยิ่ง หนู อาจเป็นความท้าทายในการออกแบบตามหลักสรีรศาสตร์ แม้ว่าการออกแบบของมือมนุษย์จะไม่เปลี่ยนแปลงมานานนับพันปี แต่ขนาดของมือแต่ละบุคคลมีความแตกต่างกันอย่างมาก โดยเฉพาะอย่างยิ่งระหว่างชายและหญิง พวกเราที่ Logitech ได้ทำซ้ำ เมาส์ MX Masterในห้ารุ่นที่ผ่านมาโดยพยายามค้นหารูปทรงที่เหมาะสมที่สุดสำหรับมือทุกขนาด เราได้ตัดสินใจอย่างมีสติในรุ่นที่ห้าที่จะไม่เปลี่ยนจุดสัมผัส ผู้คนต่างชื่นชอบดีไซน์ปัจจุบัน ดังนั้นหวังว่าเราจะได้มันที่ถูกใจ สำหรับผู้ที่มีมือเล็ก เรามีMX Anywhereเมาส์เคลื่อนที่ของเราที่มีขนาดเล็กลงเพื่อการพกพา แต่ถ้าคุณมีมือที่เล็กกว่า เมาส์นี้จะทำหน้าที่เป็นเมาส์หลัก

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

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

ผู้ใช้ขั้นสูงของเราสลับไปมาระหว่างบริบทขั้นสูงสุด: คอมพิวเตอร์แยกจากกัน สำหรับบางคน พวกเขาพัฒนาบน Mac และต้องทดสอบบนพีซีหรือ Linux สำหรับคนอื่นๆ ที่ทำงานจากที่บ้าน พวกเขาต้องการข้ามไปมาระหว่างคอมพิวเตอร์ที่ทำงานและที่บ้านได้อย่างราบรื่น ฮาร์ดแวร์บางตัวของเรามีปุ่มที่ให้คุณย้ายฮาร์ดแวร์ระหว่างคอมพิวเตอร์ผ่าน Bluetooth ได้ทันที ทางออกที่ดีที่สุดของเราคือซอฟต์แวร์ที่เราเรียกว่าโฟลว์ ช่วยให้คุณดูแลคอมพิวเตอร์หลายเครื่องได้เหมือนจอภาพเสริม เลื่อนเมาส์ไปที่ขอบของหน้าจอ Mac แล้วคุณก็อยู่บนเดสก์ท็อป Windows ทันที! 

ทำงานด้วยความเร็วของความคิด

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

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

ทำให้ข้อมูลของคุณเป็นรูปเป็นร่างสำหรับ แมชชีนเลิร์นนิง

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

เหตุใดโครงสร้างข้อมูลจึงแตกต่างกันใน ML

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

เป้าหมายการออกแบบสำหรับโครงสร้างข้อมูล ML

  • เหมาะสำหรับการประมวลผลและการคำนวณที่มีประสิทธิภาพสูง
  • การซิงโครไนซ์ที่มีประสิทธิภาพระหว่าง GPU และเครื่องต่างๆ
  • ยืดหยุ่นสำหรับข้อมูลประเภทต่างๆ

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

สเกลาร์ เวกเตอร์ และเมทริกซ์

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

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

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

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

เทนเซอร์และคุณสมบัติของมัน

เทนเซอร์อธิบายอาร์เรย์ข้อมูลแบบ n มิติ บ่อยครั้งที่ อันดับที่เรียกว่าหรือจำนวนแกนหมายถึงมิติข้อมูล เทนเซอร์อันดับ 0 คือสเกลาร์ เทนเซอร์อันดับ 1 คือเวกเตอร์ และเมทริกซ์หมายถึงเทนเซอร์อันดับ 2

เทนเซอร์ N-มิติเหมาะอย่างยิ่งสำหรับแอปพลิเคชันการเรียนรู้ของเครื่องเนื่องจากช่วยให้เข้าถึงข้อมูลได้อย่างรวดเร็วโดยการค้นหาอย่างรวดเร็วและไม่ต้องถอดรหัสหรือประมวลผลเพิ่มเติม เนื่องจากคณิตศาสตร์เมทริกซ์ที่รู้จักกันดีการคำนวณด้วยเทนเซอร์จึงมีประสิทธิภาพมาก และช่วยให้สามารถฝึกฝนโมเดลการเรียนรู้เชิงลึกที่ต้องใช้การคำนวณพารามิเตอร์นับล้านและพันล้านพารามิเตอร์ การดำเนินการของเทนเซอร์หลายอย่าง เช่น การบวก การลบ การแปลง Hadamard , dot productและอื่นๆ อีกมากมายได้รับการนำไปใช้อย่างมีประสิทธิภาพในไลบรารีการเรียนรู้ของเครื่องมาตรฐาน

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

รูปภาพ JPG ขนาด 320 x 213 พิกเซลที่เข้ารหัสอย่างดีต้องการพื้นที่จัดเก็บประมาณ 13 KB เท่านั้น ในขณะที่โฟลต32 เทนเซอร์ของข้อมูลรูปภาพเดียวกันใช้หน่วยความจำประมาณ 798 KB ซึ่งเพิ่มขึ้น 6100%

พิกเซลสี 320 x 213 ใน JPG ต้องการพื้นที่เก็บข้อมูลเพียง 13 KB

ข้อมูลภาพเดียวกันที่จัดเก็บไว้ในเทนเซอร์ขนาด 320 x 213 x 3 float32 น้ำหนัก 798 KB

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

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

การตัดสินใจสำหรับไปป์ไลน์ข้อมูลของคุณ

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

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

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

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

การตัดสินใจชุดข้อมูล:

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

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

แอปพลิเคชัน AI เปิดช่องโหว่ด้านความปลอดภัยใหม่

แอปพลิเคชัน AI ความปลอดภัยของแอปพลิเคชันมาไกลในช่วงสองสามทศวรรษที่ผ่านมา ในช่วงต้นทศวรรษ 2000 การโจมตีด้วย SQL Injection และ Cross Site Scripting (XSS) เป็นฝันร้ายสำหรับทีมรักษาความปลอดภัยทางไซเบอร์ เนื่องจากผู้โจมตีสามารถข้ามผ่านไฟร์วอลล์เครือข่ายผ่านการโจมตีที่ชั้นแอปพลิเคชันได้อย่างง่ายดาย เนื่องจากไฟร์วอลล์เครือข่ายแบบดั้งเดิมในเวลานั้นไม่รับรู้ถึงแอปพลิเคชัน การโจมตีเหล่านี้จึงพิสูจน์ให้เห็นถึงจุดบอดที่ทำให้ผู้โจมตีสามารถโจมตีเว็บแอปพลิเคชันได้อย่างง่ายดาย 

อุตสาหกรรมฟื้นตัวอย่างรวดเร็ว อย่างไรก็ตาม ไฟร์วอลล์ของเว็บแอปพลิเคชัน (WAF) และการตรวจสอบความปลอดภัยของซอร์สโค้ดกลายเป็นส่วนมาตรฐานของการตรวจสอบความปลอดภัยทางไซเบอร์ส่วนใหญ่ ตอนนี้เรามี DevSecOps ที่ทำการตรวจสอบเหล่านี้โดยอัตโนมัติภายในไปป์ไลน์ CI/CD เพื่อให้การรักษาความปลอดภัยเป็นไปอย่างรวดเร็วด้วย โซลูชันการทดสอบความปลอดภัยของ แอปพลิเคชันแบบไดนามิก (DAST) และการทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่ (SAST) ที่กลายเป็นเรื่องธรรมดา

อย่างไรก็ตาม เทรนด์ใหม่กำลังเพิ่มขึ้นซึ่งอาจเป็นจุดบอดอีกจุดหนึ่งได้ เช่น การฉีด SQL ในทศวรรษที่ผ่านมา เว้นแต่จะมีการควบคุม 

การโจมตีเหล่านี้มีเป้าหมายที่ AI และระบบการเรียนรู้ของเครื่อง 

ระบบ AI และการเรียนรู้ของเครื่อง 

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

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

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

เหตุใด AI จึงเป็นจุดบอดในการรักษาความปลอดภัยทางไซเบอร์ 

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

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

สิ่งนี้ทำให้พวกเขาสามารถ: 

  1. รบกวนการทำงานของแอพพลิเคชั่น AI และทำให้ตัดสินใจผิดพลาด 
  2. ค้นหาว่าโมเดลทำงานอย่างไร เพื่อที่พวกเขาจะได้ทำวิศวกรรมย้อนกลับสำหรับการโจมตีเพิ่มเติม 
  3. ค้นหาว่าโมเดลได้รับการฝึกอบรมเกี่ยวกับข้อมูลใด โดยเปิดเผยลักษณะเฉพาะที่ละเอียดอ่อนที่พวกเขาไม่ควรรู้ 

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

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

การโจมตีโดยอนุมาน 

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

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

พิษโจมตี 

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

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

หลบหลีกการโจมตี 

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

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

ทางข้างหน้า 

การโจมตีโดยใช้ AI กลายเป็นเรื่องธรรมดา มากขึ้น และทีมรักษาความปลอดภัยทางไซเบอร์จำเป็นต้องเพิ่มทักษะเพื่อทำความเข้าใจกับการโจมตีแอปพลิเคชันสายพันธุ์ใหม่นี้ ในการแข่งขัน Machine Learning Security Evasion Competition (MLSEC 2022) ในปีนี้ แสดงให้เห็นว่าการหลบเลี่ยงโมเดลการจดจำใบหน้าผ่านการเปลี่ยนแปลงเล็กน้อยนั้นทำได้ง่ายเพียงเล็กน้อย

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

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

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

  • การสร้างแบบจำลองภัยคุกคามของโมเดลแมชชีนเลิร์นนิงควรดำเนินการและสร้างแนวทางปฏิบัติที่เป็นมาตรฐานก่อนที่จะเลือกโมเดลใหม่หรือโมเดลที่สร้างไว้ล่วงหน้า หลักเกณฑ์เช่น National Cyber ​​Security Center ของสหราชอาณาจักรมีแหล่งข้อมูลเช่น ” หลักการเพื่อความปลอดภัยของแมชชีนเลิ ร์นนิง ” เป็นจุดอ้างอิงที่ดี 
  • การควบคุมการตรวจจับจำเป็นต้องอัปเดตเพื่อแจ้งเตือนหากผู้โจมตีเจาะจงค้นหา API การเรียนรู้ของเครื่องนั้นๆ ซ้ำๆ นี่อาจบ่งบอกถึงการโจมตีโดยอนุมาน 
  • นางแบบควรได้รับการชุบแข็งเพื่อฆ่าเชื้อคะแนนความมั่นใจในคำตอบ ความสมดุลระหว่างความสามารถในการใช้งานและความปลอดภัยจำเป็นต้องเกิดขึ้น โดยนักพัฒนาอาจได้รับรายละเอียดคะแนนความเชื่อมั่นเต็มจำนวน ในขณะที่ผู้ใช้ปลายทางต้องการเพียงคะแนนสรุปเท่านั้น สิ่งนี้จะเพิ่มความยากลำบากอย่างมากสำหรับผู้โจมตีในการประเมินตรรกะหรือข้อมูลพื้นฐานที่โมเดลได้รับการฝึกอบรม
  • โมเดลแมชชีนเลิร์นนิงควรได้รับการฝึกฝนกับตัวอย่างฝ่ายตรงข้ามเพื่อประเมินความยืดหยุ่นต่อการโจมตีดังกล่าว การนำโมเดลดังกล่าวไปใช้ตั้งแต่เนิ่นๆ ทำให้บริษัทต่างๆ สามารถระบุช่องว่างในการเรียนรู้และแก้ไขสิ่งเดียวกันได้อย่างรวดเร็ว 
  • ที่เก็บข้อมูลที่ใช้ในการฝึกโมเดลแมชชีนเลิร์นนิงควรผ่านการทดสอบความปลอดภัยอย่างเข้มงวดเพื่อให้แน่ใจว่าไม่มีช่องโหว่ที่อาจทำให้การโจมตีเข้าถึงข้อมูลและวางยาพิษได้ ในทำนองเดียวกัน ข้อมูลที่ “สะอาด” ในคราวเดียวอาจถูกพิษในภายหลัง ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องตรวจสอบว่าแบบจำลองทำงานอย่างถูกต้องทุกครั้งที่รีเฟรชข้อมูลการฝึกอบรมหรือได้รับการฝึกฝนเกี่ยวกับข้อมูลใหม่ ทีมงานคุณภาพควรให้แบบจำลองผ่านการทดสอบต่างๆ และตรวจสอบผลลัพธ์ก่อนหน้านี้เพื่อให้แน่ใจว่าแบบจำลองยังคงทำงานได้อย่างเหมาะสมและไม่มี “พิษ” เกิดขึ้น 
  • ประการสุดท้าย บริษัทควรมีนโยบายเกี่ยวกับการใช้ข้อมูลสาธารณะหรือข้อมูลโอเพ่นซอร์สสำหรับการฝึกอบรม แม้ว่าจะใช้งานได้ง่ายกว่าสำหรับโมเดลการฝึก การประนีประนอมของที่เก็บข้อมูลอาจทำให้โมเดลเสียหายในการฝึกได้ 

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

Face-sso (By K&O) หากท่านสนใจ เครื่องสแกนใบหน้ารุ่นต่างๆ หลากหลายรุ่น หรือ ติดตั้งระบบสแกนใบหน้า สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA เครื่องสแกนใบหน้า สามารถ ขอราคาพิเศษได้ ตามงบประมาณที่เหมาะสม สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ มั่นใจเพราะเป็นราคาที่สุด คุ้มค่าที่สุด

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699