인공지능/논문 리뷰 or 진행

Are LLMs Effective Negotiators? Systematic Evaluation of the Multifaceted Capabilities of LLMs in Negotiation Dialogues - 구현

이게될까 2024. 12. 3. 17:30
728x90
728x90

 

항목 내용
논문의 주제 LLM의 협상 대화에서의 다면적 능력을 체계적으로 평가.
연구 목표 - 협상 대화에서 LLM의 이해, 주석, 파트너 모델링, 응답 생성 능력을 평가.
- LLM을 활용한 협상 시스템의 가능성과 한계를 탐구.
데이터셋 CRA, DND, CA(CaSiNo), JI(Job Interview) 등 총 4개 데이터셋 사용.
- Multi-Issue Bargaining Task(MIBT) 기반으로 협상 시나리오 설계.
평가 방식 - 태스크 설계: 35개 태스크로 세분화(이해, 주석, 파트너 모델링, 응답 생성).
- 시간 단계: 협상 시작(Start), 진행(During), 종료(End)로 구분.
- 객관적(정답 존재) 및 주관적(심리 상태 추론) 평가로 나눔.
비교 모델 GPT-4, GPT-3.5, Mistral-7B, Vicuna-13B 등 다양한 LLM 비교.
평가 지표 - 정량적: Accuracy, Macro-F1, Pearson Correlation Coefficient(PCC).
- 정성적: 전문가 평가(Coherence, Strategy).
주요 결과 - GPT-4가 대부분의 태스크에서 우수한 성능.
- CoT(Chain-of-Thought) 프롬프트가 다단계 논리적 태스크에서 성능을 크게 향상.
- 소규모 모델(Mistral-7B 등)은 큰 성능 격차를 보이며 제한적.
강점 - 협상 능력을 체계적으로 평가할 수 있는 프레임워크 설계.
- LLM의 응용 가능성을 확장(예: 주석 자동화, 교육, 데이터 수집).
한계점 - Agent로서의 자율성과 목표 지향성 부족.
- 동적 협상 시나리오 미반영(선호도 변경 등).
- 주관적 평가(만족도, 호감도)에서 인간과 상충되는 결과 존재.
- 소규모 모델 성능 부족.
발전 가능성 - 강화학습(RL)과 통합해 목표 지향적 행동 및 자율성 강화.
- 동적 환경 변화에 적응 가능한 시스템 설계.
- 소규모 모델 개선을 위한 Knowledge Distillation 및 Fine-tuning 활용.
- 협상 결과를 예측하는 장기적 시나리오 도입.
결론 - LLM은 협상 대화에서 유용한 도구로 활용 가능하나, Agent로서의 완전한 자율성을 구현하지 못함.
- 향후 연구는 강화학습, 동적 시뮬레이션, 전략적 사고 강화를 통해 진정한 AI 협상 에이전트 개발을 목표로 삼아야 함.

 

 

Data set Scenario Issues #of Dialogues 특징
CRA Artifacts trading Painting, Lamp,
Album
119 - 발화 단위 대화 행위(Dial Act) 주석 포함
- 명확한 대화 구조 제공
DND General items Ball, Hat, Book 6,251 - 다수의 대화 데이터 제공
- 전반적인 물품 교환 시나리오
- 협상 결과에서 점수 계산 가능
CA Campsite Neighbors Food, Water, Firewood 1,030 - 만족도 및 호감도 등 주관적 메트릭 포함
- 발화 단위 전략(Strategy) 주석 포함
JI Job Recruiter-Worker Interaction Salary, Day-off, Position,
Company, Workplace
2,639 - 다양한 직장 선택 시나리오
- 다중 이슈 협상 지원

 

세부 설명

  1. CRA (Artifacts Trading):
    • 아트 아이템(그림, 램프, 앨범) 거래를 다룸.
    • 상대적으로 작은 데이터셋(119개의 대화).
    • 발화 단위 대화 행위(Dial Act) 주석 포함.
  2. DND (General Items):
    • 일반적인 아이템(공, 모자, 책) 협상을 중심으로 구성.
    • 가장 큰 데이터셋(6,251개의 대화).
    • 다수의 대화를 포함하여 점수 계산 기반 평가 가능.
  3. CA (Campsite Neighbors):
    • 캠핑 상황에서 음식, 물, 장작을 협상.
    • 만족도 및 호감도와 같은 주관적 평가 메트릭 포함.
    • 대화의 전략(Strategy) 주석 제공.
  4. JI (Job Recruiter-Worker Interaction):
    • 급여, 휴가, 직책 등 직업 협상 시나리오.
    • 다중 이슈 협상을 다루며, 복잡한 협상 문제를 테스트하기 적합.

 

