ããã«ã¡ã¯ãSupership ãããã¯ãçµ±æ¬éšã® @ps010 ã§ãã
æ®æ®µã¯åºåã»ããŒã±ãã£ã³ã°é åã§ãåææ¥åãåºåã»ã°ã¡ã³ãã®äœæãæ
åœããŠããŸãã
ãã®èšäºã¯ãSupershipã°ã«ãŒã Advent Calendar 2023 ã®13æ¥ç®ã®èšäºã«ãªããŸãã
ã¯ããã«
ä»å¹Žã¯ãèªç¶èšèªã®çæAIã«æ³šç®ãéãŸããŸããããç§ã®æå±ããŒã ã§ãLLMãçšããçç£æ§åäžã«åãçµãã§ãŸãããå人çã«ã¯ãQAãããã«äœ¿ããã RAG ã«é¢å¿ããããŸããå°ãåãŸã§å€«ãã«ã¹ã¿ããŒãµããŒãå€åã ã£ãã®ã§ããã人æäžè¶³ã®ãããæ®æ¥ãå€ãã£ãã®ã§ãQAãããã§å¹çåã§ããªããã®ãïŒãšæããèå³ãæã¡å§ããŸããã
RAGã調ã¹ããšãç°¡åã«ã¯ããåçãåŸãããªããããªã®ã§ãä»åã¯ãRAGã®ãµã³ãã«ãäœã£ãŠãã©ãã粟床åäžã®ãã€ã³ãã«ãªãã®ãè§£æããŠãããããšæããŸãã
èšäºã®ç®ç
ãã®èšäºã¯ãRAGã®ä»çµã¿ãšæ¹åãã€ã³ãã®ææ¡ãç®çãšããŸãããµã³ãã«ããŒã¿ãçšããŠæ¹åæ¡ã®å®éšãè¡ããããŒã¹ã©ã€ã³ãšçµæãæ¯èŒããŸããèšäºã¯ä»¥äž4ã€ã®ããŒãã§æ§æãããŠããŸããæ¬æãé·ãã®ã§ããªã³ã¯ãç®æ¬¡ããæ°ã«ãªããšãããžé£ãã§ãã ããã
- RAGã®æŠèŠïŒ RAGãšã¯äœããä»çµã¿ãæ©èœã®èª¬æ
- RAGãµã³ãã«ïŒ RAGã®äœãæ¹(ãµã³ãã«ã³ãŒã)ãšããŒã¹ã©ã€ã³ã®çµæ
- æ¹åæ¡ã®å®éšïŒ æ¹åæ¡ã®ææ³ç޹ä»ãäœãæ¹(ãµã³ãã«ã³ãŒã)ãšãã®çµæ
- ãŸãšãïŒ æ¹åæ¡ã®å®éšçµæããããã£ãããš
å¿ããæ¹ã®ããã®èŠçŽïŒäŒãããããšïŒ
- RAGãšã¯ãæ
å ±æ€çŽ¢ãšLLMã«ããåççæã®2ã€ã®ã³ã³ããŒãã³ããçµã¿åãããAIãã¬ãŒã ã¯ãŒã¯ã§ã
- 粟床æ¹åã®ãã¹ãã®çµæã3ã€ã®ããšãããããŸããïŒãã¹ãçµæã¯ãã¡ãïŒ
- æ€çŽ¢å¯Ÿè±¡ã®ããã¹ã(ãã£ã³ã¯1)ã¯ãç¥èããŸãšãŸã£ãŠããåäœã§åå²ããã®ããã
- ä»åã¯400åçšåºŠã段èœåºåãã Good!!
- 質åãšãã£ã³ã¯ã®é¡äŒŒåºŠãããã工倫ã广ç
- æ€çŽ¢ã«ä»®ã®åçãæž¡ã HyDE ã¯å¹æãããããðââïž
- ä»å詊ããªãã£ããã¯ãã«æ€çŽ¢ããã£ã³ã¯ã®èŠçŽã®å·¥å€«ã«æ¹åã®äœå°ã倧ããã
- åççæã®LLMã®åœ±é¿ã倧ãã
- æ€çŽ¢å¯Ÿè±¡ã®ããã¹ã(ãã£ã³ã¯1)ã¯ãç¥èããŸãšãŸã£ãŠããåäœã§åå²ããã®ããã
ã§ã¯ã次ã®ç« ããRAGã®èª¬æã«å ¥ããŸãã
RAGã®æŠèŠ
ã¯ããã«ãRAGã®ä»çµã¿ã«ã€ããŠç°¡åã«èª¬æããŸãã
RAGãšã¯
Retrieval Augmented Generation(RAGãæ€çŽ¢æ¡åŒµçæ)ã¯ãæ å ±æ€çŽ¢(Retrieval)ãšããã¹ãçæ(Generation)ãçµã¿åããããã¬ãŒã ã¯ãŒã¯ã§ããéåžžãLLMã¯ãã¬ãŒãã³ã°æã«åŸãæ å ±ã«åºã¥ããŠè³ªåã«åçããŸãããã®ãããææ°æ å ±ãç¬èªç¥èãå¿ èŠãªè³ªåã«ã¯äžæ£ç¢ºãªåçãããããšããããããã解決ããææ®µãšããŠRAGãçšããããŸããRAGã䜿ãããšã§ãLLMã¯èªèº«ãä¿æããæ¢åã®ç¥èã«å ããå€éšã®ããŒã¿ããŒã¹ããæ å ±ãåŒãåºããããã«ãªãããã粟床ã®é«ãåçãæäŸããããšãå¯èœã«ãªããŸãã
RAGã®å¿çšäŸãšããŠã¯ãã«ã¹ã¿ããŒãµãŒãã¹ã§ã®èªåå¿çã·ã¹ãã ãç€Ÿå æ å ±ã®æ€çŽ¢ãå»çæ å ±ã®æäŸãæè¡ãµããŒããªã©ããããŸãã
ã¢ãŒããã¯ãã£
RAGã¯ãæ
å ±æ€çŽ¢ãšåççæãšããäºã€ã®äž»èŠãªã³ã³ããŒãã³ãã§æ§æãããŠããŸããåã³ã³ããŒãã³ãã¯ãAIéçºãã¬ãŒã ã¯ãŒã¯ã® LangChain ãéããŠå¶åŸ¡ãããŸãã

