精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

生成式AI文本密碼:Transformer參數全解碼?

譯文 精選
人工智能
在本文中,讓我們來一起探索控制Transformer模型中文本生成的關鍵參數。你將了解這些參數如何影響生成文本的質量,以及如何針對不同的應用進行調整。

譯者 | 朱先忠

審校 | 重樓

本文詳細介紹Transformer模型中控制文本生成的關鍵參數,包括溫度、Top-K和Top-P采樣、重復懲罰等,并探討這些參數對生成文本質量的影響及針對不同應用的調整方法。

Transformer模型是當今NLP任務的標準模型。幾乎所有NLP任務都涉及文本生成,但文本生成并非模型的直接輸出。你可能希望模型能夠幫助你生成連貫且與上下文相關的文本。雖然這在一定程度上與模型的質量有關,但生成參數也對生成文本的質量起著至關重要的作用。

在本文中,讓我們來一起探索控制Transformer模型中文本生成的關鍵參數。你將了解這些參數如何影響生成文本的質量,以及如何針對不同的應用進行調整。具體而言,你將學習到:

  • Transformer模型中控制文本生成的核心參數
  • 不同的解碼策略
  • 如何控制生成文本的創造性和連貫性
  • 如何針對特定應用微調生成參數

讓我們開始吧!

概述

本文將劃分為七個部分進行介紹,它們是:

  • 核心文本生成參數
  • 溫度實驗
  • Top-K和Top-P采樣
  • 控制重復
  • 貪婪解碼和采樣
  • 特定應用的參數
  • 集束搜索和多序列生成

核心文本生成參數

我們以GPT-2模型為例。它是一個小型Transformer模型,不需要大量計算資源,但仍能生成高質量的文本。使用GPT-2模型生成文本的一個簡單示例如下:

import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
#創建模型和分詞器
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
#將輸入提示分詞為ID序列
prompt = "Artificial intelligence is"
inputs = tokenizer(prompt, return_tensors="pt")
# 將輸出作為一系列標記ID生成
output = model.generate(
 **inputs,
 max_length=50,
 num_return_sequences=1,
 temperature=1.0,
 top_k=50,
 top_p=1.0,
 repetition_penalty=1.0,
 do_sample=True,
 pad_token_id=tokenizer.eos_token_id,
)
#將標記ID轉換為文本字符串
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(f"Prompt: {prompt}")
print("Generated Text:")
print(generated_text)

如果運行此代碼,你可能會看到如下輸出內容:

Prompt: Artificial intelligence is
Generated Text:
Artificial intelligence is used in the production of technology, the delivery of
which is determined by technological change. For example, an autonomous car can
change its steering wheel to help avoid driving traffic. In the case of artificial
intelligence, this can change what consumers

本例中,你只提供了三個單詞的提示,模型就生成了一段很長的文本。這并非一次性生成,而是在迭代過程中多次調用模型。

你可以看到generate()函數中使用的眾多參數。你使用的第一個參數是max_length,它控制生成的文本的長度(以標記數量表示)。通常,模型使用提示作為上下文,一次生成一個標記。然后,將新生成的標記附加到提示中并生成下一個標記。因此,你希望生成的文本越長,生成它所需的時間就越長。請注意,這里關注的是標記,而不是單詞,因為你在GPT-2模型中使用了子詞標記器。一個標記可能只是一個子詞單元,而不是一個完整的單詞。

然而,該模型并非專門生成任何單個標記。相反,它生成一個“logit”,即下一個標記概率的向量。logit是一個長向量,恰好與詞匯表的大小相同。鑒于它是所有可能的“下一個標記”的概率分布,你可以選擇概率最高的標記(當設置do_sample=False時),或者任何其他概率非零的標記(當設置do_sample=True時)。這就是所有其他參數的目的。

temperature參數會扭曲概率分布。較低的溫度會強調最可能的標記,而較高的溫度會縮小可能的標記和不太可能的標記之間的差異。默認溫度為1.0,并且應為正值。然后,top_k參數僅選擇最靠前的標記標記,而不是整個標記詞匯表。然后重新計算概率,總和為1。接下來,如果設置了top_p,則這一組k個標記的集合進一步過濾,保留構成總概率p的那些頂級標記。然后使用這組最終的標記來對下一個標記進行采樣,這個過程稱為核采樣。

請記住,你正在生成一個標記序列,一次一個。你很可能會在每一步中重復看到相同的標記,并且你可能會在序列中看到相同的標記。這通常不是你想要的結果,因此你可能希望在再次看到這些標記時降低其出現的概率。這就是上面repetition_penalty參數的作用所在。

溫度實驗

