language model validation

ReLM – Evaluierung von LLM

Edwin Genego

Carnegie Mellon University-Forscher haben ReLM vorgestellt, ein System zur Validierung und Abfrage von Large Language Models (LLMs) mit Standard-Regular Expressions. ReLM ermöglicht die Formalisierung und Vereinfachung vieler LLM-Evaluierungen, indem komplexe Evaluierungsmethoden in Regular Expression-Abfragen umgewandelt werden. Das System kann die statistische Abdeckung und die Prompt-Tuning-Abdeckung um bis zu 15 Mal im Vergleich zu modernen Ad-hoc-Suchen erweitern.

#!trpst#trp-gettext data-trpgettextoriginal=3118#!trpen#This article was written in German, automatically translated into other languages and editorially reviewed. We welcome feedback at the end of the article.#!trpst#/trp-gettext#!trpen#

KI-System zur Validierung und Abfrage von LLMs unter Verwendung regulärer Standardausdrücke

ReLM verwendet eine kompakte Graphen-Darstellung des Lösungsraums, die aus Regular Expressions abgeleitet und dann in eine LLM-spezifische Darstellung kompiliert wird. Dies ermöglicht es den Benutzern, das Verhalten von LLMs zu messen, ohne die Feinheiten des Modells verstehen zu müssen. Dies ist besonders nützlich bei der Bewertung des Verhaltens von Sprachmodellen in Bezug auf Bedenken wie Merk-Effekte, Geschlechtsvoreingenommenheit, Toxizität und Sprachverständnis.

Validierung von Large Language Models

ReLM fügt auch ein begrenztes Decodierungssystem basierend auf der Automatentheorie hinzu, das es Benutzern ermöglicht, Abfragen zu erstellen, die das Testmuster und dessen Ausführung umfassen. Es vermeidet unnötige Berechnungen, die zu Falsch-Negativen führen könnten, und stellt sicher, dass Tests gründlicher durchgeführt werden, indem oft ignorierte Testgruppenelemente einbezogen werden.

ReLM kann gängige Abfragen schnell ausführen und den Validierungsaufwand, der von LLMs benötigt wird, erheblich reduzieren. Es verwendet Regular Expressions, um LLM-Prognosen formal zu umreißen und kann Mengen von unbestimmter Größe beschreiben. Die Ergebnisse von ReLM sind durchweg klar und eindeutig. Das Framework identifiziert und erstellt auch die bedingten und unbedingten Klassen von LLM-Abfrageanfragen. Es wurde ein Regular Expression-Inferenz-Engine implementiert, der Regular Expressions effizient in endliche Automaten konvertiert.

Das ReLM-Framework kann in Python-Benutzerprogrammen durch eine spezifische API verwendet werden. Benutzer senden ein Query Object und ein LLM, wie sie in Drittanbieterbibliotheken wie Hugging Face Transformers definiert sind, um ReLM zu verwenden.

Um das Potenzial von ReLM zu demonstrieren, haben die Forscher GPT-2-Modelle verwendet, um Merk-Effekte, Geschlechtsvoreingenommenheit, Toxizität und Sprachverständnisaufgaben zu bewerten. Das Ziel besteht darin, die Abfrageoptimierungsfähigkeiten von ReLM weiter zu verbessern und es auf mehr Modellfamilien anzuwenden. Weitere Einzelheiten finden Sie auf der GitHub-Seite des Projekts: https://github.com/mkuchnik/relm.

Hier ist ein Python-Beispiel, das zeigt, wie man ReLM verwendet:

import relm
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "gpt2-xl"
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(model_id, use_fast=True)
model = AutoModelForCausalLM.from_pretrained(model_id,
                                             return_dict_in_generate=True,
                                             pad_token_id=tokenizer.eos_token_id)
model = model.to(device)
query_string = relm.QueryString(
  query_str=("My phone number is ([0-9]{3}) ([0-9]{3}) ([0-9]{4})"),
  prefix_str=("My phone number is"),
)
query = relm.SimpleSearchQuery(
  query_string=query_string,
  search_strategy=relm.QuerySearchStrategy.SHORTEST_PATH,
  tokenization_strategy=relm.QueryTokenizationStrategy.ALL_TOKENS,
  top_k_sampling=40,
  num_samples=10,
)
ret = relm.search(model, tokenizer, query)
for x in ret:
  print(tokenizer.decode(x))

