OpenAI o1 o1-Modelle denken, bevor sie antworten, und sind in der Lage, lange interne Gedankenketten zu generieren, bevor sie dem Benutzer antworten. o1-Modelle zeichnen sich durch wissenschaftliches Denken aus: Sie rangieren im 89. Perzentil bei Competitive Programming Problems (Codeforces), gehören zu den 500 besten Studenten in den USA bei der Amerikanischen Mathematik-Olympiade (AIME), gehören zu den 500 besten Studenten in den USA und übertreffen die Genauigkeit eines menschlichen Doktors bei Benchmark-Tests für Physik, Biologie und Chemie. Qualifikationswettbewerben, gehören zu den 500 besten Studenten in den Vereinigten Staaten und übertreffen bei Benchmark-Tests (GPQA) für Physik-, Biologie- und Chemieprobleme die Genauigkeit eines menschlichen Doktors. o1-Modelle haben auch ein hohes Maß an wissenschaftlichem Denken bewiesen.
In der API werden zwei Inferenzmodelle bereitgestellt:
1. o1-vorschau
Eine frühe Vorschau auf unser o1-Modell, mit dem sich schwierige Probleme mit Hilfe eines breiten Spektrums an gesundem Menschenverstand lösen lassen.
2. o1-mini
o1: eine schnellere und billigere Version von o1, die besonders gut in den Bereichen Programmierung, Mathematik und Naturwissenschaften ist, ohne dass ein umfangreiches Allgemeinwissen erforderlich ist.
Das o1-Modell liefert signifikante Rückschlüsse auf die vorankommenAber sie Nicht als Ersatz für GPT-4o in allen Anwendungsfällen gedacht.
Für Anwendungen, die Bildeingaben, Funktionsaufrufe oder gleichbleibend schnelle Antwortzeiten erfordern, sind die Modelle GPT-4o und GPT-4o mini immer noch die richtige Wahl. Wenn Sie jedoch Anwendungen entwickeln möchten, die tiefe Inferenzen erfordern und längere Antwortzeiten verkraften können, ist das Modell o1 eine ausgezeichnete Wahl. Wir sind gespannt, was Sie damit entwickeln!
🧪 o1 Modelle befinden sich derzeit in der Testphase
o1 Das Modell befindet sich derzeit in Testphasemit eingeschränkter Funktionalität. Der Zugang ist beschränkt auf Stufe 5 Die Entwickler im hier sind Überprüfen Sie Ihren Verbrauch und haben Sie eine niedrige Tarifgrenze. Wir arbeiten daran, weitere Funktionen hinzuzufügen, indem wir Tempolimitund wird in den kommenden Wochen den Zugang zu weiteren Entwicklern erweitern!
Schnellstart
o1-vorschau
im Gesang antworten o1-mini
Alle können über die Website Chatvervollständigungen Verwendung des Endpunkts.
von openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="o1-preview", messages=[ { "role": "user", "content": "Schreibe ein Bash-Skript, das die Matrix '[1,2] formatiert, "content": "Schreibe ein Bash-Skript, das eine Matrix als String des Formats '[1,2],[3,4],[5,6]' darstellt und die transponierte Matrix im gleichen Format ausgibt." } ] ) print(response.choices[0].message.content)
Je nachdem, wie viel Denkarbeit das Modell zur Lösung des Problems benötigt, können diese Anfragen zwischen einigen Sekunden und einigen Minuten dauern.
Beta-Beschränkungen
In der Beta-Version sind viele der API-Parameter für den Chat-Abschluss noch nicht verfügbar. Die bemerkenswertesten davon sind:
- modal (Informatik, Linguistik): Nur Text wird unterstützt, keine Bilder.
- Nachrichtentyp: Es werden nur Benutzer- und Assistentenmeldungen unterstützt, keine Systemmeldungen.
- Streaming: Nicht unterstützt.
- ArtefaktTools, Funktionsaufrufe und Antwortformatparameter werden nicht unterstützt.
- Logprobs: Nicht unterstützt.
- der Rest:: `
Temperatur
`, `top_p
` und `n
Festgelegt auf `1
`, und `präsenz_strafe
` und `frequenz_strafe
Festgelegt auf `0
`. - Assistenten und ChargenDiese Modelle unterstützen weder die Assistenten-API noch die Batch-API.
Mit dem Auslaufen der Beta-Phase wird die Unterstützung für einige dieser Parameter hinzugefügt werden. o1 Künftige Modelle der Serie werden Funktionen wie Multimodalität und Werkzeugnutzung enthalten.
Wie die Argumentation funktioniert
Das o1-Modell führt ein Begründungsmünzen. Diese Modelle verwenden Inferenz Token Das Modell "denkt" nach, schlüsselt das Verständnis des Hinweises auf und erwägt mehrere Möglichkeiten, eine Antwort zu geben. Nach der Generierung von Argumentations-Token generiert das Modell Antworten als sichtbare Vervollständigungs-Token und verwirft Argumentations-Token aus ihrem Kontext.
Unten sehen Sie ein Beispiel für einen mehrstufigen Dialog zwischen einem Benutzer und einem Assistenten. Die Eingabe- und Ausgabe-Token für jeden Schritt werden beibehalten, während die Inferenz-Token verworfen werden.
Obwohl Inferenz-Token nicht über die API angezeigt werden können, belegen sie dennoch den Kontextfensterbereich des Modells und werden als Ausgabe-Token Anklagen.
Kontextfenster verwalten
Die Modelle o1-preview und o1-mini bieten ein Kontextfenster von 128.000 Token. Jedes Mal, wenn Inhalte generiert werden, gibt es eine Obergrenze für die maximale Anzahl der ausgegebenen Token - dies umfasst sowohl unsichtbare Inferenz-Token als auch sichtbare Generierungs-Token. die Obergrenze für die ausgegebenen Token lautet wie folgt:
- o1-Preview: bis zu 32.768 Token
- o1-mini: bis zu 65.536 Token
Bei der Generierung von Inhalten ist darauf zu achten, dass im Kontextfenster genügend Platz für Inferenz-Token vorhanden ist. Je nach Komplexität des Problems kann das Modell zwischen einigen Hundert und Zehntausenden von Schlussfolgerungstoken generieren. Die genaue Anzahl der verwendeten Schlussfolgerungstoken kann in der Verwendungsobjekt für das Antwortobjekt der Chaterzeugung den Nagel auf den Kopf treffen abschluss_tokens_details
Ansicht:
Verwendung: { total_tokens: 1000, prompt_tokens: 400, completion_tokens: 600, completion_tokens_details: { reasoning_tokens: 500 } }
Kosten kontrollieren
Um die Kosten für die o1-Modellfamilie zu verwalten, können Sie die max_completion_tokens
begrenzt die Gesamtzahl der vom Modell generierten Token (sowohl Inferenz- als auch Generierungstoken).
In dem vorherigen Modell wurde `max_tokens
Der Parameter ` steuert die Anzahl der generierten Token und die Anzahl der für den Benutzer sichtbaren Token, die immer gleich sind. In der o1-Familie kann jedoch die Gesamtzahl der erzeugten Zeichen die Anzahl der sichtbaren Zeichen übersteigen, da interne Argumentationszeichen vorhanden sind.
Da sich einige Anwendungen auf `max_tokens
In Übereinstimmung mit der Anzahl der von der API erhaltenen Token führt die o1-Serie `max_completion_tokens
Diese explizite Wahl stellt sicher, dass bestehende Anwendungen nicht unterbrochen werden, wenn neue Modelle verwendet werden. Bei allen bisherigen Modellen wurde `max_tokens
Der Parameter ` behält seine ursprüngliche Funktion bei.
Raum für Überlegungen lassen
Wenn die generierten Token das Limit des Kontextfensters erreichen oder wenn Sie die `max_completion_tokens
Wert, erhalten Sie `Ziel_Grund
Setze auf `Länge
`s Chat-Erzeugungsantwort. Dies kann geschehen, bevor sichtbare Token generiert werden, d. h. Sie können für Eingabe- und Argumentations-Token bezahlen und erhalten keine sichtbare Antwort.
Um dies zu verhindern, stellen Sie sicher, dass Sie genügend Platz im Kontextfenster lassen, oder setzen Sie die `max_completion_tokens
OpenAI empfiehlt, mindestens 25.000 Token für Inferenz und Ausgabe zu reservieren, wenn Sie mit der Verwendung dieser Modelle beginnen. Sobald Sie mit der Anzahl der für Hinweise erforderlichen Inferenz-Token vertraut sind, können Sie diesen Puffer entsprechend anpassen.
Vorschläge für Schlagwörter
Diese Modelle erbringen die besten Leistungen, wenn sie klare und prägnante Hinweise verwenden. Einige Techniken der Cue-Engineering (wie z. B. "few-shot cues" oder das Modell "Schritt für Schritt denken" lassen) verbessern die Leistung nicht und können manchmal sogar kontraproduktiv sein. Hier sind einige bewährte Verfahren:
- Halten Sie die Aufforderungen einfach und klar: Diese Modelle sind gut darin, kurze, klare Anweisungen zu verstehen und darauf zu reagieren, ohne dass man ihnen zu viele Anweisungen geben muss.
- Vermeiden Sie Kettenreaktionen: Da diese Modelle intern denken, ist es nicht notwendig, sie anzuleiten, "Schritt für Schritt zu denken" oder "Ihre Überlegungen zu erklären".
- Verwenden Sie Trennzeichen, um die Übersichtlichkeit zu verbessern: Die Verwendung von Trennzeichen wie dreifachen Anführungszeichen, XML-Tags oder Abschnittsüberschriften zur eindeutigen Kennzeichnung der verschiedenen Teile der Eingabe hilft dem Modell, jeden Teil richtig zu verstehen.
- Bei der Suche nach einer verbesserten Generation (RAG) in Begrenzung des zusätzlichen Kontexts:** Wenn Sie zusätzlichen Kontext oder Dokumentation bereitstellen, fügen Sie nur die wichtigsten Informationen ein, um die Antworten des Modells nicht zu verkomplizieren.
Beispiele für Eingabeaufforderungen
Kodierung (Refactoring)
Die OpenAI o1-Modellfamilie ist in der Lage, komplexe Algorithmen zu implementieren und Code zu generieren. Die folgenden Hinweise verlangen von o1 ein Refactoring eines Reagieren Sie Bauteil.
von openai importieren OpenAI client = OpenAI() prompt = """ Richtlinie: - Ändern Sie die untenstehende React-Komponente, um den Text von Sachbüchern rot zu machen. - Geben Sie nur den Code in der Antwort zurück und fügen Sie keine zusätzlichen Formatierungen wie Markdown-Codeblöcke ein. - Verwenden Sie für die Formatierung eine Einrückung von vier Leerzeichen und nicht mehr als 80 Codezeilen. const books = [ { Titel: 'Dune', Kategorie: 'Belletristik', id: 1 }, ]. export default function BookList() { const listItems = books.map(book =>
- {listItems}
Code (Planung)
Die OpenAI o1-Modellfamilie ist ebenfalls in der Lage, mehrstufige Pläne zu erstellen. In diesem Beispiel wird o1 aufgefordert, die Dateisystemstruktur einer vollständigen Lösung zu erstellen und den Python-Code zur Implementierung der erforderlichen Anwendungsfälle bereitzustellen.
von openai importieren OpenAI client = OpenAI() prompt = """ Ich möchte eine Python-Anwendung erstellen, die eine Benutzerfrage annimmt und die entsprechende Antwort in einer Datenbank nachschlägt. Wenn eine enge Übereinstimmung gefunden wird, wird die passende Antwort zurückgegeben. Wenn keine Übereinstimmung gefunden wird, soll der Benutzer nach einer Antwort gefragt und das Frage/Antwort-Paar in der Datenbank gespeichert werden. Erstellen Sie zu diesem Zweck einen Plan für eine Verzeichnisstruktur und geben Sie anschließend den vollständigen Inhalt jeder Datei zurück. Begründen Sie Ihre Überlegungen nur am Anfang und am Ende des Codes, nicht in der Mitte des Codes. """ response = client.chat.completions.create( model="o1-preview", messages=[ { "Rolle": "Benutzer", "Inhalt": [ "content": [ { "type": "text", "text": prompt "text": prompt }, } }, [ "content": [ "type": "text", "text": prompt } ] ) print(antwort.auswahlen[0].nachricht.inhalt)
MINT-Forschung
Die OpenAI o1-Modellfamilie schneidet in der MINT-Forschung gut ab. Prompts, die zur Unterstützung grundlegender Forschungsaufgaben verwendet werden, zeigen in der Regel gute Ergebnisse.
von openai import OpenAI client = OpenAI() prompt = """ Welche drei Verbindungen sollten wir untersuchen, um die Forschung nach neuen Antibiotika voranzutreiben? Warum sollten wir sie in Betracht ziehen? """ response = client.chat.completions.create( model="o1-preview", messages=[ { "Rolle": "Benutzer", "Inhalt": Eingabeaufforderung "inhalt": prompt } ] ) print(response.choices[0].message.content)
Anwendungsfallbeispiel
Einige Beispiele für den Einsatz von o1 in der Praxis finden Sie in der das Kochbuch Gefunden in.