-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a Pipeline example and add other models in th ehub notebook To close issue [#3077](langchain-ai/langchain#3099)
- Loading branch information
1 parent
aec4e63
commit 4bbbe89
Showing
2 changed files
with
314 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
145 changes: 145 additions & 0 deletions
145
modules/models/llms/integrations/huggingface_pipelines.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"id": "959300d4", | ||
"metadata": {}, | ||
"source": [ | ||
"# Hugging Face Local Pipelines\n", | ||
"\n", | ||
"Hugging Face models can be run locally through the `HuggingFacePipeline` class.\n", | ||
"\n", | ||
"The [Hugging Face Model Hub](https://huggingface.co/models) hosts over 120k models, 20k datasets, and 50k demo apps (Spaces), all open source and publicly available, in an online platform where people can easily collaborate and build ML together.\n", | ||
"\n", | ||
"These can be called from LangChain either through this local pipeline wrapper or by calling their hosted inference endpoints through the HuggingFaceHub class. For more information on the hosted pipelines, see the [HugigngFaceHub](huggingface_hub.ipynb) notebook." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "4c1b8450-5eaf-4d34-8341-2d785448a1ff", | ||
"metadata": { | ||
"tags": [] | ||
}, | ||
"source": [ | ||
"To use, you should have the ``transformers`` python [package installed](https://pypi.org/project/transformers/)." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"id": "d772b637-de00-4663-bd77-9bc96d798db2", | ||
"metadata": { | ||
"tags": [] | ||
}, | ||
"outputs": [], | ||
"source": [ | ||
"!pip install transformers > /dev/null" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "91ad075f-71d5-4bc8-ab91-cc0ad5ef16bb", | ||
"metadata": {}, | ||
"source": [ | ||
"### Load the model" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"id": "165ae236-962a-4763-8052-c4836d78a5d2", | ||
"metadata": { | ||
"tags": [] | ||
}, | ||
"outputs": [ | ||
{ | ||
"name": "stderr", | ||
"output_type": "stream", | ||
"text": [ | ||
"WARNING:root:Failed to default session, using empty session: HTTPConnectionPool(host='localhost', port=8000): Max retries exceeded with url: /sessions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x1117f9790>: Failed to establish a new connection: [Errno 61] Connection refused'))\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"from langchain import HuggingFacePipeline\n", | ||
"\n", | ||
"llm = HuggingFacePipeline.from_model_id(model_id=\"bigscience/bloom-1b7\", task=\"text-generation\", model_kwargs={\"temperature\":0, \"max_length\":64})" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "00104b27-0c15-4a97-b198-4512337ee211", | ||
"metadata": {}, | ||
"source": [ | ||
"### Integrate the model in an LLMChain" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 3, | ||
"id": "3acf0069", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stderr", | ||
"output_type": "stream", | ||
"text": [ | ||
"/Users/wfh/code/lc/lckg/.venv/lib/python3.11/site-packages/transformers/generation/utils.py:1288: UserWarning: Using `max_length`'s default (64) to control the generation length. This behaviour is deprecated and will be removed from the config in v5 of Transformers -- we recommend using `max_new_tokens` to control the maximum length of the generation.\n", | ||
" warnings.warn(\n", | ||
"WARNING:root:Failed to persist run: HTTPConnectionPool(host='localhost', port=8000): Max retries exceeded with url: /chain-runs (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x144d06910>: Failed to establish a new connection: [Errno 61] Connection refused'))\n" | ||
] | ||
}, | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
" First, we need to understand what is an electroencephalogram. An electroencephalogram is a recording of brain activity. It is a recording of brain activity that is made by placing electrodes on the scalp. The electrodes are placed\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"from langchain import PromptTemplate, LLMChain\n", | ||
"\n", | ||
"template = \"\"\"Question: {question}\n", | ||
"\n", | ||
"Answer: Let's think step by step.\"\"\"\n", | ||
"prompt = PromptTemplate(template=template, input_variables=[\"question\"])\n", | ||
"\n", | ||
"llm_chain = LLMChain(prompt=prompt, llm=llm)\n", | ||
"\n", | ||
"question = \"What is electroencephalography?\"\n", | ||
"\n", | ||
"print(llm_chain.run(question))" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"id": "843a3837", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3 (ipykernel)", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.11.2" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |