
LangChain & GPT-3 èšå®å€äžèЧã¡ã¢
LangChainã«å¿
èŠãªèšå®å€ã«ã€ããŠãæ
å ±ã忣ããŠãã颿°èšå®ã«èŠåŽãããããæ
å ±ãæ¬ããŒãžã«ãŸãšããŸããã
å
¬éã¯ããŠãããŸãããå人èšé²çšã®ãããæªå®æã®ç¶æ
ã§å
¬éããŠãããŸãã
1. ã¢ãã«å / model_name: str = "text-davinci-003"
(OpenAI / "model": "text-davinci-003")
GPT-3ã®ã¢ãã«ã¯ä»¥äžã®3ã€ãæäŸãããŠããŸãã
text-davinci-003
- Max Request / 4,000 tokens
- Pricing / $0.0200 -ï¿¥2.6 (1K tokens)
- Description / GPT-3ã®äžã§æã髿§èœãªã¢ãã«ã§ããä»ã®ã¢ãã«ã§å¯èœãªããããã¿ã¹ã¯ãå¯èœã§ãå€ãã®å Žåãããé«ãå質ãé·ãåºåãããè¯ãåœä»€è¿œåŸæ§ãåŸãããŸãããŸããããã¹ãã«è£å®èšå·ãæ¿å ¥ããããšãå¯èœã§ãã
text-curie-001
- Max Request / 2,048 tokens
- Pricing / $0.0020 -ï¿¥0.26 (1K tokens)
- Description / éåžžã«é«æ©èœã ããDavinciããé«éã§äœäŸ¡æ Œã
text-babbage-001
- Max Request / 2,048 tokens
- Pricing / $0.0005 -ï¿¥0.065 (1K tokens)
- çŽ çŽãªå¿çãå¯èœã§ãéåžžã«éããäœã³ã¹ãã
text-ada-001
- Max Request / 2,048 tokens
- Pricing / $0.0004 -ï¿¥0.052 (1K tokens)
- çŽ çŽãªå¿çãå¯èœã§ãéåžžã«éããäœã³ã¹ãã
https://openai.com/api/pricing/
2. ããŒã¯ã³ / max_tokens: int = 256
(OpenAI / "max_tokens": 7,)
GPTãã¡ããªãŒã¯ãããã¹ããããŒã¯ã³ã«å€æããããšã«ãã£ãŠåŠçããŠããŸããGPTã¯ãããŒã¯ã³éã®çµ±èšçé¢ä¿ãçè§£ããäžé£ã®ããŒã¯ã³ã®æ¬¡ã®ããŒã¯ã³ãçæããŸãã
ããŒã¯ã³ã¯ä»¥äžã®ãµã€ãã§ãã©ã®ããã«ããã¹ããããŒã¯ã³åããŠããããå¯èŠåã§ããŸãã
2-1.max_tokens:int
max_tokensãã©ã¡ãŒã¿ã¯ãAPIãè¿ãããŒã¯ã³ã®æ°ã®äžéãèšå®ããŸãã
ããã³ããã®ããŒã¯ã³æ°ãš max_tokens ãè¶³ãããã®ããã¢ãã«ã®ã³ã³ããã¹ãé·ãè¶ ããããšã¯ã§ããŸãããã»ãšãã©ã®æ©çš®ã®ã³ã³ãã¯ã¹ãé·ã¯ 2048 ã§ã (ãã ã 4096 ããµããŒãããææ°æ©çš®ã¯é€ã)ã
>ããã³ããã®ããŒã¯ã³æ°ãš max_tokens ãè¶³ãããã®ããã¢ãã«ã®ã³ã³ããã¹ãé·ãè¶
ããããšã¯ã§ããŸããã
ã¢ãã«ã" text-curie-001(2048 ã³ã³ããã¹ãé·)"ãããã³ããã"How much has Microsoft invested in AI?(8 tokens)"ãéä¿¡ããå Žåãmax_tokensã"2048"ãšèšå®ããŠããAPIããè¿ä¿¡ãããããŒã¯ã³æ°ã¯2040ãæå€§å€ãšãªããŸãã
2-2.ããŒã¯ã³ã𿥿¬èªã«ã€ããŠ
以äžã¯ãåäžå å®¹ã®æç« ããè±èªã»æ¥æ¬èªã§ããŒã¯ã³æ°ãã«ãŠã³ãããŠããŸããäžèšã®äŸã®éããè±èªã¯åèªããšã«ã1ããŒã¯ã³ãäœæãããŠããã®ã«å¯ŸããŠæ¥æ¬èªã§ã¯ãæåããšã«ïŒããŒã¯ã³ãäœæãããŠããŸããäžèšäŸã§ã¯ãæ¥æ¬èªã¯è±èªã«æ¯ã¹ããŒã¯ã³ãïŒåäœæãããŸãããã®ãããOpen AI APIã«æ¥æ¬èªãçšããå Žåãè±èªãçšããå Žåã«æ¯ã¹ãäžèšäŸã§ã¯ïŒåå²é«ã«ãªããŸãã


3.ãµã³ããªã³ã°æž©åºŠ / temperature: float = 0.75
(OpenAI / "temperature": 0,)
ãããã«ãã颿°ïŒäœã ãšæããã颿°ã§ãã
çãã®ã©ã³ãã æ§ãèšå®ããŠããŸãã
(ååã¯ã枩床ã§ãéåãå€åããååãã€ã¡ãŒãžããŠããïŒ)
枩床ãäœãã»ã©ãGPTã¯ãåºçŸçã®é«ãåèªãéžæããããã«ãªããŸããçããïŒã€ãããªãå Žåã¯ã枩床ãäœãèšå®ããå¿ èŠããããŸããéã«ãã¢ã€ãã¢ãåºããããšããç©èªãäœããããšãã¯ã枩床ãé«ããããšå€æ§æ§ããããããŸãã
枩床ïŒ0ã®GPT-3ã䜿ã£ãŠã"How to make "ãšããæç« ã宿ããããšã宿ãåŸãããŸãã"a good impression on a first date"ïŒåããŒãã§å¥œå°è±¡ãäžããïŒããããTemperature = 1ã§ç¹°ãè¿ããšããã¿ãŒãã³å·»ãã®ã³ã³ããããã¢ããããæ²¹ãã»ãšãã©å šã䜿ããªãããšãããã€ã³ã¯ã©ãã1ã®æ°ãµãŒããŒããŸã§åºãŠããã®ã§ããéããããããŸããïŒ
æã ãTemperature ãã¯ãªãšã€ãã£ããã£èšå®ãšåŒã¶äººãããŸãããå ¬åŒããã¥ã¡ã³ãã§ã¯ãã®ãããªã©ãã«ã¯æšå¥šãããŠããŸãããã¯ãªãšã€ãã£ããã£ã¯åã«ã©ã³ãã æ§ãäžããããšãããè€éã§ãã
枩床ïŒ
枩床0ã§ããç§ã®å¥œããªåç©ã¯ïŒããšèããŠã¿ãŸãããã
ã©ã³ãã æ§ã0ã«å¶éãããŠããããšããäºæ³ãããããã«ãGPT-3ã¯æã確çã®é«ãå®æåœ¢ã§ãããa dogããå°ãåºãã§ãããã
ã©ã³ãã æ§ãæé€ããããšã§ãããäžã€ã®å¹æããããŸããGPT-3ã¯ãäžããããããã³ããã«å¯ŸããŠåžžã«åãåºåãããã®ã§ããããã³ããã10åå®è¡ãããšãããå šãåãåºåã10ååŸãããŸãããæž©åºŠãäœããšãå®å®ãããæã確çã®é«ãåºåãå¿ èŠãªå Žåã«é©ããŠããŸããïŒäºå®ã®åºåãåé¡ãªã©ïŒ
ã確çã衚瀺ãããèšå®ã«ãããGPT-3ãäžçãã©ã®ããã«èŠãŠãããããããŠæ¬¡ã«æ¥ãã¹ãåèªïŒããŒã¯ã³ïŒãèŠãããšãã§ããŸãã
é©ããªããã"dog "ã«æ¬¡ãã§ç¢ºçã®é«ãåºå㯠"cat "ã§ã3çªç®ã¯ "gir"ã"girffe "ããæ¥ãããŒã¯ã³ã§ããå¯èœæ§ãéåžžã«é«ãã®ã§ããã€ãŸããã©ã³ãã æ§ãšããã®ã¯ãGPT-3ãæ§ã ãªç¢ºçã®ããŒã¯ã³ãäœæããŠããããšãæå³ããŠããã®ã§ãã
枩床ïŒ
枩床1ã«èšå®ãããšãéåžžã«äžè²«æ§ã®ãªããæã«ã¯è峿·±ãçµæãåŸãããŸãããªãŒãã³ãšã³ãã®ã¿ã¹ã¯ã§ãã£ãŠããæž©åºŠå€1ã䜿çšããã®ã¯ç¹å¥ãªå Žåã®ã¿ã«ããŠãã ãããã¹ããŒãªãŒã®å®æãã¢ã€ãã¢åºãã®å Žåãæž©åºŠå€ã¯0.7ãã0.9ã®éã§ããããšãäžè¬çã§ããæž©åºŠ0ãšã¯åºåã倧ããç°ãªãã"Wibblezoo "ã®å Žåãåç©ã§ãããããŸãããGPT-3ã¯æèãç¶æãããããã®èšå®ã§ã¯ä¿¡é Œæ§ãäœããªããŸãããã®ãããªèšå®ã«ãããšãé·ãæç« ã§ã¯GPT-3ã®æ¹ãæ©ãè±åããŠããŸãããšãäºæ³ãããŸãã
枩床0.75
äžè¬çã«ãã¯ãªãšã€ãã£ããªã¿ã¹ã¯ã§ã¯0.70ïœ0.90ã®æž©åºŠãæãäžè¬çãšãããŠããŸããäžã®åºåãèŠãåã«ããç§ã®å¥œããªåç©ã¯ãã®è£å®ã®ããã«èšå®æž©åºŠ0.75ã§GPT-3ãã©ã®ãããªåºåãçæããããæšæž¬ããŠã¿ãŠãã ãããã©ã³ãã æ§ãå°ãäœããªã£ãããšã§ãããå®å®ããçµæãåŸãããŠããŸããGPT-3ã¯åç©ã®ããåŸã«ããªãªããæã€ããšãå€ããªããŸããããŽã§ããã©ããã«ãåºãã®ã¯ããã®ã§ãããå®åšããªãåç©ã¯åºãŠããŸããã
枩床èšå®ã«ã¯äžè¬çãªæšå¥šäºé ãããã€ããããŸãããæ±ºãŸã£ããã®ã¯ãããŸãããããã¯æãéèŠãªèšå®ã®1ã€ã§ããããããããããšè©ŠããŠã¿ãŠãããŸããŸãªçš®é¡ã®ããã³ããã«ã©ã®ãããªåœ±é¿ãäžãããã確èªãã䟡å€ããããŸããããè¯ãããã³ãã¿ãŒãšãªãããã«åœ¹ç«ã¡ãŸãã



