question_extractor
1.0.0
可以用一組問題和答案調整大型語言模型。但是,要進一步調整自己的數據模型,您需要大量有關數據的問題和答案。產生這些問題和答案可能是很多手動工作。
該存儲庫可讓您使用非最終調整的語言模型(CHATGPT)從現有的文本數據中自動提取問答對,從而消除所有手動工作。
要運行此代碼,您將需要克隆此存儲庫,然後安裝以下Python軟件包:
tiktoken ,Openai令牌,openai ,官方OpenAI API客戶,langchain ,用於結合型號和實用程序的膠代碼。 該腳本旨在將Markdown( .md )文檔的文件夾轉換為一個.json文件,其中包含用於生產它們的源文檔的問題,答案和路徑列表。
要運行代碼,請在question_extractor.py文件(輸入文件夾和輸出路徑)中設置相關文件路徑,並確保您的OpenAI API密鑰在環境中。然後用Python運行腳本:
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文檔1 。以29美元的價格將318個Markdown文件變成8005個問題。
以型號限制的93%運行。 ↩