假設到目前你已經知道了各個參數的作用,那么接下來,讓我們看看當你調整其中一些參數時輸出如何變化。

溫度參數對生成文本的創造性和隨機性有顯著的影響。你可以通過以下示例看到其效果:

import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
prompt = "The future of artificial intelligence is"
inputs = tokenizer(prompt, return_tensors="pt")
# 生成不同溫度值的文本
temperatures = [0.2, 0.5, 1.0, 1.5]
print(f"Prompt: {prompt}")
for temp in temperatures:
 print()
 print(f"Temperature: {temp}")
 output = model.generate(
 **inputs,
 max_length=100,
 num_return_sequences=1,
 temperature=temp,
 top_k=50,
 top_p=1.0,
 repetition_penalty=1.0,
 do_sample=True,
 pad_token_id=tokenizer.eos_token_id,
 )
 generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
 print("Generated Text:")
 print(generated_text)

如果運行此代碼,你可能會看到如下輸出內容:

Prompt: The future of artificial intelligence is
Temperature: 0.2
Generated Text:
The future of artificial intelligence is uncertain. The future of artificial
intelligence is uncertain.
The future of artificial intelligence is uncertain. The future of artificial
intelligence is uncertain.
The future of artificial intelligence is uncertain. The future of artificial
intelligence is uncertain.
The future of artificial intelligence is uncertain. The future of artificial
intelligence is uncertain.
The future of artificial intelligence is uncertain. The future of artificial
intelligence is uncertain.
The future of artificial intelligence is uncertain. The future
Temperature: 0.5
Generated Text:
The future of artificial intelligence is uncertain.
"There is a lot of work to be done on this," said Eric Schmitt, a professor
of computer science and engineering at the University of California, Berkeley.
"We're looking for a way to make AI more like computers. We need to take a step
back and look at how we think about it and how we interact with it."
Schmitt said he's confident that artificial intelligence will eventually be
able to do more than
Temperature: 1.0
Generated Text:
The future of artificial intelligence is not yet clear, however."
"Is the process that we are trying to do through computer vision and the ability to
look at a person at multiple points without any loss of intelligence due to not
seeing a person at multiple points?" asked Richard. "I also think the people who
are doing this research are extremely interesting to me due to being able to see
humans at a range of different points in time. In particular, they've shown how
to do a pretty complex
Temperature: 1.5
Generated Text:
The future of artificial intelligence is an era to remember as much as Google in
search results, particularly ones not supported by much else for some years -- and
it might look like the search giant is now just as good without artificial
intelligence. [Graphic image from Shutterstock]

當溫度較低(例如0.2)時,文本會變得更加集中和確定,通常會堅持使用常用短語和傳統觀點。你還會看到,由于概率集中在少數幾個標記上,文本會不斷重復相同的句子,從而限制了多樣性。這個問題可以通過使用重復懲罰參數來解決,該參數將在下一節中介紹。

中等溫度(例如0.5到1.0)的文本在連貫性和創造性之間取得了良好的平衡。生成的文本可能并非基于事實,但語言自然。

當溫度較高(例如1.5)時,文本會變得更加隨意和富有創意,但也可能變得缺乏連貫性,有時甚至缺乏邏輯性。語言可能難以理解,就像上面的例子一樣。

選擇合適的溫度取決于你的應用。如果你正在創建代碼補全或寫作助手,通常較低的溫度更佳。對于創意寫作或頭腦風暴,較高的溫度可以產生更多樣化、更有趣的結果。

Top-K和Top-P采樣

核采樣參數控制著模型選擇下一個標記的靈活性。你應該調整top_k參數還是top_p參數?讓我們通過一個例子來看一下它們的效果:

import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
prompt = "The best way to learn programming is"
inputs = tokenizer(prompt, return_tensors="pt")
#使用不同top_k值生成文本
top_k_values = [5, 20, 50]
print(f"Prompt: {prompt}")
for top_k in top_k_values:
 print()
 print(f"Top-K = {top_k}")
 output = model.generate(
 **inputs,
 max_length=100,
 num_return_sequences=1,
 temperature=1.0,
 top_k=top_k,
 top_p=1.0,
 repetition_penalty=1.0,
 do_sample=True,
 pad_token_id=tokenizer.eos_token_id,
 )
 generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
 print("Generated Text:")
 print(generated_text)
# 使用不同top_p值生成文本
top_p_values = [0.5, 0.7, 0.9]
for top_p in top_p_values:
 print()
 print(f"Top-P = {top_p}")
 output = model.generate(
 **inputs,
 max_length=100,
 num_return_sequences=1,
 temperature=1.0,
 top_k=0,
 top_p=top_p,
 repetition_penalty=1.0,
 do_sample=True,
 pad_token_id=tokenizer.eos_token_id,
 )
 generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
 print("Generated Text:")
 print(generated_text)
