AI 뉴스허브

LongWriter: Long Context LLM에서 10,000개 이상의 단어 생성을 해방합니다.

LongWriter: Long Context LLM에서 10,000개 이상의 단어 생성을 해방합니다.

LongWriter: Long Context LLM에서 10,000개 이상의 단어 생성을 해방합니다.

현재의 긴 컨텍스트 대규모 언어 모델(LLM)은 최대 100,000개의 토큰을 입력으로 처리할 수 있지만, 2,000단어의 적당한 길이를 초과하는 출력을 생성하는 데 어려움을 겪습니다. 통제된 실험에 따르면 모델의 효과적인 생성 길이는 본질적으로 다음에서 볼 수 있는 예에 의해 제한됩니다. 감독되는 미세 조정 (SFT). 즉, 이 출력 제한은 기존 SFT 데이터 세트에서 긴 출력 예제가 부족하기 때문에 발생합니다.

최근 장문맥 LLM의 발전으로 메모리 용량이 상당히 확장된 모델이 개발되어 100,000개 토큰을 초과하는 길이의 히스토리를 처리할 수 있게 되었습니다. 그러나 광범위한 입력을 처리할 수 있는 능력에도 불구하고 현재의 장문맥 LLM은 똑같이 긴 출력을 생성하는 데 어려움을 겪습니다.

이러한 제한 사항을 탐색하려면 롱라이터 “로마 제국의 역사에 대한 10,000단어 분량의 기사를 쓰세요”와 같이 다양한 길이의 응답이 필요한 여러 질의가 있는 최첨단 장문맥 모델의 최대 출력 길이를 조사합니다. 결과에 따르면 모든 모델은 일관되게 2,000단어 길이를 넘는 출력을 생성하지 못했습니다. 한편, 사용자 상호작용 로그 분석 결과 사용자 프롬프트의 1% 이상이 이 제한을 초과하는 출력을 명시적으로 요청하는 것으로 나타났으며, 이는 현재 연구에서 이러한 제한을 극복해야 할 시급한 필요성을 강조합니다.

이를 해결하기 위해 LongWriter는 다음을 소개합니다. 에이전트 쓰기초장기 생성 작업을 하위 작업으로 분해하여 기성형 LLM이 20,000단어를 초과하는 일관된 출력을 생성할 수 있도록 하는 에이전트 기반 파이프라인입니다. AgentWrite를 활용하여 LongWriter는 2k에서 32k 단어에 이르는 출력 길이를 가진 6,000개의 SFT 데이터 샘플을 포함하는 데이터 세트인 LongWriter-6k를 구성합니다. 이 데이터 세트를 모델 학습에 통합하여 LongWriter는 출력 품질을 유지하면서 기존 모델의 출력 길이를 10,000단어 이상으로 성공적으로 확장합니다.

LongWriter는 또한 초장기 세대 기능을 평가하기 위한 포괄적인 벤치마크인 LongBench-Write를 개발합니다. DPO를 통해 더욱 개선된 9B 매개변수 모델은 이 벤치마크에서 최첨단 성능을 달성하여 훨씬 더 큰 독점 모델을 능가합니다.

이 글에서는 LongWriter 프레임워크를 논의하고, 아키텍처를 살펴보고, 최신 롱 컨텍스트 대형 언어 모델과 성능을 비교합니다. 시작해 봅시다.

LongWriter: 10,000+ 단어 생성 프레임워크

