"""Ingest examples into FAISS.""" import os from pathlib import Path import pickle from langchain.vectorstores import FAISS from langchain.embeddings import HuggingFaceInstructEmbeddings from langchain.text_splitter import CharacterTextSplitter from langchain.prompts.example_selector import \ SemanticSimilarityExampleSelector rephrase_documents = [ { "question": "how do i load those?", "chat_history": "Human: What types of tasks can I do with Pipelines?\nAssistant: \n\nThere are a few different types of tasks pipelines can do. Some examples: Text classification, Text generation, name entity recognition, question answering, summarization, translation, image classification, image segmentation, object detection, audio classification, and visual question answering.", "answer": "How do I load a pipeline for a specific task", }, { "question": "how do i install this package?", "chat_history": "", "answer": "How do I install transformers?", }, { "question": "where do i find the models?", "chat_history": "Human: can you write me a code snippet for that?\nAssistant: \n\nYes, you can load a pretained model with the from_pretrained() method. Here is a [link](https://huggingface.co/docs/transformers/autoclass_tutorial) to the documentation that provides a code snippet for loading a pretrained model with AutoClass.", "answer": "Where do I find the models that can be loaded into an autoclass?", }, { "question": "how do I finetune a pre-trained model?", "chat_history": "Human: List all methods of a pipeline please\nAssistant: \n\nTo answer your question, you can find a list of all the methods of the Pipeline class in the [API reference documentation](https://huggingface.co/docs/transformers/main_classes/pipelines).", "answer": "What are some methods for finetuning a pre-trained model?", }, { "question": "can you write me a code snippet for that?", "chat_history": "Human: how do I do train on multiple gpus?\nAssistant: \n\nTo perform distributed training, you can use the [Accelerate](https://huggingface.co/docs/transformers/accelerate) library. This example shows how to perform distributed training on multiple GPUs with accelerate. For more information on distributed training, check out the [Full Accelerate Documentation](https://huggingface.co/docs/accelerate/).", "answer": "Can you provide a code snippet for training on multiple GPUs with accelerate?", }, { "question": "show me how to do it with trainer", "chat_history": "Human: How do I finetune a pre-trained model?\nAssistant: \n\nYou can fine-tune a pretrained model with 🤗 Transformers Trainer, in TensorFlow with Keras, and in native PyTorch. For more information on how to do this, visit our [training tutorial](https://huggingface.co/docs/transformers/training)", "answer": "How do I finetune a pre-trained model with Transformers trainer?", } ] model_name = "hkunlp/instructor-large" embed_instruction = "Represent the text from the Hugging Face code documentation" query_instruction = "Query the most relevant text from the Hugging Face code documentation" embedding = HuggingFaceInstructEmbeddings(model_name=model_name, embed_instruction=embed_instruction, query_instruction=query_instruction) example_selector = SemanticSimilarityExampleSelector.from_examples( # This is the list of examples available to select from. rephrase_documents, # This is the embedding class used to produce embeddings which are used to measure semantic similarity. embedding, # This is the VectorStore class that is used to store the embeddings and do a similarity search over. FAISS, # This is the number of examples to produce. k=4 ) print("beginning pickle") with open("rephrase_eg.pkl", 'wb') as f: pickle.dump(example_selector, f) print("Rephrase pickle complete")