LLMã®temperatureãštop_pãšã¯ïŒçšéå¥ã®èšå®ç®å®ã解説
LLM APIã«ã¯ temperature ãš top_p ãšãããã©ã¡ãŒã¿ããããŸããã©ã¡ããã¢ãã«ã次ã®åèªïŒããŒã¯ã³ïŒãéžã¶ãšãã®ãæºãããã®å€§ãããæ±ºãããã®ã§ãåãããã³ããã§ãåºåã®å®å®æ§ã倿§æ§ãå€ãããŸãããã®èšäºã§ã¯ãä»çµã¿ãšçšéå¥ã®èšå®ç®å®ããããŠãtemperature ã 0 ã«ããã°æ£ããçããåºãããšãã誀解ã«ã€ããŠè§£èª¬ããŸããOpenAIäºæAPIãªãã©ã®ã¢ãã«ã§ãåãæžãæ¹ã§æå®ã§ããŸãã
ãµã³ããªã³ã°ãšã¯ïŒã¢ãã«ã¯ã確çã®ååžããåºããŠãã
LLMã¯æç« ãäžæ°ã«çæããŠããã®ã§ã¯ãªããæ¬¡ã«æ¥ãããŒã¯ã³ã®åè£ããããã«ç¢ºçãå²ãåœãŠããã®äžããäžã€ãéžã¶ããšããåŠçãç¹°ãè¿ããŠããŸããããšãã°ã仿¥ã®å€©æ°ã¯ãã®ç¶ããªãããæŽããã40%ããéšãã25%ããæããã20%âŠâŠãšãã£ãååžã§ãã
ãã®ååžããå®éã«ã©ã®ããŒã¯ã³ãéžã¶ããæ±ºããæç¶ãããµã³ããªã³ã°ã§ãtemperature ãš top_p ã¯ãã®éžã³æ¹ã調æŽãããã©ã¡ãŒã¿ã§ãã確çãã®ãã®ãäœãã®ã¯ã¢ãã«ã®ä»äºãããããã©ãéžã¶ããæ±ºããã®ããã®2ã€ããšåããŠèãããšæŽçãããããªããŸãã
temperature ãšã¯
temperature ã¯ç¢ºçååžã®ãå°ãå
·åãã調æŽããŸãã
- 0 ã«è¿ãïŒãã£ãšã確çã®é«ãããŒã¯ã³ãã»ãŒåžžã«éžã°ããåºåã¯æ¯åã»ãŒåãã«ãªããŸãã
- 1.0 ååŸïŒã¢ãã«ãåºããååžããã®ãŸãŸäœ¿ãã€ã¡ãŒãžã§ãèªç¶ãªæºãããåºãŸãã
- 1.0 ãã倧ããïŒååžãå¹³ãã«ãªãã確çã®äœãåè£ãéžã°ãããããªããŸãã倿§ã«ãªãäžæ¹ãè±ç·ã厩ããå¢ããŸãã
OpenAI圢åŒã®APIã§ã¯ 0ã2 ã®ç¯å²ã§æå®ããã®ãäžè¬çã§ãçç¥æã¯ã¢ãã«åŽã®æ¢å®å€ã䜿ãããŸãã
top_p ãšã¯
top_p ã¯ãåè£ãã©ããŸã§èŠããããæ±ºããŸãã確çã®é«ãåè£ããé ã«è¶³ããŠããã环ç©ç¢ºçã top_p ã«éãããšããã§åè£ãæã¡åãããã®äžããã ãéžã³ãŸãïŒnucleus sampling ãšåŒã°ããŸãïŒã
top_p: 0.1 ãªãäžäœã®äžæ¡ãã ããtop_p: 1.0 ãªããã¹ãŠã®åè£ã察象ã§ããtemperature ããååžã®åœ¢ãå€ãããã®ã«å¯Ÿããtop_p ã¯ãååžã®è£Ÿãåãèœãšãããšèãããšéããã€ãããŸãã
äž¡æ¹ããããªãïŒã©ã¡ããäžæ¹ãåãã
2ã€ã¯åããæºãããã«å¥ã®è§åºŠããäœçšãããããåæã«åãããšå¹æãèªã¿ã«ãããªããŸããOpenAIã®APIãªãã¡ã¬ã³ã¹ã§ããã©ã¡ããäžæ¹ãå€ããããšãæšå¥šãããŠããŸããå®åã§ã¯ temperature ãäž»ã«äœ¿ããtop_p ã¯æ¢å®å€ã®ãŸãŸã«ããã®ãåãããããéçšã§ãã
çšéå¥ã®èšå®ç®å®
以äžã¯ãããŸã§åºçºç¹ã§ããã¢ãã«ãããã³ããã«ãã£ãŠæé©å€ã¯å€ããã®ã§ãå®éã®åºåã§èª¿æŽããŠãã ããã
| çšé | temperature ã®ç®å® | çç± |
|---|---|---|
| åé¡ã»æœåºã»æ§é åããŒã¿ã®çæ | 0ã0.3 | æ¯ååã圢åŒã»åã倿ãã»ãã |
| ã³ãŒãçæã»SQL | 0ã0.3 | æ§æã®åŽ©ããé¿ããã |
| èŠçŽã»ç¿»èš³ | 0.3ã0.7 | å¿ å®ããä¿ã¡ã€ã€ãäžèªç¶ãªç¹°ãè¿ããé¿ãã |
| äŒè©±ã»æç« äœæ | 0.7ã1.0 | èªç¶ãªèšãåãã®å¹ ãã»ãã |
| ãã¬ã¹ãã»ã³ããŒæ¡ã»ãã£ããã³ã㌠| 0.8ã1.0 ä»¥äž | 倿§ãªåè£ãåºããŠãã人ãéžã¶ |
ãæ£è§£ãäžã€ã«æ±ºãŸãã¿ã¹ã¯ã»ã©äœããåè£ãåºãããã¿ã¹ã¯ã»ã©é«ãããåºæ¬ã®èãæ¹ã§ãã
ãããã誀解ïŒtemperature 0 ãªãæ£ç¢ºã«ãªãïŒ
ããã¯ç¹ã«æŒãããŠããããç¹ã§ãã
- 0 ã§ãå®å šã«åãåºåã«ã¯ãªããŸããã æšè«åºç€ã®äžŠååŠçãæ°å€èšç®ã®äžžãã«ãããåããªã¯ãšã¹ãã§ãçµæããããã«å€ããããšããããŸãããã»ãŒæ±ºå®çãã§ãã£ãŠãå®å šã«æ±ºå®çãã§ã¯ãããŸããã
- 0 ã«ããŠããæ£ãããã¯ãªããŸããã temperature ã¯åè£ã®éžã³æ¹ã決ããã ãã§ãã¢ãã«ãæã€ç¥èãæ ¹æ ãå¢ããã¯ããŸãããèªä¿¡æºã ã«ééã£ãå 容ãåºããã«ã·ããŒã·ã§ã³ã¯å¥ã®åé¡ã§ã察çã¯ããã³ããèšèšãæ ¹æ ã®æç€ºã®æ¹ã«ãããŸãã詳ããã¯LLMã®ãã«ã·ããŒã·ã§ã³ãæžããæ¹æ³ãåç §ããŠãã ããã
- ãã¹ãŠã®ã¢ãã«ãåãããã«è§£éãããšã¯éããŸããã ãã©ã¡ãŒã¿ã®æ¢å®å€ãå®éã®å¹ãæ¹ã¯ãããã€ããŒãã¢ãã«ã§ç°ãªããäžéšã®ã¢ãã«ïŒç¹ã«æšè«ãéèŠããèšèšã®ãã®ïŒã§ã¯ temperature ã®æå®ãç¡èŠãããããæå®ã§ããå€ãå¶éããããããŸããäºæAPIã§æžãæ¹ã¯æã£ãŠããæåãŸã§åäžã§ã¯ãªããšèŠããŠãããšå®å šã§ãã
ãªããåºåã®åœ¢åŒã圹å²ã®å®å®ã¯ temperature ã ãã§ãªãã·ã¹ãã ããã³ããã®èšèšã§ã倧ããå€ãããŸãã
å®éã«äœ¿ã£ãŠã¿ã
Chat Completions APIã®ãªã¯ãšã¹ãã«ããã®ãŸãŸ temperature ãè¶³ãã ãã§ãã
curl https://api.fastmetal.ai/v1/chat/completions \
-H "Authorization: Bearer $FASTMETAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic-claude-haiku-4-5",
"temperature": 0.2,
"messages": [
{"role": "user", "content": "æ¬¡ã®æããè¯å®ããåŠå®ããäžç«ãã®ããããã«åé¡ããŠãã ããïŒé
éã¯æ©ãã£ãããç®±ãå°ã朰ããŠããã"}
]
}'
PythonïŒOpenAI SDKïŒã§ top_p ã䜿ãå Žåã¯ãã¡ãã§ããtemperature ã¯çç¥ããtop_p ã ããæå®ããŠããŸãã
from openai import OpenAI
client = OpenAI(
api_key="<FASTMETAL_API_KEY>",
base_url="https://api.fastmetal.ai/v1",
)
resp = client.chat.completions.create(
model="anthropic-claude-haiku-4-5",
top_p=0.9,
messages=[{"role": "user", "content": "æ°ããã³ãŒããŒè±ã®ãã£ããã³ããŒã5æ¡ãã ããã"}],
)
print(resp.choices[0].message.content)
èšå®ã決ãããã¡ã°ã確å®ãªæ¹æ³ã¯ãåãããã³ããã2ã€ã®èšå®ã§æããŠèŠæ¯ã¹ãããšã§ãã
for t in (0.0, 0.9):
resp = client.chat.completions.create(
model="anthropic-claude-haiku-4-5",
temperature=t,
messages=[{"role": "user", "content": "ãã®è£œåã®ç¹åŸŽã3è¡ã§èŠçŽããŠãã ããïŒ..."}],
)
print(f"--- temperature={t}")
print(resp.choices[0].message.content)
FastMetalã§ã¯äžã€ã®APIããŒã§è€æ°ã®ã¢ãã«ãåŒã¹ãã®ã§ãmodel ãäžç·ã«å
¥ãæ¿ããã°ãã¢ãã« Ã èšå®ãã®æ¯èŒããã®ãŸãŸè¡ããŸããããããæ¯èŒãäœç³»çã«è¡ãæ¹æ³ã¯LLMã®è©äŸ¡ïŒEvalsïŒå
¥éã«ãŸãšããŠããŸãã
ãããã質å
Q. temperature ãš top_p ã¯ã©ã¡ãã䜿ãã°ããã§ããïŒ ãŸã㯠temperature ã ããåãããtop_p ã¯æ¢å®å€ã®ãŸãŸã«ããã®ãåãããããéçšã§ããäž¡æ¹ãåæã«å€ãããšå¹æã®åãåããé£ãããªããŸãã
Q. temperature ã 0 ã«ããã°æ¯ååãçãã«ãªããŸããïŒ ã»ãŒåãã«ãªããŸãããå®å šã«åäžãšã¯éããŸãããæšè«åºç€åŽã®èŠå ã§ãããã«æºããããšããããŸããå³å¯ãªåçŸæ§ãå¿ èŠãªããåºåãæ€èšŒãããã¹ããå¥éçšæããŠãã ããã
Q. ã¢ãã«ãå€ãããåã temperature ã§ãåºåã®åŸåãå€ãããŸããããªãã§ããïŒ ãã©ã¡ãŒã¿ã®è§£éãæ¢å®å€ã¯ã¢ãã«ããšã«ç°ãªãããã§ããäºæAPIã§æå®æ¹æ³ã¯å ±éã§ããå¹ãæ¹ãŸã§åããšã¯éããŸãããã¢ãã«ãåãæ¿ãããèšå®ãèŠçŽããŠãã ããã
ãŸãšã
temperature ãš top_p ã¯ãã¢ãã«ã次ã®ããŒã¯ã³ãã©ãéžã¶ãããæ±ºãããã©ã¡ãŒã¿ã§ãæ£è§£ãäžã€ã«æ±ºãŸãã¿ã¹ã¯ã¯äœããåè£ãåºãããã¿ã¹ã¯ã¯é«ããåºæ¬ã§ãããã ã 0 ã«ããŠãæ£ç¢ºãã¯äžããããã¢ãã«ã«ãã£ãŠå¹ãæ¹ãéããŸããOpenAIäºæAPIãªãæžãæ¹ã¯å ±éãªã®ã§ãAPIããŒãååŸããŠãåãããã³ãããèšå®éãã»ã¢ãã«éãã§èŠæ¯ã¹ããšããããå§ããŠã¿ãŠãã ããã