본문 바로가기
데이터&AI/LLM

few show과 zero shot 그리고 CoT (feat. 성킴님 강의)

by 일등박사 2024. 5. 18.

숫자 문제를 잘 못푸는 경우가 있다!!

 

이때문에 CoT라는 방법론이 나왔다!!

 

그래서, few-show/ zero show + COT에 대하여 알아보자!

Few-shot :  예시를 보여줄게~~

from langchain_core.prompts import PromptTemplate

prompt_template = PromptTemplate.from_template(
    """
질문: 로저는 테니스공을 5개 가지고 있습니다. 그는 테니스공이 3개씩 들어 있는 캔 2개를 더 삽니다. 이제 그는 테니스공을 몇 개 가지고 있습니까?

답: 답은 11개입니다.

질문: 식당에 사과가 23개 있었습니다. 점심을 만들기 위해 20개를 사용했고, 6개를 더 샀다면, 사과가 몇 개 남았습니까?

답: 단계별로 생각해 봅시다.
"""
)
chain = prompt_template | llm | StrOutputParser()
chain.invoke({})

 

 

Few-shot-COT :  더 자세히! 예시를 보여줄게~~

from langchain_core.prompts import PromptTemplate

prompt_template = PromptTemplate.from_template(
    """
질문: 로저는 테니스공을 5개 가지고 있습니다. 그는 테니스공이 3개씩 들어 있는 캔 2개를 더 삽니다. 이제 그는 테니스공을 몇 개 가지고 있습니까?

답: 로저는 처음에 5개의 테니스공을 가지고 있었습니다. 3개의 테니스공이 들어 있는 캔 2개는 6개의 테니스공입니다. 5 + 6 = 11. 답은 11개입니다.

질문: 식당에 사과가 23개 있었습니다. 점심을 만들기 위해 20개를 사용했고, 6개를 더 샀다면, 사과가 몇 개 남았습니까?

"""
)
chain = prompt_template | llm | StrOutputParser()
chain.invoke({})

 

Zero-shot : 그냥 구해바!!

from langchain_core.prompts import PromptTemplate

prompt_template = PromptTemplate.from_template(
    """
질문: 식당에 사과가 23개 있었습니다. 점심을 만들기 위해 20개를 사용했고, 2개묶음 6개를 더 샀다면, 사과가 몇 개 남았습니까?

답: 답은
"""
)
chain = prompt_template | llm | StrOutputParser()
chain.invoke({})

 

Zero-shot-COT  : 그냥 구하는건데, 잘생각해봐~~

핵심은!? 마지막에  "답: 단계별로 생각해 봅시다." 를 추가한다!!!

질문: 로저는 테니스공을 5개 가지고 있습니다. 그는 테니스공이 3개씩 들어 있는 캔 2개를 더 삽니다. 이제 그는 테니스공을 몇 개 가지고 있습니까?

답: 답은 11개입니다.

질문: 식당에 사과가 23개 있었습니다. 점심을 만들기 위해 20개를 사용했고, 6개를 더 샀다면, 사과가 몇 개 남았습니까?

답: 단계별로 생각해 봅시다

 

 

 

 

댓글