如果運行此代碼,你可能會看到如下輸出內容:
Prompt: The best way to learn programming is
Top-K = 5
Generated Text:
The best way to learn programming is to be able to learn the basics in a very short
amount of time, and then learn to use them effectively and quickly.
If you want to be a successful programmer in this way, you should learn to use the
techniques in the above video to learn the basics of programming.
If you want to learn to code more effectively, you can also get more experienced
programmers by doing the following:
Learning to Code
Learning to code is very
Top-K = 20
Generated Text:
The best way to learn programming is to learn it.
In order to get started with Ruby you're going to have to make a few mistakes, some
of them can be fairly obvious.
First of all, you're going to have to write a function that takes in a value. What
this means is that you're going to make a new instance of the Ruby function. You can
read more about this in Part 1 of this course, or just try it out from the REPL.
Top-K = 50
Generated Text:
The best way to learn programming is to become familiar with the language and the
software. One of the first and most common forms of programming is to create,
modify, and distribute code.
However, there are very few programming libraries that can provide us with all
that we need.
The following sample programming program uses some of the above, but does not show
the best way to learn programming. It was written in Java and in C or C++.
The original source code is
Top-P = 0.5
Generated Text:
The best way to learn programming is to be able to create a tool for you. That's
what I do.
That's why I'm here today.
I'm here to talk about the basics of programming, and I'm going to tell you how to
learn programming.
I'm here to talk about learning programming.
It's easy to forget that you don't have to know how to program. It's easy to forget
that you don't have to know how
Top-P = 0.7
Generated Text:
The best way to learn programming is to practice programming. Learn the principles
of programming by observing and performing exercises.
I used to work in a world of knowledge which included all sorts of things, and was
able to catch up on them and understand them from their perspective. For instance, I
learned to sit up straight and do five squats. Then, I would have to practice some
type of overhead training. I would try to learn the best technique and add that to
my repertoire.
What
Top-P = 0.9
Generated Text:
The best way to learn programming is to become a good hacker. Don't use any
programming tools. Just a regular dot-com user, an occasional coding learner, and
stick with it.
— Victoria E. Nichols

你可以通過一個小的k值,例如5,看到模型可供選擇的選項較少,從而導致文本更可預測。在極端情況下,當k=1時,模型總是選擇概率最高的單個標記,這是貪婪解碼,通常會產生較差的輸出。當使用一個較大的k值,比如50,模型就有更多的選項可以選擇,從而產生更加多樣化的文本。

類似地,對于top_p參數,較小的p值意味著模型從一組較小的高概率標記中進行選擇,從而產生更有針對性的文本。使用較大的p值,例如0.9,則模型的選擇范圍更廣,可能會產生更多樣化的文本。但是,對于給定的文本,你可以選擇多少個選項并非固定不變,它取決于模型預測的概率分布。當模型對下一個標記非常有信心時(例如受某些語法規則限制),只允許使用非常小的標記集合。這種自適應特性也是為什么top-p采樣通常比top-k采樣更受歡迎的原因。

控制重復

重復是文本生成中常見的問題。repetition_penalty參數通過懲罰已在生成文本中出現過的標記來幫助解決這個問題。讓我們看看它是如何工作的:

import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
prompt = "Once upon a time, there was a"
inputs = tokenizer(prompt, return_tensors="pt")
# 使用不同的重復懲罰生成文本
penalties = [1.0, 1.2, 1.5, 2.0]
print(f"Prompt: {prompt}")
for penalty in penalties:
 print()
 print(f"Repetition penalty: {penalty}")
 output = model.generate(
 **inputs,
 max_length=100,
 num_return_sequences=1,
 temperature=0.3,
 top_k=50,
 top_p=1.0,
 repetition_penalty=penalty,
 do_sample=True,
 pad_token_id=tokenizer.eos_token_id,
 )
 generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
 print("Generated Text:")
 print(generated_text)

如果運行此代碼,你可能會看到如下輸出內容:

Prompt: Once upon a time, there was a
Repetition penalty: 1.0
Generated Text:
Once upon a time, there was a great deal of confusion about what was going on. The
first thing that came to mind was the fact that the government had already been in
place for a long time, and that the government had been in place for a long time.
And it was clear that the government had been in place for a long time. And it was
clear that the government had been in place for a long time. And it was clear that
the government had been in place for a long
Repetition penalty: 1.2
Generated Text:
Once upon a time, there was a great deal of talk about the possibility that this
would be an opportunity for us to see more and better things in our lives. We had
been talking on Facebook all day long with people who were interested in what we
could do next or how they might help others find their own way out."
"We've always wanted to make sure everyone has access," he continued; "but it's not
like you can just go into your room at night looking around without seeing
Repetition penalty: 1.5
Generated Text:
Once upon a time, there was a man who had been called to the service of God. He
came and said: "I am an apostle from Jerusalem." And he answered him with great joy,
saying that it is not possible for me now in this life without having received
Jesus Christ as our Lord; but I will be saved through Him alone because my Father
has sent Me into all things by His Holy Spirit (John 1).
The Christian Church teaches us how much more than any other religion can
Repetition penalty: 2.0
Generated Text:
Once upon a time, there was a man who had been sent to the city of Nausicaa by his
father. The king's son and brother were killed in battle at that place; but when
he returned with them they found him dead on their way back from war-time.[1]
The King gave orders for an expedition against this strange creature called "the
Gorgon," which came out into space during one night after it attacked Earth[2]. It
is said that these creatures

在上面的代碼中,為了強調重復懲罰的效果,我們將溫度設置為0.3。當懲罰值較低(例如1.0)時,你可以看到模型一遍又一遍地重復同一個短語。當其他設置將候選標記限制在較小的子集時,模型很容易陷入循環。但是,當懲罰值較高(例如2.0或更高)時,模型會強烈避免重復,這有時會導致文本的自然性降低。中等懲罰值(例如1.2到1.5)通常是保持連貫性的良好折衷方案。

畢竟,generate()函數中設置的參數是為了保持文本自然流暢。你可能需要通過實驗來調整這些參數,以找到最適合你特定應用的參數。請注意,這些參數可能取決于你使用的模型,因為每個模型生成的標記可能具有不同的分布。

貪婪解碼和采樣

do_sample參數控制模型是使用采樣(基于概率選擇標記)還是貪婪解碼(始終選擇最可能的標記)。讓我們比較一下這兩種方法:

import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
prompt = "The secret to happiness is"
inputs = tokenizer(prompt, return_tensors="pt")
# 使用貪婪解碼與采樣生成文本
print(f"Prompt: {prompt}\n")
print("Greedy Decoding (do_sample=False):")
output = model.generate(
 **inputs,
 max_length=100,
 num_return_sequences=1,
 temperature=1.0,
 top_k=50,
 top_p=1.0,
 repetition_penalty=1.0,
 do_sample=False,
 pad_token_id=tokenizer.eos_token_id,
)
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print("Generated Text:")
print(generated_text)
print()
print("Sampling (do_sample=True):")
output = model.generate(
 **inputs,
 max_length=100,
 num_return_sequences=1,
 temperature=1.0,
 top_k=50,
 top_p=1.0,
 repetition_penalty=1.0,
 do_sample=True,
 pad_token_id=tokenizer.eos_token_id,
)
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print("Generated Text:")
print(generated_text)

嘗試多次運行此代碼并觀察輸出結果。你會注意到,貪婪解碼的輸出始終相同,而采樣的輸出每次都不同。對于固定的提示,貪婪解碼是確定性的。該模型生成概率分布,并選擇最可能的標記,不涉及隨機性,輸出更有可能重復且無用。

采樣輸出是隨機的,因為輸出標記是根據模型預測的概率分布選擇的。這種隨機性使模型能夠生成更加多樣化和富有創意的文本;同時,只要其他生成參數設置得當,輸出仍然保持一致。在采樣輸出的情況下,你可以將num_return_sequences設置為大于1的數字,以便為同一提示并行生成多個序列。此參數對于貪婪解碼毫無意義。

特定應用的參數

對于特定的應用,應該設置哪些參數值?并沒有明確的答案。你肯定需要進行一些實驗來找到最佳組合。但是,你可以參考以下建議:

  • 事實生成:

A.提供更低的temperature參數值(0.2至0.4)以獲得更確定的輸出

B.使用中等大小的top_p參數值(0.8到0.9),過濾掉不太可能的標記

C.使用更高的repetition_penalty參數值(1.2至1.5),以避免重復陳述

  • 創意寫作:

A.提供更高一些的temperature參數值(1.0到1.3),可實現更具創意和多樣化的輸出

B.提供更高的top_p參數值(0.9到0.95),以提供更多可能性

C.提供較低的repetition_penalty參數值(1.0到1.1),以允許一些風格重復

  • 代碼生成:

A.提供更低的temperature參數值(0.1到0.3),可獲得更精確、更正確的代碼

B.提供較低的top_p參數值(0.7至0.8),以關注最可能的標記C.提供更高的repetition_penalty參數值(1.3到1.5),以避免冗余代碼

  • 對話生成:

A.提供中等大小的temperature參數值(0.6至0.8),反應自然但集中

B.提供中等大小的top_p參數值(0.9),創造力和連貫性達到良好平衡

C.提供中等大小的repetition_penalty參數值(1.2),避免重復的短語

請記住,語言模型并非完美的預言機,它也可能會出錯。上述參數旨在幫助你將生成過程與預期的輸出風格相匹配,但并不能保證其正確性。你得到的輸出可能包含錯誤。

集束搜索和多序列生成

在上面的例子中,生成過程是自回歸的。它是一個迭代過程,每次生成一個標記。

由于每個步驟都會通過采樣生成一個標記,因此你可以同時生成多個標記。這樣一來,你將為一個輸入提示生成多個輸出序列。理論上,如果你每一步生成k個標記,并且設置返回的長度為n,你將生成kn個序列。這個數字可能很大,你可能希望將其限制為幾個。

生成多個序列的第一種方法是設置num_return_sequences為數字k。你在第一步中生成k個標記。然后,完成每個標記的序列。這基本上確定了在生成中復制了提示k次。

第二種方法是使用集束搜索。這是一種生成多個序列的更復雜的方法。它會跟蹤最有希望的序列并并行探索它們。它不是生成kn個序列以淹沒記憶,它只保留每一步的最佳序列。每個標記生成步驟都會暫時擴展這個集合,然后將其修剪回最佳序列。

要使用集束搜索,你需要設置num_beams為一個數字k。每一步都會擴大k個序列以再添加一個標記,結果生成k2個序列,然后選擇最佳k個序列繼續下一步。你還可以通過設置early_stopping=True,以便在到達序列末尾時停止生成。你還應該設置num_return_sequences在輸出時限制最終選擇。

序列的選擇通常基于序列中標記的累積概率。但你也可以通過其他標準來調整選擇,例如添加長度懲罰或避免重復n-grams。以下是使用集束搜索的示例:

import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")

prompt = "The key to successful machine learning is"
inputs = tokenizer(prompt, return_tensors="pt")

#使用貪婪解碼與采樣生成文本
print(f"Prompt: {prompt}\n")
outputs = model.generate(
 **inputs,
 num_beams=5, # 要使用的光束數量
 early_stopping=True, # 當所有光束都完成時停止
 no_repeat_ngram_size=2, # 避免重復n-gram
 num_return_sequences=3, # 返回多個序列
 max_length=100,
 temperature=1.5,
 do_sample=True,
 pad_token_id=tokenizer.eos_token_id,
)
for idx, output in enumerate(outputs):
 generated_text = tokenizer.decode(output, skip_special_tokens=True)
 print(f"Generated Text ({idx+1}):")
 print(generated_text)

你可以添加更多生成參數(例如length_penalty)來控制生成過程。上面的示例設置了更高的溫度,以突出集束搜索的輸出。運行此代碼,你可能會看到:

Prompt: The key to successful machine learning is

Generated Text (1):
The key to successful machine learning is to be able to learn from the world around
you. It is our job to make sure that we are learning from people, rather than just
from machines.

So, let's take a step back and look at how we can learn. Here's a list of the tools
we use to help us do that. We're going to go over a few of them here and give you
a general idea of what they are and how you can use them to create

Generated Text (2):
The key to successful machine learning is to be able to learn from the world around
you. It is our job to make sure that we are learning from people, rather than just
from machines.

So, let's take a step back and look at how we can learn. Here's a list of the tools
we use to help us do that. We're going to go over a few of them here and give you
a general idea of what they are and how you can use them and what

Generated Text (3):
The key to successful machine learning is to be able to learn from the world around
you. It is our job to make sure that we are learning from people, rather than just
from machines.

So, let's take a step back and look at how we can learn. Here's a list of the tools
we use to help us do that. We're going to go over a few of them here and give you
a general idea of what they are and how they work. You can use

輸出序列的數量仍然受num_return_sequences控制,但生成序列的過程使用了集束搜索算法。不過,從輸出結果很難判斷是否使用了集束搜索。一個跡象是,集束搜索的輸出不像單純的設置num_return_sequences那樣具有多樣性,因為生成的序列更多并且選擇了累積概率更高的序列。這種過濾確實降低了輸出的多樣性。

進一步閱讀

以下是一些你可能覺得有用的補充閱讀材料:

總結

在本文中,你了解了如何使用generate()函數中的眾多參數來控制生成過程。你可以調整這些參數,使輸出符合你應用程序的預期樣式。具體來說,你學習了:

  • 如何利用溫度來控制輸出的概率分布
  • 如何使用top-k和top-p來控制輸出的多樣性
  • 如何使用重復懲罰、集束搜索和貪婪解碼來控制輸出

通過理解和調整這些參數,你可以優化不同應用的文本生成,從事實寫作到創意敘事、代碼生成和對話系統等各個領域。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:Understanding Text Generation Parameters in Transformers,作者:Muhammad Asad Iqbal Khan

責任編輯:姜華 來源: 51CTO內容精選
相關推薦

2023-06-18 12:18:57

2023-08-21 09:51:57

全棧軟件開發

2024-03-11 09:55:51

2025-04-10 08:33:05

2024-10-30 14:50:00

系統語音模型

2024-06-03 09:52:08

2023-02-28 11:19:35

CHATGPT人工智能

2020-08-03 10:32:46

AI 數據人工智能

2024-07-09 13:53:29

生成式AIRAG

2024-01-10 18:13:52

生成式AI開源

2023-09-12 22:46:16

AI開發

2023-12-21 14:17:06

人工智能工具

2023-12-12 11:20:39

2023-10-12 08:59:52

Docker AI生成式 AI

2023-10-12 15:32:36

2025-03-31 09:30:52

2024-02-23 08:58:06

AIDevSecOps監控

2023-11-29 08:00:00

人工智能機器學習
點贊
收藏

51CTO技術棧公眾號

成人18在线| 国产又黄又大又爽| 青青草成人影院| 精品视频一区二区三区免费| www.-级毛片线天内射视视| 国产夫妻性生活视频| 亚洲在线视频| 日韩一级裸体免费视频| 久久久久久久人妻无码中文字幕爆| 免费毛片b在线观看| 国产精品乱人伦中文| 国产青春久久久国产毛片| 一级黄色在线观看| 在线高清一区| www欧美日韩| 人妻无码一区二区三区| 国产美女精品视频免费播放软件| 岛国av一区二区在线在线观看| 一区二区三区av| 欧美男男激情freegay| 国产精品资源在线| 国产精品久在线观看| 国产精选第一页| 91tv精品福利国产在线观看| 亚洲天堂开心观看| 精品人妻伦一二三区久| 日本一区二区乱| 欧美性一级生活| 国产在线青青草| 欧美精品videosex| 国产精品卡一卡二| 欧美一区二区三区成人久久片 | 日本少妇高潮喷水xxxxxxx| 精品麻豆剧传媒av国产九九九| 色哟哟精品一区| 人妻少妇精品久久| 18+视频在线观看| 亚洲欧美综合另类在线卡通| 五月天久久狠狠| 黄色小视频在线观看| 91麻豆精东视频| 精品伦精品一区二区三区视频| 不卡av中文字幕| 国产又黄又大久久| 91久久国产精品91久久性色| 中文字幕一二区| 麻豆freexxxx性91精品| 国产精品国产自产拍高清av水多 | 亚洲一区二区三区日韩| 欧美人体视频| 日韩精品免费在线播放| 性囗交免费视频观看| 盗摄牛牛av影视一区二区| 日韩欧美高清一区| 中文字幕1区2区| gogo人体一区| 亚洲国产精品成人va在线观看| 性一交一黄一片| 中文无码日韩欧| 精品1区2区在线观看| 久久久久无码国产精品一区李宗瑞| 精品国产一区二| 日韩免费在线观看| 北京富婆泄欲对白| 日韩伦理一区二区三区| 亚洲精品一区久久久久久| 久久精品国产亚洲av麻豆| 综合国产视频| 中文字幕欧美国内| 成人免费黄色小视频| 欧美激情第8页| 久久免费在线观看| 亚洲日本视频在线观看| 久久一区二区三区超碰国产精品| 国产不卡精品视男人的天堂| 在线观看中文字幕网站| 国产一区日韩二区欧美三区| 97人人模人人爽视频一区二区| 丰满人妻一区二区| 久久伊99综合婷婷久久伊| 日韩久久久久久久| 黄色在线免费网站| 亚州成人在线电影| 在线观看高清免费视频| 欧美一区=区三区| 精品久久久久香蕉网| 国产偷人妻精品一区| 青青草成人影院| 欧美激情第三页| 无码无套少妇毛多18pxxxx| 久久福利资源站| 国产一区在线免费观看| 成人三级黄色免费网站| 亚洲欧美福利一区二区| 免费黄色福利视频| 国产精品一区二区三区四区在线观看 | 女人被男人躁得好爽免费视频| 性欧美18xxxhd| 欧美日韩国产高清一区二区三区| av av在线| 91日韩视频| 97在线观看免费高清| 这里只有精品9| 99久久99久久免费精品蜜臀| 中文字幕一区二区三区有限公司 | 国产精品久久久久久模特 | 99免费视频观看| 日韩精品成人在线观看| 亚洲男人天堂久| 久久激情免费视频| 美女高潮久久久| 久久成人资源| 金瓶狂野欧美性猛交xxxx| 欧美偷拍一区二区| 人妻大战黑人白浆狂泄| 欧美日韩亚洲国产精品| 国产精品中文字幕久久久| 亚洲av成人精品一区二区三区在线播放 | 麻豆亚洲一区| 丝袜综合欧美| 69久久99精品久久久久婷婷| 免费在线观看你懂的| 亚洲高清二区| 91丨九色丨国产| 日本福利在线| 在线亚洲+欧美+日本专区| 五十路六十路七十路熟婆| 亚洲国产精品久久久久蝴蝶传媒| 国产精品电影在线观看| 无码精品视频一区二区三区| 亚洲美女视频在线| 日韩欧美中文视频| 午夜精品视频一区二区三区在线看| 2023亚洲男人天堂| 婷婷五月综合激情| 亚洲第一成人在线| 最新日本中文字幕| 国产精品v日韩精品v欧美精品网站| 成人免费网视频| 尤物网在线观看| 在线视频综合导航| 中文天堂资源在线| 秋霞成人午夜伦在线观看| 欧美婷婷久久| 欧美大片免费| 一区二区日韩精品| 国产精品成人久久久| 国产亚洲1区2区3区| 无遮挡又爽又刺激的视频| 天天躁日日躁狠狠躁欧美巨大小说| 欧美精品videos性欧美| 欧美一区二区三区激情| 亚洲成av人片一区二区梦乃| 久久精品女同亚洲女同13| 一区视频在线| 久久久久九九九| 欧美男女交配| 尤物九九久久国产精品的特点 | 日韩亚洲欧美综合| 天天综合天天做| 国产99精品国产| 欧美激情视频免费看| 美女视频亚洲色图| 青青草原一区二区| 91美女视频在线| 91精品在线观看入口| 国产大片免费看| 丁香五精品蜜臀久久久久99网站| 国产美女在线一区| 思热99re视热频这里只精品| 日韩免费av一区二区| 91这里只有精品| 91精品婷婷国产综合久久性色| 手机在线免费看毛片| 成人综合婷婷国产精品久久| 久久久久久久久久久99| 九九久久成人| 国产日产亚洲精品| 久久免费电影| 亚洲一二在线观看| 91美女精品网站| 一区二区三区四区高清精品免费观看| 欧美xxxx×黑人性爽| 日本不卡不码高清免费观看| 91看片淫黄大片91| 香蕉人人精品| 成人伊人精品色xxxx视频| bbw在线视频| 最近2019中文字幕大全第二页| 性一交一乱一乱一视频| 色综合一区二区| 欧美日韩一级大片| 国产精品天天摸av网| 中文字幕第九页| 蜜臀av在线播放一区二区三区| 日韩国产小视频| 日韩一区欧美| 国新精品乱码一区二区三区18| 国产欧美在线观看免费| 国内久久久精品| 欧美激情视频在线播放| 亚洲精品国偷自产在线99热| 国产理论片在线观看| 欧美日韩精品二区| 欧美日韩综合一区二区| 国产欧美一区二区精品性色超碰| 精品久久久久一区二区| 久久国产精品99久久久久久老狼 | 91杏吧porn蝌蚪| 久久精品亚洲麻豆av一区二区| 中文在线字幕观看| 麻豆精品蜜桃视频网站| 六月丁香婷婷在线| 尤物在线精品| 老司机午夜免费福利视频| av伊人久久| 久久99精品久久久久久久久久 | 久久99国内精品| 日韩一级免费在线观看| 亚洲性感美女99在线| 日韩国产精品毛片| 欧美成人自拍| 日本精品免费| 免费一区二区| 欧美大陆一区二区| 国产一区调教| 国产精品有限公司| 视频免费一区二区| 99精品国产一区二区| 国产亚洲高清一区| 国产日韩av在线| 视频欧美精品| 成人精品视频久久久久| 亚洲精品777| 国产欧美日韩专区发布| 成人精品国产亚洲| 国产精品入口免费视| 日韩性xxx| 青青草一区二区| 性欧美hd调教| 国产精品第100页| 666av成人影院在线观看| 国产91精品不卡视频| 91福利在线免费| 91国产视频在线播放| 性欧美freesex顶级少妇| 亲爱的老师9免费观看全集电视剧| 亚洲精品中文字幕| 日韩av不卡在线| 精品国产黄a∨片高清在线| 国产欧美一区二区三区四区| 狂野欧美性猛交xxxx| 国产精品视频地址| 成人污污www网站免费丝瓜| 91av一区二区三区| 91九色鹿精品国产综合久久香蕉| 成人欧美一区二区三区在线观看| 国产精品22p| 欧美精品v日韩精品v国产精品| 欧美猛男同性videos| 亚洲激情一区二区| 91精品啪在线观看国产81旧版| 日韩不卡一二区| 精品电影一区| www.亚洲天堂网| 久久成人免费电影| 一级全黄裸体片| 91丨porny丨在线| 欧美自拍偷拍网| 一区二区三区欧美日韩| 日本一二三区视频| 欧美在线观看视频一区二区 | 美女色狠狠久久| 91色在线视频| 任你躁在线精品免费| 色综合电影网| 国产精品a久久久久| 色婷婷综合久久久久中文字幕| 麻豆精品视频在线观看免费 | 一级片视频播放| 欧美一区二区二区| 日本成人一区| 日韩在线观看免费全| 国产丝袜精品丝袜| 国产精品久久999| 51亚洲精品| 日韩三级电影免费观看| 亚洲成人精品| 男人揉女人奶房视频60分| 美女视频黄a大片欧美| 无码国产69精品久久久久网站| 国产网站一区二区| 久久黄色免费视频| 欧美在线一区二区三区| 免费观看黄色av| 在线日韩第一页| 不卡的av影片| 亚洲free性xxxx护士白浆| 日韩三级视频| 影音先锋成人资源网站| 久久久久久黄| 欧美日韩一区二区区别是什么| 国产午夜亚洲精品理论片色戒| 久草视频手机在线观看| 在线亚洲欧美专区二区| 少妇一级淫片免费看| 久久精品国亚洲| 亚洲第一二三四区| 国产偷国产偷亚洲高清97cao| 国产精品久久久久无码av| 精品一区二区中文字幕| 国产福利一区二区三区视频在线| 蜜桃久久精品成人无码av| 五月天中文字幕一区二区| 国产美女明星三级做爰| 永久免费毛片在线播放不卡| 忘忧草在线影院两性视频| 成人在线观看av| 在线观看国产精品入口| 韩国中文字幕av| 久久综合九色综合97婷婷| 国产亚洲色婷婷久久99精品| 777午夜精品视频在线播放| 成年在线观看免费人视频| 77777少妇光屁股久久一区| 中文字幕一区二区三区日韩精品| 亚洲第一综合网站| 另类小说欧美激情| 久久久久久久毛片| 在线视频国产一区| 精品乱码一区二区三四区视频| 97视频在线观看免费高清完整版在线观看| 国产一区二区三区免费在线| 色乱码一区二区三区熟女| 久久超碰97中文字幕| 国产一级淫片久久久片a级| 在线观看一区二区视频| 国产在线观看网站| 国产精品91在线观看| 自拍偷拍精品| 北条麻妃av高潮尖叫在线观看| 久久久久久免费毛片精品| 日日夜夜操视频| 亚洲欧美一区二区精品久久久| 伊人久久综合一区二区| 欧美精品一区二区三区四区五区| 亚洲综合精品| av在线网站观看| 91国产福利在线| 尤物网在线观看| 91aaaa| 91久久中文| 成年人网站免费看| 在线观看日韩电影| 日本成人在线播放| 3d动漫精品啪啪一区二区三区免费| 亚洲精品久久久| 欧美熟妇精品一区二区 | 伊人网av在线| 久久久国产91| 日韩一区免费| 国产精品va无码一区二区| 久久美女高清视频 | 亚洲丁香婷深爱综合| 松下纱荣子在线观看| 日韩国产欧美精品| 卡一卡二国产精品 | 黄色网址在线免费| 官网99热精品| 首页国产欧美久久| www.av免费| 亚洲电影免费观看高清完整版在线| 中文在线免费视频| 亚洲精品一区二区三区樱花| 国产美女娇喘av呻吟久久| 国产网友自拍视频| 国产一区二区三区18| 疯狂欧洲av久久成人av电影| 成人在线观看你懂的| 国产精品午夜久久| 高清乱码毛片入口| 国产精品精品视频| 欧美日本一区二区高清播放视频| 三级男人添奶爽爽爽视频| 精品视频一区二区三区免费| 欧洲在线视频| 日韩中文一区二区三区| 国产不卡一区视频| 伊人久久中文字幕| 久久久久久噜噜噜久久久精品| 精品产国自在拍| 制服丝袜在线第一页| 欧美体内she精视频| av电影在线地址| 在线无限看免费粉色视频| 99久久综合精品| 国产美女三级无套内谢| 国产成人精品一区二区三区| 午夜日韩av| 国产91在线播放九色|