自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大模型原理:一場通透的剖析之旅

開發(fā) 架構(gòu)
未來幾個月或幾年內(nèi)出現(xiàn)的更大規(guī)模的 LLM 會實現(xiàn)類似于真正智能的東西嗎?我覺得這在 GPT 架構(gòu)下不會發(fā)生,因為它有很多限制,但誰知道呢,也許通過未來的一些創(chuàng)新,我們會實現(xiàn)這一目標(biāo)。?

生成式 AI 太火爆了,可以說無處不在,頻頻刷爆我們的朋友圈。你可能已經(jīng)試用過 ChatGPT 了,甚至已經(jīng)把它當(dāng)作你的智能小助手。

但我知道很多人心里會有個疑問:這些 AI 模型的智能究竟是怎么來的?今天咱們就來聊聊這個話題。我會用大家都能懂的,而不是那些讓人頭大的高等數(shù)學(xué)術(shù)語來解釋生成式文本模型的工作原理,揭開它的神秘面紗,把它變成簡單的計算機(jī)算法。

LLM 的功能

首先,我要澄清人們對 LLM 工作原理的一個重大誤解。大多數(shù)人認(rèn)為這些模型可以回答問題或與你聊天,但實際上它們只能接收你提供的一些文本作為輸入,然后猜測下一個詞(更準(zhǔn)確地說,下一個 Token)是什么。

讓我們從 Token 開始了解 LLM 的奧秘。

Token

Token 是 LLM 理解的文本基本單位。雖然將 Token 看作單詞很方便,但對 LLM 來說,目標(biāo)是盡可能高效地編碼文本,所以在許多情況下,Token 代表的字符序列比整個單詞都要短或長。標(biāo)點符號和空格也被表示為 Token,可能是單獨或與其他字符組合表示。

LLM 使用的所有 Token 統(tǒng)稱為其詞匯,因為它可以用來表示任何可能的文本。字節(jié)對編碼(BPE)算法通常用于 LLM 生成 Token 詞匯。為了讓你對規(guī)模有個大致的了解,GPT-2 語言模型是開源的,可以詳細(xì)研究,其詞匯量為 50,257 個 Token。

LLM 詞匯中的每個 Token 都有一個唯一的標(biāo)識符,通常是一個數(shù)字。LLM 使用分詞器在常規(guī)文本字符串和等效的 Token 數(shù)列表之間進(jìn)行轉(zhuǎn)換。如果你熟悉 Python 并想嘗試 Token,可以安裝 OpenAI 的 tiktoken 包:

$ pip install tiktoken

然后在 Python 提示符中嘗試以下內(nèi)容:

>>> import tiktoken
>>> encoding = tiktoken.encoding_for_model("gpt-2")

>>> encoding.encode("The quick brown fox jumps over the lazy dog.")
[464, 2068, 7586, 21831, 18045, 625, 262, 16931, 3290, 13]

>>> encoding.decode([464, 2068, 7586, 21831, 18045, 625, 262, 16931, 3290, 13])
'The quick brown fox jumps over the lazy dog.'

>>> encoding.decode([464])
'The'
>>> encoding.decode([2068])
' quick'
>>> encoding.decode([13])
'.'

在這個實驗中,你可以看到對于 GPT-2 語言模型,Token 464 代表單詞 “The”,而 Token 2068 代表單詞 “quick”,包括一個前導(dǎo)空格。該模型使用 Token 13 表示句號。

由于 Token 是通過算法確定的,你可能會發(fā)現(xiàn)一些奇怪的現(xiàn)象,比如這三個變體的單詞 “the”,在 GPT-2 中都編碼為不同的 Token:

>>> encoding.encode('The')
[464]
>>> encoding.encode('the')
[1169]
>>> encoding.encode(' the')
[262]

BPE 算法并不總是將整個單詞映射到 Token。事實上,使用頻率較低的單詞不能成為獨立的 Token,必須使用多個 Token 進(jìn)行編碼。以下是一個使用兩個 Token 編碼的單詞示例:

>>> encoding.encode("Payment")
[19197, 434]

>>> encoding.decode([19197])
'Pay'
>>> encoding.decode([434])
'ment'

下一個 Token 預(yù)測

如上所述,給定一些文本,語言模型會預(yù)測下一個緊跟其后的 Token。如果用 Python 偽代碼展示可能會更清晰,下面是如何運行這些模型以獲取下一個 Token 的預(yù)測:

predictions = get_token_predictions(['The',  ' quick',  ' brown',  ' fox'])

該函數(shù)接收一個由用戶提供的提示詞編碼而來的輸入 Token 列表。在這個例子中,我假設(shè)每個單詞都是一個獨立的 Token。為了簡化,我使用每個 Token 的文本表示,但正如你之前看到的,實際上每個 Token 會作為一個數(shù)字傳遞給模型。

這個函數(shù)的返回值是一個數(shù)據(jù)結(jié)構(gòu),它為詞匯表中的每個 Token 分配一個緊隨輸入文本之后的概率。如果基于 GPT-2,這個函數(shù)的返回值將是一個包含 50,257 個浮點數(shù)的列表,每個浮點數(shù)預(yù)測相應(yīng) Token 將會出現(xiàn)的概率。

在上述例子中,你可以想象,一個訓(xùn)練良好的語言模型會給 Token “jumps” 一個較高的概率來緊跟提示詞 “The quick brown fox” 后面。同樣假設(shè)模型訓(xùn)練得當(dāng),你也可以想象,隨機(jī)單詞如 “potato” 繼續(xù)這個短語的概率會非常低,接近于 0。

為了能夠生成合理的預(yù)測,語言模型必須經(jīng)過訓(xùn)練過程。在訓(xùn)練期間,它會被提供大量文本以進(jìn)行學(xué)習(xí)。訓(xùn)練結(jié)束時,模型能夠使用它在訓(xùn)練中見到的所有文本構(gòu)建的數(shù)據(jù)結(jié)構(gòu)來計算給定 Token 序列的下一個 Token 概率。

這與你的預(yù)期有何不同?我希望這現(xiàn)在看起來不再那么神奇了。

生成長文本序列

由于模型只能預(yù)測下一個 Token 是什么,因此生成完整句子的唯一方法是多次循環(huán)運行模型。每次循環(huán)迭代都會生成一個新的 Token,從返回的概率中選擇該 Token。然后將該 Token 添加到下一次循環(huán)迭代的輸入中,直到生成足夠的文本為止。

讓我們看一個更完整的 Python 偽代碼,展示這種方法的工作原理:

def generate_text(prompt, num_tokens, hyperparameters):
    tokens = tokenize(prompt)
    for i in range(num_tokens):
        predictions = get_token_predictions(tokens)
        next_token = select_next_token(predictions, hyperparameters)
        tokens.append(next_token)
    return ''.join(tokens)

generate_text() 函數(shù)將用戶提示作為參數(shù)。這可能是一個問題。

tokenize() 輔助函數(shù)使用 tiktoken 或類似庫將提示轉(zhuǎn)換為等效的 Token 列表。在 for 循環(huán)中,get_token_predictions() 函數(shù)是調(diào)用 AI 模型以獲取下一個 Token 的概率,如前面的例子所示。

select_next_token() 函數(shù)的作用是獲取下一個 Token 的概率(或預(yù)測)并選擇最佳 Token 以繼續(xù)輸入序列。函數(shù)可以只選擇概率最高的 Token,這在機(jī)器學(xué)習(xí)中稱為 “貪心選擇(greedy selection)”。更好的是,它可以使用隨機(jī)數(shù)生成器來選擇一個符合模型返回概率的 Token,從而為生成的文本添加一些變化。這也會使模型在多次給出相同提示時產(chǎn)生不同的響應(yīng)。

為了使 Token 選擇過程更加靈活,LLM 返回的概率可以使用超參數(shù)進(jìn)行修改,這些超參數(shù)作為參數(shù)傳遞給文本生成函數(shù)。超參數(shù)允許你控制 Token 選擇過程的 “貪婪” 程度。

如果你使用過 LLM,你可能熟悉 temperature 超參數(shù)。temperature 越高,Token 概率越平坦,這增加了選擇不太可能的 Token 的機(jī)會,最終使生成的文本看起來更有創(chuàng)造性或更不尋常。你可能還使用了另外兩個超參數(shù),稱為 top_p 和 top_k,它們控制被考慮選擇的最高概率的 Token 數(shù)量。

一旦選定了一個 Token,循環(huán)就會迭代,模型會接收到一個包含新 Token 在末尾的輸入,并生成另一個緊隨其后的 Token。num_tokens 參數(shù)控制循環(huán)運行的迭代次數(shù),換句話說,就是要控制生成多少文本。生成的文本可能(而且經(jīng)常)在句子中間斷開,因為 LLM 沒有句子或段落的概念,它只處理一個 Token。為了防止生成的文本在句子中間斷開,我們可以將 num_tokens 參數(shù)視為最大值而不是確切的 Token 數(shù),在這種情況下,我們可以在生成句號 Token 時停止循環(huán)。

如果你已經(jīng)理解了這些內(nèi)容,那么恭喜你,你現(xiàn)在已經(jīng)大致了解了 LLM 是如何工作的。在下一部分,我會更深入一些,但仍然盡量避免涉及支撐這一技術(shù)的數(shù)學(xué)原理,因為它相當(dāng)復(fù)雜。

模型訓(xùn)練

在不使用數(shù)學(xué)表達(dá)式的情況下討論如何訓(xùn)練模型實際上是很困難的。我將從一個非常簡單的訓(xùn)練方法開始展示。

鑒于任務(wù)是預(yù)測 Token 的后續(xù) Token,一種簡單的訓(xùn)練模型的方法是獲取訓(xùn)練數(shù)據(jù)集中所有連續(xù) Token,并用它們構(gòu)建一個概率表。

讓我們用一個簡短的詞匯表和數(shù)據(jù)集來做這個。假設(shè)模型的詞匯表包含以下五個詞元:

['I', 'you', 'like', 'apples', 'bananas']

為了使這個例子簡短而簡單,我不會將空格或標(biāo)點符號作為 Token。

我們使用一個由三句話組成的訓(xùn)練數(shù)據(jù)集:

  • I like apples
  • I like bananas
  • you like bananas

我們可以構(gòu)建一個 5x5 的表格,并在每個單元格中寫下表示單元格所在行的 Token 被單元格所在列的 Token 跟隨的次數(shù)。以下是根據(jù)數(shù)據(jù)集中的三句話構(gòu)建的表格:

-

I

you

like

apples

bananas

I



2



you



1



like




1

2

apples






bananas






希望這很清楚。數(shù)據(jù)集中有兩次出現(xiàn) “I like”,一次出現(xiàn) “you like”,一次出現(xiàn) “l(fā)ike apples” 和兩次出現(xiàn) “l(fā)ike bananas”。

現(xiàn)在我們知道每對 Token 在訓(xùn)練數(shù)據(jù)集中出現(xiàn)的次數(shù),我們可以計算每個 Token 跟隨另一個 Token 的概率。為此,我們將每行中的數(shù)字轉(zhuǎn)換為概率。例如,表格中間行的 Token “l(fā)ike” 后面跟一次 “apples” 和兩次 “bananas”。這意味著 “l(fā)ike” 后面 33。3% 的概率是 “apples”,剩下的 66。7% 的概率是 “bananas”。

以下是計算出的所有概率的完整表格。空單元格的概率為 0%。

-

I

you

like

apples

bananas

I



100%



you



100%



like




33.3%

66.7%

apples

25%

25%

25%


25%

bananas

25%

25%

25%

25%


對于 “I”、“you” 和 “l(fā)ike” 行來說,計算很簡單,但 “apples” 和 “bananas” 行卻出現(xiàn)了問題,因為它們沒有任何數(shù)據(jù)。由于數(shù)據(jù)集中沒有任何示例顯示這些 Token 后面跟隨其他 Token,這里我們的訓(xùn)練中存在一個 “漏洞”。

為了確保模型在缺乏訓(xùn)練的情況下仍能生成預(yù)測,我決定將 “apples” 和 “bananas” 后續(xù) Token 的概率平均分配到其他四個可能的 Token 上,這顯然可能會產(chǎn)生奇怪的結(jié)果,但至少模型在遇到這些 Token 時不會卡住。

訓(xùn)練數(shù)據(jù)中的漏洞問題實際上非常重要。在真正的 LLM 中,訓(xùn)練數(shù)據(jù)集非常龐大,因此你不會發(fā)現(xiàn)像我上面這個小例子中那樣明顯的訓(xùn)練漏洞。但由于訓(xùn)練數(shù)據(jù)覆蓋率低而導(dǎo)致的小的、更難檢測到的漏洞確實存在,并且相當(dāng)普遍。

在這些訓(xùn)練不足的區(qū)域中,LLM 對 Token 的預(yù)測質(zhì)量可能會很差,但通常是難以察覺的。這是 LLM 有時會產(chǎn)生幻覺的原因之一,這種情況發(fā)生在生成的文本讀起來很流暢但包含事實錯誤或不一致時。