Start - 협상 상황 이해 및 준비 작업

C1: 본인에 대해 파악(우선 순위, 품목 개수)하고, 상대방 정보는 보이지 않는다.

 

During - 협상 진행 중 대화, 전략 교환

C2: 대화를 하며 상대방의 요구를 탐색한다.

C3: 상대방의 선호도를 추론한다.

C4: 요구를 반영하며 구체적인 제안을 생성한다.

 

End - 종료 후 결과 평가 

 

 

  1. Comprehension (Comp):
    • 협상 맥락과 정보를 이해.
    • 예: 항목의 점수, 총 개수, 최종 결과 등.
  2. Partner Modeling (Part):
    • 상대방의 선호도와 심리 상태 추론.
    • 예: "상대방이 음식을 가장 중요시한다."
  3. Annotations (Anno):
    • 대화 행위와 전략 주석화.
    • 예: 특정 응답이 "질문(Inquiry)"인지 "제안(Proposal)"인지 분류.
  4. Generation (Gen):
    • 다음 응답 생성.
    • 예: "음식 3개는 내가 받고, 물 2개는 당신이 받는 게 어떨까요?"
단계 주어진 정보 수행 Task
Start 협상 맥락(Task descriptions, Counts) 항목별 점수 계산, 우선순위 파악, 총 개수 및 최대 점수 계산 (Comp).
During 협상 대화 일부(Partial Dialogue) 상대방의 우선순위 추론(Part), 대화 행위/전략 주석화(Anno), 다음 응답 생성(Gen).
End 협상 대화 전체(Complete Dialogue) 최종 결과(Outcome)와 만족도 평가 (Comp, Part).

 

유형 설명 예시 Task
Comprehension 협상 맥락과 결과를 이해. - 총 아이템 개수 파악
- 우선순위 및 최대 점수 이해
- 최종 결과 세부사항 및 만족도/호감도 추론
Annotation 발화의 의미와 기능을 주석 처리. - 대화 행위 주석 (제안, 반대)
- 전략 주석 (선호도 요청, 자기 필요)
- 들어오는 제안 파싱
Partner Modeling 상대방의 전략과 우선순위를 추론하여 협상에 적응. - 상대방 우선순위 예측
- 상대방 만족도 및 호감도 추론
Generation 대화 맥락과 히스토리를 기반으로 적절한 응답 생성. - 제안 및 반박 제안 생성
- 대화 응답 생성

 

 

 

 

1. Start 단계의 태스크

Start 단계는 협상의 초기 단계로, 에이전트가 협상 조건을 기반으로 아이템의 수량, 점수, 우선순위를 이해하는 작업을 포함

테스크 설명
sta_total_item_count_dnd DND 데이터셋에서 협상 가능한 아이템의 총 개수를 정확히 이해.
sta_total_item_count_ca CA 데이터셋에서 협상 가능한 아이템의 총 개수를 정확히 이해.
sta_max_points_dnd DND 데이터셋에서 협상 가능한 최대 점수를 정확히 이해.
sta_max_points_ca CA 데이터셋에서 협상 가능한 최대 점수를 정확히 이해.
sta_ask_point_values_dnd DND 데이터셋에서 각 아이템의 우선순위(점수)를 정확히 이해.
sta_ask_point_values_ca CA 데이터셋에서 각 아이템의 우선순위(점수)를 정확히 이해.
sta_ask_low_priority_ji JI 데이터셋에서 가장 낮은 우선순위 아이템을 정확히 이해.
sta_ask_low_priority_ca CA 데이터셋에서 가장 낮은 우선순위 아이템을 정확히 이해.
sta_ask_high_priority_ji JI 데이터셋에서 가장 높은 우선순위 아이템을 정확히 이해.
sta_ask_high_priority_ca CA 데이터셋에서 가장 높은 우선순위 아이템을 정확히 이해.

2. During 단계의 태스크

During 단계는 협상이 진행되는 단계로, 대화와 전략 추론, 응답 생성 등 동적인 작업이 포함

