NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割

作为一名自 LLM 首次推出以来就一直使用的数据科学家,当我听说 o1 时,我以为这是一个笑话。当它被证明是一个真实的模型时,我以为我误解了什么。但在阅读完文档后,我知道了它是什么——一种赚取更多钱的营销策略。

这听起来可能很有争议,但请耐心听我说——让我们深入研究技术细节,分析 o1 的工作原理以及为什么你不应该为它付费。

1、o1 的工作原理

众所周知,OpenAI 并不像往常一样开放,几乎没有透露有关 o1 工作原理的技术细节。从他们的官方发布页面,我们得到的所有信息是:

我们训练这些模型花更多时间思考问题,然后再做出反应,就像人一样。通过训练,他们学会改进他们的思维过程,尝试不同的策略,并认识到自己的错误。
……
……对于复杂的推理任务来说,这是一个重大的进步,代表了人工智能能力的新水平。鉴于此,我们将计数器重置为 1,并将该系列命名为 OpenAI o1。

让我们写下主要结论:

  • 与之前的模型不同,o1 在写出最终答案之前会尝试“思考”。
  • 思考过程基于“思维链”技术——它一步一步思考,尝试不同的方法,识别错误
  • 只有当最终结果准备好并有效时,模型才会将其发送给用户。

2、为什么o1是一个骗局

首先,看看下面的照片:

Source
Source

这只是两个例子。基本上,人们试图向 o1 询问它自己的 CoT(思想链)——他们只是想知道它是如何工作的。

这引起了怀疑。为什么 OpenAI 不仅隐藏了有关 CoT 的技术细节,还禁止人们尝试了解它的工作原理?

答案很简单,LLM 爱好者都知道——这种技术已经使用多年了。它不是 OpenAI 团队引入的“新方法”;它只是一种复制粘贴 + 营销策略。

3、CoT 的工作原理

如果你可以访问 OpenAI API(或任何其他 LLM 模型),可以在不到 30 行代码中运行自己的 CoT。如果你使用像 LangChain 这样的库,那就更容易了。但让我们从头开始实现它,以获得 OpenAI 高级研究人员的资格。

首先,安装openai 库:

pip install openai

之后,创建一个包含以下内容的.py 文件并运行它:

from openai import OpenAI
import json

client = OpenAI()
prompt = """
You are an AI agent that thinks before answering.
Answer in the JSON format. Respond only with the json, no other text.
Example:
{
  "step1": "To solve this problem, i need to do this...",
  "step2": "Based on results from step1, i need to do this...",
  ...
  "stepn": "We can get final result by...",
  "result": "Final result is..."
}
Your question is: write python code to get the first 10 prime numbers.
"""
completion = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {
            "role": "user",
            "content": prompt
        }
    ]
)
result_json_str = completion.choices[0].message.content
result_json = json.loads(result_json_str.replace("```json", "").replace("```", ""))
print(result_json)

结果为以下 JSON:

{
    "step1": "To solve this problem, I need to define a function that checks if a number is prime.",
    "step2": "I will iterate through numbers starting from 2 and check each one for primality.",
    "step3": "I will keep track of the found prime numbers in a list until I have 10 primes.",
    "step4": "I will return the list of the first 10 prime numbers.",
    "result": "The Python code is:
        python
        def is_prime(num):
            if num <= 1:
                return False
            for i in range(2, int(num**0.5) + 1):
                if num % i == 0:
                    return False
            return True
        primes = []
        num = 2
        while len(primes) < 10:
            if is_prime(num):
                primes.append(num)
            num += 1
        print(primes)
    "
}

使用这个 JSON,你可以从“result”字段获取最终结果,并从“step1”、“step2”等获取中间步骤。剩下要做的就是为它创建一个漂亮的前端,然后,哇哦——您就有了自己的“o1”。现在您可以自豪地说“不用为 o1 付钱——我家里就有它”。

一些技术细节:当 LLM 生成新 token(基本上是下一个单词)时,它会使用所有先前的文本作为输入。这意味着当 ChatGPT 生成推理步骤时,它会看到它所采取的每个先前步骤,因此我们可以得到逐步推理。

如果你想深入研究并超越 CoT 限制,我建议你研究 LLM 代理和 ReAct——这些方法允许你创建基于 LLM 的代理,它们不仅可以在响应之前思考,还可以做你赋予它们的自由的任何事情——使用谷歌、获取天气、阅读文件,以及想要的任何其他事情。

4、为什么 o1 可能不是骗局

本文中我没有提到的一件事让 o1 看起来不那么像骗局,那就是 OpenAI 使用强化学习训练 o1 模型,不仅是为了最终结果,也是为了中间步骤。

简而言之,当我们将 CoT 与简单的 GPT4 一起使用时,我们要求它思考——这是它以前没有做过的。但是当我们使用 o1 时,模型从一开始就知道如何思考——它已经接受过这样的训练。这意味着 o1 的性能可能比我们的“家用 o1”更好。但它更便宜吗?它给你同样多的自由吗?谁知道呢?

5、结束语

在本文中,我们分析了新的 OpenAI 模型,深入研究了它的缺点,并学习了一些用 Python 编写的 AI 代码。

作为最后的结论,我只想说一件事:三思而后行。像 o1 一样,你可以通过仔细分析你掌握的信息得出更好的结论。如果你看到某家大公司发布了一项新功能,请不要急于付费;对一切都持保留态度。


原文链接:Why OpenAI’s o1 Model Is A Scam

BimAnt翻译整理,转载请标明出处