使用上面的概率表,你現(xiàn)在可以想象 get_token_predictions()函數(shù)的實現(xiàn)方式。在 Python 偽代碼中它可能是這樣的:

def get_token_predictions(input_tokens):
    last_token = input_tokens[-1]
    return probabilities_table[last_token]

比想象的更簡單,對吧?這個函數(shù)接受一個由用戶提示詞生成的序列。它取序列中的最后一個 Token,并返回該 Token 在概率表中對應(yīng)的那一行。

例如,如果你用 ['you', 'like'] 作為輸入 Token 調(diào)用這個函數(shù),那么該函數(shù)會返回 “l(fā)ike” 的那一行,“l(fā)ike” 會給予 “apples” 33.3% 的概率來繼續(xù)句子,而 “bananas” 則是另外的 66.7%。根據(jù)這些概率,上面展示的 select_next_token() 函數(shù)每三次應(yīng)該會選擇一次 “apples”。

當(dāng) “apples” 被選為 “you like” 的延續(xù)時,句子 “you like apples” 就會形成。這是一個在訓(xùn)練數(shù)據(jù)集中不存在,但完全合理的原創(chuàng)句子。希望你開始了解這些模型如何通過重用模式和拼接它們在訓(xùn)練中學(xué)到的不同部分來生成看似原創(chuàng)的想法或概念。

上下文窗口

我在上一節(jié)中訓(xùn)練小模型的方法稱為馬爾可夫鏈。

這種技術(shù)的一個問題是,只使用一個 Token(輸入的最后一個)來進(jìn)行預(yù)測。任何出現(xiàn)在最后一個 Token 之前的文本在選擇如何繼續(xù)時都沒有影響,所以我們可以說這種解決方案的上下文窗口等于一個 Token,這個窗口非常小。由于上下文窗口如此小,模型會不斷 “忘記” 思路,從一個詞跳到另一個詞,缺乏一致性。

可以通過構(gòu)建一個更大的概率矩陣來改進(jìn)模型的預(yù)測。為了使用兩個 Token 的上下文窗口,需要增加額外的表行,這些行代表所有可能的兩個 Token 序列。在示例中使用的五個 Token 中,每一對 Token 將在概率表中新增 25 行,加上已經(jīng)存在的 5 個單 Token 行。模型將不得不再次訓(xùn)練,這次不僅看 Token 對,還要看 Token 組的三元組。在每次 get_token_predictions() 函數(shù)的循環(huán)迭代中,當(dāng)可用時,將使用輸入的最后兩個 Token 來查找較大概率表中的對應(yīng)行。

但是,2 個 Token 的上下文窗口仍然不夠。為了生成一致且至少有基本意義的文本,需要更大的上下文窗口。沒有足夠大的上下文,新生成的 Token 不可能與之前 Token 中表達(dá)的概念或想法相關(guān)聯(lián)。那么我們該怎么辦呢?將上下文窗口增加到 3 個 Token 將為概率表增加 125 行,并且質(zhì)量仍然很差。我們需要將上下文窗口擴(kuò)大到多大呢?

OpenAI 開源的 GPT-2 模型使用了一個 1024 個 Token 的上下文窗口。為了使用馬爾可夫鏈實現(xiàn)這么大的上下文窗口,每行概率表都必須代表一個長度在 1 到 1024 個 Token 長的序列。使用上面示例中的 5 個 Token 詞匯表,有 5 的 1024 次方種可能的序列長度為 1024 Token。需要多少表行來表示這些?我在 Python 會話中做了計算(向右滾動以查看完整數(shù)字):

>>>  pow(5,  1024)
55626846462680034577255817933310101605480399511558295763833185422180110870347954896357078975312775514101683493275895275128810854038836502721400309634442970528269449838300058261990253686064590901798039126173562593355209381270166265416453973718012279499214790991212515897719252957621869994522193843748736289511290126272884996414561770466127838448395124802899527144151299810833802858809753719892490239782222290074816037776586657834841586939662825734294051183140794537141608771803070715941051121170285190347786926570042246331102750604036185540464179153763503857127117918822547579033069472418242684328083352174724579376695971173152319349449321466491373527284227385153411689217559966957882267024615430273115634918212890625

