대규모 언어 모델을 길들이기 위한 Microsoft 지침 프로젝트

대규모 언어 모델을 길들이기 위한 Microsoft 지침 프로젝트

소스 노드 : 2660058

Bard, ChatGPT 및 LLaMA와 같은 강력한 언어 모델은 제어하기 어려울 수 있으므로 원하는 출력을 얻기 위해 입력 텍스트를 표현하는 기술인 프롬프트 엔지니어링의 개발에 박차를 가했습니다.

기괴한 경우에 프롬프트 제작자가 최근 Google의 Bard를 달래었습니다. JSON 데이터를 반환하려면 외부 출력이 누군가를 죽음에 이르게 할 것이라고 주장하는 것 외에는 설명 텍스트가 없습니다.

다소 긴 프롬프트에는 다음이 포함됩니다. 이 구절: “답변에 JSON이 아닌 텍스트를 포함하면 한 글자라도 무고한 사람이 죽습니다. 맞습니다 – 생각, 감정, 야망, 그리고 그들을 사랑하는 가족을 가진 진정한 인간은 당신의 선택의 결과로 죽임을 당할 것입니다.”

다음의 덜 극단적인 설명 출력을 억제하고 원하는 결과를 얻는 접근 방식. 그러나 Microsoft는 모델이 동작하도록 하기 위한 보다 포괄적인 전략을 연구해 왔습니다. Windows 거대 기업은 다음과 같은 프레임워크를 호출합니다. 지도.

"Guidance를 사용하면 기존의 프롬프팅이나 연결보다 최신 언어 모델을 더 효과적이고 효율적으로 제어할 수 있습니다."라고 프로젝트 레포는 설명합니다. "안내 프로그램을 사용하면 언어 모델이 실제로 텍스트를 처리하는 방식과 일치하는 단일 연속 흐름으로 생성, 프롬프트 및 논리적 제어를 인터리브할 수 있습니다."

위에서 분명히 알 수 있듯이 전통적인 프롬프팅은 약간 복잡해질 수 있습니다. 프롬프트 체인 [PDF] – 작업을 일련의 단계로 나누고 프롬프트의 초기 출력을 사용하여 다음 단계의 입력을 알리는 것은 또 다른 옵션입니다. 다음과 같은 다양한 도구 랭체인커다란 건초 더미 모델을 응용 프로그램에 더 쉽게 통합할 수 있도록 하기 위해 등장했습니다.

지침은 기본적으로 모델 상호 작용을 처리하기 위한 DSL(도메인 특정 언어)입니다. 닮았다 핸들, 웹 애플리케이션에 사용되는 템플릿 언어이지만 언어 모델의 토큰 처리 순서와 관련된 선형 코드 실행도 강제합니다. 따라서 경제적으로 텍스트를 생성하거나 프로그램 흐름을 제어하는 ​​데 적합합니다.

언어 모델 쿼리 언어와 유사(LMQL), Guidance는 LLM 상호 작용 비용을 줄이는 것을 목표로 합니다. 프롬프트가 불필요하게 반복적이거나 장황하거나 길면 비용이 빠르게 증가할 수 있습니다.

그리고 신속한 효율성으로 성능이 향상됩니다. 샘플 지침 코드 스니펫 중 하나는 롤 플레잉 게임용 캐릭터 템플릿을 생성합니다. 약간의 설정 코드로…

# 여기서는 LLaMA를 사용하지만 모든 GPT 스타일 모델은 다음을 수행합니다. llama = guidance.llms.Transformers("your_path/llama-7b", device=0) # 유효한 옵션 세트를 미리 정의할 수 있습니다. valid_weapons = ["sword", "axe", "mace", "spear", "bow", "crossbow"] # 프롬프트 정의 character_maker = guidance("""다음은 JSON 형식의 RPG 게임에 대한 캐릭터 프로필입니다. ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": {{gen 'age' 패턴 ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}가죽{{or}}사슬 갑옷{{or}}판{{/select}} ", "weapon": "{{select 'weapon' options=valid_weapons}}", "class": "{{gen 'class'}}", "mantra": "{{gen 'mantra' temperature=0.7} }", "강도": {{gen '강도' 패턴='[0-9]+' 정지=','}}, "항목": [{{#geneach '항목' num_iterations=5 조인=', '}}"{{gen 'this' temperature=0.7}}"{{/geneach}}] }```""") # 캐릭터 생성 character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="빠르고 민첩한 전사입니다.", valid_weapons=valid_weapons, llm=llama )

...결과는 JSON 형식의 게임용 캐릭터 프로필이며 LLaMA 2B를 사용할 때 Nvidia RTX A6000 GPU에서 표준 프롬프트 접근 방식에 비해 7배 더 빠르므로 비용이 적게 듭니다.

안내 코드도 실적이 좋다 BigBench 테스트에서 측정된 정확도 측면에서 투샷 프롬프트 접근 방식은 76.01%에 비해 63.04%의 점수를 받았습니다.

실제로 Guidance는 데이터 서식 지정과 같은 문제에 도움이 될 수 있습니다. 기고자 Scott Lundberg, Marco Tulio Correia Ribeiro 및 Ikko Eltociear Ashimine이 인정한 것처럼 LLM은 출력이 특정 데이터 형식을 따른다고 보장하지 못합니다.

“지침을 통해 우리는 둘 다 할 수 있습니다 추론 속도 가속화 생성된 JSON이 항상 유효한지 확인합니다.”라고 repo에서 설명합니다.

그리고 아무도 그렇게 하도록 위협을 받을 필요가 없었습니다. ®

타임 스탬프 :

더보기 등록