최근 롱 컨텍스트 대규모 언어 모델(LLM)의 발전으로 인해 100,000개 토큰을 초과하는 이력을 처리할 수 있는 상당히 증가된 메모리 용량을 가진 모델이 생성되었습니다. 광범위한 입력을 처리할 수 있는 이러한 기능에도 불구하고 현재의 롱 컨텍스트 LLM(법학 석사) 비슷한 길이의 출력을 생성하는 데 어려움을 겪습니다. 이러한 한계를 조사하기 위해 LongWriter는 “로마 제국의 역사에 대한 10,000단어 분량의 기사를 쓰세요”와 같이 서로 다른 응답 길이가 필요한 다양한 쿼리를 통해 최첨단 롱 컨텍스트 모델의 최대 출력 길이를 조사합니다. LongWriter는 조사 결과를 바탕으로 모든 모델이 일관되게 2,000단어가 넘는 출력을 생성하지 못한다는 것을 관찰합니다. 또한 사용자 상호 작용 로그 분석 결과 사용자 프롬프트의 1% 이상이 이 제한을 넘는 출력을 구체적으로 요청하는 것으로 나타났으며, 이는 현재 연구에서 이 문제를 해결하기 위한 시급한 필요성을 강조합니다.

LongWriter의 연구는 중요한 통찰력을 보여줍니다. 출력 길이에 대한 제약은 주로 SFT(Supervised Fine-Tuning) 데이터 세트의 특성에 기인합니다. 구체적으로 LongWriter는 사전 학습 단계에서 훨씬 더 긴 시퀀스에 노출되었음에도 불구하고 모델의 최대 생성 길이가 SFT 데이터 세트에 있는 출력 길이의 상한에 의해 효과적으로 제한된다는 것을 발견했습니다. 이 발견은 기존 SFT 데이터 세트에 이 길이를 초과하는 예가 거의 없기 때문에 현재 모델에서 널리 사용되는 2,000단어 생성 제한을 설명합니다. 또한 많은 데이터 세트가 최첨단 LLM에서 추출되었으므로 소스 모델의 출력 길이 제한도 상속합니다.

이러한 한계를 해결하기 위해 LongWriter는 기성형 LLM을 활용하여 확장되고 일관된 출력을 자동으로 구성하도록 설계된 새로운 에이전트 기반 파이프라인인 AgentWrite를 소개합니다. AgentWrite는 두 단계로 작동합니다. 먼저 사용자의 입력을 기반으로 각 문단의 구조와 목표 단어 수를 개략적으로 설명하는 자세한 쓰기 계획을 만듭니다. 그런 다음 이 계획에 따라 모델이 각 문단의 콘텐츠를 순차적으로 생성하도록 합니다. LongWriter의 실험은 AgentWrite가 최대 20,000단어의 고품질이고 일관된 출력을 생성할 수 있음을 검증합니다.

AgentWrite 파이프라인을 기반으로 LongWriter는 GPT-4o를 활용하여 LongWriter-6k라는 이름의 6,000개 긴 출력 SFT 데이터를 생성하고 이 데이터를 추가하여 기존 모델을 학습시킵니다. 특히 LongWriter-6k는 10,000단어를 초과하는 잘 구성된 출력을 생성하는 모델의 기능을 성공적으로 잠금 해제합니다. 이 접근 방식의 효과를 엄격하게 평가하기 위해 LongWriter는 다양한 사용자 쓰기 지침이 포함된 LongBench-Write 벤치마크를 개발합니다. 출력 길이 사양은 0-500단어, 500-2,000단어, 2,000-4,000단어, 4,000단어 이상입니다. LongBench-Write에서 평가한 결과 LongWriter의 9B 크기 모델은 더 큰 독점 모델과 비교해도 최첨단 성능을 달성합니다. LongWriter는 선호도 데이터를 추가로 구성하고 DPO를 사용하여 모델이 긴 쓰기 지침을 더 잘 따르고 더 높은 품질의 서면 콘텐츠를 생성하도록 돕습니다. 이는 실험을 통해 그 효과가 입증되었습니다.

요약하자면, LongWriter의 작업은 다음과 같은 새로운 기여를 합니다.

AgentWrite: 자동 데이터 구축

