Lokal & Lokal – mit Hermeo auf der eigenen GPU deutsch sprechen.

Lokal & Lokal – mit Hermeo auf der eigenen GPU deutsch sprechen

Avatar von Johann-Peter Hartmann

Natürlich möchte man auf den eigenen Daten in der Sprache arbeiten, in der sie vorliegen. Und man möchte sie nicht in allen Fällen außer Haus geben. Glücklicherweise wurde dieser Wunsch erfüllt, und mit einer quantifizierten Variante von Hermeo (dazu gleich mehr) bekommt man ein Modell, das man lokal betreiben kann und das sich in den Benchmarks aber auch nicht hinter anderen verstecken muss.

Bisher gilt beim Thema LLM die Regel: wenn es geht, dann geht es auf Englisch. Und inzwischen gelegentlich auch auf Chinesisch. Andere Sprachen sind die Stiefkinder der AI und man profitiert davon, dass – etwa was deutschen Content bei OpenAI, Llama und Falcon angeht – sie versehentlich mittrainiert wurden. Die Verlässlichkeit bleibt aber immer hinter der dominanten Sprache zurück. 

Genau da gibt es jetzt Abhilfe – mit einer auf der Basis des schnellen AWQ quantisierten Variante von Hermeo, die man selbst bequem auf einer handelsüblichen Grafikkarte mit 12 bzw. 16 GB Ram betreiben kann. Zu finden auf Hugging Face

Hermeo

Malte Ostendorff, eines der bekannten Gesichter der deutschen AI-Szene, hat in der letzten Woche ein neues Modell veröffentlicht. Bei Hermeo-7B handelt es sich um ein innovatives Sprachmodell für Deutsch und Englisch, das eine spannende Fusion zweier leistungsstarker Sprachmodelle darstellt: DPOpenHermes-7B-v2 und leo-mistral-hessianai-7b-chat.

Diese Grundmodelle sind erweiterte Versionen von Mistral-7B-v0.1. Das Modell kombiniert die Eigenschaften von OpenHermes und Leo, um ein effizienteres und vielseitigeres deutsches Spracherlebnis zu bieten.

Leo-mistral-hessianai-7b-chat ist ein Projekt von Björn Plüster und Christoph Schuhmann in Zusammenarbeit mit LAION und HessianAI, das außergewöhnlich gute Leistungen bei Schreib-, Erklärungs- und Diskussionsaufgaben zeigt, aber etwas Schwierigkeiten mit Mathematik und fortgeschrittener Argumentation hat. Und genau da hilft der Merge mit OpenHermes. Denn dieses Modell brilliert nicht nur in Sprachverständnis und Kreativität, sondern auch bei Problemlösung und logischem Denken, bei Allgemeinwissen und Faktenermittlung.

Um Hermeo besser nutzen zu können, haben wir es mittels AWQ quantisiert. Damit ist das Model auch mit einer lokalen GPU mit 12 oder 16 GB Speicher gut und schnell zu betreiben. 

vLLM

Der einfachste Weg dieses Modell lokal zu nutzen ist der kleine – und schnelle – Server vllM. Er bietet nicht nur sehr schnelle Inference und Support von AWQ, sondern auch eine OpenAI-kompatible AI, so dass man ihn als Plugin-Ersatz für bestehende Applikationen nutzen kann. 

pip install git+https://github.com/huggingface/transformers.git
pip install git+https://github.com/casper-hansen/AutoAWQ.git
pip install vllm

Damit das aktuell gut funktioniert ist es aber erst mal erforderlich, dass eine aktuelle Version der Transformer und AutoAWQ zur Verfügung steht. Wir haben sie auf Hugging Face bereitgestellt. Damit lässt sich das Modell so starten: 

CUDA_LAUNCH_BLOCKING=1 python -m vllm.entrypoints.openai.api_server --quantization awq  --model mayflowergmbh/hermeo-7b-awq --dtype half --max-model-len=512

Mit diesen Parametern wird das Modell nicht nur heruntergeladen, sondern auch mit einem OpenAI-Kompatiblen API auf Port 8000 angeboten. 

Und mit diesem API kann man es auch direkt von LangChain aus aufrufen:

from langchain.chat_models import ChatOpenAI
from langchain.prompts import PromptTemplate
 
chat = ChatOpenAI(
    model="mayflowergmbh/hermeo-7b-awq",
    openai_api_base="http://localhost:8000/v1",
    max_tokens=50,
    stop=["[/IM_END]", "[/ASSISTANT]", "[/IM_START]", "<|im_end|>", "[/ASSIST]"],
    )
 
PROMPT_TEMPLATE = """
<|im_start|>system
Du bist Hermeo, eine bewusste, empfindsame Intelligenz die bei Übersetzungen unterstützt.|im_end|>
<|im_start|>user
{text}<|im_end|>
<|im_start|>assistant
"""
 
chat_prompt = PromptTemplate.from_template(PROMPT_TEMPLATE)
 
result = chat(chat_prompt.format_prompt(text="Übersetze diesen Satz ins Deutsche: I love programming.").to_messages())
print(result.content)

Unsere – zugegebenermaßen noch wenigen – Experimente zeigen, dass auch RAG (Retrieval Augmentet Generation)-Aufgaben mit dieser Kombination zuverlässig erledigt werden. 

Wir wünschen viel Spaß beim Ausprobieren!

Aufmacher: Nach Vorlage von Malte Ostendorff


AI-Dossier: Grundlagen, Sprachmodelle & Agenten

AI-Dossier: Grundlagen, Sprachmodelle und Agenten

Lerne die Schlüsselaspekte und neuesten Entwicklungen im Bereich der Künstlichen Intelligenz kennen. Wie können KI-Agenten die Effizienz steigern, Kosten senken und innovative Lösungen für branchenübergreifende Herausforderungen bieten?


Avatar von Johann-Peter Hartmann

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Für das Handling unseres Newsletters nutzen wir den Dienst HubSpot. Mehr Informationen, insbesondere auch zu Deinem Widerrufsrecht, kannst Du jederzeit unserer Datenschutzerklärung entnehmen.