Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Sieben coole technische Interviewfragen für GenAI und LLM

Sieben coole technische Interviewfragen für GenAI und LLM

PHPz
PHPzOriginal
2024-06-07 10:06:29465Durchsuche

七个很酷的GenAI & LLM技术性面试问题

Wenn Sie mehr über AIGC erfahren möchten, besuchen Sie bitte:

Chonglou

unterscheidet sich von den traditionellen Fragendatenbanken, die überall im Internet zu finden sind -the-box-Denken.

Große Sprachmodelle (LLM) gewinnen in den Bereichen Datenwissenschaft, generative künstliche Intelligenz (GenAI) und künstliche Intelligenz zunehmend an Bedeutung. Diese komplexen Algorithmen verbessern die menschlichen Fähigkeiten, treiben Effizienz und Innovation in vielen Branchen voran und werden zum Schlüssel für Unternehmen, um wettbewerbsfähig zu bleiben. LLM hat ein breites Anwendungsspektrum und kann in Bereichen wie der Verarbeitung natürlicher Sprache, der Textgenerierung, der Spracherkennung und Empfehlungssystemen eingesetzt werden. Durch das Lernen aus großen Datenmengen ist LLM in der Lage, Texte zu generieren und Fragen zu beantworten, Gespräche mit Menschen zu führen und genaue und wertvolle Informationen bereitzustellen. GenAI basiert auf LLM-Algorithmen und -Modellen, die eine Vielzahl kreativer Funktionen generieren können. Obwohl GenAI und LLM immer häufiger vorkommen, fehlen uns immer noch detaillierte Ressourcen, die ihre Komplexität tiefgreifend verstehen können. Berufseinsteiger haben oft das Gefühl, auf unbekanntem Terrain festzusitzen, wenn sie Interviews zu den Funktionen und praktischen Anwendungen von GenAI und LLM führen.

Zu diesem Zweck haben wir diesen Leitfaden zusammengestellt, um technische Interviewfragen zu GenAI & LLM aufzuzeichnen. Dieser Leitfaden mit ausführlichen Antworten soll Ihnen dabei helfen, sich auf Vorstellungsgespräche vorzubereiten, Herausforderungen selbstbewusst anzugehen und ein tieferes Verständnis für die Auswirkungen und das Potenzial von GenAI und LLM bei der Gestaltung der Zukunft von KI und Datenwissenschaft zu erlangen.

1. Wie erstellt man einen Wissensgraphen mit einem eingebetteten Wörterbuch in Python?

Eine Möglichkeit besteht darin, einen Hash (ein Wörterbuch in Python, auch Schlüssel-Wert-Tabelle genannt) zu verwenden, bei dem die Schlüssel Wörter, Token und Konzepte sind oder Kategorie, wie zum Beispiel „Mathematik“. Jeder Schlüssel entspricht einem Wert, der selbst ein Hash ist: ein verschachtelter Hash. Der Schlüssel im verschachtelten Hash ist auch ein Wort, das mit dem übergeordneten Schlüssel im übergeordneten Hash zusammenhängt, beispielsweise ein Wort wie „Infinitesimalrechnung“. Der Wert ist eine Gewichtung: „Infinitesimalrechnung“ hat einen hohen Wert, weil „Infinitesimalrechnung“ und „Mathematik“ miteinander in Zusammenhang stehen und oft zusammen vorkommen; umgekehrt hat „Restaurants“ einen niedrigen Wert, weil „Restaurants“ und „Mathematik“ selten zusammen vorkommen.

In LLM kann verschachteltes Hashing eine Einbettung sein (eine Methode zum Zuordnen hochdimensionaler Daten in einen niedrigdimensionalen Raum, die normalerweise verwendet wird, um diskrete, nicht kontinuierliche Daten in eine kontinuierliche Vektordarstellung umzuwandeln, um die Computerverarbeitung zu erleichtern). Da verschachteltes Hashing keine feste Anzahl von Elementen hat, verarbeitet es diskrete Diagramme viel besser als Vektordatenbanken oder Matrizen. Es bringt schnellere Algorithmen und benötigt weniger Speicher.

2. Wie führt man eine hierarchische Clusterbildung durch, wenn die Daten 100 Millionen Schlüsselwörter enthalten?

