成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你有沒深入想過,什么造成了GPT-4的輸出很隨機?

人工智能 新聞
Google Deepmind 可能早就意識到了這個問題。人們逐漸發現 GPT-4 的生成結果具有較大的不確定性。對于用戶輸入的問題,GPT-4 給出的回答往往是隨機的。

今年,大型語言模型(LLM)成為 AI 領域最受關注的焦點,OpenAI 的 ChatGPT 和 GPT-4 更是爆火出圈。GPT-4 在自然語言理解與生成、邏輯推理、代碼生成等方面性能出色,令人驚艷。

然而,人們逐漸發現 GPT-4 的生成結果具有較大的不確定性。對于用戶輸入的問題,GPT-4 給出的回答往往是隨機的。

我們知道,大模型中有一個 temperature 參數,用于控制生成結果的多樣性和隨機性。temperature 設置為 0 意味著貪婪采樣(greedy sampling),模型的生成結果應該是確定的,而 GPT-4 即使在 temperature=0.0 時,生成的結果依然是隨機的。

在一場圓桌開發者會議上,有人曾直接向 OpenAI 的技術人員詢問過這個問題,得到的回答是這樣的:「老實說,我們也很困惑。我們認為系統中可能存在一些錯誤,或者優化的浮點計算中存在一些不確定性......」

值得注意的是,早在 2021 年就有網友針對 OpenAI Codex 提出過這個疑問。這意味著這種隨機性可能有更深層次的原因。

圖源:https://community.openai.com/t/a-question-on-determinism/8185

現在,一位名為 Sherman Chann 的開發者在個人博客中詳細分析了這個問題,并表示:「GPT-4 生成結果的不確定性是由稀疏 MoE 引起的」。

圖片

Sherman Chann 博客地址:https://152334h.github.io/blog/non-determinism-in-gpt-4/

Sherman Chann 這篇博客受到了 Google DeepMind 最近一篇關于 Soft MoE 的論文《From Sparse to Soft Mixtures of Experts》啟發。


圖片

論文地址:https://arxiv.org/pdf/2308.00951.pdf

在 Soft MoE 論文的 2.2 節中,有這樣一段描述:

在容量限制下,所有稀疏 MoE 都以固定大小的組來路由 token,并強制(或鼓勵)組內平衡。當組內包含來自不同序列或輸入的 token 時,這些 token 通常會相互競爭專家緩沖區中的可用位置。因此,模型在序列級別不再具有確定性,而僅在批次級別(batch-level)具有確定性,因為某些輸入序列可能會影響其他輸入的最終預測。

圖片

此前,有人稱 GPT-4 是一個混合專家模型(MoE)。Sherman Chann 基于此做出了一個假設:

GPT-4 API 用執行批推理(batch inference)的后端來托管。盡管一些隨機性可能是因為其他因素,但 API 中的絕大多數不確定性是由于其稀疏 MoE 架構未能強制執行每個序列的確定性。

也就是說,Sherman Chann 假設:「稀疏 MoE 模型中的批推理是 GPT-4 API 中大多數不確定性的根本原因」。為了驗證這個假設,Sherman Chann 用 GPT-4 編寫了一個代碼腳本:

import os
import json
import tqdm
import openai
from time import sleep
from pathlib import Path

chat_models = ["gpt-4", "gpt-3.5-turbo"]
message_history = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Write a unique, surprising, extremely randomized story with highly unpredictable changes of events."}
]

completion_models = ["text-davinci-003", "text-davinci-001", "davinci-instruct-beta", "davinci"]
prompt = "[System: You are a helpful assistant]\n\nUser: Write a unique, surprising, extremely randomized story with highly unpredictable changes of events.\n\nAI:"

results = []

import time
class TimeIt:
    def __init__(self, name): self.name = name
    def __enter__(self): self.start = time.time()
    def __exit__(self, *args): print(f"{self.name} took {time.time() - self.start} seconds")

C = 30  # number of completions to make per model
N = 128 # max_tokens
# Testing chat models
for model in chat_models:
    sequences = set()
    errors = 0 # although I track errors, at no point were any errors ever emitted
    with TimeIt(model):
        for _ in range(C):
            try:
                completion = openai.ChatCompletion.create(
                    model=model,
                    messages=message_history,
                    max_tokens=N,
                    temperature=0,
                    logit_bias={"100257": -100.0}, # this doesn't really do anything, because chat models don't do <|endoftext|> much
                )
                sequences.add(completion.choices[0].message['content'])
                sleep(1) # cheaply avoid rate limiting
            except Exception as e:
                print('something went wrong for', model, e)
                errors += 1
    print(f"\nModel {model} created {len(sequences)} ({errors=}) unique sequences:")
    print(json.dumps(list(sequences)))
    results.append((len(sequences), model))