기성품 LLM을 사용하여 더 긴 출력이 있는 SFT 데이터를 자동으로 생성하기 위해 LongWriter는 분할 정복 스타일의 에이전트 파이프라인인 AgentWrite를 설계합니다. AgentWrite는 먼저 긴 쓰기 작업을 여러 개의 하위 작업으로 분할하고, 각 하위 작업에서 모델은 한 단락만 작성하면 됩니다. 그런 다음 모델은 이러한 하위 작업을 순차적으로 실행하고 LongWriter는 하위 작업 출력을 연결하여 최종 긴 출력을 얻습니다. LLM 에이전트를 사용하여 복잡한 작업을 여러 개의 하위 작업으로 분할하는 이러한 접근 방식은 이미 문제 해결, 소프트웨어 개발, 모델 평가와 같은 다양한 분야에 적용되었습니다. LongWriter의 작업은 모델이 복잡한 장문 쓰기 작업을 완료할 수 있도록 계획을 통합하는 것을 처음으로 탐구한 것입니다. AgentWrite의 각 단계는 아래에서 자세히 소개합니다.

1단계: 계획

일반적으로 긴 쓰기 과제에 대한 전반적인 계획을 세우는 것으로 시작하는 인간 작가의 사고 과정에서 영감을 얻은 LongWriter는 LLM의 계획 기능을 활용하여 쓰기 지침에 따라 이러한 쓰기 개요를 출력합니다. 이 계획에는 각 단락에 대한 주요 내용 및 단어 수 요구 사항이 포함됩니다. LongWriter에서 사용하는 프롬프트는 다음과 같습니다.

“다음 장문 쓰기 지침을 여러 개의 하위 작업으로 나누는 데 도움을 주세요. 각 하위 작업은 에세이에서 한 단락을 쓰는 데 지침이 되며 해당 단락의 주요 요점과 단어 수 요구 사항을 포함해야 합니다. 쓰기 지침은 다음과 같습니다. {사용자 지침}. 다음 형식으로 나누어 각 하위 작업이 한 줄을 차지하도록 하세요.

1항 – 주요 요점: [Describe the main point of the paragraph, in detail] – 단어 수: [Word count requirement, e.g., 400 words]
2항 – 주요 요점: [Describe the main point of the paragraph, in detail] – 단어 수: [Word count requirement, e.g. 1000 words].

각 하위 작업이 명확하고 구체적이며 모든 하위 작업이 쓰기 지침의 전체 내용을 포괄하는지 확인하십시오. 하위 작업을 너무 세밀하게 나누지 마십시오. 각 하위 작업의 문단은 200단어 이상 1000단어 이하여야 합니다. 다른 내용은 출력하지 마십시오.”

2단계: 쓰기

1단계에서 쓰기 계획을 얻은 후, LongWriter는 LLM을 직렬로 호출하여 각 하위 작업을 완료하고 섹션별로 쓰기 콘텐츠를 생성합니다. 출력의 일관성을 보장하기 위해 LongWriter가 모델을 호출하여 n번째 섹션을 생성할 때 이전에 생성된 n-1 섹션도 입력되어 모델이 기존 쓰기 내역을 기반으로 다음 섹션을 계속 쓸 수 있습니다. 이 직렬 방식은 여러 하위 작업을 동시에 완료하기 위해 모델에 대한 병렬 호출을 방지하고 입력 길이가 길어지지만, LongWriter는 검증에서 이런 방식으로 얻은 쓰기의 전반적인 일관성과 품질이 병렬로 생성된 출력보다 훨씬 우수함을 보여줍니다. LongWriter에서 사용하는 프롬프트는 다음과 같습니다.

“당신은 훌륭한 작문 조수입니다. 저는 당신에게 독창적인 작문 지침과 계획된 작문 단계를 제공할 것입니다. 또한 제가 이미 쓴 텍스트도 제공할 것입니다. 작문 지침, 작문 단계 및 이미 쓴 텍스트에 따라 다음 문단을 계속 쓸 수 있도록 도와주세요.

쓰기 지침:
{사용자 지침}
쓰기 단계:
{1단계에서 생성된 쓰기 계획}
이미 작성된 텍스트:
{이전에 생성된 (n-1) 문단}

원래의 쓰기 지침, 쓰기 단계, 이미 쓰여진 텍스트를 통합하고 이제 {n번째 문단에 대한 계획, 즉 쓰기 계획의 n번째 줄}을 계속 쓰십시오.”