Wenn Sie Schlüsselwörter gruppieren möchten, können Sie für jedes Schlüsselwortpaar {A, B} die Ähnlichkeit von A und B zwischen zwei zu lernenden Wörtern berechnen wie ähnlich sie sind. Ziel ist es, Cluster ähnlicher Schlüsselwörter zu generieren.

Standard-Python-Bibliotheken wie Sklearn bieten agglomeratives Clustering, auch bekannt als hierarchisches Clustering. In diesem Beispiel ist jedoch typischerweise eine Distanzmatrix von 100 Millionen x 100 Millionen erforderlich. Das funktioniert offensichtlich nicht. In der Praxis kommen die zufälligen Wörter A und B selten zusammen vor, sodass die Distanzmatrix sehr diskret ist. Zu den Lösungen gehört die Verwendung von Methoden, die für diskrete Diagramme geeignet sind, z. B. die Verwendung verschachtelter Hashes, die in Frage 1 besprochen wurden. Ein solcher Ansatz basiert auf der Erkennung von Clustern verbundener Komponenten im zugrunde liegenden Diagramm.

3. Wie crawlt man ein großes Repository wie Wikipedia, um die zugrunde liegende Struktur und nicht nur die einzelnen Einträge abzurufen?

Diese Repositorys betten alle strukturierte Elemente in Webseiten ein, wodurch der Inhalt interessanter wird, als er auf den ersten Blick strukturiert erscheint. Einige Strukturelemente sind für das bloße Auge unsichtbar, beispielsweise Metadaten. Einige sind sichtbar und auch in den gecrawlten Daten vorhanden, z. B. Indizes, verwandte Elemente, Breadcrumbs oder Kategorien. Sie können diese Elemente einzeln durchsuchen, um einen guten Wissensgraphen oder eine gute Taxonomie zu erstellen. Möglicherweise möchten Sie jedoch Ihren eigenen Crawler von Grund auf neu schreiben, anstatt sich auf Tools wie Beautiful Soup zu verlassen. LLMs, die reich an Strukturinformationen sind (z. B. xLLM), liefern bessere Ergebnisse. Wenn es Ihrem Repository außerdem an Struktur mangelt, können Sie Ihre Scraped-Daten mit Strukturen erweitern, die aus externen Quellen abgerufen wurden. Dieser Vorgang wird als „Strukturerweiterung“ bezeichnet.

4. Wie kann man LLM-Einbettungen mit kontextbezogenen Tokens verbessern?

Einbettungen bestehen aus den kleinsten Textelementen, die Sie in jedem Dokument finden können. Sie müssen nicht unbedingt zwei Token wie „data“ und „science“ haben, Sie können auch vier Token haben: „data^science“, „data“, „science“ und „data~science“. Letzteres stellt die Entdeckung des Begriffs „Data Science“ dar. Das erste bedeutet, dass sowohl „Daten“ als auch „Wissenschaft“ zu finden sind, jedoch an zufälligen Positionen innerhalb eines bestimmten Absatzes und nicht an benachbarten Positionen. Solche Token werden Multi-Token oder Kontext-Token genannt. Sie bieten eine schöne Redundanz, aber wenn Sie nicht aufpassen, kann es zu großen Einbettungen kommen. Zu den Lösungen gehören das Ausräumen nutzloser Token (behalten Sie das längste) und die Verwendung von Einbettungen variabler Größe. Kontextbezogene Inhalte können dazu beitragen, LLM-Illusionen zu reduzieren.

5. Wie kann eine Selbstoptimierung implementiert werden, um viele der mit der Modellbewertung und dem Training verbundenen Probleme zu beseitigen?

Dies gilt für Systeme, die auf erklärbarer KI basieren, nicht auf Blackboxen für neuronale Netze. Ermöglichen Sie dem Benutzer der Anwendung, Hyperparameter auszuwählen und diejenigen zu markieren, die ihm gefallen. Verwenden Sie diese Informationen, um ideale Hyperparameter zu finden und sie auf Standardwerte festzulegen. Hierbei handelt es sich um automatisiertes Verstärkungslernen basierend auf Benutzereingaben. Außerdem kann der Benutzer seinen Lieblingsanzug basierend auf den gewünschten Ergebnissen auswählen und so seine Anwendung individuell anpassen. Innerhalb eines LLM kann die Leistung weiter verbessert werden, indem Benutzern die Möglichkeit gegeben wird, bestimmte Unter-LLMs auszuwählen (z. B. basierend auf Suchtyp oder Kategorie). Das Hinzufügen einer Relevanzbewertung zu jedem Element in Ihrer Ausgabe kann auch zur Feinabstimmung Ihres Systems beitragen.