테스크 설명
dur_strategy_ca CA 데이터셋에서 특정 발화의 협상 전략을 주석 처리.
dur_partner_ask_low_priority_ji JI 데이터셋에서 상대방의 가장 낮은 우선순위 아이템을 추론.
dur_partner_ask_low_priority_ca CA 데이터셋에서 상대방의 가장 낮은 우선순위 아이템을 추론.
dur_partner_ask_high_priority_ji JI 데이터셋에서 상대방의 가장 높은 우선순위 아이템을 추론.
dur_partner_ask_high_priority_ca CA 데이터셋에서 상대방의 가장 높은 우선순위 아이템을 추론.
dur_gen_resp_dnd DND 데이터셋에서 대화에 기반한 적절한 응답을 생성.
dur_gen_resp_ca CA 데이터셋에서 대화에 기반한 적절한 응답을 생성.
dur_full_proposal_dnd DND 데이터셋에서 특정 발화의 전체 제안을 주석 처리 (예: 아이템 개수).
dur_full_proposal_cra CRA 데이터셋에서 특정 발화의 전체 제안을 주석 처리 (예: 아이템 개수).
dur_dial_act_ji JI 데이터셋에서 특정 발화의 대화 행위를 주석 처리.
dur_dial_act_dnd DND 데이터셋에서 특정 발화의 대화 행위를 주석 처리.
dur_dial_act_cra CRA 데이터셋에서 특정 발화의 대화 행위를 주석 처리.
dur_ask_low_priority_ji JI 데이터셋에서 에이전트의 가장 낮은 우선순위 아이템을 정확히 이해.
dur_ask_low_priority_ca CA 데이터셋에서 에이전트의 가장 낮은 우선순위 아이템을 정확히 이해.
dur_ask_high_priority_ji JI 데이터셋에서 에이전트의 가장 높은 우선순위 아이템을 정확히 이해.
dur_ask_high_priority_ca CA 데이터셋에서 에이전트의 가장 높은 우선순위 아이템을 정확히 이해.

3. End 단계의 태스크

End 단계는 협상 종료 후 결과를 평가하고, 만족도와 같은 주관적 메트릭을 추론하는 작업이 포함됩니다.

테스크 설명
end_partner_deal_satisfaction_ca CA 데이터셋에서 대화를 기반으로 상대방의 최종 거래 만족도를 추론.
end_partner_deal_likeness_ca CA 데이터셋에서 대화를 기반으로 상대방이 자신에게 느끼는 호감도를 추론.
end_deal_total_dnd DND 데이터셋에서 최종 거래 점수(아이템 개수와 점수의 내적)를 이해.
end_deal_total_ca CA 데이터셋에서 최종 거래 점수(아이템 개수와 점수의 내적)를 이해.
end_deal_specifics_ji JI 데이터셋에서 최종 거래의 세부사항(아이템별 개수)을 이해.
end_deal_specifics_dnd DND 데이터셋에서 최종 거래의 세부사항(아이템별 개수)을 이해.
end_deal_specifics_ca CA 데이터셋에서 최종 거래의 세부사항(아이템별 개수)을 이해.
end_deal_satisfaction_ca CA 데이터셋에서 자신의 최종 거래 만족도를 이해.
end_deal_likeness_ca CA 데이터셋에서 자신이 상대방에게 느끼는 호감도를 이해.

 

https://github.com/DSincerity/SysEval-NegoLLMs

 