æ å ±æ€çŽ¢
æ å ±æ€çŽ¢ãšã¯ã倧éã®ããã¹ãããŒã¿ããé¢é£ããæ å ±ãèŠã€ãåºãããã»ã¹ãæããŸããRAGã§ã¯ã質åãäžãããããšLLMã¯é¢é£ææžãæ å ±ãããŒã¿ããŒã¹ããæ€çŽ¢ããŸãããã®ããã»ã¹ã§ã¯ã質åãšé¢é£æ§ãé«ãæ å ±ãå¹ççã«æœåºããããã«ããã¯ãã«ç©ºéã¢ãã«ãé¡äŒŒæ§æ€çŽ¢ã¢ã«ãŽãªãºã ã䜿çšããŸãã
åççæ
次ã«åççæã®ããã»ã¹ã§ã¯ãæ€çŽ¢ã§åŸãããæ å ±ãåºã«ããŠãLLMãæ°ããªããã¹ããçæããŸãããã®éçšã§ã¯ãTransformerããŒã¹ã®ã¢ãã«ïŒäŸãã°ãGPT-3ãªã©ïŒãå©çšãããããšãå€ããæ€çŽ¢ãããææžãšè³ªåãå ¥åãšããŠåãåããããã«åºã¥ããåçãçæããŸãã
RAGã®ãŠããŒã¯ãªç¹ã¯ãæ å ±æ€çŽ¢ãšåççæã®çµ±åã«ãããŸããããã«ãããLLMã¯å®éã®ããŒã¿ãåºã«ãæ å ±ã«è£æã¡ããããåçãçæããããšãã§ããŸãããã®ã¢ãããŒãã¯ãæ£ç¢ºæ§ã®é«ãåçãæ±ããããç¶æ³ã§åšåãçºæ®ããŸãã
RAGãµã³ãã«
ããããã¯ãå®éã«RAGã®ãµã³ãã«ãäœã£ãŠãæ¹åãã€ã³ããæ¢ããããšæããŸãã
ããŒã¿ãœãŒã¹
ä»åã¯Wikipediaã®ãè¬éã®ããªãŒã¬ã³ãã®ããŒãžã«é¢ããQAããããäœããŸããWikipediaã¯èäœæš©ããªãŒãªã®ã§ããããããã¹ãã«ã¯éå®ããŸããããŒã¿ã¯Wikipediaã®APIã§ååŸããŸããAPIååŸã®ãµã³ãã«ã³ãŒããèŒããŠããã®ã§ãæãããã¿ãéããŠãåç §ãã ããã
ãµã³ãã«ã³ãŒããè¡šç€ºïŒæãããã¿ïŒ
import requests
def get_wikipedia_page(title):
"""
Wikipediaããæå®ããŒãžã®ããã¹ããæœåºãã
title: WikipediaããŒãžã®ã¿ã€ãã«
return: ããŒãžã®ããã¹ã
"""
url = "https://ja.wikipedia.org/w/api.php"
params = {
"action": "query",
"format": "json",
"titles": title,
"prop": "extracts",
"exlimit": 1,
"explaintext": True,
"redirects": 1,
}
response = requests.get(url, params=params)
data = response.json()
page = next(iter(data['query']['pages'].values()))
return page.get("extract", "")
# ãè¬éã®ããªãŒã¬ã³ãã®ããŒãžãååŸ
page_content = get_wikipedia_page("è¬éã®ããªãŒã¬ã³")
file_path = "./output.txt"
with open(file_path, 'w', encoding='utf-8') as file:
file.write(page_content)
䜿çšã¢ãã«
ãã©ã€ããŒãã§ChatGPT plusãå¥çŽããŠãã®ã§ãåã蟌ã¿ãåççæã®ã¢ãã«ã¯OpenAIã䜿ããŸãããåççæã¯ãã¢ãã«ã®ããŒãžã§ã³ã«ãã£ãŠåçãå€ããå¯èœæ§ãããã®ã§ã2éã詊ããŸããæ å ±æ€çŽ¢ã¯ããªãŒãã³ãœãŒã¹ã§ããŒã¿ããŒã¹ãµãŒããç«ãŠãå¿ èŠã®ãªãFAISSã©ã€ãã©ãªã«ããŸããã
æ å ±æ€çŽ¢
- ãã¯ãã«åã蟌ã¿: text-embedding-ada-002(OpenAI)
- ãã¯ãã«æ€çŽ¢: FAISS(Facebook)
åççæ
ããŒã¹ã©ã€ã³
ã§ã¯ãQAãããã®äœæã«å ¥ããŸããããä»åã¯ããŒã¹ã©ã€ã³ã®ã¹ã¯ãªãããåºã«ããŠããã©ã¡ãŒã¿ãªã©ãå€ããªããæ¹åæ¡ãæ¢ãããšæããŸããã¹ã¯ãªããã¯æãããã¿ã®ãµã³ãã«ã³ãŒãããåç §ãã ããã
ãµã³ãã«ã³ãŒããè¡šç€ºïŒæãããã¿ïŒ
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain import PromptTemplate
from langchain.embeddings import OpenAIEmbeddings
from langchain.chat_models import ChatOpenAI
# utils.configsã§ç®¡çããOpenAIã®APIããŒã®èªã¿èŸŒã¿
import os
import sys
sys.path.append(os.pardir)
from utils import configs
openai_config = configs.set_openai_config()
os.environ["OPENAI_API_KEY"] = openai_config['API_KEY']
# è¬éã®ããªãŒã¬ã³ã®ããã¹ããã¡ã€ã«ã®èªã¿èŸŒã¿
file_path = "./output.txt"
loader = TextLoader(file_path, encoding='utf-8')
documents = loader.load()
# æ
å ±æ€çŽ¢
# ããã¹ãããã£ã³ã¯ã«åå²
text_splitter = CharacterTextSplitter.from_tiktoken_encoder(
separator = "ã", # åºåãæå
chunk_size = 200, # ãã£ã³ã¯ã®æåæ°
chunk_overlap = 50, # ãã£ã³ã¯ãªãŒããŒã©ããã®æåæ°
)
texts = text_splitter.split_documents(documents)
# embeddingã¢ãã«ãå®çŸ©
embs_model = OpenAIEmbeddings(model="text-embedding-ada-002")
# ããã¹ããåã蟌ã¿ããã¯ãã«DBã«æ ŒçŽ
db = FAISS.from_documents(texts, embs_model)
save_path = "./db_freelen"
db.save_local(save_path)
# DBã®ããŒã
db = FAISS.load_local(save_path, embs_model)
# retrieverèšå®ã質åã«é¡äŒŒãããã£ã³ã¯ã®ããŒãæ°ã倿°kã«èšå®
retriever = db.as_retriever(search_kwargs={"k": 3})
# åççæ
# ããã³ãããã³ãã¬ãŒã
DEFAULT_SYSTEM_PROMPT = "åèæ
å ±ãå
ã«ããŠãŒã¶ãŒããã®è³ªåã«ã§ããã ãæ£ç¢ºã«çããŠãã ããã"
text = "{context}\nãŠãŒã¶ããã®è³ªåã¯æ¬¡ã®ãšããã§ãã{question}"
template = "{system}{prompt}".format(
system=DEFAULT_SYSTEM_PROMPT,
prompt=text,
)
# ããã³ããã®èšå®
PROMPT = PromptTemplate(
template=template,
input_variables=["context", "question"],
template_format="f-string"
)
chain_type_kwargs = {"prompt": PROMPT}
# RAG
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
qa = RetrievalQA.from_chain_type(
llm=llm,
retriever=retriever,
chain_type="stuff",
return_source_documents=True,
chain_type_kwargs=chain_type_kwargs,
verbose=True,
)
åçš®èšå®(åŠçããã©ã¡ãŒã¿)
åŠçã®æµã
æ
å ±æ€çŽ¢ãåççæãRAGã®é ã«ä»¥äžã®èšå®ãè¡ããŸãã
- æ
å ±æ€çŽ¢
- ããã¥ã¡ã³ãã®ãã£ã³ã¯1ãžã®å岿¹æ³
- åºåãæåããã£ã³ã¯ã®æåæ°ããªãŒããŒã©ããããæåæ°ãªã©
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ°ïŒé¡äŒŒãã£ã³ã¯æ°ïŒ
- åã蟌ã¿ã«äœ¿ãã¢ãã«
- retrieverïŒæ€çŽ¢ã¢ãã«ïŒ
- ããã¥ã¡ã³ãã®ãã£ã³ã¯1ãžã®å岿¹æ³
- åççæ
- åççæã®LLMã¢ãã«
- RAG
- æ å ±æ€çŽ¢ã åççæã®èšå®
- ãã®ä»ã®èšå®ïŒãœãŒã¹ã®è¡šç€ºãªã©ïŒ
ããŒã¹ã©ã€ã³ã®ãã©ã¡ãŒã¿èšå®ã¯ä»¥äžã®éãã§ãã200æåãã€æç« åäœã§ããã¹ããåããŠãé¡äŒŒãã3ã€ã®ãã£ã³ã¯ãæ€çŽ¢ããæ¹éã§ãã
ãã©ã¡ãŒã¿èšå®
- åºåãæå :
ã - ãã£ã³ã¯ã®æåæ° : 200
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ° : 3
- åççæã®LLMã¢ãã« : gpt-3.5-turbo
質å
è¬éã®ããªãŒã¬ã³QAãããã«ã¯ãããªãŒã¬ã³ãšåž«å ãã©ã³ã¡ã仲éã®åè ããŒãã£ã«é¢ãããšããœãŒãããã3ã€ã®è³ªåãããŠã¿ãŸãã
Q1. ãã©ã³ã¡ãåŒåã«ããã®ã¯èª°ïŒ
ãâ ããªãŒã¬ã³ãæ£è§£ã§ã
Q2. ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯äœïŒ
ãâ éæããå©ããŠããã£ãã®ããã£ããã§ãïŒç»å Žäººç© ããªãŒã¬ã³ ã®ä»¥äžã®åŒçšãæ£è§£ïŒã
æ é·ã§ãããšã«ãã®éèœãéæã«è¥²ããæ»ã«ãããéã«å€§éæ³äœ¿ããã©ã³ã¡ã«å©ãããã圌女ã®åŒåã«ãªã
Q3. ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ïŒ
ãâ æ¬¡åãäžç·ã«åäžçŽæµæãèŠãããšã§ãïŒããããã®ä»¥äžã®åŒçšãæ£è§£ïŒã
50幎ã«äžåºŠéããšãããåäžçŽïŒãšãŒã©ïŒæµæããèŠã4人ã¯ã次åããããèŠãçŽæã亀ãããŠããŒãã£ãŒãè§£æ£ãã
âã¯QAãããã®åŒã³åºãã€ã¡ãŒãžã§ãã
## 質å
result = qa("ããªãŒã¬ã³ã®ç°åããè¬éã®ããªãŒã¬ã³ãã«ãªã£ããã£ããã¯ïŒ")
print('åç:', result['result'])
print('='*10)
print('ãœãŒã¹:')
for d in result['source_documents']:
print(d)
# åç
åç: ããªãŒã¬ã³ã®ç°åããè¬éã®ããªãŒã¬ã³ãã«ãªã£ããã£ããã¯ãç·šééšäŒè°ã§å¯ç·šéé·ãææ¡ããã¿ã€ãã«æ¡ã®äžã«ãè¬éã®ããªãŒã¬ã³ãããããæçµçã«å±±ç°é人ãšã¢ããã«ãµã決ããããã§ãããã®ã¿ã€ãã«æ¡ãæ¡çšãããããšã§ãçŸåšã®é¡åãšãªããŸããã
==========
ãœãŒã¹:
page_content='æ¬äœã®ã¿ã€ãã«ã®ç±æ¥ã¯ãå±±ç°ãèããã¿ã€ãã«æ¡ããããªãããç·šééšã§ãæ€èšãããç·šééšäŒè°ã§ãããã¿ã€ãã«ã決ãŸã£ããèªè
¹ã§è³é1äžååºããŸãããšæ
åœç·šéè
ãåã£ããšãããå¯ç·šéé·ãåºããã¿ã€ãã«æ¡ã®äžã«ãè¬éã®ããªãŒã¬ã³ãããããæçµçã«å±±ç°ãã¢ãã«æ±ºããŠãããçŸåšã®é¡åãšãªã£ãã\n2022幎9æã«åè¡æ¬9å·»ãçºå£²ãã»ãŒåæã«ã¢ãã¡åãçºè¡šãããå幎11æã«å±éåªäœããã¬ãã¢ãã¡ã§ããããšãçºè¡šãããã\n2023幎10ææç¹ã§åè¡æ¬ã®çޝèšçºè¡éšæ°ã¯1100äžéšãçªç ŽããŠããã\n== ãããã ==' metadata={'source': './output.txt'}
page_content='ãè¬éã®ããªãŒã¬ã³ãïŒããããã®ããªãŒã¬ã³ãè±: Frieren: Beyond Journeyâs EndïŒã¯ãå±±ç°é人ïŒåäœïŒãã¢ããã«ãµïŒäœç»ïŒã«ããæ¥æ¬ã®æŒ«ç»ããé±åå°å¹Žãµã³ããŒãïŒå°åŠé€šïŒã«ãŠã2020幎22ã»23å䜵å·ããé£èŒäžã\n第14åãã³ã¬å€§è³ã第25åæå¡æ²»è«æåè³æ°çè³åè³äœã\n== æŠèŠ ==\néçãåããåè
äžè¡ã®åŸæ¥èãæããã¡ã³ã¿ãžãŒã\n第2å·»ãçºå£²ãããéã«æéæåãæµŠäºå¥æ²»ãæ±å£éä¹ãå°åºç¥ä»ãè¿è€ãã¿ããé è³å¥å€ªãéŽæšé倮ãè±åŽæçãæ¬äœã«ã³ã¡ã³ããå¯ããŠããã' metadata={'source': './output.txt'}
page_content='å°ã£ãäººãæ±ºããŠèŠæšãŠãªãæ§æ Œã§ããã®ç涯ããããŠäººå©ãã«å¥èµ°ããããã§ãããæ»åŸãäœäžã§ã®ååšæã¯å€§ãããããã³ã¡ã«ãªãã©ããããããããªãŒã¬ã³ãå§ããšããå
åè
ããŒãã£ãŒã¡ã³ããŒã®è¡ååºæºã®äžã€ã§ããç¶ããŠãããããªãŒã¬ã³ã®åæ³ã®äžã§ãã床ã
ãã®åè
ã¶ããæ¯ãè¿ãããããã€ãŠããªãŒã¬ã³ã«æå¿ãæ±ããŠãããšæããããããªãšããœãŒããå€ãã幌ãé ã«æ£®ã§éã«è¿·ã£ãæã«ããªãŒã¬ã³ãšåºäŒã£ãŠãããè±çã®éæ³ãèŠããŠããã£ãããšãããããšã«ãã§ãããããã«ã¯ããã«é·åœã§ããåœŒå¥³ã®æªæ¥ãæ
®ã£ãŠé
åã«çްããæ³šæãããããæ
é·ãéæã«å¥ªãããŠå€ç¬ã«çããŠãã圌女ã®å€ç¬ãæããã£ãããšãäœããšããªãŒã¬ã³ãæ°ã«ãããŠããã' metadata={'source': './output.txt'}
QAãããã¯ããœãŒã¹ã®3ã€ã®æç« ("æ¬äœã®ã¿ã€ãã«ã®ç±æ¥ã¯..." ã"'ãè¬éã®ããªãŒã¬ã³ãïŒããããã®ããªãŒã¬ã³..."ã"å°ã£ãäººãæ±ºããŠèŠæšãŠãªãæ§æ Œã§...")ãåç
§ããŠã質å "ããªãŒã¬ã³ã®ç°åããè¬éã®ããªãŒã¬ã³ãã«ãªã£ããã£ããã¯ïŒ" ã«åçãããŠããŸãã
çµæ
ããã§ã¯ããŒã¹ã©ã€ã³ã®çµæãèŠãŠã¿ãŸãããã
質å 1
# 質å
"ãã©ã³ã¡ãåŒåã«ããã®ã¯èª°ïŒ"
# åç
ãã©ã³ã¡ãåŒåã«ããã®ã¯ãã§ã«ã³ã§ãã
==========
ãœãŒã¹:
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšãã' metadata={'source': './output.txt'}
page_content='ææ©å¹ŽãæŠçœå€å
ã§ãããã§ã«ã³ãåŒãåãã蚪ããŠããããªãŒã¬ã³ã«ã¡ãã£ãšããè¬ã仿ããŠãã§ã«ã³ã圌女ã®åŒåãšããŠèšãããšã§ãèªåã®æ»åŸã®æ©ã¿ã解決ããããã€ãŠã¯èªèº«ãå€å
ã ã£ãããšãããå€å
é¢ã®åŸ©èè³éãèªãåºããªã©ããããšããã£ã' metadata={'source': './output.txt'}
page_content='å€§éæ³äœ¿ããã©ã³ã¡ã¯èšèã話ãéç©ããéæããšåä»ãã' metadata={'source': './output.txt'}
çµæïŒÃ
éããŸãããã§ã«ã³ã§ã¯ãããŸãã
質å 2
# 質å
"ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯äœïŒ"
# åç
ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯ããã§ã«ã³ãåŒãåã£ãææ©å¹Žã«ããã§ã«ã³ã圌女ã®åŒåãšããŠèšãããšã§èªåã®æ»åŸã®æ©ã¿ã解決ããããã«è¬ã仿ããããšã§ãã
==========
ãœãŒã¹:
page_content='ææ©å¹ŽãæŠçœå€å
ã§ãããã§ã«ã³ãåŒãåãã蚪ããŠããããªãŒã¬ã³ã«ã¡ãã£ãšããè¬ã仿ããŠãã§ã«ã³ã圌女ã®åŒåãšããŠèšãããšã§ãèªåã®æ»åŸã®æ©ã¿ã解決ããããã€ãŠã¯èªèº«ãå€å
ã ã£ãããšãããå€å
é¢ã®åŸ©èè³éãèªãåºããªã©ããããšããã£ã' metadata={'source': './output.txt'}
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšãã' metadata={'source': './output.txt'}
page_content='ããªãŒã¬ã³ã«æŸç¥ç¶ãäžè©±ã«ãªã£ããããšé£äºã«èªããçãŸããå®¶å®ã®å®å£ã®å¥ªéãäŸé ŒããïŒå
ã
ã¯éæã®ç©ã§ãããæŸç¥ç¶ã®ä»£ãäžåºŠçé£ã«éã£ãŠããïŒ' metadata={'source': './output.txt'}
çµæïŒÃ
äžæ£è§£ãããªãŒã¬ã³ããã§ã«ã³ãåŒåã«ããæã®ãšããœãŒãã§ã
質å 3
# 質å
"ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ïŒ"
# åç
ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ãããªãŒã¬ã³ããšã«ãã§ããããã«é·åœã§ããã宿çã«éç©ãæ¹§ãéã®éç©ãéæ²»ããããã«ãåäžçŽã«äžåºŠããªãŒã¬ã³ã蚪ããããšãçŽæããŠãããšããããšã§ãã
==========
ãœãŒã¹:
page_content='åŸã«ããªãŒã¬ã³ãã¡ããŒãããå§äŸ¶æ ãšããŠåè¡ãããããšèãããéã¯ãããã®ããŒãã£ã®å§äŸ¶ã®åžã¯ïŒã¶ã€ã³ã®ããã«ïŒç©ºããŠããããããããšæã£ãŠããã\n\n\n=== åè
äžè¡ ===\nãã³ã¡ã«\n声 - 岡æ¬ä¿¡åœŠ\nããªãŒã¬ã³ããã€ã¿ãŒãã¢ã€ãŒã³ãšå
±ã«éçãèšäŒããåè
ã§ãããçš®æã¯äººé' metadata={'source': './output.txt'}
page_content='女ç¥ãæãããšããããåè
ã®å£ããå®è·ãã圹ç®ããããéè¿èŸºã«ã¯å®æçã«éç©ãæ¹§ããããåäžçŽã«äžåºŠã¯éæ²»ããŠãããããããªãŒã¬ã³ãšçŽæãçµãã§ããããå®éã«ããªãŒã¬ã³ã蚪ããã®ã¯ååãã80幎åŸã ã£ããããåœŒå¥³ã«æå¥ãé¶ãã' metadata={'source': './output.txt'}
page_content='== ãããã ==\néçãåããŠçéœã«å±æããåè
ãã³ã¡ã«ãå§äŸ¶ãã€ã¿ãŒãæŠå£«ã¢ã€ãŒã³ãéæ³äœ¿ãããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ã¯ã10幎éãã®æ
è·¯ãçµããŠææ
šã«ãµãã£ãŠãããã1000幎ã¯è»œãçããé·åœçš®ã®ãšã«ãã§ããããªãŒã¬ã³ã«ãšã£ãŠããã®æ
ã¯ããããŠçããã®ã§ãã£ã' metadata={'source': './output.txt'}
çµæïŒÃ
ãããNGãåäžçŽã«äžåºŠã®éç©éæ²»ãéžã°ããŸããããå¥äººãšã®çŽæã§ã
3ã€ãšãå šãŠééããŸãããé¢é£ææžã«éžã°ãããšããœãŒãã誀ã£ãŠããããã§ãäŸãã°è³ªå2ã«ã¯ããã§ã«ã³ãããªãŒã¬ã³ã®åŒåã«ãªãæã®ãšããœãŒããæ··ãã£ãŠãŸããã
æ¹åæ¡ã®å®éš
ããŒã¹ã©ã€ã³ã¯å šãŠã®QAãééã£ãŠããŸãããä»å宿œã§ããããªç²ŸåºŠåäžã®å·¥å€«ãšããŠãæ å ±æ€çŽ¢ãåççæãã¯ãšãªã®èгç¹ãã以äžã®æ¡ãèããããŸããé ã«è©ŠããŠã¿ãŸãããã
- æ
å ±æ€çŽ¢ã®å·¥å€«
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ°ïŒé¡äŒŒãã£ã³ã¯æ°ïŒ
- ããã¥ã¡ã³ãã®ãã£ã³ã¯åå²ïŒåºåãæåããã£ã³ã¯æåæ°ïŒ
- ãã®ä»ã®å·¥å€«
- æ€çŽ¢ã«æž¡ãã¯ãšãªã®å·¥å€«ïŒHyDEïŒ
- ãã£ã³ã¯ã®æç« ã®å·¥å€«ïŒèŠçŽïŒ
- åççæã®å·¥å€«
- 䜿çšã¢ãã«
- ã¯ãšãªã®å·¥å€«
- 質åã®ä»æ¹
æ¹åæ¡1. æ å ±æ€çŽ¢ã®å·¥å€«
æå§ãã«ãæ å ±æ€çŽ¢ã®å·¥å€«ã詊ããŠã¿ãŸãããã
1.1. æ€çŽ¢ããŠåãåºããã£ã³ã¯æ°ïŒé¡äŒŒãã£ã³ã¯æ°ïŒ
ããŒã¹ã©ã€ã³ã¯é¢é£ææžã3ã€ã§ããããã®æ°ãå¢ããããæ£è§£ãå¢ããã§ããããã
ãã©ã¡ãŒã¿èšå®
- åºåãæå :
ã - ãã£ã³ã¯ã®æåæ° : 200
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ° : 5ïŒ3â5ïŒ
- åççæã®LLMã¢ãã« : gpt-3.5-turbo
çµæ
質å 1
# 質å
"ãã©ã³ã¡ãåŒåã«ããã®ã¯èª°ïŒ"
# åç
ãã©ã³ã¡ãåŒåã«ããã®ã¯ãã§ã«ã³ã§ãã
==========
ãœãŒã¹:
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšãã' metadata={'source': './output.txt'}
page_content='ææ©å¹ŽãæŠçœå€å
ã§ãããã§ã«ã³ãåŒãåãã蚪ããŠããããªãŒã¬ã³ã«ã¡ãã£ãšããè¬ã仿ããŠãã§ã«ã³ã圌女ã®åŒåãšããŠèšãããšã§ãèªåã®æ»åŸã®æ©ã¿ã解決ããããã€ãŠã¯èªèº«ãå€å
ã ã£ãããšãããå€å
é¢ã®åŸ©èè³éãèªãåºããªã©ããããšããã£ã' metadata={'source': './output.txt'}
page_content='å€§éæ³äœ¿ããã©ã³ã¡ã¯èšèã話ãéç©ããéæããšåä»ãã' metadata={'source': './output.txt'}
page_content='1000å¹Žä»¥äžæãæ
é·ã§ãããšã«ãã®éèœãéæã«è¥²ããæ»ã«ãããéã«å€§éæ³äœ¿ããã©ã³ã¡ã«å©ãããã圌女ã®åŒåã«ãªããåž«å ã®ãã©ã³ã¡ããã¯éãã®æè¡ãéåå¶åŸ¡ã®æ¹æ³ãäŒæãããã倩æçãªè³è³ªã«å ããŠ1000幎以äžã«æž¡ãéæ³ãç éœãããããéæ³äœ¿ããšããŠã®å®åã¯æ¥µããŠåŒ·å€§ã§å§åçãªéåãèªã' metadata={'source': './output.txt'}
page_content='ããªãŒã¬ã³éãåéšããäžçŽéæ³äœ¿ãã®äžæ¬¡è©Šéšã§ã¯æ¥ãã詊éšå®ãåããçŽæã«ããåéšè
ã«ååŠãäžããããããŸã§æ°å€ã人éã®åŒåãåã£ãããçãŒãŒãªãšã®è¶³å
ã«ãåã°ãªããŸãŸå
ç«ã£ãŠãã£ããšã®ããš' metadata={'source': './output.txt'}
çµæïŒÃ
ãããããŸãããã§ã«ã³ãéžã°ããŸãã
質å 2
# 質å
"ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯äœïŒ"
# åç
ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯ããã§ã«ã³ãšããæŠçœå€å
ãåŒãåãã圌女ããã©ã³ã¡ã®åŒåãšããŠèšãããšã§ãèªåã®æ»åŸã®æ©ã¿ã解決ããããã§ããã
==========
ãœãŒã¹:
page_content='ææ©å¹ŽãæŠçœå€å
ã§ãããã§ã«ã³ãåŒãåãã蚪ããŠããããªãŒã¬ã³ã«ã¡ãã£ãšããè¬ã仿ããŠãã§ã«ã³ã圌女ã®åŒåãšããŠèšãããšã§ãèªåã®æ»åŸã®æ©ã¿ã解決ããããã€ãŠã¯èªèº«ãå€å
ã ã£ãããšãããå€å
é¢ã®åŸ©èè³éãèªãåºããªã©ããããšããã£ã' metadata={'source': './output.txt'}
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšãã' metadata={'source': './output.txt'}
page_content='ããªãŒã¬ã³ã«æŸç¥ç¶ãäžè©±ã«ãªã£ããããšé£äºã«èªããçãŸããå®¶å®ã®å®å£ã®å¥ªéãäŸé ŒããïŒå
ã
ã¯éæã®ç©ã§ãããæŸç¥ç¶ã®ä»£ãäžåºŠçé£ã«éã£ãŠããïŒ' metadata={'source': './output.txt'}
page_content='ãã€ãŠããªãŒã¬ã³ã«æå¿ãæ±ããŠãããšæããããããªãšããœãŒããå€ãã幌ãé ã«æ£®ã§éã«è¿·ã£ãæã«ããªãŒã¬ã³ãšåºäŒã£ãŠãããè±çã®éæ³ãèŠããŠããã£ãããšããã' metadata={'source': './output.txt'}
page_content='ããªãŒã¬ã³éãåéšããäžçŽéæ³äœ¿ãã®äžæ¬¡è©Šéšã§ã¯æ¥ãã詊éšå®ãåããçŽæã«ããåéšè
ã«ååŠãäžããããããŸã§æ°å€ã人éã®åŒåãåã£ãããçãŒãŒãªãšã®è¶³å
ã«ãåã°ãªããŸãŸå
ç«ã£ãŠãã£ããšã®ããš' metadata={'source': './output.txt'}
çµæïŒÃ
éããŸãããã£ããšåããšããœãŒããéžã°ããŸãã
質å 3
# 質å
"ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ïŒ"
# åç
ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ããã³ã¡ã«ãšå
±ã«éçãèšäŒããããã«æ
ç«ã€ããšã§ãããŸããããªãŒã¬ã³ã¯å®æçã«éç©ãæ¹§ãéã®éç©ãéæ²»ããããã«ããªãŒã¬ã³ãšçŽæãçµãã§ããŸãã
==========
ãœãŒã¹:
page_content='åŸã«ããªãŒã¬ã³ãã¡ããŒãããå§äŸ¶æ ãšããŠåè¡ãããããšèãããéã¯ãããã®ããŒãã£ã®å§äŸ¶ã®åžã¯ïŒã¶ã€ã³ã®ããã«ïŒç©ºããŠããããããããšæã£ãŠããã\n\n\n=== åè
äžè¡ ===\nãã³ã¡ã«\n声 - 岡æ¬ä¿¡åœŠ\nããªãŒã¬ã³ããã€ã¿ãŒãã¢ã€ãŒã³ãšå
±ã«éçãèšäŒããåè
ã§ãããçš®æã¯äººé' metadata={'source': './output.txt'}
page_content='女ç¥ãæãããšããããåè
ã®å£ããå®è·ãã圹ç®ããããéè¿èŸºã«ã¯å®æçã«éç©ãæ¹§ããããåäžçŽã«äžåºŠã¯éæ²»ããŠãããããããªãŒã¬ã³ãšçŽæãçµãã§ããããå®éã«ããªãŒã¬ã³ã蚪ããã®ã¯ååãã80幎åŸã ã£ããããåœŒå¥³ã«æå¥ãé¶ãã' metadata={'source': './output.txt'}
page_content='== ãããã ==\néçãåããŠçéœã«å±æããåè
ãã³ã¡ã«ãå§äŸ¶ãã€ã¿ãŒãæŠå£«ã¢ã€ãŒã³ãéæ³äœ¿ãããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ã¯ã10幎éãã®æ
è·¯ãçµããŠææ
šã«ãµãã£ãŠãããã1000幎ã¯è»œãçããé·åœçš®ã®ãšã«ãã§ããããªãŒã¬ã³ã«ãšã£ãŠããã®æ
ã¯ããããŠçããã®ã§ãã£ã' metadata={'source': './output.txt'}
page_content='ããªãŒã¬ã³ã¯ããã®é äž»äžæã¯ç¡çé£é¡ãæŒãã€ããŠãããšä¹ãæ°ã§ã¯ãªãã£ãããçµå±ã¯ééæžãå ±é
¬ã«äŸé ŒãåŒãåããå®å£ãçã¿åºããŠããå£ã®éæãèšäŒããäŸé Œãéæããã\nãã¡ã¹\nããŒã¢å°æ¹ã®è¡ã«äœãã§ãããã¯ãŒããéå»ã«åè
äžè¡ãšãåºäŒã£ãããšããããããªãŒã¬ã³ãš80幎ã¶ãã«åäŒãã' metadata={'source': './output.txt'}
page_content='ãã¡äžåŽ©è³¢3人ãèšã¡åãããã·ã¥ã©ãããšçžæã¡ã§æ»äº¡ãããšãããã\néçèšäŒã®æ
ç«ã¡ã®åãããªãŒã¬ã³ãããŒãã£ãŒã«èªããæããããéå»ããã' metadata={'source': './output.txt'}
çµæïŒÃ
äžæ£è§£ãéçèšäŒãšéç©éæ²»ã¯ã4人ãšäº€ãããçŽæã§ã¯ãããŸãã
çµæã¯å€ãããŸããã§ãããã©ãããœãŒã¹ã«æ³å®ç®æãéžã°ããŠããŸãããWikipediaã®ç»å Žäººç©ã®ç« ã¯ã察象ã®åºæåè©ã説æã«å
¥ããªãåŸåãèŠãããã®ã§ããã®åœ±é¿ãããããŸããïŒäŸïŒããªãŒã¬ã³ã®é
ç®ã«ã察象ã®ããªãŒã¬ã³ãšããåèªãäžååºãŠããªãïŒ
1.2. ãã£ã³ã¯ã®é·ããå¢ãã
ä»åºŠã¯ãå°ããŸãšãŸã£ãåäœïŒåçš¿çšçŽ1æçšåºŠïŒã§ãã£ã³ã¯ãäœã£ãŠã¿ãŸããããWikipediaã®èšè¿°ãã¿ããšã倧äœã¯1段èœã«ã€ã1äž»é¡ãªã®ã§ãåºåãæåãæ¹è¡ã«å€æŽããŸãã
ãã©ã¡ãŒã¿èšå®
- åºåãæå :
\n - ãã£ã³ã¯ã®æåæ° : 400 (200â400)
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ° : 3
- åççæã®LLMã¢ãã« : gpt-3.5-turbo
çµæ
質å 1
# 質å
"ãã©ã³ã¡ãåŒåã«ããã®ã¯èª°ïŒ"
# åç
ãã©ã³ã¡ã®å¯äžã®åŒåã¯ããªãŒã¬ã³ã§ãã
==========
ãœãŒã¹:
page_content='=== ãã®ä» ===\nãã©ã³ã¡\n声 - ç°äžæŠå\néæ³å²ã«ç»å ŽããäŒèª¬ã®å€§éæ³äœ¿ãã§ããã人é¡ã®éæ³ã®éç¥ãä»ã§ã¯ããšã話ã®äººç©ãšãèšãããŠååšããçãããŠããã1000幎ã»ã©åã«å®åšããŠããããã®å¯äžã®åŒåãããªãŒã¬ã³ãšãããããŸãããšã«ãã®å€§éæ³äœ¿ããŒãŒãªãšã®åŒåã§ãããããããŸã§ã«çºèŠãããŠãã圌女ã®éå°æžã¯ããšããšãåœç©ãšãããã' metadata={'source': './output.txt'}
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšããã\néåãå¶éããç¶æ
ã§ããèŠãè
ãæããããã»ã©ã®çµ¶å€§ãªéåãæŸã£ãŠããããã€ãŠé»éé·ã®ãããã軜ããããã£ãŠåäŸæ±ãããããããªãŒã¬ã³ããæ³ã®ããã«ã¯æè¡ã®çãéæ³äœ¿ãããšè©ããããã«ãã©ã³ã¡ãã倱æäœããšåãæšãŠããªã©ãäœäžã§ãé æããå®åè
ã§ããããšã瀺åããæåã¯å€ãã' metadata={'source': './output.txt'}
page_content='ã俺ã®åŒåã¯ãšãã§ããªãæŠå£«ã«ãªãããšã¢ã€ãŒã³ã«èšããããããã»ã©ã®çŽ è³ªãæã€ãä¿®è¡ã®ææãçŽ é€ãããå°åžžãªãããé 匷ããæã¡ããã§ã«ã³ããåãç©ããšçãããããšãããããééããªãçŽç²ãªäººéã§ãããããæéã®æèŠã¯ãã§ã«ã³ãšåãã圌女ããã¯ãã·ã¥ã¿ã«ã¯æ§ããšåŒã°ããŠããããèœã¡çããªããããããŠæ¬²ãããšæã£ãŠããããã§ã«ã³ããæãéããŠèŠããéæ³ãã§åœŒã®äžå身ãèŠããšããããã¡ã£ãããšã®ææ³ãæŒããããåŸã«18æ³ã®èªçæ¥ãè¿ããã奜ç©ã¯ãã³ããŒã°ã幎霢ããåäŸã£ãœãæãããã女æ§ã®æ±ãã¯äžåŸæã芪ãã¿ããã誰ã«ã§ãæ
ããã人æã§ããããç¹ã«å€ãªäººã«å¥œãããããã' metadata={'source': './output.txt'}
çµæïŒâ
æ£è§£ïŒ
質å 2
# 質å
"ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯äœïŒ"
# åç
ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯ãããªãŒã¬ã³ã9æ³ã®é ã«ãã€ã¿ãŒã®å
ã蚪ããŠããéã«åºäŒã£ãããšã§ããããªãŒã¬ã³ã¯åœŒå¥³ã«éæ³ã®æããè«ãã4幎éã®ä¿®æ¥ãçµãŠäžäººåã®éæ³äœ¿ãã«æé·ããŸããã
==========
ãœãŒã¹:
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšããã\néåãå¶éããç¶æ
ã§ããèŠãè
ãæããããã»ã©ã®çµ¶å€§ãªéåãæŸã£ãŠããããã€ãŠé»éé·ã®ãããã軜ããããã£ãŠåäŸæ±ãããããããªãŒã¬ã³ããæ³ã®ããã«ã¯æè¡ã®çãéæ³äœ¿ãããšè©ããããã«ãã©ã³ã¡ãã倱æäœããšåãæšãŠããªã©ãäœäžã§ãé æããå®åè
ã§ããããšã瀺åããæåã¯å€ãã' metadata={'source': './output.txt'}
page_content='çŸæç¹ã§ããªãŒã¬ã³å¯äžã®åŒåã§ãã人éã®å°å¥³ã9æ³â19æ³ãååŽè«žåœã®æŠçœå€å
ã ã£ããã䞡芪ã倱ãçµ¶æããŠé£ã³éãèªæ®ºãå³ãããšããæãåè
ããŒãã£ãŒã®å§äŸ¶ãã€ã¿ãŒã«å©ãããããå¹Œå°æããã€ã¿ãŒã®å
ã§éãããªããããäžäººã§çããŠãããåããåŸãçºã«éæ³ã®ä¿®è¡ãå§ããããã®åŸã9æ³ã®é ã«ãã€ã¿ãŒã蚪ããŠããããªãŒã¬ã³ãšåºäŒã£ãŠåœŒå¥³ã«éæ³ã®æããè«ãã4幎éã®ä¿®æ¥ãçµãŠäžäººåã®éæ³äœ¿ãã«æé·ããããã€ã¿ãŒã®æ»åŸã15æ³ã®é ã«ããªãŒã¬ã³ã®åŒåãšããŠå
±ã«æ
ç«ã€ãããªãŒã¬ã³ã®ããšãåž«ãšããŠå°æ¬ãæ
ã£ãŠã¯ãããã®ã®ã人éã§ãããããšã«ãã®åœŒå¥³ãšã¯æéã®æèŠããºã¬ãŠãããé·ææ»åšã«èŸæãããããããšãããããŸããããªãŒã¬ã³ã®æ£è²¡ãæããããç§ç掻ãã ããã®ãªã圌女ã®é¢åãèŠããã¡ã«ãèªåã®ãã£ãŠããããšãå®å
šã«ããæ¯ãããã§ããããšã«æ°ä»ããããšãæ°èŠåŽãå€ããããªãŒã¬ã³ã«äŒŒãŠããŸãææ
ã衚ã«åºãããæã£ãæãéãã«äžæ©å«ã«ãªãã®ã§åŽã£ãŠããªãŒã¬ã³ãã·ã¥ã¿ã«ã¯ãçããããŠãããçºèšãçµæ§èŸèŸ£ã§ãç¹ã«ã·ã¥ã¿ã«ã¯ã«ã¯å®¹èµŠç¡ããçããã®ã奜ããªããã§ãé£äºã®ã·ãŒã³ã§ã¯çå³ãé£ã¹ãŠããããšãå€ãã' metadata={'source': './output.txt'}
page_content='50幎åŸããã£ãã幎èãããã³ã¡ã«ãšåäŒããããªãŒã¬ã³ã¯ããã€ã¿ãŒãã¢ã€ãŒã³ãšãé£ãç«ã£ãŠåã³æµæçŸ€ã芳è³ããããŸããªããã³ã¡ã«ã¯äº¡ããªããã圌ã®è¬åã§ããªãŒã¬ã³ã¯èªåããã³ã¡ã«ã«ã€ããŠäœãç¥ãããç¥ãããšãããªãã£ãããšã«æ°ä»ããŠæ¶ããããã®æ²ãã¿ã«å°æããããªãŒã¬ã³ã¯ã人éãç¥ããããšéæ³åéã®ããã«æ
ã«åºãã\nãããã20幎åŸãããªãŒã¬ã³ã¯èãå
çããã€ã¿ãŒã蚪ããããã€ã¿ãŒã¯éå°æžã®è§£èªãšæŠçœå€å
ã®ãã§ã«ã³ãåŒåã«ããããšãããªãŒã¬ã³ã«äŸé Œããã®4幎åŸãããªãŒã¬ã³ã¯éå°æžã®è§£èªãçµãããã§ã«ã³ã¯1人åã®éæ³äœ¿ããšãªãããã€ã¿ãŒã®ææãçåã£ã2人ã¯è«žåœãå·¡ãæ
ã«åºçºããã' metadata={'source': './output.txt'}
çµæïŒÃ
ããŒãããããããã§ã«ã³ãããªãŒã¬ã³ã®åŒåã«ãªã£ãæã®ãšããœãŒãã§ã
質å 3
# 質å
"ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ïŒ"
# åç
ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ããåäžçŽïŒãšãŒã©ïŒæµæããæ¬¡åãäžç·ã«èŠãããšã§ãã
==========
ãœãŒã¹:
page_content='== ãããã ==\néçãåããŠçéœã«å±æããåè
ãã³ã¡ã«ãå§äŸ¶ãã€ã¿ãŒãæŠå£«ã¢ã€ãŒã³ãéæ³äœ¿ãããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ã¯ã10幎éãã®æ
è·¯ãçµããŠææ
šã«ãµãã£ãŠãããã1000幎ã¯è»œãçããé·åœçš®ã®ãšã«ãã§ããããªãŒã¬ã³ã«ãšã£ãŠããã®æ
ã¯ããããŠçããã®ã§ãã£ãããããŠã50幎ã«äžåºŠéããšãããåäžçŽïŒãšãŒã©ïŒæµæããèŠã4人ã¯ã次åããããèŠãçŽæã亀ãããŠããŒãã£ãŒãè§£æ£ããã' metadata={'source': './output.txt'}
page_content='ããªãŒã¬ã³ãšå察é¢ã®éã«åœŒå¥³ã®åŒ·ããçŽæã§èŠæããåéºã®ä»²éãšããŠã¹ã«ãŠããããéæã®æ¬è³ªãç¥ããªãã£ãçºã«ããªãŒã¬ã³ã®å¿ åãç¡èŠããŠäººãé£ã£ãéæã®å°å¥³ãèŠéããããšãããããåŸã«åœŒå¥³ããŸãäººãæ®ºãããšèšãèŠãçµéšãããããŸããåè
ã®ã¿ãæãããåè
ã®å£ããããéã蚪ããéã¯ããã«ææŠããããçµå±æãããšã¯åºæ¥ãªãã£ããã ãããåœç©ã®åè
ã§ãããŸããªããéçãåãã°åœç©ã§ãæ¬ç©ã§ãé¢ä¿ãªãããšè©±ããŠå®éã«ãããæãéããããªãŒã¬ã³ã圌ãããããªå£ãç¡ããŠããã³ã¡ã«ã¯æ¬ç©ã®åè
ãã ãšè©ããå£ãæããªãã£ããšããäžä»¶ã¯ç§å¿ãããã' metadata={'source': './output.txt'}
page_content='éæãšããŠã¯ç©å¥æŽŸã§æŠãã奜ãŸãªãããäžçŽéæ³äœ¿ããå«ã粟ééæ³äœ¿ãã®éå£ãäžç¬ã§ç殺ãã«ãããªã©æ¡å€ãã®å§åçãªæŠéèœåãèªãããŸãã600幎åã«ããªãŒã¬ã³ãè² ãããããšããããä»ã®ããªãŒã¬ã³ã§ããåãæããã»ã©ã®åãŸããå®åãæã¡ãäžåŽ©è³¢ã§æåŒ·ãšããããæãèªèº«ãæ»
ãŒããããæã®ç¥ç¶ãšã®åºäŒããåã£æãã§äººé¡ãçè§£ããããšæãããã«ãªãã人é¡ãæã€ãæªæãããçœªæªæããšèšãææ
ãçè§£ããããšèããã人é¡ãšã®å
±åããé¡ããªããã人é¡ã殺æ®ããæ¥ã
ãéã£ãã' metadata={'source': './output.txt'}
çµæïŒâ
æ£è§£ã§ã
質å1ãš3ãæ£è§£ã«ãªããŸããã質å1ã¯äººç©ç޹ä»ã®ãã©ã³ã¡ã®é ç®ã3ã¯ããããã®æ³å®ç®æãå«ãããã«ãªã£ãã®ã§ãæ£è§£ããã®ã§ãããã
1.3. HyDE
次ã¯HyDEãšããææ³ã詊ããŸããHyDEã¯ãã¯ãšãªããä»®ã®åçãäœæããŠãããã«äŒŒãããã¥ã¡ã³ããæ€çŽ¢ããæ¹æ³ã§ããQAã«ãããŠããŠãŒã¶ãŒã®è³ªåãšããã«å¯Ÿå¿ãããã£ã³ã¯ã®æç« èªäœã¯ã䌌ãŠãããšã¯èšããŸããã

