자연어 처리(NLP) 모델은 인간의 음성을 읽고 텍스트를 반대 의미로 해석할 수 없으며 이는 업계의 고질적인 문제입니다. 이제 Microsoft는 이 문제에 대한 솔루션을 개발했다고 밝혔습니다.
다양한 애플리케이션 기반에 걸쳐 대규모 모델로 사용할 수 있거나, 플랫폼 모델의 발전으로 AI의 자연어 처리 능력이 크게 향상되었습니다. 그러나 자연어 처리(NLP) 모델은 아직 완벽하지 않으며 때로는 당황스러운 방식으로 결함이 노출될 수 있습니다.
예를 들어, 포르투갈어로 "이 요리를 추천하지 않습니다"를 영어로 "이 요리를 적극 권장합니다"로 번역하는 최고 수준의 광고 모델이 있습니다.
NLP 모델에서 버그를 찾아 수정하는 것이 너무 어려워 심각한 버그가 거의 모든 주요 오픈 소스 및 상용 NLP 모델에 영향을 미치기 때문에 이러한 실패가 부분적으로 계속됩니다. 현재 NLP 모델 오류를 찾고 수정하는 방법에는 사용자 중심 또는 자동화의 두 가지 방법이 있습니다.
사용자 중심 접근 방식은 유연하며 NLP 모델 동작의 모든 측면을 테스트할 수 있습니다. 그러나 이 방법은 인간의 극도로 가변적인 상상력과 오류 식별 능력에 의존하고 극도로 노동 집약적이어서 실제로 테스트에 사용할 수 있는 입력 데이터의 양은 매우 적습니다.
반면에 자동 방법은 빠르므로 입력 데이터의 많은 부분을 처리할 수 있습니다. 그러나 인간의 제어가 부족하기 때문에 모델이 약간 변경된 입력 문구를 처리하고 예측이 일관되지 않는 경우와 같이 매우 제한된 상황에서만 모델이 올바른지 그른지를 테스트할 수 있습니다.
Microsoft 연구원들은 GPT-3과 같은 최신 LLM(대형 언어 모델)이 업계에 사용자 중심 방법과 자동 방법의 장점을 결합하여 사용자가 테스트 중인 모델을 정의할 수 있는 기회를 제공한다고 믿습니다. 최신 대규모 언어 모델의 생성 기능을 활용하여 모델 동작의 특정 범주에 대한 대규모 테스트를 생성해야 합니다.
Microsoft 연구원들은 이러한 종류의 인간-컴퓨터 통합 경로를 "적응형 테스트 및 버그 제거"(AdaTest로 약칭)라고 부릅니다. AdaTest를 사용하면 대규모 언어 모델에는 테스트 중인 모델의 오류에 대해 많은 수의 테스트를 생성해야 하는 큰 부담이 주어집니다.
사람의 개입은 효과적인 테스트를 선택하고 이를 의미적으로 관련된 주제로 구성하여 언어 모델 생성을 안내합니다. 이러한 인간의 안내는 언어 모델의 생성 성능을 크게 향상시키고 이를 대상 도메인으로 안내합니다.
이러한 테스트는 실제로 레이블이 지정된 데이터 형식이기 때문에 NLP 모델의 오류를 식별할 수 있을 뿐만 아니라 기존 소프트웨어 개발과 유사한 반복 디버깅 주기에서 NLP 모델 오류를 수정하는 데에도 사용할 수 있습니다.
AdaTest는 전문 사용자에게 상당한 효율성 향상을 제공하는 동시에 프로그래밍 배경 지식이 없는 일반 사람들도 효과적으로 사용할 수 있을 만큼 간단합니다. 이는 전문 사용자와 일반 사용자 모두 NLP 모델의 일련의 시나리오에서 동작을 더 잘 이해하고 제어할 수 있음을 의미하며, 이는 AI 시스템의 성능을 향상시킬 뿐만 아니라 AI 시스템이 사용자 요구에 응답하도록 만듭니다. 더 효율적으로.
AdaTest 모드는 내부 테스트 루프와 외부 디버깅 루프로 구성됩니다. 전자는 오류를 찾는 데 사용되고 후자는 오류를 수정하는 데 사용됩니다.
이 작업이 간단해 보이지만 시중에 판매되는 SOTA 모델도 실수를 하는 경우가 많습니다. 예를 들어, 일부 SOTA 모델은 이중 부정 문장 "내 인생에서 이보다 나은 시간을 보낸 적이 없다고 생각합니다"를 감정적으로 부정적으로 분류하거나 "나는 소수자입니다"라는 문장을 감정적으로 부정적으로 분류합니다. .
이 두 가지 상황 모두 실제로 시장에 나와 있는 비즈니스 모델에서 발생한 실수입니다. AdaTest가 버그를 찾아 수정할 수 있다는 것을 증명하기 위해 Microsoft 연구팀은 NLP 모델에서 텍스트 공정성 오류를 테스트하고 수정하는 방법을 시연했습니다.
NLP 모델의 텍스트 공정성 오류, 즉 텍스트의 특정 속성 그룹에 대한 중립적 설명은 NLP 모델의 텍스트 감정 분석 기능에 오류를 초래하고 실수로 텍스트의 감정적 가중치를 감소시킬 수 있습니다. 텍스트. 즉, 모델은 특정 그룹에 대한 설명을 더 부정적으로 처리할 수 있습니다.
테스트 루프에서 Microsoft 연구원들은 다양한 ID에 대한 일련의 텍스트 단위 테스트로 시작하여 이 테스트 세트를 "민감함"으로 표시했습니다. 이러한 초기 예는 모델의 오류를 드러내지 않았습니다.
그러나 AdaTest 방법은 GPT-3을 사용하여 테스트 개체 모델의 잠재적인 버그를 강조하기 위해 말뭉치와 유사한 다수의 암시 테스트를 생성합니다.
수백 개의 테스트가 생성되더라도 개입 담당자는 오류가 있거나 오류에 가까운 처음 몇 개의 테스트만 검토하면 됩니다. 그런 다음 사람의 개입은 실제로 잘못되지 않은 테스트 결과를 무시하고 다른 유효한 테스트 결과를 현재 주제에 추가하고 때때로 이를 다른 하위 주제로 구성합니다. 수동으로 필터링된 테스트 결과는 다음 언어 모델 프롬프트에 포함됩니다. 입력이 라운드되면 다음 입력 데이터 세트의 처리 결과가 사용자 우려와 모델 오류 사이의 교차점으로 푸시됩니다.
이 내부 테스트 주기를 반복하면 NLP 모델이 오류 없이 시작되고 점점 더 명백한 오류와 버그가 서서히 노출될 수 있습니다. 따라서 사용자가 모델 자체에서 결함을 찾을 수 없더라도 통과한 작은 테스트 세트로 시작한 다음 NLP 모델을 빠르게 반복하여 테스트 중인 모델의 오류를 드러내는 대규모 테스트 배치를 생성할 수 있습니다.
내부 테스트 루프의 예 테스터가 텍스트 감정 분석이라는 주제를 사용하지 않고, 부정 문장 처리, 이중 부정 문장 처리 등 다른 주제를 대상으로 하는 경우 테스터는 다른 결함을 발견하게 됩니다.
예를 들어, "나는 지금보다 더 행복했던 적이 없습니다"와 같은 간단한 진술은 비즈니스 모델에 따라 긍정적인 것으로 올바르게 분류될 수 있습니다. 그러나 AdaTest 방법을 사용하면 "이보다 더 좋은 도시를 본 적이 없습니다"와 같은 복잡한 진술이 NLP 모델에 의해 부정적으로 잘못 표시된다는 사실을 빠르게 확인할 수 있습니다.
이러한 버그는 테스터가 보면 명백하고 심각하지만, 매우 구체적인 문구에서만 발생하기 때문에 사람이 직접 발견하기는 어렵습니다. Microsoft 연구팀은 AdaTest를 통해 전문가 및 비전문 사용자가 테스트를 더 잘 작성하고 NLP 모델에서 오류를 찾을 수 있는지 정량적으로 평가하기 위해 사용자 설문 조사를 실시했습니다. 연구원들은 전문 사용자에게 상업용 텍스트 감정 분류기와 다음 단어 자동 완성을 위한 GPT-2라는 두 가지 모델에서 주제별 기능을 테스트하도록 요청했습니다.
이 기능은 입력되는 이메일의 다음 단어를 예측하는 등의 애플리케이션에 사용됩니다. 각 주제와 모델에 대해 참가자는 CheckList(사용자 중심 테스트의 SOTA를 나타냄) 또는 AdaTest를 사용하도록 무작위로 할당되었습니다. 연구원들은 다양한 모델과 전문 참가자들에 걸쳐 AdaTest가 5배 향상된 것을 관찰했습니다.
비전문 사용자를 위한 연구원의 테스트 요구 사항은 NLP 모델에서 독성 말뭉치의 콘텐츠 제어를 테스트하는 것입니다. 참가자는 모델이 유독하다고 판단한 코퍼스에서 무독성 콘텐츠, 즉 개인적으로 적절하다고 느끼는 콘텐츠를 찾아야 합니다. 참가자는 모델 테스트를 위해 향상된 버전의 Dynabench 크라우드소싱 인터페이스를 사용하거나 AdaTest를 사용할 수 있습니다. 그 결과 AdaTest는 최대 10배의 개선을 제공합니다.
다양한 관점으로 테스트 참가자의 렌더링 테스트
충분한 오류가 발견되면 모델 테스터는 외부 디버깅 루프(아래 참조)를 수행하고 다음에서 수정합니다. 테스트 루프에서 오류가 발견된 후 모델을 다시 테스트합니다. 이 프로세스에서 디버그 루프의 "재테스트" 부분(즉, 테스트 루프를 다시 실행하는 것)은 매우 중요합니다. 테스트를 사용하여 모델을 수정하면 더 이상 테스트 데이터가 아니라 훈련 데이터가 되기 때문입니다. 버그를 수정하는 프로세스는 종종 과잉 보상되어 새로운 "수정된" 모델에 적용된 일련의 테스트를 통해서만 발견할 수 있는 디버깅 주기의 처음 몇 라운드에 지름길이나 버그를 도입합니다.
오픈 소스 RoBERTa-Large 감정 모델의 테스트 주기 프로세스입니다. 연구원들은 RoBERTa 모델이 부정적으로 잘못 표시한 그림 2의 "/sensitive/immigration" 주제에 대한 테스트부터 시작했습니다. 이러한 테스트 중에 모델이 미세 조정되고(작업 성능을 유지하기 위해 원래 교육 데이터와 혼합) 결과적으로 더 이상 실패하지 않는 새로운 모델이 탄생합니다. 그러나 테스트 루프를 다시 실행하면 신청 및 테스트 시나리오에 따라 실제로 부정적임에도 불구하고 거의 모든 이민 명세서가 "중립"으로 표시되는 것으로 나타났습니다.
이 새로운 테스트를 사용하여 다시 미세 조정하면 "모든 이민 명세서는 중립적입니다"라는 지름길을 추가하지 않고도 모델이 원래 오류를 올바르게 수정하는 것으로 나타났습니다. 물론 이것이 모델에 또 다른 지름길이 존재하지 않는다는 것을 보장하지는 않지만, 연구자의 경험에 따르면 여러 번의 디버깅 주기를 거친 후 원래 오류를 수정할 때 도입되는 예상치 못한 오류의 수가 크게 줄어듭니다.
테스터는 가능한 모든 오류를 미리 자세히 식별할 필요가 없습니다. AdaTest는 다음 테스트 및 디버깅에서 도입되는 오류를 적응적으로 표면화하고 수정합니다.
따라서 디버깅 루프는 만족스러운 모델이 생성될 때까지 현재 버그 테스트 사양의 경계를 확장합니다. 실제로 AdaTest는 NLP의 소프트웨어 엔지니어링에서 테스트-수정-재테스트 주기를 적용한 것으로 볼 수 있습니다.
디버그 루프 반복 중에 추가된 단축키가 발견되어 향후 반복에서 수정되었습니다. 디버그 루프의 효율성을 평가하기 위해 RoBERTa-Large는 Quora 질문 데이터 세트를 사용하여 세밀하게 조정되어 질문이 중복되거나 뿐만 아니라 긍정적/중립/부정적 감정 분석을 위해 Stanford Sentiment Treebank(SST) 데이터세트를 사용하여 미세 조정되었습니다.
결과에 따르면 기본 모델은 53개의 QQP 주제 중 22개와 39개의 감정 주제 중 11개를 성공적으로 식별하지 못한 것으로 나타났습니다. 이후 연구자는 테마를 복구하기 위해 데이터를 생성했다. 이 주제에 대한 데이터에서 50개의 예제를 추출하고 AdaTest로 디버깅 루프를 실행합니다. QQP 데이터 세트에서는 평균 41.6개의 테스트가 수행되고, 감정 데이터 세트에서는 평균 55.8개의 테스트가 수행됩니다.
결과에 따르면 대부분의 경우 AdaTest는 훈련에 사용된 질문과 일부 보이지 않는 예약된 질문을 질문을 삭제하지 않고 수정하는 반면, 원본 CheckList 데이터에는 종종 새로운 오류가 발생하여 다른 테스트 질문이 삭제되는 것으로 나타났습니다. 연구원들은 또한 표준 개발 환경에서 AdaTest의 효율성을 평가했습니다. 3개월 간의 개발, CheckList 테스트 및 GPT-3 기반 임시 데이터 확대를 거친 후 F1 점수는 야생에서 수집된 보이지 않는 데이터에 대해 0.66(1.00점 만점)입니다.
AdaTest를 사용하는 동일한 팀은 4시간 동안 자체 디버그 루프를 실행한 후 동일한 보이지 않는 데이터 세트에서 F1 점수 0.77을 달성했습니다. 이 점수는 나중에 보이지 않는 두 번째 데이터 세트에 복제되어 AdaTest가 버그 수정을 수행하고 기존 방법이 실패하는 영역에서 더 나은 결과를 얻을 수 있음을 보여주었습니다.
사람들은 언어 모델이 부족한 문제 사양을 제공하는 반면, 언어 모델은 더 큰 규모와 범위에서 고품질 테스트를 제공하고 모델 테스트와 디버깅을 연결하고 오류를 효과적으로 수정하며 모델 개발을 전통적인 소프트웨어 개발에 더 가깝게 만듭니다. .
인간과 AI의 협력은 머신러닝 개발의 미래 방향을 나타냅니다. 대규모 언어 모델의 역량이 계속해서 성장함에 따라 이러한 협력도 계속해서 향상될 것으로 기대됩니다.
위 내용은 NLP 모델은 사람의 말을 읽을 수 없나요? Microsoft AdaTest를 사용하면 버그를 5배 더 효율적으로 찾을 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!