GitHub - DSincerity/SysEval-NegoLLMs: Code for Systematic Evaluation of the LLMs Capabilities in Negotiation Dialogues (Accepted

Code for Systematic Evaluation of the LLMs Capabilities in Negotiation Dialogues (Accepted at Findings of EMNLP 2024) - DSincerity/SysEval-NegoLLMs

github.com

여기서 git clone 해오면 됩니다.

 

저는 main.py를 그대로 쓰기 보단 출력을 하나하나 보고 싶어서 ipynb파일을 통해 나눠서 확인해봤습니다.

class Args:
    def __init__(self):
        self.task_name = "sta_total_item_count_dnd,sta_max_points_dnd,mid_dial_act_dnd,mid_gen_resp_dnd,end_deal_specifics_dnd,sta_ask_point_values_dnd,mid_full_proposal_dnd,end_deal_total_dnd"
        self.dataset_name = "dnd"
        self.model_name = "hf_model"
        self.storage_dir = "storage/"
        self.num_instances = 1
        self.max_num_instances = 200
        self.hf_model_str = "mistralai/Mistral-7B-Instruct-v0.1"
        self.num_utts_partial_dial = -1
        self.use_cot = False
        self.num_multishot = 0
        self.num_prior_utts = 0

이렇게 만들어줘서 사용했습니다!

 

다른것은 동일하게 main.py에서 가지고 와서 사용했습니다!

 

그럼 로그파일에 이렇게 동일하게 생깁니다.

저는 gpt-4도 api key를 통해 동일하게 진행해서 이렇게 결과가 나와있습니다.

 

mistral의 생성
gpt의 생성

GPT는 본인을 너무 까발리네요...?

COT도 한번 더 해봐야 겠습니다.

gpt CoT

다를 게 없네요 ㅎㅎ...

생성에서는 CoT를 사용하지 않습니다.

 

확실한 것은 단순히 평가만 진행하고, 그 평가가 다시 Model에 들어가서 유동적으로 사용되는 것이 아니라 모델에 발전이 없네요

 

이러한 점을 발전시키면 될 것 같습니다.

 

 


1. num_utts_partial_dial

  • 의미: 대화 도중 주어진 부분 대화(partial dialogue)에서 포함되는 발화(utterance)의 수를 나타냅니다.
  • 목적: 협상 기록의 일부만 제공된 상황에서 모델이 제한된 정보를 바탕으로 얼마나 잘 추론하고 응답을 생성할 수 있는지 평가하기 위해 사용됩니다.
  • 데이터 출처: 협상 중인 대화 데이터셋에서 가져옵니다. 일반적으로 협상 상대 간 교환된 발화 중 특정 시점까지의 내용을 포함합니다.
  • 적용 사례: 정보가 불완전한 상황에서 모델의 추론 능력을 테스트하는 데 적합합니다.

2. use_cot (Chain of Thought, 사고의 연결)

  • 의미: Chain of Thought(COT) 방식을 사용할지 여부를 나타냅니다.
  • 목적: 모델이 중간 사고 과정(Intermediate Reasoning)을 명시적으로 설명하도록 유도하여 다단계 추론(multi-hop reasoning)이나 산술적 과제(arithmetic tasks)를 더 잘 수행하도록 돕습니다.
  • 데이터 출처: 훈련 데이터와는 무관하며, 평가 단계에서 프롬프트 전략으로 적용됩니다.
  • 적용 사례:
    • 협상 결과 계산이나 상대방 만족도 측정과 같은 복잡한 과제를 수행할 때 사용됩니다.
    • 다단계 추론이나 주관적 과제에서 모델의 성능을 향상시킵니다.

3. num_prior_utts

  • 의미: 협상 기록 중 과거 발화(prior utterances)가 프롬프트에 포함되는 개수를 나타냅니다.
  • 목적: 이전 대화 맥락이 모델의 응답 정확도와 품질에 어떤 영향을 미치는지 분석하기 위해 사용됩니다.
  • 데이터 출처: 대화 데이터셋의 대화 기록에서 가져옵니다. 과거 발화가 모두 포함되거나 특정 개수로 제한될 수 있습니다.
  • 적용 사례:
    • 과거 발화를 더 많이 포함하면 상대방의 우선순위와 선호도를 더 잘 이해할 수 있습니다.
    • 그러나 지나치게 많은 발화는 모델이 과거 맥락에 혼란을 느낄 수 있으며, 최근 정보에 대한 편향(recency bias)이 발생할 가능성이 있습니다.

4. num_multishot

  • 의미: 프롬프트에 포함되는 Few-Shot 예제의 개수를 나타냅니다.
  • 목적: 모델이 프롬프트 내에서 제공된 예시를 학습하여(컨텍스트 내 학습) 예상되는 출력의 구조나 사고 방식을 이해하도록 돕습니다.
  • 데이터 출처: 훈련 데이터셋에서 선택되거나, 특정 작업을 나타내기 위해 생성된 인위적인 예제를 포함할 수 있습니다.
  • 적용 사례:
    • 전략 생성이나 상대방 모델링과 같은 복잡한 작업에서 사용됩니다.
    • 작업 특성에 맞는 예제를 제공하여 모델의 성능을 개선합니다.

데이터 처리 및 맥락

  • 데이터 출처:
    • num_utts_partial_dial 및 num_prior_utts는 논문에서 언급된 협상 데이터셋(CRA, DND, CA, JI)에서 가져옵니다.
    • use_cot 및 num_multishot는 데이터셋보다는 평가 과정에서 구조화된 프롬프트를 통해 작업에 적용됩니다.
  • 이전 출력과의 관계:
    • 위 설정은 모델의 추론 및 응답 생성 시 제공되는 사전 정보의 양과 유형을 제어합니다.
    • 예를 들어, use_cot는 협상 결과 점수 계산을 개선하고, num_prior_utts는 대화 맥락 이해도를 높입니다.

이러한 매개변수는 모델이 논리적 사고, 전략적 응답 생성, 상대방 선호도 추론을 얼마나 잘 수행하는지 평가하는 데 중요한 역할을 합니다. 추가적인 질문이 있다면 알려주세요!

728x90