Guide de l'utilisateur d'OPENAI o1 (modèle d'inférence), Suggestions pour l'écriture de mots-guides
OpenAI o1 Les modèles de la série o1 sont de nouveaux modèles de langage de grande taille formés par apprentissage par renforcement et conçus pour effectuer des raisonnements complexes. Les modèles o1 réfléchissent avant de répondre et sont capables de générer de longues chaînes de pensée internes avant de répondre à l'utilisateur. Les modèles o1 excellent dans le raisonnement scientifique, se classant dans le 89e percentile dans les problèmes de programmation compétitifs (Codeforces), se classant parmi les 500 meilleurs étudiants aux États-Unis dans les qualifications des Olympiades américaines de mathématiques (AIME), se classant parmi les 500 meilleurs étudiants aux États-Unis, et dépassant la précision du niveau d'un doctorat humain dans les tests de référence (GPQA) pour les problèmes de physique, de biologie et de chimie. Ils se sont classés parmi les 500 meilleurs étudiants des États-Unis et ont dépassé le niveau de précision d'un doctorat humain lors de tests de référence (GPQA) pour des problèmes de physique, de biologie et de chimie.
Deux modèles d'inférence sont fournis dans l'API :
1. o1-preview
Le modèle o1 : Un premier aperçu de notre modèle o1, conçu pour raisonner sur des problèmes difficiles en utilisant un large éventail de connaissances communes sur le monde.
2. o1-mini
: une version plus rapide et moins chère d'o1 qui est particulièrement douée pour les tâches de codage, de mathématiques et de sciences sans nécessiter de connaissances générales approfondies.
Le modèle o1 fournit une inférence significative dans le domaine de la santé. progresserMais ils N'est pas destiné à remplacer le GPT-4o dans tous les cas d'utilisation.
Pour les applications qui nécessitent des entrées d'images, des appels de fonctions ou des temps de réponse toujours rapides, les modèles GPT-4o et GPT-4o mini restent le bon choix. Cependant, si vous cherchez à développer des applications qui nécessitent une inférence profonde et qui peuvent supporter des temps de réponse plus longs, le modèle o1 peut être un excellent choix. Nous sommes impatients de voir ce que vous allez créer avec eux !
🧪 o1 Les modèles sont actuellement en phase de test
o1 Le modèle est actuellement en phase de testavec des fonctionnalités limitées. L'accès est limité à Niveau 5 Les développeurs de la Voici Vérifiez votre niveau d'utilisation et bénéficiez d'une limite tarifaire basse. Nous travaillons à l'ajout de nouvelles fonctionnalités, à l'ajout de limite de vitesseet d'élargir l'accès à d'autres développeurs dans les semaines à venir !
Démarrage rapide
o1-preview
répondre en chantant o1-mini
Tous ces documents sont accessibles par le biais de la page d'accueil du site Web de la Commission européenne. Achèvements du chat Utilisation du point final.
from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="o1-preview", messages=[ { "role": "user", "content": "编写一个 Bash 脚本,将矩阵表示为格式 '[1,2],[3,4],[5,6]' 的字符串,并以相同的格式打印转置矩阵。" } ] ) print(response.choices[0].message.content)
Selon le degré de raisonnement requis par le modèle pour résoudre le problème, ces demandes peuvent prendre de quelques secondes à quelques minutes.
Restrictions de la version bêta
Dans la version bêta, de nombreux paramètres de l'API d'achèvement du chat ne sont pas encore disponibles. Les plus importants sont les suivants :
- modal (informatique, linguistique)Les images ne sont pas prises en charge, seul le texte l'est.
- Type de messageLes messages de l'utilisateur et de l'assistant sont les seuls à être pris en charge, mais pas les messages du système.
- streaming: Non pris en charge.
- artefactLes outils, les appels de fonction et les paramètres de format de réponse ne sont pas pris en charge.
- Logprobs: Non pris en charge.
- le reste: : `
temperature
`, `top_p
` et `n
` Fixé à `1
`, et `presence_penalty
` et `frequency_penalty
` Fixé à `0
`. - Assistants et lotsCes modèles ne prennent pas en charge l'API des assistants ou l'API des lots.
Au fur et à mesure que nous sortons de la version bêta, la prise en charge de certains de ces paramètres sera ajoutée. o1 Les futurs modèles de la série incluront des caractéristiques telles que la multimodalité et l'utilisation d'outils.
Comment fonctionne le raisonnement
Le modèle o1 introduit Jetons de raisonnement. Ces modèles utilisent l'inférence jetons Le modèle "réfléchit", décompose la compréhension de l'indice et envisage plusieurs façons de générer une réponse. Après avoir généré des jetons de raisonnement, le modèle génère des réponses sous forme de jetons d'achèvement visibles et écarte les jetons de raisonnement de leur contexte.
Voici un exemple de dialogue en plusieurs étapes entre un utilisateur et un assistant. Les jetons d'entrée et de sortie de chaque étape sont conservés, tandis que les jetons d'inférence sont éliminés.

Les jetons d'inférence ne sont pas sauvegardés dans le contexte
Bien que les jetons d'inférence ne puissent pas être affichés via l'API, ils occupent toujours l'espace de la fenêtre contextuelle du modèle et sont utilisés en tant qu'éléments d'inférence. jetons de sortie Charges.
Gérer la fenêtre contextuelle
Les modèles o1-preview et o1-mini offrent une fenêtre contextuelle de 128 000 tokens. Chaque fois qu'un contenu est généré, une limite supérieure est imposée au nombre maximum de tokens de sortie - cela inclut à la fois les tokens d'inférence invisibles et les tokens de génération visibles. la limite maximale de tokens de sortie est la suivante :
- o1-preview : jusqu'à 32 768 jetons
- o1-mini : jusqu'à 65 536 jetons
Lors de la génération du contenu, il est important de s'assurer qu'il y a suffisamment de place pour les jetons d'inférence dans la fenêtre de contexte. Selon la complexité du problème, le modèle peut générer de quelques centaines à des dizaines de milliers de jetons d'inférence. Le nombre exact de jetons d'inférence utilisés est indiqué dans la section Objet d'utilisation pour l'objet de réponse de génération de chat a fait mouche completion_tokens_details
Vue :
usage: { total_tokens: 1000, prompt_tokens: 400, completion_tokens: 600, completion_tokens_details: { reasoning_tokens: 500 } }
Maîtriser les coûts
Pour gérer le coût des modèles de la famille o1, vous pouvez utiliser la fonction max_completion_tokens
limite le nombre total de jetons générés par le modèle (jetons d'inférence et de génération).
Dans le modèle précédent, `max_tokens
Le paramètre ` contrôle le nombre de jetons générés et le nombre de jetons visibles par l'utilisateur, qui sont toujours égaux. Cependant, dans la famille o1, le nombre total de jetons générés peut dépasser le nombre de jetons visibles en raison de la présence de jetons de raisonnement interne.
Étant donné que certaines applications peuvent s'appuyer sur `max_tokens
` En fonction du nombre de jetons reçus de l'API, la série o1 introduit `max_completion_tokens
Ce choix explicite garantit que les applications existantes ne seront pas interrompues lorsque de nouveaux modèles seront utilisés. Pour tous les modèles précédents, `max_tokens
Le paramètre ` conserve sa fonction initiale.
Laisser une place au raisonnement
Si les jetons générés atteignent la limite de la fenêtre contextuelle ou si vous avez défini la valeur `max_completion_tokens
`, vous recevrez `finish_reason
` Set to `length
La réponse de la génération du chat. Cela peut se produire avant qu'aucun jeton visible ne soit généré, ce qui signifie que vous pouvez payer pour des jetons d'entrée et de raisonnement sans recevoir de réponse visible.
Pour éviter cela, veillez à laisser suffisamment d'espace dans la fenêtre contextuelle, ou définissez l'option `max_completion_tokens
OpenAI recommande de mettre de côté au moins 25 000 tokens pour l'inférence et la sortie lorsque vous commencez à utiliser ces modèles. Une fois que vous êtes familiarisé avec le nombre de jetons d'inférence nécessaires pour les indices, vous pouvez ajuster ce tampon en conséquence.
Suggestions de mots-clés
Ces modèles sont plus performants lorsqu'ils utilisent des indices clairs et concis. Certaines techniques d'ingénierie des signaux (telles que les signaux peu nombreux ou le fait de laisser le modèle "penser étape par étape") n'améliorent pas les performances et peuvent parfois être contre-productives. Voici quelques bonnes pratiques :
- Veillez à ce que les questions soient simples et claires : Ces modèles sont capables de comprendre et de répondre à des instructions courtes et claires sans avoir à fournir trop de conseils.
- Éviter les indices de pensée en chaîne : Comme ces modèles raisonnent de manière interne, il n'est pas nécessaire de les guider pour qu'ils "réfléchissent étape par étape" ou qu'ils "expliquent leur raisonnement".
- Utilisez des séparateurs pour améliorer la clarté : L'utilisation de séparateurs tels que les triples guillemets, les balises XML ou les titres de section pour étiqueter clairement les différentes parties de l'entrée aide le modèle à comprendre correctement chaque partie.
- Dans la recherche d'une meilleure génération (RAG) dans Limiter le contexte supplémentaire:** Lorsque vous fournissez un contexte ou une documentation supplémentaire, n'incluez que les informations les plus pertinentes afin d'éviter de compliquer à l'excès les réponses du modèle.


Exemples de messages-guides
Codage (refactorisation)
La famille de modèles OpenAI o1 est capable d'implémenter des algorithmes complexes et de générer du code. Les conseils suivants demandent à o1 de remanier un modèle Réagir Composant.
from openai import OpenAI client = OpenAI() prompt = """ 指令: - 对下面的 React 组件进行修改,使得非小说类书籍的文字变为红色。 - 回复中只返回代码,不要包含任何额外的格式,如 markdown 代码块。 - 在格式上,使用四个空格缩进,且代码行不超过 80 列。 const books = [ { title: '沙丘', category: 'fiction', id: 1 }, { title: '科学怪人', category: 'fiction', id: 2 }, { title: '魔球', category: 'nonfiction', id: 3 }, ]; export default function BookList() { const listItems = books.map(book => <li> {book.title} </li> ); return ( <ul>{listItems}</ul> ); } """ response = client.chat.completions.create( model="o1-mini", messages=[ { "role": "user", "content": [ { "type": "text", "text": prompt }, ], } ] ) print(response.choices[0].message.content)
Code (planification)
La famille de modèles OpenAI o1 est également capable de créer des plans en plusieurs étapes. Cet exemple demande à o1 de créer la structure du système de fichiers d'une solution complète et de fournir le code Python pour mettre en œuvre les cas d'utilisation requis.
from openai import OpenAI client = OpenAI() prompt = """ 我想构建一个 Python 应用程序,接收用户问题并在数据库中查找对应答案。如果找到相近匹配,就返回匹配的答案。如果没有匹配,要求用户提供答案,并将问题/答案对存储到数据库中。为此创建一个目录结构的计划,然后返回每个文件的完整内容。仅在代码开始和结束时提供你的推理,而不是在代码中间。 """ response = client.chat.completions.create( model="o1-preview", messages=[ { "role": "user", "content": [ { "type": "text", "text": prompt }, ], } ] ) print(response.choices[0].message.content)
Recherche STEM
La famille de modèles OpenAI o1 donne de bons résultats dans la recherche STEM. Les messages-guides utilisés pour soutenir les tâches de recherche fondamentale donnent généralement de bons résultats.
from openai import OpenAI client = OpenAI() prompt = """ 我们应该考虑研究哪三种化合物以推进新抗生素的研究?为什么要考虑它们? """ response = client.chat.completions.create( model="o1-preview", messages=[ { "role": "user", "content": prompt } ] ) print(response.choices[0].message.content)
Exemple de cas d'utilisation
Des exemples de cas d'utilisation de o1 dans le monde réel peuvent être trouvés dans la section le livre de cuisine Trouvé dans.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...