이 패키지는 대형 언어 모델 (LLMS)을 스파크에 통합하여 빠른 프로토 타이핑 및 프롬프트 를위한 모듈 식 시스템을 특징으로하며 비정형 응답을 다양한 NLP 작업에 대한 강력한 출력 으로 전환 할 필요가 없습니다 .
llm
구성 요소langchain
모델과 기능은 spacy-llm
에서 사용할 수 있습니다.LLMS (Large Language Model)는 강력한 자연어 이해 기능을 특징으로합니다. 몇 가지 (그리고 때로는 없음) 예제로, LLM은 텍스트 분류, 이름이 지명 된 엔티티 인식, 코퍼레이션 해상도, 정보 추출 등과 같은 사용자 정의 NLP 작업을 수행 할 수 있습니다.
Spacy는 다양한 방식으로 언어를 사용해야하는 시스템을 구축하기위한 잘 확립 된 라이브러리입니다. Spacy의 내장 구성 요소는 일반적으로 감독 된 학습 또는 규칙 기반 접근법으로 구동됩니다.
감독 학습은 LLM보다 프로토 타이핑을 위해 프롬프트하는 것보다 훨씬 나쁩니다. 그러나 많은 작업의 경우 생산에 훨씬 좋습니다. 단일 GPU에서 편안하게 실행되는 변압기 모델은 매우 강력하며 잘 정의 된 출력이있는 작업에 더 나은 선택 일 수 있습니다. 당신은 수백에서 수천 개의 라벨이 붙은 예제로 모델을 훈련 시키며 정확히 그렇게하는 법을 배웁니다. 감독 학습을 통해 효율성, 신뢰성 및 제어는 모두 더 나은 것이며, 정확도는 일반적으로 LLM 프롬프트보다 높을 것입니다.
spacy-llm
사용하면 두 세계의 최고를 최대한 활용할 수 있습니다. LLM 프롬프트로 구동되는 구성 요소로 파이프 라인을 신속하게 초기화하고 다른 접근 방식으로 구동되는 구성 요소를 자유롭게 혼합 할 수 있습니다. 프로젝트가 진행됨에 따라 필요에 따라 LLM 기반 구성 요소의 일부 또는 전부를 교체 할 수 있습니다.
물론 시스템에는 LLM의 전력이 완전히 정당화되는 구성 요소가있을 수 있습니다. 여러 문서의 정보를 미묘한 방식으로 합성하고 미묘한 요약을 생성 할 수있는 시스템을 원한다면 더 큰 것이 좋습니다. 그러나 생산 시스템에 일부 작업에 LLM이 필요한 경우에도 LLM이 필요한 것은 아닙니다. 저렴한 텍스트 분류 모델을 사용하여 요약 할 텍스트를 찾는 데 도움이되거나 요약의 출력을 확인하기 위해 규칙 기반 시스템을 추가하려고합니다. 이러한 이전과 이후의 작업은 성숙하고 잘 고려한 라이브러리를 사용하면 훨씬 쉽습니다. 이것이 바로 Spacy가 제공하는 것입니다.
spacy-llm
향후 스파크 버전에 자동으로 설치됩니다. 현재 spacy
설치 한 동일한 가상 환경에서 다음을 실행할 수 있습니다.
python -m pip install spacy-llm
켈 이 패키지는 여전히 실험적이며 인터페이스에 대한 변경 사항이 사소한 버전 업데이트로 깨질 수 있습니다.
OpenAI의 GPT 모델을 사용하여 텍스트 분류를 실행합시다.
Openai.com에서 새 API 키를 만들거나 기존 키를 가져오고 키가 환경 변수로 설정되어 있는지 확인하십시오. 더 많은 배경 정보는 API 키 설정과 관련된 문서를 참조하십시오.
0.5.0 이후에 몇 가지 빠른 실험을하려면 실행할 수 있습니다.
import spacy
nlp = spacy . blank ( "en" )
llm = nlp . add_pipe ( "llm_textcat" )
llm . add_label ( "INSULT" )
llm . add_label ( "COMPLIMENT" )
doc = nlp ( "You look gorgeous!" )
print ( doc . cats )
# {"COMPLIMENT": 1.0, "INSULT": 0.0}
llm_textcat
공장을 사용하면 OpenAI의 기본 GPT-3-5 모델뿐만 아니라 최신 버전의 내장 텍스트 캣 작업이 사용됩니다.
llm
파이프 라인의 다양한 매개 변수를 제어하기 위해 Spacy의 구성 시스템을 사용할 수 있습니다. 시작하려면 다음을 포함하는 구성 파일 config.cfg
작성하십시오 (또는 여기에서 전체 예를 참조하십시오).
[nlp]
lang = " en "
pipeline = [ " llm " ]
[components]
[components.llm]
factory = " llm "
[components.llm.task]
@ llm_tasks = " spacy.TextCat.v3 "
labels = [ " COMPLIMENT " , " INSULT " ]
[components.llm.model]
@ llm_models = " spacy.GPT-4.v2 "
이제 실행 :
from spacy_llm . util import assemble
nlp = assemble ( "config.cfg" )
doc = nlp ( "You look gorgeous!" )
print ( doc . cats )
# {"COMPLIMENT": 1.0, "INSULT": 0.0}
그게 다야! 프롬프트 템플릿, 더 많은 작업, 로깅 등의 다른 기능이 많이 있습니다.이를 사용하는 방법에 대한 자세한 내용은 https://spacy.io/api/large-language-models를 확인하십시오.
가까운 시일 내에 우리는 할 것입니다
PR은 항상 환영합니다!
spacy-llm
사용에 관한 질문이 있거나 회전 후 피드백을 제공하려면 토론 보드를 사용하십시오. Spacy 문제 추적기에 버그 보고서를 제출할 수 있습니다. 감사합니다!
마이그레이션 가이드를 참조하십시오.