ãã®åé¡ã解決ããããã«ãHyDEã¯è³ªåããæ³å®ãããä»®ã®åçãçšæããŠãé¡äŒŒãããã£ã³ã¯ãæ€çŽ¢ããŸãã

HyDEã®ãµã³ãã«ã³ãŒããšãåŒã³åºããµã³ãã«ãèŒããã®ã§ããåç §ãã ããã
ãµã³ãã«ã³ãŒããè¡šç€ºïŒæãããã¿ïŒ
from langchain.chains import HypotheticalDocumentEmbedder, LLMChain
from langchain import PromptTemplate
from langchain.embeddings import OpenAIEmbeddings
from langchain.chat_models import ChatOpenAI
from langchain.chains.question_answering import load_qa_chain
# texts äœæãŸã§ã¯ããŒã¹ã©ã€ã³ãšäžç·ã®ãããçç¥
# LLM chainã®èšå®
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
prompt_template = """åèæ
å ±ãå
ã«ããŠãŒã¶ãŒããã®è³ªåã«ã§ããã ãæ£ç¢ºã«çããŠãã ããã
質åïŒ{question}
åçïŒ"""
prompt = PromptTemplate(
input_variables=["question"],
template=prompt_template
)
llm_chain = LLMChain(llm=llm, prompt=prompt, verbose=True)
# 質åã«å¯Ÿããä»®ã®ææžãçæãããããåã蟌ã
embeddings = HypotheticalDocumentEmbedder(
llm_chain=llm_chain,
base_embeddings=OpenAIEmbeddings(),
)
db_Hyde = FAISS.from_documents(texts, embeddings)
# HyDEã®embeddingsã䜿ã£ãŠ vector indexãäœæ
hyde_query = "ããªãŒã¬ã³ã®ç°åããè¬éã®ããªãŒã¬ã³ãã«ãªã£ããã£ããã¯ïŒ"
docs = db_Hyde.similarity_search(hyde_query)
print(docs[0].page_content)
chain = load_qa_chain(ChatOpenAI(), chain_type="stuff")
print("----------------")
print(chain({"input_documents": docs, "question": hyde_query}, return_only_outputs=True))
# ä»®ã®åç
ãŒãŒãªãšã«ãèç
ãªåãããšæ¶æãããäžæ¹ããã®åŒ·ãã¯é«ãè©äŸ¡ãããŠããããŸããéæ³äœ¿ã詊éšã®åä»äŒå Žã«ãŠäžç®èŠãã ãã§ããªãŒã¬ã³ã®éåå¶éãèŠæããªã©ãèœåã®é«ãã¯äžçŽéæ³äœ¿ãã®äžã§ã矀ãæãŠãããåž«ã§ãããŒãŒãªãšãžã®æ³ããããæŽå²ã«åãæ®ãçºã«ããªãŒã¬ã³ã襲æãããããªãŒã¬ã³ã®é²åŸ¡éæ³ãç Žå£ãæå·ãè² ãããã»ã©ã®åãèŠããããããªãŒã¬ã³ã«ã¯ãæéã®ç¡é§ããšæåãããæåŠãããã
----------------
# åç
{'output_text': 'ããªãŒã¬ã³ã®ç°åããè¬éã®ããªãŒã¬ã³ããšãªã£ããã£ããã¯ããã³ã¡ã«ã®è¬åã§åœŒãèªåããã³ã¡ã«ã«ã€ããŠäœãç¥ãããç¥ãããšãããªãã£ãããšã«æ°ä»ããŠæ¶ããããšã«é¢é£ããŠããŸãããã®åºæ¥äºã«ãã£ãŠãããªãŒã¬ã³ã¯äººéãç¥ãããã«æ
ã«åºãããšã決æãããã®æ
ã®äžã§éæ³åéãè¡ãããšã«ãªããŸãããã®ãã£ããããããè¬éã®ããªãŒã¬ã³ããšããç°åãçãŸããã®ã§ãããã'}
質åããä»®ã®åçãäœæããåŸã«ãLLM㫠質å ãš ä»®ã®åç ãæž¡ããŠåçãçæããŠããŸãããã£ã³ã¯ã®æåæ°ã¯é·ãæ¹ãçµæãããã®ã§ã400æåã§è©ŠããŠã¿ãŸãã
ãã©ã¡ãŒã¿èšå®
- åºåãæå :
\n - ãã£ã³ã¯ã®æåæ° : 400
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ° : ㌠ïŒä»®ã®åçãäœãããããªãïŒ
- åççæã®LLMã¢ãã« : gpt-3.5-turbo
çµæ
質å 1
# 質å
"ãã©ã³ã¡ãåŒåã«ããã®ã¯èª°ïŒ"
# ä»®ã®åç
=== ãã®ä» ===
ãã©ã³ã¡
声 - ç°äžæŠå
éæ³å²ã«ç»å ŽããäŒèª¬ã®å€§éæ³äœ¿ãã§ããã人é¡ã®éæ³ã®éç¥ãä»ã§ã¯ããšã話ã®äººç©ãšãèšãããŠååšããçãããŠããã1000幎ã»ã©åã«å®åšããŠããããã®å¯äžã®åŒåãããªãŒã¬ã³ãšãããããŸãããšã«ãã®å€§éæ³äœ¿ããŒãŒãªãšã®åŒåã§ãããããããŸã§ã«çºèŠãããŠãã圌女ã®éå°æžã¯ããšããšãåœç©ãšãããã
==========
# åç
{'output_text': 'ãã©ã³ã¡ã®å¯äžã®åŒåã¯ããªãŒã¬ã³ãšãããŠããŸãã'}
çµæïŒâ
æ£è§£ã§ãïŒ
質å 2
# 質å
"ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯äœïŒ"
# ä»®ã®åç
æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšããã
éåãå¶éããç¶æ
ã§ããèŠãè
ãæããããã»ã©ã®çµ¶å€§ãªéåãæŸã£ãŠããããã€ãŠé»éé·ã®ãããã軜ããããã£ãŠåäŸæ±ãããããããªãŒã¬ã³ããæ³ã®ããã«ã¯æè¡ã®çãéæ³äœ¿ãããšè©ããããã«ãã©ã³ã¡ãã倱æäœããšåãæšãŠããªã©ãäœäžã§ãé æããå®åè
ã§ããããšã瀺åããæåã¯å€ãã
==========
# åç
{'output_text': 'ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯ãããªãŒã¬ã³ã9æ³ã®é ã«ãã€ã¿ãŒã«åºäŒãã圌女ã«éæ³ã®æããè«ãã4幎éã®ä¿®æ¥ãçµãŠäžäººåã®éæ³äœ¿ãã«æé·ããåŸã§ãããã€ã¿ãŒã®æ»åŸã15æ³ã®é ã«ããªãŒã¬ã³ã®åŒåãšããŠå
±ã«æ
ç«ã€ããšã«ãªããŸããã'}
çµæïŒÃ
äžæ£è§£ã§ããããŸããããã§ã«ã³ã®ãšããœãŒããéžã°ããŸãã
質å 3
# 質å
"ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ïŒ"
# ä»®ã®åç
== ãããã ==
éçãåããŠçéœã«å±æããåè
ãã³ã¡ã«ãå§äŸ¶ãã€ã¿ãŒãæŠå£«ã¢ã€ãŒã³ãéæ³äœ¿ãããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ã¯ã10幎éãã®æ
è·¯ãçµããŠææ
šã«ãµãã£ãŠãããã1000幎ã¯è»œãçããé·åœçš®ã®ãšã«ãã§ããããªãŒã¬ã³ã«ãšã£ãŠããã®æ
ã¯ããããŠçããã®ã§ãã£ãããããŠã50幎ã«äžåºŠéããšãããåäžçŽïŒãšãŒã©ïŒæµæããèŠã4人ã¯ã次åããããèŠãçŽæã亀ãããŠããŒãã£ãŒãè§£æ£ããã
==========
# åç
{'output_text': 'ããªãŒã¬ã³ãšåè
ããŒãã£ãŒ4人ã亀ãããçŽæã¯ã圌ããæ¬¡åã®ãåäžçŽïŒãšãŒã©ïŒæµæããèŠãããã«åã³éãŸãããšã§ãã'}
çµæïŒâ
æ£è§£ããŸãã
質å1ãš3ã¯æ£è§£ããŸããã質å2ã¯ããŸããæŸããŠããŸããã
1.4. èŠçŽ
ããã¥ã¡ã³ãã®å·¥å€«ã®äžã€ã«ãèŠçŽãæããããŸãããããHyDEãšåãçæ³ã§ã質åã®å€ãã¯1ã2è¡çšåºŠã®çæã§ãããããã¥ã¡ã³ãã¯äžå®ã®é·ããæã€ããã䌌ãŠãããšã¯èšããŸããã

ãã£ã³ã¯ãèŠçŽããããšã§åé·æ§ãæžãã質åãšã®é¡äŒŒåºŠãå¢ãããšãæåŸ
ãããŸããä»åã¯ãã£ã³ã¯ã«åããåŸãäžæãã€èŠçŽããææ³ãæ¡çšããŸã(äžå³åç
§)ã

èŠçŽã®ãµã³ãã«ã³ãŒããèŒããŠãããŸãããã©ã¡ãŒã¿ã¯ããã£ã³ã¯ã®æåæ°ãå¢ãããæãšåãèšå®ã«ããŸãã
ãµã³ãã«ã³ãŒããè¡šç€ºïŒæãããã¿ïŒ
from langchain.chains.summarize import load_summarize_chain
from langchain.docstore.document import Document
## ãã£ã³ã¯åå²ãŸã§ã¯ããŒã¹ã©ã€ã³ãšåã
# æ
å ±æ€çŽ¢
# ããã¹ãããã£ã³ã¯ã«åå²
text_splitter = CharacterTextSplitter.from_tiktoken_encoder(
separator = "\n", # åºåãæå
chunk_size = 400, # ãã£ã³ã¯ã®æåæ°
chunk_overlap = 50, # ãã£ã³ã¯ãªãŒããŒã©ããã®æåæ°
)
docs = text_splitter.split_documents(documents)
## 以äžãèŠçŽã®ç®æ
# ãã³ãã¬ãŒãã®å®çŸ©
map_template = """WebããŒãžã®äžç¯ãäžããããŸããã»ã¯ã·ã§ã³ã¯äžéã®ããã¯ã¹ãã£ãã¯(```)ã§å²ãŸããŠããŸããæç« ã«ã¯ ããã¯ã¹ã©ãã·ã¥n(`\n`) ãå«ãŸããŸãããç¡èŠããŠãã ããã
ããªãã®ç®æšã¯ãã»ã¯ã·ã§ã³ã®å
容ãèªè
ãçè§£ã§ããããã«ãèŠçŽãè¿°ã¹ãããšã§ããå
容ãç¶²çŸ
ãããããå¿ãããŠãã ããã
ãªããæç« ã®åé·æ§ãæžãããããèŠçŽã¯æç« ã®æŽçã«çããã»ã¯ã·ã§ã³ã®èª¬æã¯é¿ããŠãã ãããæç« ã¯ã§ããã ãç°¡æœã«ããŸããã:
```{doc}```
å®å
šãªèŠçŽ:"""
# ããã³ãããã³ãã¬ãŒãã®äœæ
map_prompt_template = PromptTemplate.from_template(map_template)
# èŠçŽãã§ã€ã³ã®ããŒã
map_chain = load_summarize_chain(
llm=llm,
chain_type='stuff',
prompt=map_prompt_template,
document_variable_name="doc" # `document_variable_name` ãæç€ºçã«æå®
)
# ææžã®èŠçŽ
summary_list = []
for i, doc in enumerate(docs):
chunk_summary = map_chain.run([doc])
summary_list.append(chunk_summary)
print(f"Chunk {i+1} ")
# åå²ããé·æãåæç« ããšã«Documentãªããžã§ã¯ãå
docs = [Document(page_content=summary) for summary in summary_list]
## 以äžãããŒã¹ã©ã€ã³ãšåã
# embeddingã¢ãã«ãå®çŸ©
embs_model = OpenAIEmbeddings(model="text-embedding-ada-002")
db = FAISS.from_documents(docs, embs_model)
save_path = "./db_freelen_1"
db.save_local(save_path)
## 以äžçç¥
ãã©ã¡ãŒã¿èšå®
- åºåãæå :
\n - ãã£ã³ã¯ã®æåæ° : 400
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ° : 3
- åççæã®LLMã¢ãã« : gpt-3.5-turbo
çµæ
質å 1
# 質å
"ãã©ã³ã¡ãåŒåã«ããã®ã¯èª°ïŒ"
# åç
ãã©ã³ã¡ãåŒåã«ããã®ã¯ããªãŒã¬ã³ã§ãã
==========
ãœãŒã¹:
page_content='ãã©ã³ã¡ã¯ãéæ³å²ã«ç»å ŽããäŒèª¬ã®å€§éæ³äœ¿ãã§ããã人é¡ã®éæ³ã®éç¥ã§ãã圌女ã¯1000幎ã»ã©åã«å®åšããŠãããå¯äžã®åŒåã¯ããªãŒã¬ã³ã§ãã圌女ã®éå°æžã¯ãã¹ãŠåœç©ãšãããŠããŸãã'
page_content='ãã§ã«ã³ã¯æŠçœå€å
ã§ãããææ©å¹Žã«åœŒå¥³ãåŒãåã£ãããªãŒã¬ã³ã«ãã£ãŠåœŒå¥³ã®åŒåãšããŠè²ãŠãããŸãããããªãŒã¬ã³ã¯ãã€ãŠèªèº«ãå€å
ã§ãããå€å
é¢ã®åŸ©èè³éãæäŸãããªã©ããã§ã«ã³ã«ãšã£ãŠéèŠãªååšã§ãããã¶ã€ã³ããããããªãŒã¬ã³ã¯åªããé Œãããã®ããçæ³çãªå€§äººãšè©ãããŠããŸããã'
page_content='1000幎以äžåããšã«ãã®éèœãéæã«è¥²ãããéã䞻人å
¬ã¯å€§éæ³äœ¿ããã©ã³ã¡ã«å©ãããã圌女ã®åŒåã«ãªãããã©ã³ã¡ããã¯éãã®æè¡ãéåå¶åŸ¡ã®æ¹æ³ãåŠã³ã倩æçãªè³è³ªãšé·å¹Žã®éæ³ã®ç éœã«ãããéåžžã«åŒ·åãªéæ³äœ¿ããšãªãã圌ã¯éåãé å¿ããæè¡ãç¿åŸããéæãéå°è©äŸ¡ãããŠåãããšãåŸæã§ããã圌ã¯ãè¬éã®ããªãŒã¬ã³ããšããŠç¥ãããéæããæããããŠããããæåçµéšãããã'
çµæïŒâ
æ£è§£ïŒ
質å 2
# 質å
"ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯äœïŒ"
# åç
ããªãŒã¬ã³ããã§ã«ã³ã®åŒåã«ãªã£ããã£ããã¯ããã§ã«ã³ãæŠçœå€å
ã§ãããèªæ®ºãå³ã£ããšãããåè
ããŒãã£ãŒã®å§äŸ¶ã«å©ããããããšã§ããããªãŒã¬ã³ã¯åœŒå¥³ã®éå»ãç¥ãã圌女ãåŒãåããè²ãŠãããšã決ããŸããã
==========
ãœãŒã¹:
page_content='ãã®ã»ã¯ã·ã§ã³ã¯ãããªãŒã¬ã³ã®å¯äžã®åŒåã§ãã人éã®å°å¥³ã«ã€ããŠè¿°ã¹ãŠããŸããåœŒå¥³ã¯æŠçœå€å
ã§ãããèªæ®ºãå³ã£ããšãããåè
ããŒãã£ãŒã®å§äŸ¶ã«å©ããããŸããã圌女ã¯ãã€ã¿ãŒã®å
ã§å¹Œå°æãéãããéæ³ã®ä¿®è¡ãå§ããŸããã圌女ã¯ããªãŒã¬ã³ãšåºäŒãã圌女ã«éæ³ãæããŠããããäžäººåã®éæ³äœ¿ãã«æé·ããŸããã圌女ã¯ããªãŒã¬ã³ã®åŒåãšããŠæ
ç«ã¡ã圌女ãå°æ¬ããŠããŸããã圌女ãšã®æéã®æèŠã®ãºã¬ãããªãŒã¬ã³ã®è¡åã«æ©ãã§ããŸãã圌女ã¯èŸèŸ£ãªçºèšãããçããã®ã奜ãã§ãã'
page_content='ãã§ã«ã³ã¯æŠçœå€å
ã§ãããææ©å¹Žã«åœŒå¥³ãåŒãåã£ãããªãŒã¬ã³ã«ãã£ãŠåœŒå¥³ã®åŒåãšããŠè²ãŠãããŸãããããªãŒã¬ã³ã¯ãã€ãŠèªèº«ãå€å
ã§ãããå€å
é¢ã®åŸ©èè³éãæäŸãããªã©ããã§ã«ã³ã«ãšã£ãŠéèŠãªååšã§ãããã¶ã€ã³ããããããªãŒã¬ã³ã¯åªããé Œãããã®ããçæ³çãªå€§äººãšè©ãããŠããŸããã'
page_content='ããªãŒã¬ã³ãšã®æŠãã§ã䞻人å
¬ã¯ããªãŒã¬ã³ã®åŒ·ãã«é©ããæåŸã¯èªå®³ããŠæ»äº¡ããã'
çµæïŒÃ
ãŸãããã§ã«ã³ã®ãšããœãŒããïŒç¥ïŒ
質å 3
# 質å
"ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ïŒ"
# åç
ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ããåäžçŽæµæããèŠãããã«ããŒãã£ãŒãè§£æ£ããæ¬¡åã®åäŒãçŽæããããšã§ããã
==========
ãœãŒã¹:
page_content='åè
ããŒãã£ãŒã®4人ã¯ãé·ãæ
ãçµããŠçéœã«å±æããŸãããç¹ã«ãšã«ãã®éæ³äœ¿ãããªãŒã¬ã³ã«ãšã£ãŠã¯ãæ
ã¯çããã®ã§ããã圌ãã¯ãåäžçŽæµæããèŠãããã«ããŒãã£ãŒãè§£æ£ããæ¬¡åã®åäŒãçŽæããŸããã'
page_content='ããªãŒã¬ã³ã¯åŒ·ããæã£ãŠãããšçŽæãã圌女ã仲éã«å ããã圌ã¯éæã®æ¬è³ªãç¥ããã圌女ã®å¿ åãç¡èŠããŠäººãé£ã£ãéæã®å°å¥³ãèŠéããŠããŸã£ããåŸã«åœŒå¥³ãåã³äººã殺ããããšãç¥ããèŠãçµéšãããã圌ãã¯ãåè
ã®å£ããããéã蚪ããææŠãããæãããšã¯ã§ããªãã£ããããããããªãŒã¬ã³ã¯ãåœç©ã®åè
ã§ãéçãåãã°é¢ä¿ãªãããšè©±ããå®éã«ãããæãéãããããªãŒã¬ã³ã¯åœŒãæ¬ç©ã®åè
ãšè©ããå£ãæããªãã£ãããšã¯ç§å¯ã«ãããã'
page_content='ããªãŒã¬ã³ãšã®æŠãã§ã䞻人å
¬ã¯ããªãŒã¬ã³ã®åŒ·ãã«é©ããæåŸã¯èªå®³ããŠæ»äº¡ããã'
çµæïŒâ³
ãšããœãŒãã¯æ£ããã§ãããæç« ãããããã§ããçŽæã®å
容ããæµæãèŠãããã«ããŒãã£ãè§£æ£ããæ¬¡åã®åäŒãçŽæããããšãã ãšãæå³ãéããŸããã
質å1ã¯æ£è§£ããŸããã質å3ã®åçã¯ã察象ã¯åã£ãŠããŸããæç« ãå°ãå£ããŠãŸãããœãŒã¹ãèŠããšãèŠçŽãããæããããããªã£ãŠããããšãããããŸãã
èŠçŽã«äœ¿ãLLMã¢ãã«ãè³¢ãããã¹ãã§ããããã課éé¡ãèšãã¿ããã§è©ŠããŸããã§ããïŒã¡ãªã¿ã«ä»åã®èª²éé¡ã¯ãçŸæç¹ã§$9.80ã145åæç®ã§1420åã«ãªããŸãðïŒã
æ¹åæ¡2. åççæã®å·¥å€«
次ã«ãåççæã®å·¥å€«ãšããŠãè³¢ãã¢ãã«ã«å€ããŠã¿ãŸãããã

2.1. ã¢ãã«å€æŽ
LLMã®ã¢ãã«ã gpt-3.5-turbo ãã gpt-4-1106-preview ã«å€ããŠã¿ãŸãã
ãã©ã¡ãŒã¿èšå®
- åºåãæå :
\n - ãã£ã³ã¯ã®æåæ° : 400
- æ€çŽ¢ããŠåãåºããã£ã³ã¯æ° : 3
- åççæã®LLMã¢ãã« : gpt-4-1106-preview
çµæ
質å 1
# 質å
"ãã©ã³ã¡ãåŒåã«ããã®ã¯èª°ïŒ"
# åç
ãã©ã³ã¡ã®å¯äžã®åŒåã¯ããªãŒã¬ã³ãšãããŠããŸãã
==========
ãœãŒã¹:
page_content='=== ãã®ä» ===\nãã©ã³ã¡\n声 - ç°äžæŠå\néæ³å²ã«ç»å ŽããäŒèª¬ã®å€§éæ³äœ¿ãã§ããã人é¡ã®éæ³ã®éç¥ãä»ã§ã¯ããšã話ã®äººç©ãšãèšãããŠååšããçãããŠããã1000幎ã»ã©åã«å®åšããŠããããã®å¯äžã®åŒåãããªãŒã¬ã³ãšãããããŸãããšã«ãã®å€§éæ³äœ¿ããŒãŒãªãšã®åŒåã§ãããããããŸã§ã«çºèŠãããŠãã圌女ã®éå°æžã¯ããšããšãåœç©ãšãããã' metadata={'source': './output.txt'}
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšããã\néåãå¶éããç¶æ
ã§ããèŠãè
ãæããããã»ã©ã®çµ¶å€§ãªéåãæŸã£ãŠããããã€ãŠé»éé·ã®ãããã軜ããããã£ãŠåäŸæ±ãããããããªãŒã¬ã³ããæ³ã®ããã«ã¯æè¡ã®çãéæ³äœ¿ãããšè©ããããã«ãã©ã³ã¡ãã倱æäœããšåãæšãŠããªã©ãäœäžã§ãé æããå®åè
ã§ããããšã瀺åããæåã¯å€ãã' metadata={'source': './output.txt'}
page_content='ã俺ã®åŒåã¯ãšãã§ããªãæŠå£«ã«ãªãããšã¢ã€ãŒã³ã«èšããããããã»ã©ã®çŽ è³ªãæã€ãä¿®è¡ã®ææãçŽ é€ãããå°åžžãªãããé 匷ããæã¡ããã§ã«ã³ããåãç©ããšçãããããšãããããééããªãçŽç²ãªäººéã§ãããããæéã®æèŠã¯ãã§ã«ã³ãšåãã圌女ããã¯ãã·ã¥ã¿ã«ã¯æ§ããšåŒã°ããŠããããèœã¡çããªããããããŠæ¬²ãããšæã£ãŠããããã§ã«ã³ããæãéããŠèŠããéæ³ãã§åœŒã®äžå身ãèŠããšããããã¡ã£ãããšã®ææ³ãæŒããããåŸã«18æ³ã®èªçæ¥ãè¿ããã奜ç©ã¯ãã³ããŒã°ã幎霢ããåäŸã£ãœãæãããã女æ§ã®æ±ãã¯äžåŸæã芪ãã¿ããã誰ã«ã§ãæ
ããã人æã§ããããç¹ã«å€ãªäººã«å¥œãããããã' metadata={'source': './output.txt'}
çµæïŒâ
ãåçïŒ
質å 2
# 質å
"ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯äœïŒ"
# åç
ããªãŒã¬ã³ããã©ã³ã¡ã®åŒåã«ãªã£ããã£ããã¯ãããªãŒã¬ã³ã幌ãé ã«ãã©ã³ã¡ã«åºäŒãããã®å§åçãªéåãšéæ³ã®æè¡ã«æ§ããæ±ããããšã«ãããŸãããã©ã³ã¡ã¯æèœããè
ãéå¿ããè
ãå¥œãæ§æ Œã§ãããããªãŒã¬ã³ã¯ãã®æ¡ä»¶ã«åèŽããŠããããããã©ã³ã¡ã¯ããªãŒã¬ã³ãåŒåãšããŠåãå
¥ããŸãããããªãŒã¬ã³ã¯ãã©ã³ã¡ã®äžã§å³ããä¿®æ¥ãç©ã¿ããããŠäººé¡ã®éæ³ã®éç¥ãšããŠã®å°äœã«ãŸã§äžãè©°ããããšã«ãªããã©ã³ã¡ã®æããåãç¶ããäžäººåã®éæ³äœ¿ããšããŠæé·ããŠãããŸãããã©ã³ã¡ã®æ»åŸãããªãŒã¬ã³ã¯èªèº«ã®æ
ãç¶ããªããããã©ã³ã¡ããåãç¶ãã éæ³ã®ç¥èãšæè¡ã掻ãããŠããããšã«ãªããŸãã
==========
ãœãŒã¹:
page_content='æããè
ãéå¿ããè
ã奜ã¿ãåŒåéãžã®ææ
ã¯ãããçŽ çŽã«æ°æã¡ãäŒããããªãäžåšçšãªäžé¢ãããã人é¡ã®éæ³ã®éç¥ã«äžãè©°ããåŒåãã©ã³ã¡ã亡ããªã£ãéã«ããªãŒã¬ã³ã«ãšã«ããšäººéã®æéæèŠã®éãã説ãããå幎ã§äººéã®æä»£ããã£ãŠããããšäºèšããã\néåãå¶éããç¶æ
ã§ããèŠãè
ãæããããã»ã©ã®çµ¶å€§ãªéåãæŸã£ãŠããããã€ãŠé»éé·ã®ãããã軜ããããã£ãŠåäŸæ±ãããããããªãŒã¬ã³ããæ³ã®ããã«ã¯æè¡ã®çãéæ³äœ¿ãããšè©ããããã«ãã©ã³ã¡ãã倱æäœããšåãæšãŠããªã©ãäœäžã§ãé æããå®åè
ã§ããããšã瀺åããæåã¯å€ãã' metadata={'source': './output.txt'}
page_content='çŸæç¹ã§ããªãŒã¬ã³å¯äžã®åŒåã§ãã人éã®å°å¥³ã9æ³â19æ³ãååŽè«žåœã®æŠçœå€å
ã ã£ããã䞡芪ã倱ãçµ¶æããŠé£ã³éãèªæ®ºãå³ãããšããæãåè
ããŒãã£ãŒã®å§äŸ¶ãã€ã¿ãŒã«å©ãããããå¹Œå°æããã€ã¿ãŒã®å
ã§éãããªããããäžäººã§çããŠãããåããåŸãçºã«éæ³ã®ä¿®è¡ãå§ããããã®åŸã9æ³ã®é ã«ãã€ã¿ãŒã蚪ããŠããããªãŒã¬ã³ãšåºäŒã£ãŠåœŒå¥³ã«éæ³ã®æããè«ãã4幎éã®ä¿®æ¥ãçµãŠäžäººåã®éæ³äœ¿ãã«æé·ããããã€ã¿ãŒã®æ»åŸã15æ³ã®é ã«ããªãŒã¬ã³ã®åŒåãšããŠå
±ã«æ
ç«ã€ãããªãŒã¬ã³ã®ããšãåž«ãšããŠå°æ¬ãæ
ã£ãŠã¯ãããã®ã®ã人éã§ãããããšã«ãã®åœŒå¥³ãšã¯æéã®æèŠããºã¬ãŠãããé·ææ»åšã«èŸæãããããããšãããããŸããããªãŒã¬ã³ã®æ£è²¡ãæããããç§ç掻ãã ããã®ãªã圌女ã®é¢åãèŠããã¡ã«ãèªåã®ãã£ãŠããããšãå®å
šã«ããæ¯ãããã§ããããšã«æ°ä»ããããšãæ°èŠåŽãå€ããããªãŒã¬ã³ã«äŒŒãŠããŸãææ
ã衚ã«åºãããæã£ãæãéãã«äžæ©å«ã«ãªãã®ã§åŽã£ãŠããªãŒã¬ã³ãã·ã¥ã¿ã«ã¯ãçããããŠãããçºèšãçµæ§èŸèŸ£ã§ãç¹ã«ã·ã¥ã¿ã«ã¯ã«ã¯å®¹èµŠç¡ããçããã®ã奜ããªããã§ãé£äºã®ã·ãŒã³ã§ã¯çå³ãé£ã¹ãŠããããšãå€ãã' metadata={'source': './output.txt'}
page_content='50幎åŸããã£ãã幎èãããã³ã¡ã«ãšåäŒããããªãŒã¬ã³ã¯ããã€ã¿ãŒãã¢ã€ãŒã³ãšãé£ãç«ã£ãŠåã³æµæçŸ€ã芳è³ããããŸããªããã³ã¡ã«ã¯äº¡ããªããã圌ã®è¬åã§ããªãŒã¬ã³ã¯èªåããã³ã¡ã«ã«ã€ããŠäœãç¥ãããç¥ãããšãããªãã£ãããšã«æ°ä»ããŠæ¶ããããã®æ²ãã¿ã«å°æããããªãŒã¬ã³ã¯ã人éãç¥ããããšéæ³åéã®ããã«æ
ã«åºãã\nãããã20幎åŸãããªãŒã¬ã³ã¯èãå
çããã€ã¿ãŒã蚪ããããã€ã¿ãŒã¯éå°æžã®è§£èªãšæŠçœå€å
ã®ãã§ã«ã³ãåŒåã«ããããšãããªãŒã¬ã³ã«äŸé Œããã®4幎åŸãããªãŒã¬ã³ã¯éå°æžã®è§£èªãçµãããã§ã«ã³ã¯1人åã®éæ³äœ¿ããšãªãããã€ã¿ãŒã®ææãçåã£ã2人ã¯è«žåœãå·¡ãæ
ã«åºçºããã' metadata={'source': './output.txt'}
çµæïŒÃ
ãããŒïŒäžæ£è§£ã§ããä»äººã®ãšããœãŒããããŸãããšæ··ãåãããŠãŸãã
質å 3
# 質å
"ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ïŒ"
# åç
ããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ãšäº€ãããçŽæã¯ã50幎ã«äžåºŠéããåäžçŽïŒãšãŒã©ïŒæµæããæ¬¡åãäžç·ã«èŠããšããçŽæã§ãã
==========
ãœãŒã¹:
page_content='== ãããã ==\néçãåããŠçéœã«å±æããåè
ãã³ã¡ã«ãå§äŸ¶ãã€ã¿ãŒãæŠå£«ã¢ã€ãŒã³ãéæ³äœ¿ãããªãŒã¬ã³ãåè
ããŒãã£ãŒ4人ã¯ã10幎éãã®æ
è·¯ãçµããŠææ
šã«ãµãã£ãŠãããã1000幎ã¯è»œãçããé·åœçš®ã®ãšã«ãã§ããããªãŒã¬ã³ã«ãšã£ãŠããã®æ
ã¯ããããŠçããã®ã§ãã£ãããããŠã50幎ã«äžåºŠéããšãããåäžçŽïŒãšãŒã©ïŒæµæããèŠã4人ã¯ã次åããããèŠãçŽæã亀ãããŠããŒãã£ãŒãè§£æ£ããã' metadata={'source': './output.txt'}
page_content='ããªãŒã¬ã³ãšå察é¢ã®éã«åœŒå¥³ã®åŒ·ããçŽæã§èŠæããåéºã®ä»²éãšããŠã¹ã«ãŠããããéæã®æ¬è³ªãç¥ããªãã£ãçºã«ããªãŒã¬ã³ã®å¿ åãç¡èŠããŠäººãé£ã£ãéæã®å°å¥³ãèŠéããããšãããããåŸã«åœŒå¥³ããŸãäººãæ®ºãããšèšãèŠãçµéšãããããŸããåè
ã®ã¿ãæãããåè
ã®å£ããããéã蚪ããéã¯ããã«ææŠããããçµå±æãããšã¯åºæ¥ãªãã£ããã ãããåœç©ã®åè
ã§ãããŸããªããéçãåãã°åœç©ã§ãæ¬ç©ã§ãé¢ä¿ãªãããšè©±ããŠå®éã«ãããæãéããããªãŒã¬ã³ã圌ãããããªå£ãç¡ããŠããã³ã¡ã«ã¯æ¬ç©ã®åè
ãã ãšè©ããå£ãæããªãã£ããšããäžä»¶ã¯ç§å¿ãããã' metadata={'source': './output.txt'}
page_content='éæãšããŠã¯ç©å¥æŽŸã§æŠãã奜ãŸãªãããäžçŽéæ³äœ¿ããå«ã粟ééæ³äœ¿ãã®éå£ãäžç¬ã§ç殺ãã«ãããªã©æ¡å€ãã®å§åçãªæŠéèœåãèªãããŸãã600幎åã«ããªãŒã¬ã³ãè² ãããããšããããä»ã®ããªãŒã¬ã³ã§ããåãæããã»ã©ã®åãŸããå®åãæã¡ãäžåŽ©è³¢ã§æåŒ·ãšããããæãèªèº«ãæ»
ãŒããããæã®ç¥ç¶ãšã®åºäŒããåã£æãã§äººé¡ãçè§£ããããšæãããã«ãªãã人é¡ãæã€ãæªæãããçœªæªæããšèšãææ
ãçè§£ããããšèããã人é¡ãšã®å
±åããé¡ããªããã人é¡ã殺æ®ããæ¥ã
ãéã£ãã' metadata={'source': './output.txt'}
çµæïŒâ
ãã³ãã³ïŒæ£è§£ã§ãã
質å1ãš3ã¯æ£è§£ããŸããã質å2ã¯ãäžèŠãããªãŒã¬ã³ãšãã©ã³ã¡ã®è©±ã®ããã«èŠããŸããããœãŒã¹ã¯ãŒãŒãªãšãšãã§ã«ã³ã®äººç©ç޹ä»ã®æç« ã§ãäžæ£ç¢ºãªæ å ±ã§ãããããŸã§ããå°€ããããèŠããã®ã¯ãGPT4ã®ããã§ããããã
æ¹åæ¡3. ã¯ãšãªã®å·¥å€«
æåŸã«ã質åã®ä»æ¹ã工倫ããŠã¿ãŸãããã
3.1. 質åã®ä»æ¹
ãããŸã§æ£è§£ããªã質å2ãã©ã³ã¡ãããªãŒã¬ã³ãåŒåã«ãããã£ããã¯ïŒã«ã€ããŠã質åã®ä»æ¹ãå€ããŠã¿ãŸããããå
ã®æç« ã
æ é·ã§ãããšã«ãã®éèœãéæã«è¥²ããæ»ã«ãããéã«å€§éæ³äœ¿ããã©ã³ã¡ã«å©ãããã圌女ã®åŒåã«ãªãã
ãªã®ã§ãWikipediaã®èšèã䜿ã£ãŠã
å€§éæ³äœ¿ããã©ã³ã¡ãããªãŒã¬ã³ãåŒåã«ãããã£ããã¯ïŒ
ã«å€ããŠã¿ãŸãïŒä»¥éããã®è³ªå㯠質å2', Q2' ãšåŒã³ãŸãïŒã
çµæ
è€æ°ã®æ¡ã«è©ŠãããšãããããŒã¹ã©ã€ã³ãHyDEãã¢ãã«å€æŽã§æ£è§£ã«ãªããŸããã
| é ç® | çµæ | å 容 |
|---|---|---|
| 0. ããŒã¹ã©ã€ã³ | â | å€§éæ³äœ¿ããã©ã³ã¡ãããªãŒã¬ã³ãåŒåã«ãããã£ããã¯ããã©ã³ã¡ã®æ é·ã§ãããšã«ãã®éèœãéæã«è¥²ãããæ»ã«ãããŠãããšãã«å©ããããããšã§ã...(çç¥)... |
| 1.2. ãã£ã³ã¯æ°å€æŽ | à | å€§éæ³äœ¿ããã©ã³ã¡ãããªãŒã¬ã³ãåŒåã«ãããã£ããã¯ãããªãŒã¬ã³ãå¹Œå°æããéæ³ã®ç éœãç©ã¿ã圌女ã«åºäŒã£ãã°ããã®æç¹ã§æ¢ã«åè¶ããéåã®...(çç¥)... |
| 1.3. èŠçŽ | à | å€§éæ³äœ¿ããã©ã³ã¡ãããªãŒã¬ã³ãåŒåã«ãããã£ããã¯ãããªãŒã¬ã³ãæŠçœå€å ã§ãããèªæ®ºãå³ã£ããšãããåè ããŒãã£ãŒã®å§äŸ¶ã«å©ããããããšã§ã...(çç¥)... |
| 1.4. HyDE | â | ãã©ã³ã¡ãããªãŒã¬ã³ãåŒåã«ãããã£ããã¯ããã©ã³ã¡ããšã«ãã®éèœãéæã®è¥²æããæã£ãéã«ãããªãŒã¬ã³ãå©ããããããšã§ã...(çç¥)... |
| 2.1. ã¢ãã«å€æŽ | â | å€§éæ³äœ¿ããã©ã³ã¡ãããªãŒã¬ã³ãåŒåã«ãããã£ããã¯ãããªãŒã¬ã³ãæ é·ã§ãããšã«ãã®éèœãéæã«è¥²ããæ»ã«ãããéã«ãã©ã³ã¡ã«å©ããããããšã§ã...(çç¥)... |
ä»åã§ããªãã£ãããš
ä»åãæé & ãéã®éœåã§ãããããããšãããã€ãã§ããŸããã§ããã
1. èŠçŽã®å·¥å€«(ã¢ãã«å€æŽãªã©)
èŠçŽã®ç« ã§ãè¿°ã¹ãŸããããèŠçŽã«äœ¿ãLLMã®ã°ã¬ãŒãã¢ããã詊ããŸããã§ãããgpt-3.5-turboã§äžæãã€èŠçŽãããããåŠçã«10åã»ã©ããã£ãŠããŸã£ãã®ã§ãã°ã¬ãŒãã¢ããããæã®èª²éé¡ãæ³åããŠãããã£ãŠããŸã£ãã®ãæ£çŽãªãšããã§ãã
èŠçŽã¯ããŒã¿ã®ååŠçãªã©ã«ã工倫ã®äœå°ãããããã§ãããå°ã調æ»ãããããšããã§ãã
2. ãã¯ãã«æ€çŽ¢ã®å·¥å€«
ãã¯ãã«æ€çŽ¢ã®å·¥å€«ã¯ãæéãšå匷ãè¶³ããªããŠæãã€ããããšãã§ããŸããã§ããã
ãã£ãšèª¿ã¹ãã ãã§ããæ¡çšããã©ã€ãã©ãªã®æ€èšãã¢ãã«ã®fine-tuneãRe-rankã¢ãã«ã®æŽ»çšãªã©ããããããšæ¹åã®äœå°ãããããã§ãã
3. åã蟌ã¿ã¢ãã«ã®å·¥å€«
ããã¥ã¡ã³ãã®åã蟌ã¿ã«äœ¿ãã¢ãã«ãããæ§èœã®è¯ããã®ã«ãããšã粟床ãäžãããããããŸããã
4. è©äŸ¡æ¹æ³ã®æ€èš
ä»åã¯åçŽã«æ£çæ°ãæ°ããã ãã§ãããæ¬æ Œçã«åãçµãå Žåã¯ãè©äŸ¡ææšã®æ€èšãå¿ èŠã§ããä»åã¯æéã®éœåã§ããããŸã§æãåããŸããã§ããã
ãŸãšã
質åå¿çã®çµæããŸãšãããšã以äžã®ããã«ãªããŸãïŒQ1ãQ3ã®è³ªåå 容ã¯ãã¡ããQ2'ã¯ãã¡ããåç §ïŒã
| é ç® | Q1 | Q2 | Q3 | Q2' | ãã£ã³ã¯æåæ°,åºåãæå, é¡äŒŒãã£ã³ã¯æ°,ã¢ãã« |
|---|---|---|---|---|---|
| 0. ããŒã¹ã©ã€ã³ | à | à | à | â | 200, ã, k=3, gpt-3.5-turbo |
| 1.1. é¡äŒŒãã£ã³ã¯æ° | à | à | à | à | 200, ã, k=5, gpt-3.5-turbo |
| 1.2. ãã£ã³ã¯æåæ° | â | à | â | à | 400, \n, k=3, gpt-3.5-turbo |
| 1.3. HyDE | â | à | â | â | 400, \n, ãªã, gpt-3.5-turbo |
| 1.4. èŠçŽ | â | à | â³ | à | 400, \n, k=3, gpt-3.5-turbo |
| 2.1. ã¢ãã«å€æŽ | â | à | â | â | 400, \n, k=3, gpt-4-1106-preview |
ããããå šåæ£è§£ã«ã¯ãªããŸããã§ãããæãæçžŸãããã£ãã®ã¯HyDEãšã¢ãã«å€æŽã§ãQ2'ã§è³ªåã®ä»æ¹ãå€ããããšã§æ£è§£ã«ãªããŸãããä»åã®å®éšã§ããã£ãããšããŸãšãããšã以äž3ç¹ã«ãªããŸãã
- ãã£ã³ã¯ã¯ãç¥èããŸãšãŸã£ãŠããåäœã§åå²ããã®ããã
- ä»åã¯400åçšåºŠã段èœåºåãã Good!!
- 質åãšãã£ã³ã¯ã®é¡äŒŒåºŠãããã工倫ã广ç
- æ€çŽ¢ã«ä»®ã®åçãæž¡ã HyDE ã¯å¹æãããããðââïž
- ä»å詊ããªãã£ã ãã¯ãã«æ€çŽ¢ãèŠçŽã®å·¥å€«ãªã©ã«æ¹åã®äœå°ã倧ããã
- åççæã®LLMã®åœ±é¿ã倧ãã
RAGã«ãããŠã¯ã質åãšãã£ã³ã¯ã®é¡äŒŒåºŠãäžãã工倫ãèŠã ãšããããŸããã
ãŸããRAGã®ãã¬ãŒã ã¯ãŒã¯ã¯å¿çšãå¹ãããã§ãLLMã®åãã工倫ããã°ã¬ã³ã¡ã³ãã«ãæçšã§ã¯ãªãããšæã£ãŠããŸããä»åŸã®çºå±ã楜ãã¿ãªæè¡ã§ãã
宣äŒ
æåŸã«å®£äŒã§ãã
Supership ã§ã¯ãããã¯ãéçºããµãŒãã¹éçºã«é¢ãã人ãçµ¶è³åéããŠãããŸãã
ãèå³ãããæ¹ã¯ä»¥äžãªã³ã¯ããã確èªãã ããã
Supership æ¡çšãµã€ã
æ¯éãšããããããé¡ãããŸãã
åè
- RAGã«ãããããã¥ã¡ã³ãæ€çŽ¢ç²ŸåºŠåäžã«ã€ããŠ(æŠèŠç·š)
- RAG ã«ãããåã蟌ã¿ã¢ãã«ã®æ¯èŒ
- ãã¯ãã«æ€çŽ¢ã§æ¬²ããæ å ±ãåŸãããªããšãã®åé¡ç¹ãšæ¹è¯æ¹æ³ãèããŠã¿ã
- Retrieval-based LM (RAG system) ãã£ããçè§£ãã
- LangChain ãžã® OpenAIã®RAGæŠç¥ã®é©çš
- LangChainããåŠã¶LLMã䜿ã£ãã¢ããªã±ãŒã·ã§ã³ã®å·¥å€«
- LangChainã䜿ã£ãŠHyDEã«ããã¯ãšãªå€æã®å¹æãæ€èšŒãã
- LangChain API reference(å ¬åŒããã¥ã¡ã³ã)
- HyDEå ¬åŒãµã³ãã«ã³ãŒã
- ãã¯ãã«æ€çŽ¢ã©ã€ãã©ãª Faiss ã詊ã
- æè¿è©±é¡ã®Vector Searchãå®çŸããFaissã£ãŠäœïŒ #1
- LangChainã§Cognitive Searchã®ãã¯ãã«DBãšé£æºãããRAGãæ§ç¯ãã
- LangChainã§ HyDE ã«ãã質åå¿çã詊ã