4.top_p: float = 1
(OpenAI / "top_p": 1,)
Temperatureããã©ã€ã³ãã æ§ã颿°ã«èšå®ãã確ççãªæç« ãåºåããã®ã«å¯Ÿããtop_p=0.1ã¯ã確çã®é«ãäžäœ10%ã®åè£ããéžæãããŸããå€ãå°ããããããšã«ãããåè£ã確çã®é«ããã®ããéžã°ããŸãã
Open AI
ãtemperatureãã«ãããµã³ããªã³ã°ã«ä»£ãããã®ã
æ žãµã³ããªã³ã°ãšåŒã°ããã
確ç質éãäžäœ_pã®ããŒã¯ã³ã®çµæãèæ ®ããã¢ãã«ããããŸããã€ãŸãã0.1ã¯äžäœ10%ã®ç¢ºçãæ§æããããŒã¯ã³ã®ã¿ãèæ ®ãããããšãæå³ããŸãã
äžè¬çã«ãtop_pãtemperatureã倿Žããããšãæšå¥šããããäž¡æ¹ã¯æšå¥šããªãã
LangChain
åã¹ãããã§èæ ®ãã¹ãããŒã¯ã³ã®ç·ç¢ºç質éã
https://langchain.readthedocs.io/en/latest/reference/modules/llms.html
5.frequency_penalty: float = 0
æ¢åºã®åèªãçšãããã©ãããèšå®ããŸãã
-2.0ã®å Žåãåãåèªãç¹°ãè¿ãçŸããããã«ãªããŸãã
2.0ã®å Žåãåãåèªã䜿ãããšãé¿ããŸãã
Frequencyã§ã¯ãåãåèªã䜿ã£ãåæ°ã«å¿ããŠãããã«ãã£ãäžããŸãã
Open AI
-2.0 ãã 2.0 ã®éã®æ°ãæ£ã®å€ã¯ããããŸã§ã®ããã¹ãã«ãããæ¢åã®é »åºŠã«åºã¥ããŠæ°ããããŒã¯ã³ã«ããã«ãã£ãäžããã¢ãã«ãåãè¡ããã®ãŸãŸç¹°ãè¿ãå¯èœæ§ãæžå°ãããã
LangChain
ç¹°ãè¿ãããããŒã¯ã³ãé »åºŠã«å¿ããŠããã«ãã£ãŒã課ãã
https://langchain.readthedocs.io/en/latest/reference/modules/llms.html
6.presence_penalty: float = 0
æ¢åºã®åèªãçšãããã©ãããèšå®ããŸãã
-2.0ã®å Žåãåãåèªãç¹°ãè¿ãçŸããããã«ãªããŸãã
2.0ã®å Žåãåãåèªã䜿ãããšãé¿ããŸãã
presenceã§ã¯ãåèªãç»å Žãããã©ããã§ãããã«ãã£ãäžããŸãã
Open AI
-2.0 ãã 2.0 ã®éã®æ°å€ãæ£ã®å€ã¯ãæ°ããããŒã¯ã³ããããŸã§ã®ããã¹ãã«çŸãããã©ããã«åºã¥ããŠããã«ãã£ã課ããæ°ãããããã¯ã«ã€ããŠè©±ãã¢ãã«ã®å¯èœæ§ãé«ããã
LangChain
ããŒã¯ã³ã®ç¹°ãè¿ãã«ããã«ãã£ã課ãã
https://langchain.readthedocs.io/en/latest/reference/modules/llms.html
7.n: int = 1
(OpenAI / "n": 1,)
Open AI
åããã³ããã«å¯ŸããŠçæãããå ¥åè£å®ã®æ°ã
泚æ: ãã®ãã©ã¡ãŒã¿ã¯å€ãã®è£å®ãçæãããããããŒã¯ã³å²ãåœãŠãããã«æ¶è²»ããŠããŸãå¯èœæ§ããããŸããmax_tokens ãš stop ã«é©åãªå€ãèšå®ããæ éã«äœ¿çšããŠãã ããã
LangChain
åããã³ããã«å¯ŸããŠçæããã³ã³ããªãŒãæ°ãæå®ããŸãã
https://langchain.readthedocs.io/en/latest/reference/modules/llms.html
8.best_of: int = 1
Open AI
ãµãŒããµã€ãã§ best_of completions ãçæããããã¹ããïŒããŒã¯ã³ããšã®å¯Ÿæ°ç¢ºçãæãé«ããã®ïŒãè¿ããçµæãã¹ããªãŒãã³ã°ããããšã¯ã§ããŸããã
n ãšäžç·ã«äœ¿ããšãbest_of ãåè£ã®æ°ããn ãè¿ãæ°ãæå®ããŸã - best_of 㯠n ããã倧ãããªããã°ãªããŸããã
泚æ: ãã®ãã©ã¡ãŒã¿ã¯å€ãã®è£å®åè£ãçæãããããããŒã¯ã³ã®å²ãåœãŠãããã«æ¶è²»ããŠããŸãå¯èœæ§ããããŸããmax_tokens ãš stop ã«é©åãªå€ãèšå®ããæ éã«äœ¿çšããŠãã ããã
LangChain
ãµãŒããµã€ãã§ best_of completions ãçæãã"best" ãè¿ãã
https://langchain.readthedocs.io/en/latest/reference/modules/llms.html
9.model_kwargs: Dict[str, Any] = None
LangChain
æç€ºçã«æå®ãããŠããªãcreate callã«æå¹ãªã¢ãã«ãã©ã¡ãŒã¿ãä¿æããã
10.batch_size: int = 20
LangChain
è€æ°ã®ããã¥ã¡ã³ããæž¡ããŠçæããéã«äœ¿çšããããããµã€ãºã
11.request_timeout: Optional[Union[float, Tuple[float, float]]] = None
LangChain
OpenAIè£å®APIãžã®ãªã¯ãšã¹ãã®ã¿ã€ã ã¢ãŠããããã©ã«ãã¯600ç§ã§ãã
12.logit_bias:
Logit_bias ã¯ãæå®ããããŒã¯ã³ã Completion ã«åºçŸããå¯èœæ§ã倿Žãããªãã·ã§ã³ã®ãã©ã¡ãŒã¿ã§ãã
ãã®ãã©ã¡ãŒã¿ã¯ãããŒã¯ã³ãšã-100 (çŠæ¢) ãã 100 (ããŒã¯ã³ã®æä»çéžæ) ãŸã§ã®ãã€ã¢ã¹å€ãé¢é£ä»ãã JSON ãªããžã§ã¯ããåãåããŸãã1 ã 1 ã®ãããªäžçšåºŠã®å€ã§ã¯ãããŒã¯ã³ãéžæããã確çãããå°ããå€åããŸããlogit_biasãã©ã¡ãŒã¿ã䜿çšããå Žåããã€ã¢ã¹ã¯ãµã³ããªã³ã°ã®åã«ã¢ãã«ã«ãã£ãŠçæãããããžããã«è¿œå ãããŸãã