14 Punkte von kwonhl0211 2024-07-15 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Linus Lees Erfahrung in der AI-Entwicklung

    • Linus Lee arbeitet bei Notion als Lead AI Engineer.
    • Vor Notion forschte er viel zu NLP, Machine Learning und HCI und war zudem aktiv im Prototyping und Schreiben.
    • Bei Notion entwickelte er die Funktionen Q&A, Autofill und AI Writing und forschte außerdem an Latent-Space-Modellen.
  • Überblick über die AI-Entwicklung bei Notion

    • Linus Lee entwickelte bereits seit seiner Studienzeit verschiedene Webentwicklungen und Produktivitätstools.
    • Im Laufe des Jahres 2022 begann er eigenständig, AI-bezogene Papers zu lesen und zu forschen.
    • Im Oktober 2022 stieß er zum Beta-Projekt von Notions AI Writer.
    • Als er bei Notion anfing, bestand das AI-Team aus vier Personen, inzwischen ist es auf etwa 20 gewachsen.
    • Zu den wichtigsten Projekten, an denen Linus Lee mitarbeitete, gehören AI Writer, Autofill und Q&A, die jeweils im Februar, Mai und November 2023 veröffentlicht wurden.
    • Künftig will Notion AI die Nutzbarkeit durch Agent-Technologie weiter verbessern.
  • Vorstellung von Notions Büros und dem AI-Team

    • Notion hat Büros in San Francisco und New York; das Büro in San Francisco wird für Mittagessen und Veranstaltungen genutzt.
    • Das Büro in New York ist der Ort, an dem Linus Lee lebt und arbeitet, und zeichnet sich durch eine sauber gestaltete Arbeitsumgebung aus.
    • Die Entwicklung von Notions AI-Funktionen begann 2013, und CEO sowie CTO sind direkt an der Produktentwicklung beteiligt.
    • Auf einem Meeting-Foto des AI-Teams aus dem Herbst 2022 sind der Manager, CEO Ivan, CTO Simon sowie Product Manager und Designer bei einer Q&A-Session zu sehen.
    • Bei der Entwicklung von AI-Produkten sind Qualität und Evaluation zentrale Faktoren; dafür werden Evaluationsmethoden eingesetzt, die das Spektrum von Research-Benchmarks bis zur tatsächlichen Nutzung in Production berücksichtigen.
    • Notion überprüft die Leistung zwischen Benchmarks und echten Daten und bewertet die Modellleistung präzise mithilfe programmatischer Tests.
    • Zu den Bewertungskriterien gehören das Vorkommen bestimmter Wörter, Tone, Keywords sowie präzise Sprachleistung.
  • Entwicklung von Notions AI-Produkten

    • Menschliche Evaluation ist ein wichtiger Bestandteil der Entwicklung von Notions AI-Produkten.
    • Menschen prüfen Daten in Testdatensätzen, und die Produkte werden zusätzlich mit programmatischen Tests getestet.
    • Nach der Produktentwicklung ist fortlaufendes Monitoring auf Basis des Nutzerfeedbacks erforderlich.
    • AI muss Funktionen auf verschiedenen Ebenen bieten, etwa das Sammeln von Fehlfällen der Nutzer und die Beantwortung von Fragen.
    • Der Schlüssel zur Entwicklung hochwertiger AI-Produkte sind Korrekturen und die Qualität der Daten. Deshalb ist es wichtig, reale Daten an das Modell anzupassen.
    • Das Notion-Team entwickelt gemeinsam mit Engineers, Forschern, Designern und Product Managern und diskutiert dabei auch Korrekturfunktionen.
    • Mit Modellen wie GPT-4 wird das Korrekturmodell kontinuierlich verbessert, um die Qualität der Ergebnisse zu steigern.
  • Prozess der Entwicklung von Notion-AI-Funktionen

    • Die AI-Engineers bei Notion entwickeln Modelle durch Informationssammlung und Datenaufbereitung. Deshalb müssen sie die Daten gründlich analysieren und an die Anforderungen der Nutzer anpassen.
    • Sie untersuchen Methoden, um Informationen wie Meeting-Notizen und Webseiten der Notion-Nutzer zu strukturieren, und bauen darauf Datensätze auf, da dies die Leistung des AI-Modells beeinflusst.
    • Durch Forschung identifizieren sie Use Cases wie Q&A und testen daran die Modelle. So können sie auf Nutzerfragen wirksame Antworten liefern.
    • Mit GPT-4 und Cloud-Modellen entwickeln sie Prototyp-Systeme und testen diese intern, um frühe Probleme zu erkennen.
    • Sie analysieren die durch interne Nutzung gesammelten Fehlfälle und verbessern auf dieser Basis Datensätze und Modelle. Durch wiederholte Tests und Feedback erhöhen sie so die Genauigkeit der Modelle.
  • Verfahren zur Entwicklung und Evaluation von Notions AI-Modellen

    • Der Modell-Iterationenprozess umfasst das Anpassen von Prompts, das Fine-Tuning von Modellen sowie das Hinzufügen einer zweiten Stufe in der Language-Model-Pipeline.
    • Wenn man in der Entwicklung entscheidet, dass ein Problem gelöst ist, wird erneut ausgerollt, mehr Fehlfälle gesammelt und der iterative Prozess fortgesetzt.
    • Dieser Prozess wird so lange wiederholt, bis die Qualität von Ein- und Ausgaben in der internen Umgebung zufriedenstellend ist.
    • Irgendwann wird das Produkt über ein Beta-Programm für eine kleine Zahl von Nutzern freigegeben, während Nutzerfeedback und automatisch erfasste Log-Daten überwacht werden.
    • In der frühen Phase des Datensatzaufbaus werden verschiedene Methoden genutzt, um zu prüfen, ob reale Anwendungsfälle gut abgebildet werden.
  • Frühe Phase der Entwicklung von AI-Funktionen

    • Es wird ein Prototyp erstellt und mit dem internen AI-Team getestet.
    • So werden durch interne Nutzung verschiedene Eingaben und Beispiele gesammelt.
    • Das anfängliche Eingabeset muss reale Fälle nicht vollständig repräsentieren.
    • Nach den internen Tests wird an eine breitere Nutzergruppe ausgerollt, um schrittweise realistischere Daten zu gewinnen.
    • Ein initialer Datensatz kann auch auf Basis erwarteter Fehlfälle aufgebaut werden.
    • Bei der Entwicklung von Sprachunterstützung werden bestehende QA-Datensätze in Fremdsprachen übersetzt und verwendet.
  • Datensammlung und Evaluation durch interne und externe Tests

    • Der anfängliche Datensatz muss nicht perfekt realistisch sein. Deshalb werden durch Tests bessere Daten gesammelt.
    • Der Prototyp wird intern oder mit einer kleinen externen Nutzergruppe getestet, und fehlerhafte Ausgabebeispiele werden auf verschiedene Weise gesammelt.
    • Evaluationen auf Basis von Keywords oder Ausgabestruktur werden programmatisch durchgeführt, und für jede AI-Inferenz werden Logs hinterlegt. Dadurch lassen sich fehlerhafte Ausgaben prüfen und analysieren.
    • Durch Nutzerinterviews lassen sich reale Use Cases verstehen und unerwartete Nutzungsmuster entdecken.
    • Beispielsweise stellte man während interner Tests der Autofill-Funktion fest, dass viele Mitarbeitende sie für Übersetzungen nutzten, woraufhin die Funktion als stärker optimierte Übersetzungsversion weiterentwickelt wurde.
  • Feedback- und Evaluationsmethoden für AI-Produkte

    • Feedback-Buttons für „Gefällt mir“ und „Gefällt mir nicht“ sind für Nutzer nicht besonders hilfreich und werden daher selten verwendet.
    • Außerdem lässt sich bei Notions Nutzergröße über solche Feedback-Buttons nicht genügend Datenmaterial sichern.
    • Dennoch sind sie teilweise hilfreich, weil damit gelegentlich Ausnahmefälle erfasst werden können, die über andere Use Cases nicht entdeckt wurden.
    • Intern wird die Leistung des Modells gegenüber unerwarteten Eingaben mithilfe adversarialer Tests bewertet.
    • Adversariale Tests sind nützlich, um Leistungsgrenzen des Modells zu erkennen und Stellen zu identifizieren, an denen Probleme auftreten.
    • Auf Basis realer Nutzungsdaten werden Stärken und Schwächen des Modells kontinuierlich überwacht.
  • Kernelemente der Entwicklung von AI-Produkten

    • Evaluation und Logs sind am wichtigsten.
    • Es ist notwendig, umfassende und vollständig reproduzierbare Logs aufzubauen.
    • Anhand schlechter Ausgabebeispiele aus dem realen Einsatz oder anhand interner Testergebnisse lassen sich Pipelines neu aufbauen und debuggen.
    • Jedes Beispiel wird in der Entwicklungsumgebung erneut ausgeführt und mit neuen Prompts oder Modellen getestet, um eine Lösung zu finden.
    • Nach der Problemlösung wird das betreffende Beispiel dem Testdatensatz hinzugefügt, damit derselbe Fehler nicht erneut auftritt.
  • Wichtige Lehren aus der AI-Entwicklung

    • Durch frühe Nutzung des Produkts und häufiges Testen muss das Verständnis für die Aufgabe verfeinert werden.
    • Der Differenzierungsfaktor bei AI ist nicht die Modellleistung, sondern das Verständnis der Aufgabe.
    • Beim Aufbau von AI-Anwendungen für Endnutzer muss das AI-Team die Schwierigkeit der Aufgabe und die Grenzen des Modells tiefgehend verstehen.
    • Es ist wichtig, die Aufgabe in kleine Teile zu zerlegen und zu erkennen, wo das Modell häufig scheitert und was es von Natur aus gut kann.
    • Das Produkt häufig zu verwenden und die Ausgaben zu analysieren, um die Ursachen von Modellfehlern zu verstehen, ist der beste Weg, die Schwierigkeit der Aufgabe zu begreifen.
  • Worauf bei der Entwicklung von AI-Produkten zu achten ist

    • In der Produktspezifikation sollten neben Interface und Funktionen auch Evaluationskriterien und Maßstäbe für gute Ausgaben festgehalten werden.
    • Evaluationskriterien dienen als zentraler Kommunikationspunkt zwischen Product-Verantwortlichen, Engineers und Forschern.
    • Traditionelle Erfahrung im Machine Learning lässt sich auch auf LLMs und generative AI-Modelle anwenden und liefert mehr Einsichten als man denkt.
    • Während man im traditionellen Machine Learning große Datensätze verarbeitet und Cluster oder große Teilmengen analysiert, überprüft man bei Sprachmodellen häufiger einzelne Fehlfälle und einzelne Logs.
    • Daher sind für die Arbeit mit Sprachmodellen andere Tools und Workflows nötig.
  • Bedeutung und Ansatz der Bewertung von AI-Modellen

    • Evaluation basiert auf den Nutzern und dem, was sie tatsächlich tun; darin liegt die Quelle der Wahrheit.
    • Deshalb sollten Evaluationsmaterialien reale Use Cases widerspiegeln, basierend auf internen und externen Nutzungsdaten.
    • Eine wichtige Herausforderung im Evaluationsprozess besteht darin, den gesamten Eingaberaum ausreichend abzudecken, in dem das System gut funktionieren soll.
    • Der Aufbau einer automatisierten Evaluationspipeline spart später Zeit bei der Verarbeitung großer Datenmengen, doch am Anfang ist es wichtig, dass Teammitglieder die Ausgaben direkt prüfen und verstehen.
    • Das hilft dabei, die Ursachen von Modellfehlern und die Tendenzen des Modells bei bestimmten Aufgaben zu erkennen.
  • Wie man ein AI-Team aufstellt

    • Es gibt zwei zentrale Ansätze: Der erste besteht darin, ein bestehendes Machine-Learning-Team in ein AI-Team umzuwandeln.
    • Dann kann ein Team entstehen, das sich auf Daten, Validierung und Benchmarks konzentriert. Deshalb ist es wichtig, so zu evaluieren, dass Nutzeranforderungen und Erwartungen der realen Welt erfüllt werden.
    • Der zweite Ansatz ist, dass ein bestehendes Engineering-Team Language-Model-APIs wie die OpenAI API erlernt. Notion hat diesen Weg ebenfalls gewählt. Deshalb bestand das frühe AI-Team überwiegend aus Web-Engineers.
    • Der Vorteil solcher Teams liegt in ihrem starken Verständnis der Nutzer sowie in Test- und Experimentierarbeit. Allerdings mussten sie lernen, wie wichtig strenge Evaluation und hochwertige Datensätze sind.
    • Darüber hinaus sind gute Hygienepraktiken und Workflows für die Pflege von Datensätzen wichtig. Deshalb ist es essenziell, Datenpunkte hoher Qualität sicherzustellen.

Noch keine Kommentare.

Noch keine Kommentare.