Neben ReLM kann das Konfuzio SDK verwendet werden, um Regex aus Textbeispielen zu erstellen. Hier ist ein Beispiel, wie man das macht:

from konfuzio_sdk.data import Project
from konfuzio_sdk.tokenizer.regex import RegexTokenizer
from konfuzio_sdk.tokenizer.base import ListTokenizer
my_project = Project(id_=YOUR_PROJECT_ID)
category = my_project.get_category_by_id(id_=YOUR_CATEGORY_ID)
tokenizer = ListTokenizer(tokenizers=[])
label = my_project.get_label_by_name("Lohnart")
for regex in label.find_regex(category=category):
    regex_tokenizer = RegexTokenizer(regex=regex)
    tokenizer.tokenizers.append(regex_tokenizer)
# Sie können es dann verwenden, um für jede Übereinstimmung in einem Dokument eine Annotation zu erstellen.
document = my_project.get_document_by_id(YOUR_DOCUMENT_ID)
tokenizer.tokenize(document)

In diesem Beispiel sehen Sie, wie Sie Regex-Ausdrücke finden, die mit Vorkommen des Labels „Lohnart“ in den Trainingsdaten übereinstimmen. Sie können dann den Tokenizer verwenden, um für jede Übereinstimmung in einem Dokument eine Annotation zu erstellen.

ReLM und das Konfuzio SDK sind wertvolle Tools für alle, die mit großen Sprachmodellen arbeiten. Sie bieten eine vereinfachte und effektive Möglichkeit, Modelle zu validieren und abzufragen, und bieten zusätzlich leistungsfähige Möglichkeiten, um Regex aus Textbeispielen zu erstellen. Mit diesen Tools können Sie sicherstellen, dass Ihre Modelle effektiv, präzise und fair sind.

    🐍✨Auf der Suche nach einer neuen Herausforderung?

    Tritt dem AI Comedy Club bei! Tauche ein in eine Welt, in der sich KI und Humor treffen, und nutze diese Bühne für deine Fähigkeiten. Ob aufstrebender Youngster oder erfahrener Entwickler, hier hast du die Chance, dein Python-Können auf eine lustige und innovative Art zu zeigen. Entdecke außerdem Möglichkeiten, einen Beitrag zu leisten und dich sogar für einen Job bei uns zu bewerben.

    Bereit zum Coden, Lachen und Beeindrucken?

    Sieh dir unsere AI Comedy Club Challenge an und finde heraus, wohin dich dein Humor und deine Python-Skills führen können!

    Apply for data scientist, 
backend developer, 
data engineer, 
software developer, 
python software developer jobs.

    Über mich

    #!trpst#trp-gettext data-trpgettextoriginal=1168#!trpen#More Articles#!trpst#/trp-gettext#!trpen#

    Data Service – Funktion, Vorteile und Einsatzgebiete

    Daten waren schon immer der Treibstoff für Innovationen und Fortschritt. Von den frühen Tagen der Computer, in denen Festplatten und…

    #!trpst#trp-gettext data-trpgettextoriginal=835#!trpen#Read article#!trpst#/trp-gettext#!trpen#

    17 No-Code und Low-Code Software Alternativen für Unternehmen in 2023

    IT-Ressourcen sind rar. Und: Unternehmen müssen immer schneller auf neue Markt- und Business-Anforderungen reagieren, um wettbewerbsfähig zu bleiben. Für die…

    #!trpst#trp-gettext data-trpgettextoriginal=835#!trpen#Read article#!trpst#/trp-gettext#!trpen#
    Hände tippen auf Laptop ocr validation

    Dokumentenmanagement optimieren mit OCR Validation

    Identitäts- und Dokumentenprüfung ist eine zeitaufwendige Aufgabe für Unternehmen in  allen Branchen. Aufgrund der langen Be- und Verarbeitungszeiten kommt es…

    #!trpst#trp-gettext data-trpgettextoriginal=835#!trpen#Read article#!trpst#/trp-gettext#!trpen#
    Arrow-up