Inflearn brand logo image

인프런 커뮤니티 질문&답변

최재헌님의 프로필 이미지
최재헌

작성한 질문수

RAG를 활용한 LLM Application 개발 (feat. LangChain)

5.5 [업데이트] PromptTemplate을 활용하는 방법

모델을 어떻게 개선해야하는지 잘모르겠습니다.

해결된 질문

작성

·

41

0

수업 너무 잘들었습니다.

 

제가 강사님 수업을 듣고, 사용자 질의에 따라

sql 쿼리를 반환하는 모델을 만들어보고 있는데요,

 

모델은 허깅페이스에서 "LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct" 이용해서 만들고 있는데,

 

요청에 따라 적절히 sql 쿼리를 만들려면,

일단 모델이 1) db 테이블 구조를 명확히 알아야하고, 2) 질의를 db 테이블 용어(ex: '카톡'을 얘기했을때, sns_type =1 로 대체)로 대체하는 dictionary가 잘되어야 할것같은데,

 

현재는 프롬프트에 1) few_shot 예시와, system 프롬프트에 2) 테이블 구조에 대한 설명, sql 작성 규칙 등을 넣어서 결과를 받고 있습니다.

(system 프롬프트는 langChain hub에서 rlm/text-to-sql을 참조 했습니다)

 

예시와 유사하거나 예시에서 약간 변화를 준 질의에 대해서는 잘 답변을 하고있는데, 조금만 벗어나면 잘못된 답을 줍니다.

예를들면 userid 칼럼인데 user_id 로 적는다던지, 말을 조금만 바꿔도 못알아 듣는다던지, 심지어 dictionary_chain에 프롬프트로 잡아줘도 대체를 못하는 경우도 있습니다.

 

어떻게 모델이 질문에 유연하게 이해하고 적절히 답을 하도록 만들어야하는지 방향을 잘모르겠습니다. 조언 부탁드립니다ㅠ 🙏

 

(그리고 벡터스토어를 효용성을 못찾고 이용하지 않고 있는데 이 모델에서 벡터 스토어를 잘 이용할수 있는 방법이 있을까요?)

답변 1

1

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요! 좋은 질문 감사합니다.

완벽한 해결책이 될지는 모르지만 저라면 엄청 긴 프롬프트를 작성해서 다양한 작업들을 한번에 진행하기 보다는 기능을 조금씩 나누는 방향으로 진행할 것 같습니다.

예를들면 우선 지금 하시는 것처럼 쿼리를 생성하고, 생성된 쿼리에서 접근하는 테이블과 컬럼명을 데이터베이스의 스키마와 한번더 비교해서 검증하는 절차를 추가할 수 있을 것 같구요

사용자의 질문이 들어오면 해당 질문도 말씀하신 것처럼 dictionary가 중요하기 때문에, 데이터베이스 스키마의 description에 맞춰서 사용자의 질문을 변형하고 변형된 질문으로 쿼리 생성을 시도할 수 있을 것 같습니다

제가 제안 드리는 방법도 정답은 아니고, 큰 작업을 한번에 하기보다는 여러개의 작은 작업으로 나눠서 처리하시는 편이 더 효과를 보실 수 있을거에요! 시도해보시고 논의가 필요하다면 또 질문으로 올려주세요~

최재헌님의 프로필 이미지
최재헌
질문자

감사합니다. 별다른 방법이 생각나지 않아 막막했었는데 덕분에 생각하지못했던 새로운 활로책을 찾은것같습니다. 🙇‍♂

시도해보고 또 질문드리겠습니다. 좋은하루 보내세요. 🍀

 

최재헌님의 프로필 이미지
최재헌

작성한 질문수

질문하기