Wie Notion AI-Funktionen entwickelt (Linus Lee)
(youtube.com)-
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.