เอนจินคู่มือคำถามที่พบบ่อยPatreonDiscordดาวน์โหลด
เข้าสู่ระบบ
RuneTranslate · แปลเกมจากภาษาญี่ปุ่นและ 30+ ภาษา
เอนจินคู่มือเปรียบเทียบข้อความในภาพตัวแก้ไขเซฟโหมดโกงคำถามที่พบบ่อยดาวน์โหลดการเปลี่ยนแปลงTrustpilotPatreonDiscordYouTubeความเป็นส่วนตัวข้อกำหนดติดต่อ
โพสต์ทั้งหมด
runesight · exclusions · ai · feature

RuneSight: เอนจินโครงข่ายประสาทที่แยกข้อความออกจากโค้ด

18 ก.ย. 2569·7 นาทีในการอ่าน

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

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

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

ทำไมรายการกฎถึงไม่พอเพียงอีกต่อไป

นิพจน์ปกติจับได้เฉพาะรูปทรงที่มันถูกเขียนมาสำหรับสิ่งนั้นเท่านั้น bg_office_01 เป็นตัวระบุ ดังนั้นกฎสำหรับ snake_case จึงจับมันได้ แล้วเกม Wolf RPG เกมหนึ่งก็มาพร้อม <<GET_FILE_EXIST>>Data/\s[1] เกม Bakin เกมหนึ่งมาพร้อม Lv.\partystatus[0] เกม Unity เกมหนึ่งมาพร้อม "CubismTaskQueue.OnTask" already set. และชื่อโฟลเดอร์ที่เขียนเป็นภาษาญี่ปุ่นก็ทำให้กฎเรื่องพาธที่สมมติว่าเป็น ASCII พังไป แต่ละกรณีกลายเป็นกฎใหม่หนึ่งข้อ ที่ต้องกำหนดขอบเขตอย่างระมัดระวังเพื่อไม่ให้กลืนบทสนทนาจริงเข้าไปด้วย และทุกเอนจินใหม่ก็เริ่มวงจรนี้ซ้ำอีกครั้ง

กฎยังชั่งน้ำหนักหลักฐานไม่ได้ด้วย บรรทัดที่ส่วนใหญ่เป็นรหัสควบคุมแต่มีบทสนทนาสามคำต่อท้ายอยู่คือข้อความ และต้องแปลได้อยู่ บรรทัดที่เป็นประโยคเต็ม ๆ พูดถึงไฟล์ .png ก็คือข้อความ ส่วนบรรทัดที่มีแค่ \f[\cself[1]]\space[4] ไม่ใช่ข้อความ การแยกแยะสิ่งเหล่านี้ต้องอาศัยความเข้าใจทั้งบรรทัด ไม่ใช่แค่จับคู่กับบางส่วนของมัน

RuneSight คืออะไร

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

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

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

มันเรียนรู้จากอะไร

ไม่มีข้อมูลที่ติดป้ายกำกับไว้แล้วสำหรับงานนี้ จึงต้องสร้างขึ้นมาเอง ชุดข้อมูลฝึกมีมากกว่าเก้าแสนบรรทัดเล็กน้อย ประกอบด้วย:

  • เกมจริง การดึงข้อมูลแบบเต็มจากเกมสิบสามเกมในสิบเอนจิน ตั้งแต่ RPG Maker และ Ren'Py ไปจนถึง Wolf RPG, Kirikiri, Artemis, Unity, Godot, Bakin และ Unreal ติดป้ายกำกับด้วยกฎที่ RuneSight กำลังจะเข้ามาแทนที่ นี่คือมาตรฐานขั้นต่ำ: มันต้องจับทุกอย่างที่กฎเดิมจับได้ให้หมด
  • ประโยคจริง ประโยคสองแสนห้าหมื่นประโยคในสิบหกภาษา ทั้งภาษาญี่ปุ่น จีน เกาหลี ไทย อาหรับ รัสเซีย และภาษาที่ใช้อักษรละตินอื่น ๆ รวมอยู่ด้วย เพื่อให้ข้อความปกติในภาษาต้นทางใด ๆ ไม่มีวันถูกเข้าใจผิดว่าเป็นโค้ด
  • กลไกจริงของระบบ พาธ ตัวระบุ ชื่อแบบมีจุดคั่น และบรรทัดคอมเมนต์รวมหนึ่งแสนหกหมื่นรายการ เก็บเกี่ยวมาจากซอร์สโค้ดและแพ็กเกจต่าง ๆ ซึ่งเป็นรูปทรงที่เอนจินหลายตัวมีร่วมกัน
  • จุดบอดที่จงใจสร้างขึ้น บรรทัดที่สร้างขึ้นเกือบสามแสนบรรทัด สร้างจากเอกสารอ้างอิงรหัสควบคุมทางการของ Wolf RPG, RPG Maker และ Bakin แต่ละบรรทัดจับคู่กับบทสนทนาที่หน้าตาใกล้เคียงกันซึ่งมันต้องไม่กลืนเข้าไป เช่น ประโยคที่พูดถึงไฟล์หนึ่ง ชื่อที่ตามด้วยตัวเลข หรือบรรทัดข้อความที่มีโค้ดแทรกอยู่ตรงกลาง
  • ชุดข้อมูลมาตรฐานที่ตรวจด้วยมือ ทุกบรรทัดที่กฎเดิมเคยยึดไว้เป็นหลัก บวกกับบรรทัดจริงที่มีรายงานเข้ามาจากเกมที่เล่นจริง ตัดสินทีละบรรทัด

สิ่งที่มันต้องพิสูจน์ก่อนจะปล่อยใช้งานจริง

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

  • ในทุกเกมจริงในชุดข้อมูล มันจับได้อย่างน้อย 99.5% ของสิ่งที่กฎที่เขียนด้วยมือเคยจับได้
  • ในชุดบรรทัดที่ถูกตรึงไว้ว่าต้องแปลได้เสมอ ซึ่งเป็นชุดที่กฎเดิมถูกทดสอบด้วยมาโดยตลอด มันยกเว้นออกไป ศูนย์ บรรทัด
  • ในข้อความร้อยแก้วจริง มีบรรทัดที่ถูกยกเว้นน้อยกว่า 0.2% เสมอ
  • เหตุผลที่มันระบุถูกต้องอย่างน้อย 97% ของเวลาทั้งหมด
  • การให้คะแนนหนึ่งบรรทัดใช้เวลาไม่ถึง 5 ไมโครวินาที

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

สิ่งที่ไม่ได้เปลี่ยนไป

RuneSight ตัดสินใจจากรูปทรงของบรรทัด ส่วนการตัดสินใจที่ต้องอาศัยบริบท ไม่ใช่รูปทรง ยังคงมาจากตัวเชื่อมเอนจินเช่นเดิม: ชื่อโหนดของ Godot ถูกยกเว้นเพราะตำแหน่งที่มันอยู่ในโครงสร้างฉาก คอมเมนต์อีเวนต์ของ RPG Maker ถูกยกเว้นเพราะคำสั่งที่บรรจุมันไว้ คีย์พารามิเตอร์ของปลั๊กอินถูกยกเว้นเพราะไฟล์ที่มันอาศัยอยู่ กฎเหล่านั้นยังคงอยู่ เช่นเดียวกับกฎเชิงนโยบายที่คุณเห็นได้ในคอลัมน์เหตุผล อย่างเช่นบรรทัดที่ไม่มีอักขระของภาษาต้นทางอยู่เลยแม้แต่ตัวเดียว

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

ดูมันได้ที่ไหน

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

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

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

อ่านที่เกี่ยวข้อง
01

RuneLingua: การแปลรวมอยู่ในสมาชิกภาพ RuneTranslate ของคุณแล้ว

runelinguaproviderspricingfeature19 ก.ย. 2569 · 6 นาที
อ่าน →
02

กรองบรรทัดที่ไม่ต้องการออกจากการแปลด้วยตัวกรอง regex

exclusionsregexfilters24 ก.ค. 2569 · 7 นาที
อ่าน →
03

แปลทั้งเกมได้เร็วขึ้นด้วยพร็อกซีของคุณเอง (Pro)

proxiesproprovidersspeedfeature24 ก.ค. 2569 · 5 นาที
อ่าน →

พร้อมลอง RuneTranslate ไหม

ระดับฟรีปลดล็อกทุกเอนจิน + ทุกผู้ให้บริการแปล Supporter ($3.99/mo) ปลดล็อกความเร็วเต็ม

ดาวน์โหลดสำหรับ Windows