수집한 데이터를 사용해서 훈련한 모델의 성능이 기대한만큼, 법률 분쟁 상황에 대해 이해하고 적절한 답변을 내놓지 못하는 경우가 종종 있었습니다. 데이터의 개수는 딥러닝 모델 성능에 매우 큰 영향을 미치기 때문에, 더 많은 데이터를 확보할 필요성을 느꼈습니다. 법적인 문제가 없는 선에서 더 이상 수집할 수 있는 데이터가 거의 없다고 판단하여, 데이터를 생성하기로 하였습니다.
최초에 데이터 생성에 사용할 수단으로는 구글 Bard, OpenAI API를 선택하였습니다. Bard API의 응답이 되는 json에는 choices key 아래에 총 세 개의 답변이 포함됩니다. 그런데 대부분의 답변이 다음과 같았습니다.
'choices': [{'id': 'rc_b30fbe8e3f09cebb',
'content': ['죄송합니다. 저는 법률 전문가가 아니므로 법률 조언을 드릴 수 없습니다. 법률 분쟁을 겪고 계신 경우 변호사와 상담하시기 바랍니다. 변호사는 귀하의 상황에 맞는 최선의 조언을 해 드릴 수 있습니다.']},
종종 아래와 같이 의도한 대로 질의응답 쌍을 생성할 때가 있었지만, 그 빈도가 매우 낮고 생성에 소요되는 시간에 비해서 실제로 생성되는 유의미한 데이터의 개수가 너무 적기 때문에 Bard api를 통한 데이터 생성 방식은 사용하지 않기로 하였습니다.
'content': ['네, 임의의 법률 분쟁 상황에 대한 질의 응답 데이터를 생성해 드리겠습니다.\\n\\n* **질문:**\\n\\n제 친구가 술에 취해 길에 쓰러졌는데, 지나가던 사람이 그 친구를 차로 치고 도망갔습니다. 제 친구는 중상을 입었고, 병원비가 많이 들었습니다. 이 경우, 친구는 가해자를 상대로 어떤 법적 조치를 취할 수 있을까요?\\n\\n* **답변:**\\n\\n친구는 가해자를 상대로 손해배상 청구 소송을 제기할 수 있습니다. 손해배상 청구 소송은 가해자의 부주의로 인해 피해자가 입은 손해를 배상해 달라고 요구하는 소송입니다. 친구의 경우, 가해자의 부주의로 인해 중상을 입었고, 병원비가 많이 들었습니다. 따라서 친구는 가해자를 상대로 손해배상 청구 소송을 제기하여 병원비와 기타 손해를 배상받을 수 있습니다.\\n\\n손해배상 청구 소송을 제기하기 위해서는 다음과 같은 서류를 준비해야 합니다.\\n\\n* 소장\\n* 소장 부본\\n* 인지대\\n* 송달료\\n* 손해배상 청구서\\n* 진단서\\n* 진료비 영수증\\n* 기타 관련 서류\\n\\n소장을 제출하면 법원은 소장을 가해자에게 송달합니다. 가해자는 소장을 송달받은 후 30일 이내에 답변서를 제출해야 합니다. 가해자가 답변서를 제출하지 않으면 법원은 가해자를 상대로 단독 판결을 선고할 수 있습니다.\\n\\n법원이 단독 판결을 선고하면 친구는 판결문을 집행권원으로 사용하여 가해자를 상대로 강제집행을 할 수 있습니다. 강제집행에는 재산압류, 압류금 전부 추심, 부동산 경매 등이 있습니다.\\n\\n*']}],
GPT를 사용하였을 때는 비교적 의도대로 데이터가 생성되었습니다. 아래와 같이 여러 프롬프트를 사용하여 데이터 생성을 시도하였고, 그 중 가장 의도와 맞는 결과를 얻을 수 있는 fewshot
프롬프트를 최종적으로 사용하였습니다.
Prompt Name | Prompt |
---|---|
zeroshot | 임의의 법률 분쟁 상황을 가정하고, 그에 대한 내용을 질문의 형식으로 만들어주세요. 그리고 해당 질문에 대한 답변을 함께 출력해주세요. |
zeroshot_2 | 법률 분쟁 상황을 가정하고, 해당 상황의 가해자 또는 피해자가 의뢰할 만한 상담 내용을 작성해주세요. 출력에는 해당 상담 내용에 대한 답변을 포함해주세요. |
oneshot | 아래 예시의 형식을 참고하여, 임의의 법률 분쟁 상황에 대한 질의 응답 데이터를 생성해주세요. |
[예시] 질문: (생략) 답변: (생략) | | fewshot | 아래 예시의 형식을 참고하여, 임의의 법률 분쟁 상황에 대한 질의 응답 데이터를 생성해주세요.
[예시 1] 질문: (생략) 답변: (생략)
[예시 2] 질문: (생략) 답변: (생략) | | fewshot_with_ constraints | 아래 예시의 형식을 참고하여, 임의의 법률 분쟁 상황에 대한 새로운 질의 응답 데이터를 생성해주세요. 답변을 생성할 때는 다음 조건에 맞게 생성해주세요.
[조건]
(이하 생략) |
OpenAI에서 발표한 연구에서는 프롬프트를 사용하여 in-context learning을 수행할 경우 모델 성능이 향상된다고 합니다. 실제로 여러 프롬프트를 사용하여 생성한 샘플을 정성적으로 비교했을 때, fewshot prompt
를 통해 생성된 데이터의 품질이 가장 뛰어났기 때문에 해당 프롬프트를 사용하기로 결정하였습니다.