프롬프트만으로는 부족합니다: LLM 출력에 대한 엄격한 제약 조건 적용하기

LLM 데모는 엄격한 요구 사항을 마주하기 전까지는 훌륭해 보입니다.

모델은 확률에 기반하여 작동합니다. 하지만 프로덕션 시스템에는 보장이 필요합니다.

저는 아르헨티나의 Radio del Volga를 위한 AI 뉴스 파이프라인을 구축하면서 이 사실을 깨달았습니다. 이 시스템은 뉴스를 재작성하고 소셜 미디어 게시물을 생성합니다. 한 가지 문제가 나타나기 전까지는 잘 작동했습니다. Gemini가 계속해서 잘못된 스페인어를 사용한 것입니다.

아르헨티나 사람들은 특정 단어를 사용합니다. "puedes" 대신 "podés"를, "eres" 대신 "sos"를 사용합니다. 모델이 중립적인 스페인어를 사용하면 현지 독자들에게는 어색하게 느껴집니다.

처음에는 더 나은 프롬프팅을 시도했습니다. 모델에게 다음과 같이 지시했습니다:

도움이 되긴 했지만, 모든 문제가 해결되지는 않았습니다. 공식 뉴스 소스들이 모델을 다시 중립적인 스페인어로 되돌려 놓았습니다. 프롬프트에 아무리 많이 적어도 오류는 계속되었습니다.

저는 이것을 프롬프팅 문제가 아닌 검증(validation) 문제로 다루기 시작했습니다.

어조나 스타일 같은 것들은 확률적입니다. 하지만 다른 것들은 결정론적(deterministic)입니다. 텍스트에 "puedes"가 포함되어 있다면 그것은 틀린 것입니다. 이를 파악하기 위해 AI가 필요하지 않습니다. 간단한 코드가 필요할 뿐입니다.

저는 후처리(post-processing) 단계를 추가했습니다. 이는 AI 작업이 끝난 후에 실행됩니다. 특정 단어를 찾아 다음과 같이 교체합니다:

이 목록은 작고 안전합니다. 스페인어 전체를 고치려고 시도하지 않습니다. 코드가 확실하게 검증할 수 있는 규칙만 수정합니다.

이 교훈은 스페인어에 관한 것이 아닙니다. 프롬프트 엔지니어링의 한계에 관한 것입니다.

프롬프팅은 성능을 향상시키지만 보장을 제공하지는 않습니다. 규칙이 안정적이고 테스트 가능하다면, 코드를 사용하여 이를 강제하십시오.

유창한 텍스트를 생성하는 데는 LLM을 사용하십시오. 브랜드 용어, 규제 문구 및 서식 규칙을 적용하는 데는 결정론적인 코드를 사용하십시오.

신뢰할 수 있는 시스템은 책임을 나눕니다: • 모델은 콘텐츠를 생성합니다. • 코드는 엄격한 규칙을 강제합니다. • 사람은 최종 편집 결정을 내립니다.

Source: https://dev.to/zendev2112/prompts-arent-enough-enforcing-hard-constraints-on-llm-output-2hpo

선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi