问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

o1的提示词:简单才是王道!

创作时间:
作者:
@小白创作中心

o1的提示词:简单才是王道!

引用
腾讯
1.
https://new.qq.com/rain/a/20240923A066ET00

OpenAI最近推出了全新的推理模型o1,这是一个专注于推理能力的AI模型。与GPT系列模型相比,o1在处理提示词时有着不同的内部机制,因此在使用上也有所区别。本文将详细介绍o1的使用方法,并通过具体示例帮助读者更好地理解和应用o1。

提示词使用指南

o1与GPT系列模型在提示词使用上有显著差异。以下是o1提示词使用的关键要点:

  1. 保持简洁明了:o1擅长理解简短清晰的指令,无需过多指导。
    保持提示词简洁明了: o1擅长理解、响应更简短清晰的指令,无需人工在提示词上的过多指导。

  2. 避免链式思维提示:由于o1内部已执行推理,因此无需提示"一步步思考"或"解释推理过程"。
    避免链式思维提示: 由于o1在模型内部已执行过推理,因此在提示词中无需提示它们"一步步思考"或"解释推理过程"。

  3. 使用分隔符:使用三重引号、XML标签或章节标题等分隔符,使提示词结构化,帮助模型正确解读各部分内容。
    使用分隔符: 使用三重引号、XML标签或章节标题等分隔符, 提示词尽可能结构化,帮助模型正确解读、定位各部分内容。

  4. 限制额外上下文:在提供额外上下文或文档时,只提供最相关的信息,防止模型过度复杂化响应。
    不需要提供过多额外的上下文: 在提供额外上下文或文档时,只提供最相关的信息,防止模型过度复杂化响应提示词内无关的信息。

代码生成示例

o1在代码生成方面表现出色,能够实现更复杂、完整的算法代码。以下是两个具体的代码生成示例:

特定功能:重构React组件

这个示例展示了如何使用o1生成一个React组件,使得非小说类书籍的文本颜色为红色。

from openai import OpenAI
client = OpenAI()
prompt = """
Instructions:
- Given the React component below, change it so that nonfiction books have red
  text.
- Return only the code in your reply
- Do not include any additional formatting, such as markdown code blocks
- For formatting, use four space tabs, and do not allow any lines of code to
  exceed 80 columns
const books = [
  { title: 'Dune', category: 'fiction', id: 1 },
  { title: 'Frankenstein', category: 'fiction', id: 2 },
  { title: 'Moneyball', 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)

多步骤完成系统结构:创建文件系统结构

这个示例展示了如何使用o1构建一个Python应用,该应用能够接收用户问题并在数据库中查找答案。

from openai import OpenAI
client = OpenAI()
prompt = """
I want to build a Python app that takes user questions and looks them up in a
database where they are mapped to answers. If there is close match, it retrieves
the matched answer. If there isn't, it asks the user to provide an answer and
stores the question/answer pair in the database. Make a plan for the directory
structure you'll need, then return each file in full. Only supply your reasoning
at the beginning and end, not throughout the code.
"""
response = client.chat.completions.create(
    model="o1-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": prompt
                },
            ],
        }
    ]
)
print(response.choices[0].message.content)

o1与AGI的未来

o1的核心贡献者Hyung Won Chung在麻省理工的演讲中分享了o1的研发历程和未来展望。研究团队发现,o1在数学推理测试中表现出显著提升的效果,并且开始展现出自我反思和质疑的能力。这种能力的涌现让研究团队相信,AGI(通用人工智能)的实现不再是遥不可及的梦想。

研究团队提出了一种新的训练理念:"不要教,要激励"。他们认为,通过激励而非直接指导的方式训练AI,可以让AI在特定领域超越人类专家的水平。这种训练方式类似于动漫《龙珠》中的"精神与时间之屋",通过高效计算和大量数据叠加,可以实现更高的时间压缩比率。

随着模型规模的不断增加,o1和其他大语言模型开始展现出一些"新能力"。这些能力不是事先设定的,而是在模型训练过程中通过自我学习逐渐显现的。例如,即使在未经特别训练的情况下,模型也能展示出高级的推理和数学解题能力。随着模型规模的增长,这种涌现的能力会自然出现,特别是在面对多样化的任务时。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号