모바일 Posted June 26 공유하기 Posted June 26 하이퍼클로바가 한글 문제나 수학 문제를 내면, 사용자가 답을 맞히는 대화를 하도록 설계를 하고 있는데요. 사용자가 틀린 답을 말해도 다 정답이라고 하는 경우가 대부분이더라구요. 첨부한 스크린샷의 덧셈문제는 hcx-003 모델과 hcx-dash-001 모델을 사용했고, 단어놀이 문제의 경우는 해당 문제를 내도록 튜닝한 hcx-003 모델을 사용했습니다. 참고로 특정 단어가 포함된 단어를 물어보는 경우, 아래와 같은 내용으로 시스템 프롬프트를 여러 번 작성해보고, 변경도 해가면서 실행을 해보았습니다. <단어놀이 하는 방법> 문제 : '아'가 들어가는 단어는 무엇이 있을까? 1.사용자 : 아이스크림 어시스턴트 : '아이스크림'을 '아', '이', '스', '크', '림'으로 한 글자 씩 나눠서 '아'라는 글자가 있는지 확인을 함. '아' 는 '아'와 같음. '이' 는 '아'와 다름. '스' 는 '아'와 다름. '크' 는 '아'와 다름. '림' 는 '아'와 다름. 따라서 '아'와 같은 단어가 있으므로 정답 2.사용자 : 앙팡 어시스턴트 :'앙'과 '팡'으로 한 글자씩 나눠서 '아'라는 글자와 같은지 다른지 비교. '앙' 은 '아'와 다름. '팡' 은 '아'와 다름. 따라서 '아'와 같은 글자가 없음. 틀린 답. HCX-003 모델의 경우, 오답 판별을 잘하기도 하지만, 여전히 못 하는 경우도 있었습니다. 문제 : "사" 가 들어가는 단어가 무엇이 있을까? <오답을 오답이라고 판단> 1. 글자별로 나누면 '가' , '방' 인데 둘 다 '사'와는 다르네요. 가방이란 단어에는 '사'가 포함되어 있지 않습니다. 2. 빠르게 구분 하겠습니다.'산', '기', '슭' 이며 셋 다 '사'와 상이하므로 산기슭이라는 단어내에는 '사'가 없어요. 3. 나누면 '의' 와 '자'인데 두 개 모두 '사'와는 다릅니다. 의자라는 단어 안에는 '사'가 들어가 있지 않네요. <오답을 정답이라고 판단> 1. 두 글자이니 바로 나누겠습니다. '상' 이라는 글자가 두 번 반복되는데 이것들은 모두 '사'와 같네요. 상상이라는 단어엔 '사'가 포함되어 있습니다. 2. '상' 과 '자'이며 각각 '사'와 같으므로 상자라는 단어속에는 '사'가 내포되어 있습니다. 3. '상', '상', '플', '러', '스' 다섯개로 나뉘어지며 첫 번째와 두 번째인 '상' 만 '사'와 같고 나머지는 달라요. 그렇기에 상상플러스라는 단어전체로는 '사'가 하나만 포함되어 있다고 할 수 있겠죠. 위의 프롬프트를 작성한 경우, 오답을 말했을 때 오답이라고 말하는 빈도가 늘긴 했습니다만, 풀이 과정을 빼고 정답이다/아니다만 말하라고 하면 또 오답을 정답이라고 하는 게 대부분이더라구요. 또한, 해당 문제를 내도록 튜닝한 모델에 같은 프롬프트를 집어 넣었을 때는 위와 같은 응답을 하지 않고, 오답을 말해도 똑같이 정답이라고 합니다. 이 부분을 어떻게 해결을 할 수 있을까요? 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자 Posted July 11 공유하기 Posted July 11 안녕하세요, @모바일님, 답변이 많이 늦어진 점 양해부탁드립니다. 흥미로운 시도를 해보시는 듯 합니다. 우선 모델이 추론을 통해 정확한 답변을 하고, 외부의 여러 요인과 유도에도 흔들리지 않고 확고하게 답변을 유지하게 하는 것은 앞으로도 지속해야할 연구 과제로 보입니다. ▼ 우선 몇가지 방법으로 시도해보았는데요. 단어의 음절을 나누어서 단계별로 판단하도록 하는 프롬프트가 효과가 있는 것으로 보였고, 이때 '생각:'이라는 prefix를 함께 제시한다거나, 인풋을 음절단위로 구분할 수 있도록 구분해서 제시하는 것이 효과적이기도 했습니다. (e.g. '가','방') ▼ 이미 튜닝은 진행해보셨다고 하였는데, 위와 같이 시스템 프롬프트에도 예제를 추가하는 것이 효과가 있었습니다. 튜닝을 진행하실때 System prompt 열을 포함해서 튜닝을 하시고, 인퍼런스 시에도 System prompt를 활용하시는게 좋을 것 같습니다. Repetition penalty는 1.2로 설정해보시는 것을 제안드립니다. 감사합니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
모바일 Posted July 11 Author 공유하기 Posted July 11 @CLOVA Studio 운영자 답변 감사합니다. 위와 같이 정답 판별하는 과정을 시스템 프롬프트로 주는 경우에 답변에 정답 판별하는 과정이 포함되는데, 과정은 출력되지 않도록 하는 것도 가능할까요? 링크 복사 다른 사이트에 공유하기 More sharing options...
모바일 Posted July 11 Author 공유하기 Posted July 11 프롬프트에 판단 과정은 출력하지 말라고 하니까 되네요. 감사합니다! 1 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자 Posted July 11 공유하기 Posted July 11 @모바일 님, 시퀀스 기반의 언어 모델 특성상 출력 과정을 포함해서, 결과 도출 시키는 것이 성능 향상에 영향이 있는 것으로 알려져 있어서, 판단 과정을 출력하지 않고 답변이 나올 경우, 성능에 대해서는 평가를 진행해보셔야할 듯 합니다. 이러한 경우, 후처리 로직을 이용하여, 판별 과정에 대해서는 미노출하도록 하는 편이 모델의 성능을 유지하면서 서비스 로직에 맞추어서 구현할 수 있는 방향이지 않을까 생각이 듭니다. 감사합니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인