확인

LongWriter는 두 개의 장문 쓰기 데이터 세트에서 제안된 AgentWrite 메서드의 생성 길이와 품질을 테스트합니다. 첫 번째 LongWrite-Ruler는 메서드가 제공할 수 있는 출력 길이를 정확히 측정하는 데 사용됩니다. 두 번째 LongBench-Write는 주로 모델에서 생성된 콘텐츠가 길이와 쓰기 품질 측면에서 사용자 지침과 얼마나 잘 일치하는지 평가하는 데 사용됩니다.

롱벤치-쓰기: 더 다양한 장문 쓰기 지침에 대한 모델의 성능을 평가하기 위해 LongWriter는 60개가 중국어이고 60개가 영어로 된 120개의 다양한 사용자 쓰기 프롬프트를 수집합니다. 모델의 출력 길이가 사용자 요구 사항을 충족하는지 더 잘 평가하기 위해 LongWriter는 이러한 모든 지침에 명확한 단어 수 요구 사항이 포함되도록 합니다. 이러한 지침은 단어 수 요구 사항에 따라 0~500단어, 500~2,000단어, 2,000~4,000단어, 4,000단어 이상의 네 가지 하위 집합으로 나뉩니다. 또한 지침은 출력 유형에 따라 문학 및 창작 쓰기, 학술 및 단행본, 대중 과학, 기능적 쓰기, 뉴스 보고서, 커뮤니티 포럼, 교육 및 훈련의 일곱 가지 유형으로 분류됩니다.

평가하는 동안 LongWriter는 두 가지 지표를 채택합니다. 하나는 출력 길이를 채점하는 지표이고 다른 하나는 출력 품질을 채점하는 지표입니다. 모델의 출력 길이는 지침에 명시된 요구 사항에 얼마나 가까운지에 따라 채점됩니다. 출력 품질을 위해 LongWriter는 LLM-as-a-judge 방식을 사용하여 최신 기술을 선택합니다. GPT-4o 모델 여섯 가지 차원, 즉 관련성, 정확성, 일관성, 명확성, 폭과 깊이, 그리고 독서 경험에 대한 출력을 평가합니다. 최종 점수는 길이 점수와 품질 점수를 평균하여 계산합니다.

검증 결과: LongWriter는 LongWrite-Ruler에서 출력 길이 측정을 제시하고 AgentWrite가 GPT-4o의 출력 길이를 최대 2,000단어에서 약 20,000단어로 성공적으로 확장한다는 것을 알아냈습니다. LongWriter는 또한 LongBench-Write에서 출력 품질과 필요한 출력 길이 준수를 모두 평가하여 AgentWrite의 성능을 평가할 때 GPT-4o가 출력 길이가 2,000단어 미만인 작업을 성공적으로 완료할 수 있음을 보여줍니다.

감독된 미세 조정

LongWriter는 다음을 기반으로 교육을 실시합니다. n 두 가지 최신 오픈소스 모델, 즉 GLM-4-9B와 Llama-3.1-8B. 이 두 가지 모두 기본 모델이며 최대 128k 토큰의 컨텍스트 창을 지원하므로 자연스럽게 긴 출력에 대한 학습에 적합합니다. 학습을 보다 효율적으로 만들기 위해 LongWriter는 손실 가중치가 있는 패킹 학습을 채택합니다. 두 모델에 대한 학습은 LongWriter-9B(GLM-4-9B-LongWriter의 약자)와 LongWriter-8B(Llama-3.1-8B-LongWriter의 약자)의 두 가지 모델을 생성합니다.

동시에 LongWriter는 손실이 시퀀스별로 평균화되는 경우, 즉 배치 내에서 각 시퀀스의 평균 손실의 평균을 취하는 경우 긴 출력 데이터에서 각 대상 토큰의 손실에 대한 기여도가 짧은 출력의 경우보다 상당히 낮을 것임을 알아차립니다. LongWriter의 실험에서 이는 긴 출력이 있는 작업에서 최적이 아닌 모델 성능으로 이어진다는 사실도 발견되었습니다. 따라서 LongWriter는 토큰별로 손실을 평균화하는 손실 가중치 전략을 선택합니다. 여기서 손실은 해당 배치 내의 모든 대상 토큰에 대한 손실의 평균으로 계산됩니다.

