
LangChainã«ãã質åå¿çããŒã¿ã»ããã®èªåçæã詊ã
ãLangChainãã«ãã質åå¿çããŒã¿ã»ããã®èªåçæã詊ããã®ã§ãŸãšããŸããã
åå
1. Generate Examples
LangChainã®ãGenerate Examplesããšããæ©èœã䜿ã£ãŠã3ã€ã»ã©ã®ãµã³ãã«ããŒã¿ãå ã«ããªãªãžãã«ã®è³ªåå¿çããŒã¿ã»ãããèªåçæããŠã¿ãŸãã
2. 質åå¿çããŒã¿ã»ãã
質åå¿çããŒã¿ã»ããã¯ã質åå¿çã¿ã¹ã¯ãAIã«åŠç¿ãããããã®ããŒã¿ã»ããã§ããContextãQuestionãAnswerã®3ã€ã®ããŒã¿ã§æ§æãããŸããAnswerã¯ãContextå ã«å«ãŸããå¿ èŠããããŸãã
ãäŸã
â Context
ãããªã¿ã³ã¯ãè¹ã§ãã¹ãã²ããã£ãã¿ããã®ãããŒãã³ããã ãªã©ãšå ±ã«ãããã±ãã£ããã§çããæŽé£ã§ãããæ¥æ¬ã§åµäœãããæ¥æ¬é¢šãã¹ã¿æçã§ãããé¡äŒŒã®åãæã€ã€ã¿ãªã¢æçã®ã¹ãã²ããã£ã»ã¢ãã©ã»ããã¬ã¿ãŒããšã¯ç°ãªãããããªã¿ã³ã«é¡äŒŒããåã§åŒã°ãããã¹ã¿æçã¯å¹ åºãååšããããæ¬çš¿ã§ã¯ãç¬¬äºæ¬¡äžç倧æŠåŸã«æ¥æ¬ã®å«è¶åºãæŽé£å±ã§åºãæäŸãããŠãããè»è³ªå°éºŠãåæãšããã³ã·ã®ãªã麺ãã±ãã£ããã§çãããã®ãäžå¿ã«è§£èª¬ããããã®åšèŸºã®é¡äŒŒãããã¹ã¿æçã«ã€ããŠãé©å®è§£èª¬ããã
â Question
ãããªã¿ã³ã«çšãããœãŒã¹ã¯äœã§ããã
â Answer
ãããã±ãã£ãã
æ¥æ¬èªã®è³ªåå¿çã®ããŒã¿ã»ããã¯ããJaQuADããæåã§ããä»åã¯ãããããããŒã¿ã3ã€ã»ã©äœ¿ãããŠããããŸããã
3. Colabã§ã®å®è¡
Google Colabã§ã®å®è¡æé ã¯ã次ã®ãšãã§ãã
(1) ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã
# ããã±ãŒãžã®ã€ã³ã¹ããŒã«
!pip install langchain
!pip install openai(2) ç°å¢å€æ°ã®æºåã
以äžã®ã³ãŒãã® <OpenAI_APIã®ããŒã¯ã³> ã«ã¯OpenAI APIã®ããŒã¯ã³ãæå®ããŸãã(ææ)
import os
os.environ["OPENAI_API_KEY"] = "<OpenAI_APIã®ããŒã¯ã³>"(4) ãµã³ãã«ããŒã¿ã®æºåã
ãJaQuADããã3ã€ã»ã©ããŒã¿ã䜿ãããŠããã£ãŠã以äžã®ããã«å®çŸ©ããŸããquestionã«Â "Context: <Context>\nQuestion: <Question>" ãšContextãå«ããŠããã®ããã€ã³ãã§ãã
examples = [
{
"question": "Context: å®®ïšé§¿(ã¿ãããã¯ããã1941幎1æ5æ¥-)ã¯ãæ¥æ¬ã®æ ç»ç£ç£ãã¢ãã¡ãŒã¿ãŒã挫ç»å®¶ã§ãããå¥åãšããŠç§æŽ¥äžæ(ããã€ãã¶ãã)ãç
§æš¹å(ãŠããã)ããããæ ç»ãªã©ã®ã¯ã¬ãžããã¿ã€ãã«ã§ã¯å®®åŽé§¿(ã¿ãããã¯ãã)ãšè¡šèšãããããšãããã\n\næ ªåŒäŒç€Ÿã¹ã¿ãžãªãžããªåç· åœ¹ãå
¬çè²¡å£æ³äººåŸ³éèšå¿µã¢ãã¡ãŒã·ã§ã³æå財å£çäºé·ãäžé·¹åžç«ã¢ãã¡ãŒã·ã§ã³çŸè¡é€š(äžé·¹ã®æ£®ãžããªçŸè¡é€š)通䞻ã§ããã\n\næ±äº¬åºæ±äº¬åžåºèº«ãåŠç¿é¢å€§åŠæ¿çµåŠéšåæ¥ãããæ±äº¬éœå°éäºåžãäžé·¹åžåèªåžæ°ãåŒççææ²¢åžåšäœãã¢ãã¡ãŒã·ã§ã³å¶äœäŒç€Ÿã¹ã¿ãžãªãžããªã«æ ç»ç£ç£ãšããŠæå±ãã2005幎4æããåç· åœ¹ãšãªã£ãããŸããèªèº«ãäŒç»éçºããäžé·¹åžç«ã¢ãã¡ãŒã·ã§ã³çŸè¡é€š(äžé·¹ã®æ£®ãžããªçŸè¡é€š)ã®é€šäž»ã§ããã\n\nå人ã®äºåæã«ãæ ªåŒäŒç€ŸäºéЬåããã£ããäž»ã«å®®ïšã®èäœæš©é¢é£ã®ç®¡çãè¡ã£ãŠããããã€ãŠã¯èªèº«ã代衚åç· åœ¹ç€Ÿé·ãåããŠãããã2016幎ã¹ã¿ãžãªãžããªã«åžåå䜵ãè§£æ£ããã\n\næç
å®¶ãšããŠãç¥ãããŠããã\nQuestion: å®®åŽé§¿ã通䞻ãšããŠããçŸè¡é€šã®ååã¯?",
"answer": "äžé·¹åžç«ã¢ãã¡ãŒã·ã§ã³çŸè¡é€š"
},
{
"question": "Context: ãŽãžã©ã¯1954幎ã«ç¬¬1äœãå
¬éãããŠä»¥éãåäžçŽä»¥äžã«äºã£ãŠè£œäœãããŠããæªç£æ ç»ã§ãããæŒæè
ãã¬ãããã¿(çããã¿)ã«å
¥ã£ãŠæŒããææ³ãäž»äœãšããŠããããã®ææ³ã¯ä»¥åŸãæ¥æ¬ã®ç¹æ®æ ç»ããã¬ãç¹æ®çªçµã®äž»æµãšãªã£ããæªç£ãæªç£åå£«ã®æ Œéã®ã¿ãªãããéãåãäœæ°ãæ»é²ããè»éçã®åšèŸºã®äººéæåãæ¯åæãã奜è©ãåŸãŠãããæ¥æ¬ã®ã¿ãªããæµ·å€ã§ãäžæ ãããŠäººæ°ãåŒã³ãããªãŠããã»ãŠã©ãŒã¯ã»ãªãã»ãã§ãŒã ã«æ¥æ¬ã®ãã£ã©ã¯ã¿ãŒãšããŠã¯å¯äžã®äŸãšããŠç»é²ãããŠããã\nQuestion: ããŽãžã©ãã®æ®åœ±ã¯æŒæè
ãã©ãã«å
¥ã£ãŠè¡ãããŸãã?",
"answer": "ã¬ãããã¿"
},
{
"question": "Context: ãããªã¿ã³ã¯ãè¹ã§ãã¹ãã²ããã£ãã¿ããã®ãããŒãã³ããã ãªã©ãšå
±ã«ãããã±ãã£ããã§çããæŽé£ã§ãããæ¥æ¬ã§åµäœãããæ¥æ¬é¢šãã¹ã¿æçã§ãããé¡äŒŒã®åãæã€ã€ã¿ãªã¢æçã®ã¹ãã²ããã£ã»ã¢ãã©ã»ããã¬ã¿ãŒããšã¯ç°ãªãããããªã¿ã³ã«é¡äŒŒããåã§åŒã°ãããã¹ã¿æçã¯å¹
åºãååšããããæ¬çš¿ã§ã¯ãç¬¬äºæ¬¡äžç倧æŠåŸã«æ¥æ¬ã®å«è¶åºãæŽé£å±ã§åºãæäŸãããŠãããè»è³ªå°éºŠãåæãšããã³ã·ã®ãªã麺ãã±ãã£ããã§çãããã®ãäžå¿ã«è§£èª¬ããããã®åšèŸºã®é¡äŒŒãããã¹ã¿æçã«ã€ããŠãé©å®è§£èª¬ããã\nQuestion: ãããªã¿ã³ã«çšãããœãŒã¹ã¯äœã§ããã",
"answer": "ãããã±ãã£ãã"
},
](5) ããã³ãããã³ãã¬ãŒãã®æºåã
from langchain.llms.openai import OpenAI
from langchain.example_generator import generate_example
from langchain.prompts import PromptTemplate
# ããã³ãããã³ãã¬ãŒãã®æºå
example_template = PromptTemplate(
template="{question}\n{answer}",
input_variables=["question", "answer"])(6) ããŒã¿ã®çæã
generate_example()ã«ãµã³ãã«ããŒã¿ãLLMãããã³ãããã³ãã¬ãŒããæž¡ããŠå®è¡ããŸãã
# ããŒã¿ã®çæ
new_example = generate_example(examples, OpenAI(max_tokens=2000), example_template)
print(new_example)Context: ãã«ãã¥ãŠã¯ããã±ã¢ã³ã®äžã§æã人æ°ããããäžçäžã§æãããŠãããã±ã¢ã³ã§ãããžã ãªãŒããŒã®ãµãã·ãæåã«æãŸãããã±ã¢ã³ã§ããµãã·ãšå
±ã«åéºãããŠãããŸããåæ§çãªããŒãºã衚æ
ã§ãåäŸãã倧人ãŸã§æ§ãã®ååšãšãªã£ãŠããŸãã
Question: ãã«ãã¥ãŠãæåã«æãŸããããã®ã¯èª°ã§ãããïŒ
ãµãã·ä»ã®äŸã¯ã次ã®ãšããã§ãã
Context: ã¹ã¿ãŒãŠã©ãŒãºã¯ã1977幎ã«å
¬éãããç±³åœã®SFæ ç»ã§ããããžã§ãŒãžã»ã«ãŒã«ã¹ç£ç£ã®ããã¥ãŒäœã§ãããSFæ ç»å²ã«æ®ãåäœãšãªã£ããã¹ã¿ãŒãŠã©ãŒãºã®èå°ã¯ãéæ²³ç³»ãèå°ãšããæ¶ç©ºã®äžçã§ããã䞻人å
¬ã®ã«ãŒã¯ã»ã¹ã«ã€ãŠã©ãŒã«ãŒã¯ããžã§ãã€å£«ã§ãããªãïŒã¯ã³ã»ã±ããŒããæå°ããåžåœè»ãšæŠãã¹ããŒãªãŒãæãããŠããã
Question: ã¹ã¿ãŒãŠã©ãŒãºã®ç£ç£ã¯èª°ã§ããããã
ãžã§ãŒãžã»ã«ãŒã«ã¹Context: ã¢ã³ã¹ã¿ãŒã¹ãã©ã€ã¯ã¯ã2010幎ã«ãµãŒãã¹ãéå§ããã¹ããŒããã©ã³åãã²ãŒã ã§ããããã¬ã€ã€ãŒã¯ã¢ã³ã¹ã¿ãŒãã³ã¬ã¯ã·ã§ã³ããŠãä»ã®ãã¬ã€ã€ãŒãšããã«ãè¡ããããã«ã§ã¯ãèªåã®ã¢ã³ã¹ã¿ãŒãæäœããŠçžæã¢ã³ã¹ã¿ãŒãåãããšãç®æšãšãããããã«ã¯æå€§3vs3ã§è¡ããããã²ãŒã å
ã«ã¯è€æ°ã®ã¢ã³ã¹ã¿ãŒãååšããã¢ã³ã¹ã¿ãŒã¯å±æ§å¥ã«åé¡ãããŠããã屿§å¥ã«ã¯ãç«ãæ°Žã颚ãå
ãéãªã©ããããã¢ã³ã¹ã¿ãŒã®èœåå€(æ»æåãé²åŸ¡åãªã©)ã¯ãã¬ãã«ã¢ããã«ãã£ãŠäžæãããããšãã§ãããã¢ã³ã¹ã¿ãŒã¹ãã©ã€ã¯ã¯ã2013幎ãã2019幎ãŸã§7幎éã«æž¡ã£ãŠæŸéããããã¬ãã¢ãã¡ãã¢ã³ã¹ãã¢ãã¡ããå±éããŠããã
Question: ã¢ã³ã¹ã¿ãŒã¹ãã©ã€ã¯ã®ããã«ã¯äœå¯Ÿäœã§è¡ãããŸããïŒ
3vs3Context: ãã¯ããã«ãã¯ãã¢ã¡ãªã«ã®ãã³ããŒã¬ãŒã»ãã§ãŒã³åºã§ãããæ¬ç€Ÿã¯ã€ãªãã€å·ãªãŒã¯ãã«ãã¯ã«ãããäžçååœã§åºèãå±éããŠããã1940幎ããªãã¯ã»ãã¯ããã«ããšãã¯ããã«ãå
åŒãç±³åœã«ãªãã©ã«ãã¢å·ãµã³ã¿ã»ã¢ãã«ã«åµæ¥ããã圌ãã¯ãã³ããŒã¬ãŒãæè»œã«é£ã¹ãããããããã³ããŒã¬ãŒãå å·¥ããŠäœãæ°ããæçãèæ¡ããã1955幎ã圌ãã¯çŸåšã®åœ¢æ
ãšãªããã¹ããŒãã»ãµãŒãã¹ããå°å
¥ããã
Question: ãã¯ããã«ãã®åµæ¥å°ã¯ã©ãã§ããïŒ
ã«ãªãã©ã«ãã¢å·ãµã³ã¿ã»ã¢ãã«Context: ã«ã«ãããŒã©ã¯ããã¹ã¿æçã®äžã§ãæãæåãªã€ã¿ãªã¢æçã®äžã€ã§ããããã«ã«ãããŒã©ããšããèšèã¯ã€ã¿ãªã¢èªã§ãããŒãºãšå¡©èŸããã®ããæå³ãããã«ã«ãããŒã©ã¯ãããŒãºã䜿çšããã¬ã·ãã§äœãããå®¶åºæçã§ãããããåå®¶åºã®ã¬ã·ããç°ãªã£ãŠãããã ããå€ãã®å Žåããã¹ã¿ãè¹ã§ãŠãããã«ããŒãºãªã©ã®èª¿å³æãå ãããªãŒãã³ã§æž©ããã®ãäžè¬çãªäœãæ¹ãšãªã£ãŠããã
Question: ã«ã«ãããŒã©ãäœãéãèª¿å³æãšããŠäœ¿ããããã®ã¯äœã§ããã
ããŒãºContext: ã¡ãã·ã³æçã¯ãã¡ãã·ã³æ¬åãäžç±³ããããŠåç±³ã®3ã€ã®å°åã§èŠããã倿§ãªæçãæããŸããããããã®å°åã«ã¯ç°ãªãæçããããåºæ¬çãªãã®ã«ã¯ãã¡ãã·ã³æ¬åã®ãããã§ã¹ããäžç±³ã®ãã¿ã³ã¹ããªã©ããããŸããã¡ãã·ã³æçã¯ãã³ãŒã³ãããã§ã¹ãããªãã¿ã³ã¹ãã¬ãŒãªãã¯ããªããªã³ãªã©ã掻çšãããé
žå³ãèŸå³ãçå³ã調åãããã¬ãŒããŒãç¹åŸŽã§ãã
Question: ã¡ãã·ã³æçã®åºæ¬çãªãã®ãšããŠãäœãæããããŸããã
ããã§ã¹ãã¿ã³ã¹ãã©ãšãã£è±ãã§ãããã¢ãã¡ãæ ç»ãæçãšããµã³ãã«ããŒã¿ã§äžãããžã£ã³ã«ã§äœæãããããåŸåãããããã§ãã