Benrath
Community-Forum
- Mitglied seit
- 19.05.2003
- Beiträge
- 19.749
- Reaktionen
- 748
Da hier ja sonst nichts passiert, nutze ich den Bereich mal wieder als meinen safe space stack overflow. Nehmen wir mal an ich habe mehrere Textabsätze („Argumente“) von denen ich weiß, dass sie in inhaltlicher Variation in längeren Emails vorkommen. Ich würde gerne durch die Emails gehen und prüfen, welche Argumente enthalten sind. Bonus wo genau in der Mail. Die Argumente sind sehr unterschiedlich lang. ~300- 3000 Zeichen. Die Mails mehrere Seiten lange, glaube z.B. knapp 30.000 Zeichen.
Haken ist, dass ich etwas eingeschränkt bei der Nutzung von Sprachmodellen etc. bin. Immerhin kann ich Python recht frei nutzen, wenn ich Pakete einfach über pip install bekomme. Externe APIs sind wegen der Art der Daten an sich auch no go. Wäre schön, wenn alles lokal bleiben kann.
Daher habe ich mir ein lokales embedding Model runtergeladen z.B. distiluse-base-multilingual-cased-v1 (https://huggingface.co/sentence-transformers/distiluse-base-multilingual-cased-v1) und versucht die Argumente zu embedden. Die Mails chunke ich mit overlap (abhängig von den Argumenten) und mach dann einen similiarity Vergleich. Testweise habe ich auch einen lokalen Vektorstore genutzt.
Packages habe ich langchain, FAISS, SentenceTransformer, HuggingFaceEmbeddings. Von mir aus kann ich auch den ganzen von ChatGPT gesponserten Code posten J
An sich funktioniert das teilweise gar nicht schlecht, wenn ich es mit alten Mails teste. Er findet viele richtig, einige zu viel, einige zu wenig. Auf meinem Rechner rattern ein paar Mails mit den ~30 Argumenten eine gute Stunde durch. Teilweise sind die Argumente fast Kopien, aber bei so langem Text wollte ich flexibel sein und dachte das direkte suche mit RegEx nicht zielführend ist, weil Formate meines Texts und in den Emails dann bestimmt abweicht.
Sieht jemand einen anderen Ansatz, den ich nutzen könnte und der auch im eingeschränkten Setup funktioniert? Könnte die Mails noch nach Länge gruppieren, dass ich nicht jedes mal alles Mails chunke je Argument.
Haken ist, dass ich etwas eingeschränkt bei der Nutzung von Sprachmodellen etc. bin. Immerhin kann ich Python recht frei nutzen, wenn ich Pakete einfach über pip install bekomme. Externe APIs sind wegen der Art der Daten an sich auch no go. Wäre schön, wenn alles lokal bleiben kann.
Daher habe ich mir ein lokales embedding Model runtergeladen z.B. distiluse-base-multilingual-cased-v1 (https://huggingface.co/sentence-transformers/distiluse-base-multilingual-cased-v1) und versucht die Argumente zu embedden. Die Mails chunke ich mit overlap (abhängig von den Argumenten) und mach dann einen similiarity Vergleich. Testweise habe ich auch einen lokalen Vektorstore genutzt.
Packages habe ich langchain, FAISS, SentenceTransformer, HuggingFaceEmbeddings. Von mir aus kann ich auch den ganzen von ChatGPT gesponserten Code posten J
An sich funktioniert das teilweise gar nicht schlecht, wenn ich es mit alten Mails teste. Er findet viele richtig, einige zu viel, einige zu wenig. Auf meinem Rechner rattern ein paar Mails mit den ~30 Argumenten eine gute Stunde durch. Teilweise sind die Argumente fast Kopien, aber bei so langem Text wollte ich flexibel sein und dachte das direkte suche mit RegEx nicht zielführend ist, weil Formate meines Texts und in den Emails dann bestimmt abweicht.
Sieht jemand einen anderen Ansatz, den ich nutzen könnte und der auch im eingeschränkten Setup funktioniert? Könnte die Mails noch nach Länge gruppieren, dass ich nicht jedes mal alles Mails chunke je Argument.