모든 모델은 8xH800 80G GPU와 DeepSpeed+ZeRO3+CPU 오프로딩이 있는 노드를 사용하여 학습됩니다. LongWriter는 배치 크기 8, 학습률 1e-5, 패킹 길이 32k를 사용합니다. 모델은 4개의 에포크에 대해 학습되며, 약 2,500-3,000단계가 소요됩니다.

정렬(DPO)

모델의 출력 품질을 더욱 개선하고 지침의 길이 제약 조건을 따르는 능력을 강화하기 위해 LongWriter는 감독된 미세 조정된 LongWriter-9B 모델에서 직접 선호도 최적화(DPO)를 수행합니다. DPO 데이터는 GLM-4의 채팅 DPO 데이터(약 50k 항목)에서 가져옵니다. 또한 LongWriter는 긴 형식의 쓰기 지침을 특별히 타겟으로 하는 4k 쌍의 데이터를 구성합니다. 각 쓰기 지침에 대해 LongWriter는 LongWriter-9B에서 4개의 출력을 샘플링하고 특정 방법에 따라 이러한 출력을 점수화합니다. 길이에 따른 점수도 계산된 대로 결합합니다. 그런 다음 가장 높은 점수를 받은 출력이 양성 샘플로 선택되고 나머지 3개의 출력 중 하나가 무작위로 음성 샘플로 선택됩니다.

결과 모델인 LongWriter-9B-DPO는 위의 데이터 혼합에서 250단계로 훈련됩니다. LongWriter는 DPO 훈련을 위한 특정 레시피를 따릅니다.

LongWriter: 실험과 결과

LongWriter는 LongBench-Write에서 4개의 독점 모델과 5개의 오픈소스 모델, 그리고 훈련된 LongWriter 모델을 평가합니다. LongWriter의 지식에 따르면, Suri-IORPO는 장문 텍스트 생성을 위해 정렬된 유일한 사전 모델입니다. LoRA를 사용하여 Mistral-7B-Instruct-v0.2를 기반으로 훈련되었습니다. LongWrite-Ruler의 평가 설정과 일관되게 LongWriter는 출력 온도를 0.5로 설정하고 모델의 생성 최대 토큰 매개변수를 API 호출에서 허용하는 최대값으로 구성합니다. 오픈소스 모델의 경우 32,768로 설정됩니다.

이전 모델 대부분은 2,000단어가 넘는 길이 요건을 충족시키지 못했지만, LongWriter 모델은 이러한 질문에 대해 지속적으로 더 길고 풍부한 응답을 제공합니다.

각 필수 길이 범위의 프롬프트에 대한 출력 길이 점수 SlS_lSl​을 관찰한 LongWriter는 이전 모델이 일반적으로[2k4k)범위의프롬프트에서성능이좋지않음(70점미만)을발견했으며Claude35Sonnet만이적절한점수를받았습니다[4k20k)범위의프롬프트의경우거의모든이전모델이0점(모든출력길이가필수길이의1/3미만임을의미)을받는경우에도목표출력길이에도달하지못했습니다LongWriter-6k의학습데이터를추가하면LongWriter의학습된모델은[2k20k)범위의점수와산점도에서알수있듯이좋은품질을유지하면서도효과적으로필수출력길이에도달할수있습니다[2k4k)rangewithonlyClaude35SonnetachievingadecentscoreForpromptsinthe[4k20k)rangealmostallpreviousmodelsarecompletelyunabletoreachthetargetoutputlengthevenscoring0(meaningalloutputlengthsarelessthanone-thirdoftherequiredlength)ByaddingtrainingdatafromLongWriter-6kLongWriter’strainedmodelcaneffectivelyreachtherequiredoutputlengthwhilemaintaininggoodqualityassuggestedbythe​scoresinthe[2k20k)rangeandthescatterplots

