{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":5441,"databundleVersionId":38425,"sourceType":"competition"}],"dockerImageVersionId":30732,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install diffusers transformers","metadata":{"execution":{"iopub.status.busy":"2024-06-15T05:33:11.987091Z","iopub.execute_input":"2024-06-15T05:33:11.987528Z","iopub.status.idle":"2024-06-15T05:33:27.950775Z","shell.execute_reply.started":"2024-06-15T05:33:11.987495Z","shell.execute_reply":"2024-06-15T05:33:27.949729Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Huggingface Libraries","metadata":{}},{"cell_type":"markdown","source":"### NLP","metadata":{}},{"cell_type":"code","source":"import transformers\nfrom transformers import AutoTokenizer, AutoModelForCausalLM\n\ntokenizer = transformers.AutoTokenizer.        from_pretrained (\"openai-community/openai-gpt\")\nmodel     = transformers.AutoModelForCausalLM. from_pretrained (\"openai-community/openai-gpt\")","metadata":{"execution":{"iopub.status.busy":"2024-06-15T04:47:40.729252Z","iopub.execute_input":"2024-06-15T04:47:40.729604Z","iopub.status.idle":"2024-06-15T04:47:50.629013Z","shell.execute_reply.started":"2024-06-15T04:47:40.729575Z","shell.execute_reply":"2024-06-15T04:47:50.628042Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model","metadata":{"execution":{"iopub.status.busy":"2024-06-15T04:49:34.080174Z","iopub.execute_input":"2024-06-15T04:49:34.080736Z","iopub.status.idle":"2024-06-15T04:49:34.089038Z","shell.execute_reply.started":"2024-06-15T04:49:34.080707Z","shell.execute_reply":"2024-06-15T04:49:34.088121Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Images & Classification","metadata":{}},{"cell_type":"code","source":"# Load model directly\nfrom transformers import AutoImageProcessor, AutoModelForImageClassification\n\nprocessor = transformers.AutoImageProcessor.from_pretrained(\"aaraki/vit-base-patch16-224-in21k-finetuned-cifar10\")\nmodel     = transformers.AutoModelForImageClassification.from_pretrained(\"aaraki/vit-base-patch16-224-in21k-finetuned-cifar10\")","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Image Generation - Diffusers","metadata":{}},{"cell_type":"code","source":"import torch\nfrom diffusers import DDPMPipeline\nimport diffusers\n\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n\n# Load the butterfly pipeline\nbutterfly_pipeline = diffusers.DDPMPipeline.from_pretrained(\"johnowhitaker/ddpm-butterflies-32px\").to(device)\n\n# Create 8 images\nimages = butterfly_pipeline(batch_size=8).images\n\n# View the result\nimages[0]","metadata":{"execution":{"iopub.status.busy":"2024-06-15T05:00:24.638098Z","iopub.execute_input":"2024-06-15T05:00:24.638774Z","iopub.status.idle":"2024-06-15T05:00:48.846797Z","shell.execute_reply.started":"2024-06-15T05:00:24.638742Z","shell.execute_reply":"2024-06-15T05:00:48.845850Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"butterfly_pipeline","metadata":{"execution":{"iopub.status.busy":"2024-06-15T05:11:53.810860Z","iopub.execute_input":"2024-06-15T05:11:53.811255Z","iopub.status.idle":"2024-06-15T05:11:53.817149Z","shell.execute_reply.started":"2024-06-15T05:11:53.811220Z","shell.execute_reply":"2024-06-15T05:11:53.816225Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"images[4]","metadata":{"execution":{"iopub.status.busy":"2024-06-15T05:12:36.002364Z","iopub.execute_input":"2024-06-15T05:12:36.002721Z","iopub.status.idle":"2024-06-15T05:12:36.009035Z","shell.execute_reply.started":"2024-06-15T05:12:36.002695Z","shell.execute_reply":"2024-06-15T05:12:36.008134Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### Transformer, different ways of model initialization","metadata":{}},{"cell_type":"code","source":"import transformers\n\n# STEP 1 of PIPELINE\ntokenizer           = transformers.BertTokenizerFast    .from_pretrained(\"bert-base-cased\") # tokenizer = transformers. AutoTokenizer. from_pretrained(\"bert-base-cased\")\nraw_inputs = [\n    \"I love you\",    \n    \"I hate you\",            \n    \"I hate you, like I love you\",\n]\ninput_numeric_ids = tokenizer(raw_inputs           , return_tensors= \"pt\", padding=True, truncation= False )\n\n# STEP 2 of PIPELINE\nconfig              = transformers.BertConfig()\nmodel_untrained     = transformers.BertModel(config)\nmodel_pretrained    = transformers.BertModel(config).from_pretrained(\"bert-base-cased\")\n\nmodel_general         = transformers. AutoModel.                         from_pretrained(\"bert-base-cased\")\nmodel_classification  = transformers. AutoModelForSequenceClassification.from_pretrained(\"bert-base-cased\")\n\n# Understanding model's output\noutputs = model_pretrained(**input_numeric_ids)","metadata":{"execution":{"iopub.status.busy":"2024-06-15T05:03:12.354325Z","iopub.execute_input":"2024-06-15T05:03:12.354684Z","iopub.status.idle":"2024-06-15T05:03:20.836805Z","shell.execute_reply.started":"2024-06-15T05:03:12.354659Z","shell.execute_reply":"2024-06-15T05:03:20.835917Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Power of NLP - Entire transformers in one go","metadata":{}},{"cell_type":"code","source":"import transformers # Working on text\nimport diffusers    # Working on images\n\n\ncheckpoint  = \"distilbert-base-uncased-finetuned-sst-2-english\"\ntokenizer   = transformers. AutoTokenizer.                       from_pretrained(checkpoint)\nmodel       = transformers. AutoModelForSequenceClassification.  from_pretrained(checkpoint)\nsequences   = [\n    \"I love you\",    \n    \"I hate you\",            \n    \"I hate you, like I love you\",\n]\n\ntokens      = tokenizer(sequences, padding=True, truncation=True, return_tensors=\"pt\")\noutput      = model (   **tokens    )","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = transformers.pipeline(\"sentiment-analysis\", \n                 model_kwargs= {\"force_download\": True} \n                )\nmodel(\n    [\"I love you\", \"I hate you\",]\n)\n\ncategorization = transformers.pipeline(\"zero-shot-classification\", \n                          model_kwargs= {\"force_download\": True}\n                        )\ncategorization(\n    [\"Bio Tech Journal\", \"Nano Tech Journal\", \"Land dispute\"],\n    candidate_labels=[\"science\", \"law\", \"land law\"],\n)\n\ngenerator = transformers.pipeline(\"text-generation\")\ngenerator(\"Assistant for science textbook writers\")\n\nmetadata_extractor = transformers.pipeline(\"ner\", grouped_entities=True)\nmetadata_extractor(\"<Header> Chapter Name. <p> Introduction to Large Language Models\")\n\nquestion_answerer = transformers.pipeline(\"question-answering\")\nquestion_answerer(\n    question=\"Where do I work?\",\n    context=\"My name is Sylvain and I work at Hugging Face in Brooklyn\",\n)\n\nsummarizer = transformers.pipeline(\"summarization\")\nsummarizer(\n    \"\"\"\n    this is a long sentence. which just talks about how long it is. That's it. \n\"\"\"\n)","metadata":{"execution":{"iopub.status.busy":"2024-06-15T05:16:30.816298Z","iopub.execute_input":"2024-06-15T05:16:30.816676Z","iopub.status.idle":"2024-06-15T05:17:16.876606Z","shell.execute_reply.started":"2024-06-15T05:16:30.816650Z","shell.execute_reply":"2024-06-15T05:17:16.875572Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from huggingface_hub import notebook_login\n\nnotebook_login()","metadata":{"execution":{"iopub.status.busy":"2024-06-15T05:35:41.120451Z","iopub.execute_input":"2024-06-15T05:35:41.121231Z","iopub.status.idle":"2024-06-15T05:35:41.148854Z","shell.execute_reply.started":"2024-06-15T05:35:41.121196Z","shell.execute_reply":"2024-06-15T05:35:41.147950Z"},"trusted":true},"execution_count":null,"outputs":[]}]}