6. Wie kann die Geschwindigkeit der Vektorsuche um mehrere Größenordnungen erhöht werden?

In LLM reduziert die Verwendung von Einbettungen variabler Länge die Größe der Einbettungen erheblich. Dadurch wird die Suche nach Backend-Einbettungen beschleunigt, die denen in der Frontend-Eingabeaufforderung ähneln. Möglicherweise ist jedoch ein anderer Datenbanktyp erforderlich, beispielsweise Schlüsselwerttabellen. Die Reduzierung der Tokengröße und der Einbettungstabelle ist eine weitere Lösung: In einem Billionen-Token-System werden 95 % der Token niemals extrahiert, um eine Eingabeaufforderung zu beantworten. Sie sind nur Lärm, also werdet ihr sie los. Die Verwendung von Kontexttokens (siehe Frage 4) ist eine weitere Möglichkeit, Informationen kompakter zu speichern. Schließlich wird die Suche nach dem ungefähren nächsten Nachbarn (ANN) für die komprimierten Einbettungen verwendet. Die probabilistische Version (pANN) kann viel schneller laufen, siehe Abbildung unten. Verwenden Sie abschließend einen Caching-Mechanismus, um die am häufigsten aufgerufenen Einbettungen oder Abfragen zu speichern und so eine bessere Echtzeitleistung zu erzielen.

七个很酷的GenAI & LLM技术性面试问题

Probabilistic Approximate Nearest Neighbor Search (pANN)

Erfahrungsgemäß führt eine Reduzierung der Größe des Trainingssatzes um 50 % zu besseren Ergebnissen und der Überanpassungseffekt wird stark reduziert. Im LLM ist es besser, ein paar gute Eingabequellen auszuwählen, als das gesamte Internet zu durchsuchen. Wenn für jede Kategorie der obersten Ebene ein dedizierter LLM anstelle einer Einheitsgröße vorhanden ist, wird die Anzahl der Einbettungen weiter reduziert: Jeder Tipp zielt auf einen bestimmten Unter-LLM und nicht auf die gesamte Datenbank ab.

7. Was ist die ideale Verlustfunktion, um die besten Ergebnisse mit Ihrem Modell zu erzielen?

Die beste Lösung besteht darin, die Modellbewertungsmetrik als Verlustfunktion zu verwenden. Der Grund dafür, dass dies selten geschieht, liegt darin, dass Sie eine Verlustfunktion benötigen, die jedes Mal, wenn ein Neuron im neuronalen Netzwerk aktiviert wird, sehr schnell aktualisiert werden kann. Im Zusammenhang mit neuronalen Netzen besteht eine andere Lösung darin, die Bewertungsmetrik nach jeder Epoche zu berechnen und bei der epochengenerierten Lösung mit dem besten Bewertungsergebnis zu bleiben, anstatt bei der epochengenerierten Lösung mit dem geringsten Verlust.

Ich arbeite derzeit an einem System, bei dem die Bewertungsmetrik und die Verlustfunktion gleich sind. Nicht auf neuronalen Netzen basierend. Ursprünglich war meine Bewertungsmetrik die multivariate Kolmogorov-Smirnov-Distanz (KS). Aber ohne viele Berechnungen ist es äußerst schwierig, atomare Updates für KS mit großen Datenmengen durchzuführen. Dies macht KS als Verlustfunktion ungeeignet, da Milliarden von atomaren Updates erforderlich wären. Durch die Änderung der kumulativen Verteilungsfunktion in eine Wahrscheinlichkeitsdichtefunktion mit Millionen von Klassen konnte ich jedoch eine gute Bewertungsmetrik erstellen, die auch als Verlustfunktion funktioniert.

Originaltitel: 7 Cool Technical GenAI & LLM Job Interview Questions, Autor: Vincent Granville

Link: https://www.datasciencecentral.com/7-cool-technical-genai-llm-job-interview-questions/.

Um mehr über AIGC zu erfahren, besuchen Sie bitte:

51CTO AI.x Community

https://www.51cto.com/aigc/

Das obige ist der detaillierte Inhalt vonSieben coole technische Interviewfragen für GenAI und LLM. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn