TransRepair: Automatisches Testen und Verbessern von maschineller Übersetzung

Vor kurzem habe ich ein Forschungspapier mit dem Titel TransRepair: Automatic Testing and Improvement of Machine Translation gelesen. Darin wird eine Methodik namens TransRepair für das automatische Testen von maschinellen Übersetzungsmodellen im Bereich des Softwaretests beschrieben. Im Folgenden werde ich einige Aspekte des Papiers zusammenfassen und die wichtigsten Punkte diskutieren. Einführung in TransRepair TransRepair ist eine Methode zur automatischen Erkennung und Behebung von Konformitätsproblemen in maschineller Übersetzungssoftware. Es bietet sowohl Black-Box- als auch Grey-Box-Ansätze zur Lösung von Konformitätsproblemen in maschineller Übersetzungssoftware. Zu den wichtigsten Schritten von TransRepair gehören die Generierung von Testfällen, die Erstellung von Testkriterien und die Automatisierung des Reparaturprozesses. Die Methode bietet klare, strenge und detaillierte Algorithmen für die Generierung von Testfällen und verwendet vier Methoden zur Quantifizierung von Satzunterschieden für den Vergleich. Darüber hinaus verwendet TransRepair das Prinzip der strukturellen Konsistenz als Behauptung und bietet ein umfassendes experimentelles Design und diverse Ergebnisse. ...

September 30, 2021

Strukturinvariante Tests für maschinelle Übersetzung (SIT) Zusammenfassung der Lektüre

Ich habe zuvor das Papier Structure-Invariant Testing for Machine Translation gelesen, in dem eine Methode zur Erkennung des Robustheitsproblems von Software-Systemen für die maschinelle Übersetzung vorgeschlagen wird. Im Folgenden werde ich mein Verständnis des Inhalts unter verschiedenen Aspekten erläutern. Schubkraft SIT ist eine Methode zur Erkennung von Robustheitsproblemen in maschinellen Übersetzungssoftwaresystemen. Diese Methode nutzt eine Metamorphose-Relation in einem Metamorphose-Test, d.h. “strukturelle Invarianz”. SIT kann Robustheitsprobleme in maschinellen Übersetzungssoftwaresystemen effizient aufdecken, indem es Originalsätze auswählt, ähnliche Sätze erzeugt, Ergebnisse von Übersetzungssoftware erhält, Konstituentenparsing durchführt und Satzunterschiede quantifiziert sowie Probleme anhand eines festgelegten Schwellenwerts herausfiltert und aufdeckt. Den experimentellen Ergebnissen zufolge kann SIT 2k+ Sätze in 19 Sekunden verarbeiten und erreicht eine Genauigkeit von 70% für Google/Bing Translate. Es gibt jedoch noch Raum für Verbesserungen, was wahrscheinlich an der Auswahl der Schwellenwerte liegt. ...

September 30, 2021

Intel x86-Prozessor Speicherschutz Zusammenfassung Wissenspunkte

Sobald der Speicherschutzmechanismus des Prozessors aktiviert ist, führt der Prozessor bei jedem Speicherzugriff eine Schutzprüfung durch, um sicherzustellen, dass alle Zugriffe den Schutzrichtlinien entsprechen. Die Schutzprüfung und die Adressübersetzung werden parallel durchgeführt. Die Schutzprüfung besteht aus einer Prüfung auf Segmentebene und einer Prüfung auf Seitenebene. Die Reihenfolge der Prüfung ist erst Segment, dann Seite, basierend auf Segmentdeskriptoren, Seitenverzeichnissen und Seitentabellen und basierend auf den Berechtigungsstufen. Die Berechtigungsstufe ist die von Intel definierte Berechtigungsnummer zur Implementierung des Schutzes. ...

September 30, 2021

Gemeinsame Speicherverwaltungspraktiken für die Intel 64 Architektur

Die Speicherverwaltung ist ein sehr wichtiger Teil des Betriebssystems. Mit der ständigen Weiterentwicklung der Computertechnologie entwickelt sich auch die Art der Speicherverwaltung weiter. In diesem Artikel stellen wir Ihnen einige gängige Methoden der Speicherverwaltung für das Intel 64 System vor. Die Flat-Page-Speicherverwaltung ist eine relativ einfache Art der Speicherverwaltung. Sie nutzt die seitenbasierte Verwaltung, um die segmentbasierte Verwaltung auszublenden. Insbesondere werden logische Adressen direkt auf lineare Adressen abgebildet, ein Codesegment und ein Datensegment definiert und die Größe beider Segmente beträgt 4 GB. Der Vorteil dieses Ansatzes besteht darin, dass er einfach und leicht verständlich ist. Um das Problem der Speicherabtrennung für mehrere Prozesse zu lösen, kann ein geschützter flacher Speicherverwaltungsansatz verwendet werden. Dabei werden ein Kernel-Codesegment, ein Kernel-Datensegment, ein Benutzer-Codesegment und ein Benutzer-Datensegment definiert, die jeweils eine Basisadresse von 0 und eine Größe von 4 GB haben. Prozesse verwenden das Kernel-Segment, wenn sie Kernel-Code ausführen, und das Benutzer-Segment, wenn sie Benutzer-Code ausführen. Der Vorteil dieses Ansatzes ist, dass er die Isolierung des Speichers von mehreren Prozessen ermöglicht. Der Nachteil ist jedoch, dass eine Adressübersetzung erforderlich ist, was die Effizienz beeinträchtigt. Die segmentierte Speicherverwaltung ist ein Ansatz, der ausschließlich die segmentierte Verwaltung verwendet und die seitenbasierte Verwaltung ausblendet. Sie ermöglicht die Isolierung des Multiprozessspeichers, erfordert jedoch eine Adressübersetzung, was sich ebenfalls auf die Effizienz auswirkt. Die seitenbasierte Speicherverwaltung auf der Grundlage der physikalischen Adresserweiterung ist ein Ansatz, der einen größeren physikalischen Adressraum unterstützt. Er führt den Mechanismus der Physical Address Expansion (PAE) ein, um 36-Bit physikalische Adressen zu unterstützen. In diesem Verwaltungsmodus wird der physische Adressraum auf 64 GB erweitert, aber der lineare Adressraum bleibt bei 4 GB. Seitenverzeichnisse und Seitentabelleneinträge werden auf 64 Bit erweitert, so dass die Anzahl der Einträge in einem Seitenverzeichnis oder einer Seitentabelle 512 beträgt und ein Seitenverzeichnis nur 1 GB linearen Adressraum beschreibt. Daher wurde eine Seitenverzeichnis-Zeigertabelle (PDP) mit nur vier Tabelleneinträgen eingeführt. und CR3 verweist auf die PDP. wurde der Mechanismus der Adressübersetzung geändert. Wenn das PS-Bit in einem Seitenverzeichniseintrag auf 1 gesetzt wird, wird die darin beschriebene Seite zu einer 2MB-Seite. Im 64-Bit-Modus werden die Segmente normalerweise ausgeschaltet und die Überprüfung der Segmentgrenzen wird nicht mehr durchgeführt. Die Basisadressprozessoren von CS, DS, ES und SS werden gemeinsam als 0 behandelt. FS und GS können jedoch alles andere als 0 sein und die Basisadresse von FS oder GS wird der logischen Adresse hinzugefügt, wenn sie in eine frühere Adresse umgewandelt wird. Die Basisadressbits von FS und GS sind 64-Bit-Adressen und nur die unteren 32 Bits davon werden im Kompatibilitätsmodus verwendet und im MSR gespeichert. Im 64-Bit-Modus beruht die Verwaltung des Speichers ausschließlich auf dem Paging-Mechanismus. Die Intel64-Architektur erweitert den PAE-Mechanismus, um lineare 64-Bit-Adressen und physikalische 52-Bit-Adressen zu unterstützen. Die Erweiterungen umfassen: ...

September 30, 2021

Überblick über die segmentierte Speicherverwaltung

Bei der Segment-Seiten-Speicherverwaltung wird die lineare Adresse eines Segments in lineare Seiten gleicher Größe unterteilt (4KB, 4MB oder 2MB, usw.). Der physische Speicherplatz wird ebenfalls in gleich große physische Seiten unterteilt. Das Betriebssystem verwaltet eine Seitentabelle, um die Zuordnung von linearen Seiten zu physischen Seiten zu verwalten. Die Seitentabelle ist in der IA-32-Architektur in zwei Ebenen unterteilt, den Seitenkatalog und die Seitentabelle. Das Seitenverzeichnis ist ein Array, dessen Elemente Seitenverzeichniseinträge (PDEs) genannt werden, und jeder Seitenverzeichniseintrag beschreibt eine Seitentabelle. Die Größe des Seitenverzeichnisses ist eine Seite (4KB) und es gibt 1024 Seitenverzeichniseinträge in einem Seitenverzeichnis. Die Größe eines Seitenverzeichniseintrags beträgt 4 Byte. Die Größe einer Seitentabelle ist eine Seite (4KB). Die Größe eines Seitentabelleneintrags beträgt 4 Byte, so dass eine Seitentabelle bis zu 1024 lineare Seiten beschreiben kann. ...

September 30, 2021

Überblick über die Segment-Speicherverwaltung

Das IA-32-System bietet einen segmentierten, seitenbasierten Speicherverwaltungsmechanismus, bei dem auf die Segmentierung das Paging folgt. Der seitenbasierte Speicher wird zur Unterstützung des virtuellen Speichers bereitgestellt. Segment: Der adressierbare lineare Speicherbereich des Prozessors ist in Segmente unterschiedlicher Größe unterteilt. Ein Segment ist ein zusammenhängendes Intervall im linearen Adressraum. Segmente können Code, Daten, Stapel oder andere Datenstrukturen enthalten. Die Attributinformationen eines Segments werden durch seinen entsprechenden Segmentdeskriptor beschrieben. Ein Segmentdeskriptor ist eine Datenstruktur, die Intel mithilfe einer Segmentdeskriptortabelle verwaltet. Die Segmentdeskriptor-Tabelle kann bis zu 64KB groß sein. ...

September 30, 2021

Verstehen Sie das Innenleben eines Computersystems: Wie arbeiten Speicher, E/A-Geräte, Busse und externer Speicher zusammen?

Der Speicher ist ein Speicherplatz, auf den der Prozessor direkt zugreifen kann. Um den Speicherzugriff zu beschleunigen, bieten Computersysteme in der Regel einen Cache, der in der Regel von der Hardware verwaltet wird. E/A-Geräte bestehen aus E/A-Controllern und physischen Geräten, wobei der Prozessor die physischen Geräte über die E/A-Controller verwaltet. Die E/A-Controller bestehen hauptsächlich aus Steuer- und Statusregistern (CSRs) und Datenregistern. Der Prozessor liest CSRs, um den Gerätestatus zu erhalten, schreibt CSRs, um Geräteaktionen zu steuern, und liest und schreibt Datenregister, um Daten auszutauschen. Der Kernel abstrahiert E/A-Geräte normalerweise in einen Satz von Registern und gibt einem Register eine E/A-Adresse. Der Prozessor greift auf die E/A-Register über die E/A-Adresse zu. ...

September 30, 2021