這行數(shù)太多了!而這只是表的一部分,因為我們還需要長度為 1023 的序列,1022 的序列,等等,一直到 1,因為我們想確保在輸入中沒有足夠 Token 時也能處理較短的序列。馬爾可夫鏈?zhǔn)怯腥さ?,但它們確實存在一個很大的可擴(kuò)展性問題。

而且一個 1024 Token 的上下文窗口已經(jīng)不再那么大了。隨著 GPT-3,上下文窗口增加到 2048 個 Token,然后在 GPT-3.5 中增加到 4096。GPT-4 開始時為 8192 個 Token,后來增加到 32K,然后又增加到 128K(沒錯,128,000 個 Tokens?。,F(xiàn)在開始出現(xiàn)上下文窗口為 1M 或更大的模型,這允許在做 Token 預(yù)測時有更好的一致性和回憶能力。

總之,馬爾可夫鏈?zhǔn)刮覀円哉_的方式思考文本生成問題,但它們有很大的問題,阻止我們考慮其作為可行的解決方案。

從馬爾可夫鏈到神經(jīng)網(wǎng)絡(luò)

顯然,我們不能再考慮使用概率表的方案,因為合理上下文窗口的概率表會需要龐大的 RAM。我們可以做的是用一個函數(shù)來替代概率表,該函數(shù)返回 Token 概率的近似值,這些概率是通過算法生成的,而不是存儲在一個龐大的表格中。事實上,這正是神經(jīng)網(wǎng)絡(luò)擅長的事情。

神經(jīng)網(wǎng)絡(luò)是一種特殊的函數(shù),它接受一些輸入,對這些輸入進(jìn)行計算,然后返回一個輸出。對于語言模型來說,輸入是表示提示詞的 Token,輸出是下一個 Token 的預(yù)測概率列表。

神經(jīng)網(wǎng)絡(luò)之所以被稱為 “特殊” 的函數(shù),是因為它們除了函數(shù)邏輯外,還受一組外部定義的參數(shù)控制。最初,網(wǎng)絡(luò)的參數(shù)是未知的,因此函數(shù)產(chǎn)生的輸出完全沒有用。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程在于找到能使函數(shù)在訓(xùn)練數(shù)據(jù)集上表現(xiàn)最佳的參數(shù),假設(shè)如果函數(shù)在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,那么在其他數(shù)據(jù)上也會表現(xiàn)良好。

在訓(xùn)練過程中,參數(shù)會使用一種稱為反向傳播的算法進(jìn)行小幅度的迭代調(diào)整,這個算法涉及大量數(shù)學(xué)運算,所以本文不會詳細(xì)討論。每次調(diào)整后,神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果會略有改善。參數(shù)更新后,網(wǎng)絡(luò)會再次根據(jù)訓(xùn)練數(shù)據(jù)集進(jìn)行評估,評估結(jié)果用于指導(dǎo)下一輪調(diào)整。這個過程會持續(xù)進(jìn)行,直到函數(shù)在訓(xùn)練數(shù)據(jù)集上表現(xiàn)出良好的下一個 Token 預(yù)測為止。

為了讓你了解神經(jīng)網(wǎng)絡(luò)工作的規(guī)模,可以考慮 GPT-2 模型有大約 15 億個參數(shù),而 GPT-3 將參數(shù)數(shù)量增加到 1750 億。據(jù)說 GPT-4 有大約 1.76 萬億個參數(shù)。以現(xiàn)有硬件條件訓(xùn)練這種規(guī)模的神經(jīng)網(wǎng)絡(luò)需要很長時間,通常是數(shù)周或數(shù)月。

有意思的是,由于參數(shù)眾多,都是在沒有人為干預(yù)的情況下通過漫長的迭代過程計算出來的,因此很難理解模型的工作原理。一個訓(xùn)練有素的 LLM 就像一個黑匣子,非常難以調(diào)試,因為模型的大部分 “思考” 都隱藏在參數(shù)中。即使是訓(xùn)練該模型的人也難以解釋其內(nèi)部工作原理。

層、Transformer 和注意力機(jī)制

你可能會好奇,在神經(jīng)網(wǎng)絡(luò)函數(shù)內(nèi)部發(fā)生了哪些神秘的計算,在參數(shù)調(diào)優(yōu)的幫助下,可以將一列輸入 Token 轉(zhuǎn)換為合理的下一個 Token 的概率。