DPO는 모델의 출력 품질과 장기 생성에서 길이 요구 사항을 따르는 능력을 모두 효과적으로 개선합니다.

LongWriter-9B와 LongWriter9B-DPO의 점수를 비교함으로써, DPO가 Sl(+4%)과 Sq(+3%) 점수를 모두 상당히 개선하고, 이러한 개선은 모든 범위에서 일관됨을 알 수 있습니다. 이는 긴 세대 시나리오에서 DPO가 여전히 모델의 출력 품질을 개선하는 데 도움이 되며 모델의 출력 길이를 요청된 길이와 더 잘 정렬할 수 있음을 보여줍니다. 8 사전 인쇄 그림 7: LongWriter 모델 출력의 다른 위치에서 GLM4-9B 및 Llama-3.1-8B의 누적 평균 NLL 손실. 그림 8: LongWriter 모델의 LongWrite-Ruler 테스트 결과. 최대 세대 길이가 10k-20k 단어 사이임을 보여줌. 후자의 결론은 최근 Yuan et al.(2024)에서 더 짧은 세대에서도 관찰되었습니다. 또한 LongBench-Write에서 GPT-4o와 세 개의 Longwriter 모델에 대한 쌍별 승패를 수동으로 주석으로 표시하고 결과를 그림 9에 시각화합니다. 인간은 58%의 경우에서 LongWriter-9B보다 DPO 훈련 모델을 선호한다는 것을 알 수 있습니다. 게다가 매개변수가 적음에도 불구하고 LongWriter-9B-DPO는 GPT-4o와 동점을 이룹니다.

LongWriter 모델의 출력 길이 제한이 10,000~20,000 단어로 확장되었지만, 더 긴 출력을 지원하려면 더 많은 긴 출력 데이터가 필요합니다.

LongWrite-Ruler 테스트에 이어 LongWriter 모델의 LongWrite-Ruler 테스트 결과도 제시합니다. 결과에 따르면 최대 세대 길이는 10k-20k 단어 사이입니다. 더 긴 출력을 가진 SFT 데이터가 부족한 것이 모델이 더 긴 출력 길이를 달성하지 못하는 주된 이유일 가능성이 큽니다.

마지막 생각

이 작업에서 우리는 초장기 생성 작업을 하위 작업으로 분해하고, 현재 LLM에 대한 2,000단어 생성 제한을 식별하고, 정렬 중에 긴 출력 데이터를 추가하여 출력 창 크기를 늘리는 것을 제안하는 에이전트 기반 파이프라인인 LongWriter에 대해 이야기했습니다. 긴 출력 데이터를 자동으로 구성하기 위해 LongWriter는 기성품 LLM을 사용하여 확장되고 일관된 출력을 만드는 에이전트 기반 파이프라인인 AgentWrite를 개발합니다. LongWriter는 구성된 LongWriter-6k를 사용하여 현재 LLM의 출력 창 크기를 10,000단어 이상으로 성공적으로 확장합니다. 훈련 데이터에 대한 광범위한 절제 연구는 이 접근 방식의 효과를 보여줍니다. 향후 작업을 위해 LongWriter는 다음 세 가지 방향을 제안합니다. 1. AgentWrite 프레임워크를 확장하여 더 긴 출력으로 데이터를 구성하여 LLM의 출력 창 크기를 더욱 확장합니다. 2. AgentWrite 프레임워크를 개선하여 더 높은 품질의 긴 출력 데이터를 얻습니다. 3. 더 긴 모델 출력은 추론 효율성에 과제를 안겨줍니다. 추론 효율성을 개선하기 위해 여러 가지 방법이 제안되었습니다. 이러한 방법이 생성 품질을 손상시키지 않고도 개선된 모델 효율성을 보장할 수 있는지 조사할 가치가 있습니다.

게시물 LongWriter: Long Context LLM에서 10,000개 이상의 단어 생성을 해방합니다. 처음 등장 유나이트.AI.

Exit mobile version