LLM Parameters
どの機械学習モデルも同様に、大規模な言語モデルには、生成されるテキストの変异性を制御するための様々なパラメータが存在します。私たちはこれらのパラメータについて詳細に説明するためのマルチパートシリーズを始めました。私たちは、このマルチパートシリーズで議論したすべてのパラメータを使用して、コンテンツ生成に最適なバランスをとることに着手します。
これは最初のパートで、最も知られたパラメータ「温度」について話します。
温度
予測の乱数を制御するためには、温度が適切な選択肢です。低温値は出力を決定性にすることが多く、高温値は Creativityを高めて様々な結果を许すことになります。
以下のコードと出力を使って、温度の作用を見てみましょう。重要性を簡単に示すために、hugging face transformersと特にGPT2モデルを使用しました。
import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# Load GPT-2 model and tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# Add pad token to tokenizer (GPT-2 doesn't have it by default)
tokenizer.pad_token = tokenizer.eos_token
# Function to generate response with varying temperature
def generate_with_temperature(prompt, temperature):
inputs = tokenizer(prompt, return_tensors='pt', padding=True)
# Set the attention_mask and pad_token_id
outputs = model.generate(
inputs.input_ids,
attention_mask=inputs['attention_mask'],
do_sample=True,
max_length=200,
temperature=temperature,
pad_token_id=tokenizer.eos_token_id
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
#Prompt on which we get the content generated based on temperature
prompt = "What are some of the best strategies within NFL Fantasy"
# Test temperature variations
print("Temperature 0.3 (Less deterministic but coherent):\n", generate_with_temperature(prompt, temperature=0.3))
print("\nTemperature 0.5 (Balanced):\n", generate_with_temperature(prompt, temperature=0.5))
print("\nTemperature 0.9 (More creative):\n", generate_with_temperature(prompt, temperature=0.9))
出力:
python test_temperature.py
Temperature 0.3 (Less deterministic but coherent):
What are some of the best strategies within NFL Fantasy Football?
I've seen a lot of great strategies for predicting the next NFL season. I've seen great strategies for predicting the next NFL season.
I've seen a lot of great strategies for predicting the next NFL season. I've seen great strategies for predicting the next NFL season.
I've seen a lot of great strategies for predicting the next NFL season. I've seen great strategies for predicting the next NFL season.
I've seen a lot of great strategies for predicting the next NFL season. I've seen great strategies for predicting the next NFL season.
I've seen a lot of great strategies for predicting the next NFL season. I've seen great strategies for predicting the next NFL season.
I've seen a lot of great strategies for predicting the next NFL season. I've seen great strategies for predicting the next NFL season.
I've seen a lot of great strategies for predicting the next
Temperature 0.5 (Balanced):
What are some of the best strategies within NFL Fantasy Football?
1. Pick up the first pick and use it to draft a QB
In the past, I've mentioned that I tend to pick up the first pick in the first round. The best way to pick up the first pick is to take the first pick and then use it to draft a QB. I find that the more I draft the QB, the more I draft the QB. This is why I like to draft the first pick in the first round.
2. Draft a QB for the first time
This is an important one, but it's not the only one. Drafting a QB for the first time is a great way to start your fantasy season.
3. Draft a QB for the first time
This is the most important one. Drafting a QB for the first time is the most important one. Drafting a QB for the first time is the most important one.
Temperature 0.9 (More creative):
What are some of the best strategies within NFL Fantasy?
If you are looking for players that will be good for you, here is an updated list of key stats, which you can find on our official website:
All players were ranked in the top 10 fantasy players. These players are all high-rated defensive backs or running backs with good play across all phases of their careers. The players above were ranked from 5-5 for total points scored.
The chart below will allow you to visualize the players in your league.
All players have 5.5 sacks, 5 sacks and 2.5 tackles for loss on the season. They have a combined 11.3 sacks with a 4.6, 1.6 and 2.1 yards per carry average, respectively.
Each player has three touchdowns. The three touchdowns are tied for the top five fantasy points with 3 points in an entire game. The three touchdowns are tied for the top ten points with 2 points
以下で出力を理解しましょう。
- 低温度 (0.3): モデルは最も確実な単語選択に集中するようになります。精度と一致性が重要な場合は、この範囲の温度を指定することができます。しかし、このような出力でモデルが似たような phrasesを繰り返すかもしれません。
- 中温(0.5):この温度は一贯性と創造性を完璧にバランスしています。 Structureを失わずに一定の变异を希望する場合に最適な中间地帯です。出力にあるように、少しのバランスが追加されましたが、出力に重复があることがわかります。
- 高温(0.9):この温度はLLMを可能な限り創造的にするために爆発的にします。以前の2つの出力とは異なり、内容的に多くの乱雑さと变异を持ちます。
上記の例は温度に基づく基本理解を設定します。次に、「創造的な物語生成」と「技術的な説明」の2つの使用例でより詳細に見ていきましょう。
以下のコードを使って、温度が上記2つの使用例に影響を与える方法を理解してください。
import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# Load GPT-2 model and tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# Add pad token to tokenizer (GPT-2 doesn't have it by default)
tokenizer.pad_token = tokenizer.eos_token
# Function to generate response based on temperature
def generate_with_temperature(prompt, temperature, max_length=200):
inputs = tokenizer(prompt, return_tensors='pt', padding=True)
outputs = model.generate(
inputs.input_ids,
attention_mask=inputs['attention_mask'],
do_sample=True,
max_length=max_length,
temperature=temperature, # Only focusing on temperature
pad_token_id=tokenizer.eos_token_id
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
### USE CASE 1: CREATIVE STORY GENERATION ###
def creative_story_generation():
prompt = "Once upon a time, in a distant galaxy, there was a spaceship called Voyager."
# Negative Impact: Low temperature for creative writing (too deterministic, repetitive)
print("\n=== Creative Story with Low Temperature (0.2) - Negative Impact: ===")
low_temp_story = generate_with_temperature(prompt, temperature=0.2)
print(low_temp_story)
# Perfect Impact: High temperature for creative writing (more creative and varied)
print("\n=== Creative Story with High Temperature (0.9) - Perfect Impact: ===")
high_temp_story = generate_with_temperature(prompt, temperature=0.9)
print(high_temp_story)
### USE CASE 2: TECHNICAL EXPLANATION ###
def technical_explanation():
prompt = "Explain how blockchain works in simple terms."
# Negative Impact: High temperature for technical writing (too creative, inaccurate)
print("\n=== Technical Explanation with High Temperature (0.9) - Negative Impact: ===")
high_temp_explanation = generate_with_temperature(prompt, temperature=0.9)
print(high_temp_explanation)
# Perfect Impact: Optimal temperature for technical writing (accurate and focused)
print("\n=== Technical Explanation with Adjusted Temperature (0.7) - Perfect Impact: ===")
perfect_temp_explanation = generate_with_temperature(prompt, temperature=0.7)
print(perfect_temp_explanation)
# Run both use cases
creative_story_generation()
technical_explanation()
Output:
python temperature_impact.py
=== Creative Story with Low Temperature (0.2) - Negative Impact: ===
Once upon a time, in a distant galaxy, there was a spaceship called Voyager. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been brought back from the dead by the gods. It was a spaceship that had been
=== Creative Story with High Temperature (0.9) - Perfect Impact: ===
Once upon a time, in a distant galaxy, there was a spaceship called Voyager. The ship seemed to have been flying in space as well, like the spaceship in the movie "The Voyage Home". The Captain of the Voyager was Captain Jean-Luc Picard.
In the Star Trek movies, this is true. But in the movie, on Voyager, our hero is not Jean-Luc Picard. Jean-Luc, the villain, has no desire to lead us to vengeance against the dying star.
But what about Star Trek VI: The Undiscovered Country…
In a scene that's been in development for years (one you'll almost certainly see in an upcoming Star Trek film), in the middle of the movie (one you won't see until later in the film), we see that Picard is no longer in the Star Trek universe as is the story, to be played by the same actor who played Lieutenant Dax (who was in the movie), but Picard himself.
=== Technical Explanation with High Temperature (0.9) - Negative Impact: ===
Explain how blockchain works in simple terms.
Blockchain can be used to determine if the system is trustworthy and to prevent fraud, even if the system is used in a completely different manner. Blockchain can also be used to help determine how the system is run and to ensure that its operation is efficient.
This way all your trust in the system can be verified by your actions, and you can have full control over it. When you are not trusting a computer, it can be easy to get a hold of a server and then just change the software, allowing you to control and monitor transactions with the help of the blockchain. If your business uses distributed storage then it is easy to have more control over your activities.
What do I need to understand about blockchain?
To understand how blockchain works and how you can use it properly, you must first understand how blockchain works.
Bitcoins are digital tokens, created at the start of each generation that are used to
=== Technical Explanation with Adjusted Temperature (0.7) - Perfect Impact: ===
Explain how blockchain works in simple terms.
What are the key differences between Bitcoin and Ethereum?
Blockchain is a cryptographic protocol. It can be used to create any type of transaction. It is used to store data and create new entities. It is used as a system of communication in blockchain systems.
In Ethereum, the transaction is recorded, stored, and used to perform the transaction. It is a way to transfer information. The transaction is called a "blockchain."
Since the blockchain is used for many things, it is easy to understand how the technology works. The most important difference is that Ethereum uses the blockchain to create an interface to the Internet of Things. It is this interface that allows for data exchange and the creation of new entities.
Because of this, it is possible to perform the transactions on the blockchain. So, what is the difference between Bitcoin and Ethereum?
The Bitcoin and Ethereum blockchain is a distributed ledger.
次に、創造的な物語生成と技術的な説明に基づいて、温度設定によって出力が影響されることを解釈し、一度に行うことのできる使用例に最適な温度設定があること、およびそれぞれに逆の結果をもたらすことを調査しましょう。
創造的な物語生成
- 低温度(-影響):ご覧のように、物語出力は高く重複しており、变异が乏しいということがわかります。この結果は創造的なタスクにとって満足できません。モデルが新しいアイデアを導入することができず、极度的な重複性によって物語の生成に不適切です。
- 高温(完璧な影響)出力からご覧のように、物語は面白い方向に展开し、非常に創造的です。出力は物語に多くの面白い側面を付け加えることで、それを变异的で、想象に富んだ物語を語るのに完璧に適しています。
技術的な説明
- 高温(否定的な影響)事実の正確性を維持することは、技術的な説明のような使用案例において非常に重要です。高温は、生成されるコンテンツには多くの乱雑さをもたらし、予想外の語を導入することになり、技術的な書き方には不適切です。上の出力からも推測することができ、あまりにも抽象的で、不適切なアイデアを含んでいます。
- 調整された温度(完璧な影響)私たちは、技術的なコンテンツを生成するための最適なバランスを得るために温度を調整しました。ご覧のように、現在の出力はものすごく整理されています。この温度設定で、モデルは低い温度でのように繰り返しがなく、高い温度でのように連贯性を欠くことがないのです。
結論
あなたは、温度がコンテンツ生成に及ぼす影響をいろいろな方法で見ましたし、どの温度設定がどのような使用案例に最適であるかを知りました。また、温度の調整はコンテンツ生成の全てであるわけではなく、他のパラメーターも調整する必要があることに注意してください。シリーズの次の記事で、すべてについて調査します。
Source:
https://dzone.com/articles/decoding-llm-parameters-temperature