一個神經(jīng)網(wǎng)絡(luò)被配置為執(zhí)行一系列操作,每個操作稱為一個 “層”。第一層接收輸入,并進(jìn)行某種轉(zhuǎn)換。轉(zhuǎn)換后的輸入進(jìn)入下一層,再次被轉(zhuǎn)換。如此反復(fù),直到數(shù)據(jù)到達(dá)最后一層,并進(jìn)行最后一次轉(zhuǎn)換,生成輸出或預(yù)測結(jié)果。

機(jī)器學(xué)習(xí)專家設(shè)計出不同類型的層,對輸入數(shù)據(jù)進(jìn)行數(shù)學(xué)轉(zhuǎn)換,并找出如何組織和組合層以達(dá)到預(yù)期的結(jié)果。有些層是通用的,而有些層則專為處理特定類型的輸入數(shù)據(jù)而設(shè)計,如圖像或在 LLM 中的 Token 化文本。

當(dāng)前在 LLM 中用于文本生成最流行的神經(jīng)網(wǎng)絡(luò)架構(gòu)稱為 Transformer。使用這種設(shè)計的 LLM 被稱為 GPT,即生成式預(yù)訓(xùn)練 Transformer。

Transformer 模型的顯著特點是其執(zhí)行的一種稱為注意力機(jī)制的層計算,這使得它們能夠在上下文窗口中的 Token 之間推導(dǎo)出關(guān)系和模式,并將這些關(guān)系和模式反映在下一個 Token 的概率中。

注意力機(jī)制最初用于語言翻譯器,作為一種找到輸入序列中最重要的 Token 以提取其含義的方法。這種機(jī)制使得現(xiàn)代翻譯器能夠在基本層面上 “理解” 一個句子,通過關(guān)注(或?qū)?“注意力” 引向)重要的詞或 Token。

LLM 是否具有智能?

到現(xiàn)在,你可能已經(jīng)開始對 LLM 在生成文本的方式上是否表現(xiàn)出某種形式的智能形成一種看法。

我個人并不認(rèn)為 LLM 具備推理能力或提出原創(chuàng)思想的能力,但這并不意味著它們毫無用處。由于它們在上下文窗口中的 Token 上進(jìn)行的巧妙計算,LLM 能夠發(fā)現(xiàn)用戶提示中存在的模式,并將這些模式與訓(xùn)練期間學(xué)到的類似模式相匹配。它們生成的文本主要由訓(xùn)練數(shù)據(jù)的片段組成,但它們將詞(實際上是 Token)拼接在一起的方式非常復(fù)雜,在許多情況下,產(chǎn)生的結(jié)果感覺是原創(chuàng)且有用的。

鑒于 LLM 容易產(chǎn)生幻覺現(xiàn)象,我不會信任任何由 LLM 生成,未經(jīng)人工驗證就直接傳遞給終端用戶的工作流。

未來幾個月或幾年內(nèi)出現(xiàn)的更大規(guī)模的 LLM 會實現(xiàn)類似于真正智能的東西嗎?我覺得這在 GPT 架構(gòu)下不會發(fā)生,因為它有很多限制,但誰知道呢,也許通過未來的一些創(chuàng)新,我們會實現(xiàn)這一目標(biāo)。

責(zé)任編輯:武曉燕 來源: 架構(gòu)精進(jìn)之路
相關(guān)推薦

2024-04-12 14:04:17

機(jī)器學(xué)習(xí)DNN

2013-09-26 13:21:05

數(shù)學(xué)算法

2020-04-10 09:37:47

HBase2.x集群CPU

2015-09-22 13:08:42

戴爾云計算

2017-03-20 19:40:29

AndroidSwipeRefres下拉刷新

2017-03-21 14:34:47

存儲服務(wù)器數(shù)據(jù)

2013-01-24 11:03:30

2015-05-26 15:17:44

OpenStack

2011-03-08 11:42:56

2022-11-06 15:56:50

2016-10-26 08:36:16

2021-08-01 22:42:57

區(qū)塊鏈互聯(lián)網(wǎng)技術(shù)

2021-07-06 12:27:36

混合云多云云計算

2023-03-08 17:53:15

機(jī)器人AI

2014-07-21 15:32:03

Wi-Fi

2012-12-04 17:44:13

2020-06-19 11:43:09

戴爾

2022-07-27 16:05:57

元宇宙AISummit

2010-05-14 00:19:43

2010-05-05 09:14:07

點贊
收藏

51CTO技術(shù)棧公眾號