대형 언어 모델은 일련의 질문과 답변으로 교육을 조정할 수 있습니다. 그러나 자신의 데이터에 대한 모델을 더 미세 조정하려면 데이터에 대한 많은 질문과 답변이 필요합니다. 이러한 질문과 답변을 작성하는 것은 많은 수동 작업이 될 수 있습니다.
이 저장소를 사용하면 FINGP (Fine-Tuned Language Model)를 사용하여 기존 텍스트 데이터에서 질문/답변 쌍을 자동으로 추출하여 모든 수동 작업을 제거 할 수 있습니다.
이 코드를 실행하려면이 저장소를 복제 한 다음 다음 Python 패키지를 설치해야합니다.
tiktoken , Openai 토큰 자,openai , 공식 OpenAI API 클라이언트,langchain , 모델과 유틸리티를 결합하는 데 사용되는 접착제 코드. 이 스크립트는 Markdown ( .md ) 문서의 폴더를 제작에 사용 된 소스 문서에 대한 질문, 답변 및 경로가 포함 된 .json 파일로 전환하도록 설계되었습니다.
코드를 실행하려면 question_extractor.py 파일 (입력 폴더 및 출력 경로 모두)에서 관련 파일 경로를 설정하고 OpenAI API 키가 환경에 있는지 확인하십시오. 그런 다음 파이썬으로 스크립트를 실행하십시오.
python3 question_extractor.py
일단 완료되면 모든 질문/답변은 출력 경로에서 .json 파일로 작성됩니다.
코드는 모든 파일의 루프를 사용하여 각 파일에 대해 다음 프롬프트를 사용하여 질문 목록을 추출한 다음 텍스트 청크가 이어집니다.
You are an expert user extracting information to quiz people on documentation. You will be passed a page extracted from the documentation, write a numbered list of questions that can be answered based *solely* on the given text.
그런 다음 질문을 반복하여 다음 프롬프트를 전달한 다음 텍스트 덩어리와 질문을 통해 답을 얻습니다.
You are an expert user answering questions. You will be passed a page extracted from a documentation and a question. Generate a comprehensive and informative answer to the question based *solely* on the given text.
코드의 실제 논리의 대부분은 파일을 동시에 처리하는 데 전념하고 (속도를 위해) 텍스트 청크가 모델에 전달 된 텍스트 청크가 응답하기에 충분한 토큰을 남기기에 충분히 작다는 것을 보장합니다.
텍스트가 모델로 전송 되기에는 너무 길면 가장 높은 Markdown 제목 수준을 따라 분리됩니다 (단일 단락으로 내려갈 때까지 필요한 경우 프로세스를 재귀 적으로 반복 할 수 있음).
성능 측면 에서이 스크립트는 6 분 안에 전체 NERSC 문서를 처리 할 수 있습니다. 318 마크 다운 파일을 8005 질문으로 29 달러에 돌립니다.
모델의 요율 제한의 약 93%에서 실행됩니다. ↩