# Testing completion models
for model in completion_models:
    sequences = set()
    errors = 0
    with TimeIt(model):
        for _ in range(C):
            try:
                completion = openai.Completion.create(
                    model=model,
                    prompt=prompt,
                    max_tokens=N,
                    temperature=0,
                    logit_bias = {"50256": -100.0}, # prevent EOS
                )
                sequences.add(completion.choices[0].text)
                sleep(1)
            except Exception as e:
                print('something went wrong for', model, e)
                errors += 1
    print(f"\nModel {model} created {len(sequences)} ({errors=}) unique sequences:")
    print(json.dumps(list(sequences)))
    results.append((len(sequences), model))

# Printing table of results
print("\nTable of Results:")
print("Num_Sequences\tModel_Name")
for num_sequences, model_name in results:
    print(f"{num_sequences}\t{model_name}")

當 N=30,max_tokens=128 時,結果如下表所示:

圖片

在 Sherman Chann 注意到 logit_bias 問題之前,還得到了如下結果(max_tokens=256):

圖片

實驗結果表明,GPT-4 的輸出總是不確定的(unique completion 數值很高,表明對于相同的輸入,GPT-4 生成的輸出總是不同的),這幾乎可以證實 GPT-4 存在問題。并且,所有其他不會陷入重復無用循環的模型也存在某種程度的不確定性。這似乎說明不可靠的 GPU 計算也會造成一定程度的隨機性。

Sherman Chann 表示:「如果不確定性是稀疏 MoE 批推理固有的特征,那么這一事實對于任何使用該類模型的研究來說都應該是顯而易見的。Google Deepmind 的研究團隊顯然知道這一點,并且他們認為這個問題很微不足道,以至于只是把它寫成了一句不經意的話放在論文中」。

此外,Sherman Chann 還推測 GPT-3.5-Turbo 可能也使用了 MoE。

網友怎么看

這篇博客發表后,開發者們也開始討論 GPT-4 輸出的不確定問題。有人認為這可能是「多線程并行」造成的:

圖片

也有人表示:「雖然計算是確定的,但是執行計算的多個處理器之間可能存在時鐘頻率偏差」:

圖片

一位支持 Sherman Chann 的假設的開發者說道:「GPT-3.5-Turbo 可能就是 OpenAI 為 GPT-4 構建的小型測試模型」。

圖片

還有開發者分析道:「按照 Soft MoE 論文的說法,稀疏 MoE 不僅引入了不確定性,還可能會使模型的響應質量取決于有多少并發請求正在爭奪專家模塊的分配」。

圖片

對此,你怎么看?

責任編輯:張燕妮 來源: 機器之心
相關推薦

2012-03-10 21:22:57

Lumia

2018-05-23 21:19:44

云計算企業云支出

2013-09-04 09:59:33

擬物化UI設計扁平化

2023-03-20 08:19:23

GPT-4OpenAI

2023-06-19 08:19:50

2009-03-18 10:54:45

職場誠信危機

2025-04-16 09:35:03

2023-07-25 09:23:23

Llama 2GPT-4

2023-04-24 15:41:27

ChatGPT人工智能

2020-10-28 08:18:54

Linux 5.10函數Linux

2025-05-30 07:40:56

2023-12-10 15:24:32

AI圣誕

2023-03-16 19:17:57

2023-03-28 13:01:20

GPT-4開發OpenAI

2023-05-03 20:53:48

2018-10-16 09:45:36

谷歌AI游戲

2024-08-14 08:35:38

sql數據庫OOM 異常

2023-03-16 17:28:59

技術AI

2024-04-30 12:35:10

AI模型

2023-03-28 08:23:38

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 五月婷六月丁香 | 日韩欧美在线播放 | 91看片官网| 日韩视频精品在线 | 精品国产乱码久久久久久图片 | 中文字幕精品一区二区三区精品 | 日本不卡一区二区三区 | 亚洲国产激情 | 365夜爽爽欧美性午夜免费视频 | 国产精品视频久久 | 国产日韩欧美激情 | 成人欧美一区二区三区黑人孕妇 | 日本精品久久 | 2018中文字幕第一页 | 中文字幕亚洲一区二区三区 | 琪琪午夜伦伦电影福利片 | 欧美一级视频免费看 | 91深夜福利视频 | 麻豆精品久久 | 国产欧美二区 | 久久久久网站 | 国产日韩欧美中文 | 综合国产| 欧美高清一级片 | 久久精品91久久久久久再现 | 日一区二区三区 | 超碰在线人人 | 少妇无套高潮一二三区 | 九色.com | 中文字幕亚洲视频 | 91成人精品 | 国产在视频一区二区三区吞精 | 久久精品久久综合 | 中文字幕 国产精品 | 欧美视频在线播放 | 亚洲精品在线免费观看视频 | 亚洲精品片 | 日韩三级在线 | 欧美午夜精品 | 久久国产精品一区二区三区 | 国产精品欧美一区二区三区不卡 |