Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable the device_map parameter in huggingface pipeline #12731

Merged
merged 1 commit into from
Nov 2, 2023

Conversation

praveenv
Copy link
Contributor

@praveenv praveenv commented Nov 1, 2023

Enabling device_map in HuggingFacePipeline

For multi-gpu settings with large models, the accelerate library provides the device_map parameter to automatically distribute the model across GPUs / disk.

The Transformers pipeline enables users to specify device (or) device_map, and handles cases (with warnings) when both are specified.

However, Langchain's HuggingFacePipeline only supports specifying device when calling transformers which limits large models and multi-gpu use-cases.
Additionally, the default value of device is initialized to -1 , which is incompatible with the transformers pipeline when device_map is specified.

This PR addresses the addition of device_map as a parameter , and solves the incompatibility of device = -1 when device_map is also specified.
An additional test has been added for this feature.

Additionally, some existing tests no longer work since

  1. max_new_tokens has to be specified under pipeline_kwargs and not model_kwargs
  2. The GPT2 tokenizer raises a ValueError: Pipeline with tokenizer without pad_token cannot do batching, since the tokenizer.pad_token is None (related issue on the transformers repo).

This PR handles fixing these tests as well.

Copy link

vercel bot commented Nov 1, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
langchain ⬜️ Ignored (Inspect) Visit Preview Nov 1, 2023 7:40pm

@dosubot dosubot bot added Ɑ: models Related to LLMs or chat model modules 🤖:improvement Medium size change to existing code to handle new use-cases labels Nov 1, 2023
@baskaryan baskaryan merged commit 21eeba0 into langchain-ai:master Nov 2, 2023
21 checks passed
@baskaryan
Copy link
Collaborator

thanks @praveenv!

@praveenv praveenv deleted the pipeline_device_map branch November 6, 2023 03:50
averikitsch pushed a commit to GoogleCloudPlatform/genai-databases-retrieval-app that referenced this pull request Nov 14, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [langchain](https://togithub.com/langchain-ai/langchain) | `==0.0.329`
-> `==0.0.335` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/langchain/0.0.335?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/langchain/0.0.335?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/langchain/0.0.329/0.0.335?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/langchain/0.0.329/0.0.335?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>langchain-ai/langchain (langchain)</summary>

###
[`v0.0.335`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.335)

[Compare
Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.334...v0.0.335)

#### What's Changed

- vectara rag mq by [@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13214
- Add more runnable documentation by
[@&#8203;eyurtsev](https://togithub.com/eyurtsev) in
[langchain-ai/langchain#13083
- Document RunnableWithFallbacks by
[@&#8203;eyurtsev](https://togithub.com/eyurtsev) in
[langchain-ai/langchain#13088
- Add RunnableSequence documentation by
[@&#8203;eyurtsev](https://togithub.com/eyurtsev) in
[langchain-ai/langchain#13094
- feat: FastEmbed embedding provider by
[@&#8203;Anush008](https://togithub.com/Anush008) in
[langchain-ai/langchain#13109
- issue
[#&#8203;12165](https://togithub.com/langchain-ai/langchain/issues/12165)
mask API key in chat_models/azureml_endpoint module by
[@&#8203;fyasla](https://togithub.com/fyasla) in
[langchain-ai/langchain#12836
- Bagatur/langserve blurb by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13217
- Neo4j chat message history by
[@&#8203;tomasonjo](https://togithub.com/tomasonjo) in
[langchain-ai/langchain#13008
- Add mongo parent template to index by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13222
- new course on `DeepLearning.ai` by
[@&#8203;leo-gan](https://togithub.com/leo-gan) in
[langchain-ai/langchain#12755
- Update Documentation: Corrected Typos and Improved Clarity by
[@&#8203;fvaysh](https://togithub.com/fvaysh) in
[langchain-ai/langchain#11725
- feat: Docusaurus Loader by
[@&#8203;leedotpang](https://togithub.com/leedotpang) in
[langchain-ai/langchain#9138
- Fix Document Loader Unit Test - Docusaurus by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13228
- fleet_context docs update by
[@&#8203;adrwz](https://togithub.com/adrwz) in
[langchain-ai/langchain#13221
- Add template for conversational rag with timescale vector by
[@&#8203;cevian](https://togithub.com/cevian) in
[langchain-ai/langchain#13041
- Upgrade cohere embedding model to v3 by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13219
- update stack diagram by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13213
- Fix BeautifulSoupTransformer: no more duplicates and correct order of
tags + tests by
[@&#8203;petervandenabeele](https://togithub.com/petervandenabeele) in
[langchain-ai/langchain#12596
- Make it easier to subclass runnable binding with custom init args by
[@&#8203;nfcampos](https://togithub.com/nfcampos) in
[langchain-ai/langchain#13189
- update tools by [@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#13243
- Update by [@&#8203;hinthornw](https://togithub.com/hinthornw) in
[langchain-ai/langchain#13208
- bump 335 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13261

#### New Contributors

- [@&#8203;Anush008](https://togithub.com/Anush008) made their first
contribution in
[langchain-ai/langchain#13109

**Full Changelog**:
langchain-ai/langchain@v0.0.334...v0.0.335

###
[`v0.0.334`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.334)

[Compare
Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.333...v0.0.334)

#### What's Changed

- update oai cookbooks by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13135
- Multimodal rag traces by [@&#8203;efriis](https://togithub.com/efriis)
in
[langchain-ai/langchain#13140
- Bagatur/docs smith context by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13139
- fix langsmith links by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13144
- Docs: combine LCEL index and why by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13142
- update modules sidebar by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13141
- update oai tool agent doc by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13147
- Pirate Speak Configurable Template by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13153
- OpenAI remove httpx typing by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13154
- Bagatur/docs serve context by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13150
- Fix langchain.llms OpenAI completion doesn't work due to v1 client
update by [@&#8203;dosuken123](https://togithub.com/dosuken123) in
[langchain-ai/langchain#13099
- LCEL nits by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13155
- fix: Updates to formatting in Google Drive Retriever docs by
[@&#8203;holtskinner](https://togithub.com/holtskinner) in
[langchain-ai/langchain#13015
- fix baiducloud_vector_search document typo by
[@&#8203;wemysschen](https://togithub.com/wemysschen) in
[langchain-ai/langchain#12976
- fix module sidebar by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13158
- Clean up Fireworks provider documentation by
[@&#8203;zchenyu](https://togithub.com/zchenyu) in
[langchain-ai/langchain#13157
- Document: Fix "Biadu" typo by
[@&#8203;Cweili](https://togithub.com/Cweili) in
[langchain-ai/langchain#12985
- Add basic critique revise template by
[@&#8203;jacoblee93](https://togithub.com/jacoblee93) in
[langchain-ai/langchain#12688
- Update model i/o by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13160
- improve duck duck go tool by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#13165
- Bagatur/update agent docs by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13167
- Add serve to quickstart by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13174
- template readme's in docs by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13152
- Update return type for Runnable.**or** by
[@&#8203;nfcampos](https://togithub.com/nfcampos) in
[langchain-ai/langchain#12880
- Changes to root listener by
[@&#8203;nfcampos](https://togithub.com/nfcampos) in
[langchain-ai/langchain#12174
- Update toolkit.py to remove single quotes around table names by
[@&#8203;The1Bill](https://togithub.com/The1Bill) in
[langchain-ai/langchain#12445
- Add Chroma multimodal cookbook by
[@&#8203;rlancemartin](https://togithub.com/rlancemartin) in
[langchain-ai/langchain#12952
- bump 334 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13211

#### New Contributors

- [@&#8203;Cweili](https://togithub.com/Cweili) made their first
contribution in
[langchain-ai/langchain#12985
- [@&#8203;The1Bill](https://togithub.com/The1Bill) made their first
contribution in
[langchain-ai/langchain#12445

**Full Changelog**:
langchain-ai/langchain@v0.0.333...v0.0.334

###
[`v0.0.333`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.333)

[Compare
Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.332...v0.0.333)

#### What's Changed

- update azure embedding docs by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13091
- update more azure docs by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13093
- Get project from langchain sdk by
[@&#8203;jakerachleff](https://togithub.com/jakerachleff) in
[langchain-ai/langchain#13100
- Adds embeddings filter option to return scores in state by
[@&#8203;jacoblee93](https://togithub.com/jacoblee93) in
[langchain-ai/langchain#12489
- Tool Retrieval Template by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13104
- feat: Vertex AI Search - Add Snippet Retrieval for Non-Advanced
Website Data Stores by
[@&#8203;holtskinner](https://togithub.com/holtskinner) in
[langchain-ai/langchain#13020
- (Astra DB/Cassandra) Minor clarification about dependencies in the
demo notebook by
[@&#8203;hemidactylus](https://togithub.com/hemidactylus) in
[langchain-ai/langchain#13118
- Bagatur/oai tool by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#13110
- Add message to documents by
[@&#8203;billytrend-cohere](https://togithub.com/billytrend-cohere) in
[langchain-ai/langchain#12552
- bump 333 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13131

#### New Contributors

- [@&#8203;jakerachleff](https://togithub.com/jakerachleff) made their
first contribution in
[langchain-ai/langchain#13100

**Full Changelog**:
langchain-ai/langchain@v0.0.332...v0.0.333

###
[`v0.0.332`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.332)

[Compare
Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.331...v0.0.332)

#### What's Changed

- Harrison/docs smith serve by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#12898
- fix langsmith link by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12939
- Add possibility to pass on_artifacts for a specific conversation by
[@&#8203;jakubno](https://togithub.com/jakubno) in
[langchain-ai/langchain#12687
- Fix return metadata when searching for DingoDB by
[@&#8203;HeChangHaoGary](https://togithub.com/HeChangHaoGary) in
[langchain-ai/langchain#12937
- Fix normalizing the cosine distance in Qdrant by
[@&#8203;kacperlukawski](https://togithub.com/kacperlukawski) in
[langchain-ai/langchain#12934
- Fix typo in e2b_data_analysis.ipynb by
[@&#8203;cbpetersen](https://togithub.com/cbpetersen) in
[langchain-ai/langchain#12930
- docs: update hf pipeline docs by
[@&#8203;praveenv](https://togithub.com/praveenv) in
[langchain-ai/langchain#12908
- docs: clean up vestigial markdown by
[@&#8203;thezanke](https://togithub.com/thezanke) in
[langchain-ai/langchain#12907
- fix baiducloud directory loader import file loader by
[@&#8203;wemysschen](https://togithub.com/wemysschen) in
[langchain-ai/langchain#12924
- add baidu cloud vectorsearch document by
[@&#8203;wemysschen](https://togithub.com/wemysschen) in
[langchain-ai/langchain#12928
- fix regex pattern of structured output parser by
[@&#8203;hmasdev](https://togithub.com/hmasdev) in
[langchain-ai/langchain#12929
- Remove useless line of code from sql.ipynb by
[@&#8203;matthieudelaro](https://togithub.com/matthieudelaro) in
[langchain-ai/langchain#12906
- fix guides link by [@&#8203;baskaryan](https://togithub.com/baskaryan)
in
[langchain-ai/langchain#12941
- Fix for anyscale chat model api key by
[@&#8203;eyurtsev](https://togithub.com/eyurtsev) in
[langchain-ai/langchain#12938
- feat: acquire advisory lock before creating extension in pgvector by
[@&#8203;VinzenzKlass](https://togithub.com/VinzenzKlass) in
[langchain-ai/langchain#12935
- Add SecretStr for Symbl.ai Nebula API by
[@&#8203;praveenv](https://togithub.com/praveenv) in
[langchain-ai/langchain#12896
- Add support of Cohere Embed v3 by
[@&#8203;kacperlukawski](https://togithub.com/kacperlukawski) in
[langchain-ai/langchain#12940
- Bagatur/oai v1 scratch by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12948
- Record system fingerprint chat openai by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12960
- add oai v1 cookbook by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12961
- update schema by [@&#8203;hwchase17](https://togithub.com/hwchase17)
in
[langchain-ai/langchain#11320
- bump 331rc0 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12963
- fix max_tokens by [@&#8203;baskaryan](https://togithub.com/baskaryan)
in
[langchain-ai/langchain#12964
- bump 331rc1 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12965
- oai v1 embeddings by [@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12969
- Vectara RAG template by
[@&#8203;ofermend](https://togithub.com/ofermend) in
[langchain-ai/langchain#12975
- add ingest for mongo by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#12897
- Fix for rag-supabase readme by
[@&#8203;jasanfarah](https://togithub.com/jasanfarah) in
[langchain-ai/langchain#12869
- bump 331rc2 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13006
- Multi modal RAG + QA Cookbooks by
[@&#8203;rlancemartin](https://togithub.com/rlancemartin) in
[langchain-ai/langchain#12946
- Neo4j conversation cypher template by
[@&#8203;tomasonjo](https://togithub.com/tomasonjo) in
[langchain-ai/langchain#12927
- cli pyproject updating by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12945
- Bagatur/oai assistant by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13010
- bump exp 38 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13016
- Add `Memorize` tool by [@&#8203;Atry](https://togithub.com/Atry) in
[langchain-ai/langchain#11722
- update stack diagram by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13021
- Add neo4j vector memory template by
[@&#8203;tomasonjo](https://togithub.com/tomasonjo) in
[langchain-ai/langchain#12993
- Add "Astra DB" vector store integration by
[@&#8203;hemidactylus](https://togithub.com/hemidactylus) in
[langchain-ai/langchain#12966
- Relock Templates by [@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13028
- Update Deps in Experimental by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13029
- template versions again by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13030
- Upgrade docs postcss by [@&#8203;efriis](https://togithub.com/efriis)
in
[langchain-ai/langchain#13031
- redirect ls walkthrough by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13040
- Fleet context by [@&#8203;baskaryan](https://togithub.com/baskaryan)
in
[langchain-ai/langchain#13038
- cli updates, 0.0.16 by [@&#8203;efriis](https://togithub.com/efriis)
in
[langchain-ai/langchain#13034
- oai assistant multiple actions by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13068
- Add RunnableRetry Documentation by
[@&#8203;eyurtsev](https://togithub.com/eyurtsev) in
[langchain-ai/langchain#13074
- Add Proper Import Error by
[@&#8203;Haste171](https://togithub.com/Haste171) in
[langchain-ai/langchain#13042
- Azure OpenAI Embeddings by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#13039
- Don't pass EF to chroma by
[@&#8203;atroyn](https://togithub.com/atroyn) in
[langchain-ai/langchain#13085
- bump 331rc3 exp 39 by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13086
- bump 332 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#13089

#### New Contributors

- [@&#8203;cbpetersen](https://togithub.com/cbpetersen) made their first
contribution in
[langchain-ai/langchain#12930
- [@&#8203;thezanke](https://togithub.com/thezanke) made their first
contribution in
[langchain-ai/langchain#12907
- [@&#8203;hmasdev](https://togithub.com/hmasdev) made their first
contribution in
[langchain-ai/langchain#12929
- [@&#8203;matthieudelaro](https://togithub.com/matthieudelaro) made
their first contribution in
[langchain-ai/langchain#12906
- [@&#8203;VinzenzKlass](https://togithub.com/VinzenzKlass) made their
first contribution in
[langchain-ai/langchain#12935
- [@&#8203;jasanfarah](https://togithub.com/jasanfarah) made their first
contribution in
[langchain-ai/langchain#12869

**Full Changelog**:
langchain-ai/langchain@v0.0.331...v0.0.332

###
[`v0.0.331`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.331)

[Compare
Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.330...v0.0.331)

#### What's Changed

- coockbook: Fix typo in wikibase_agent.ipynb by
[@&#8203;standby24x7](https://togithub.com/standby24x7) in
[langchain-ai/langchain#12839
- fix bes vector store search by
[@&#8203;wemysschen](https://togithub.com/wemysschen) in
[langchain-ai/langchain#12828
- template: use dashes instead of underscores for neo4j-cypher package
and path in readme by [@&#8203;jexp](https://togithub.com/jexp) in
[langchain-ai/langchain#12827
- mongo parent document retrieval by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#12887
- use keys not items by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#12918
- cli template gitignores by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12914
- Update csv.ipynb description by
[@&#8203;bhatt-priyadutt](https://togithub.com/bhatt-priyadutt) in
[langchain-ai/langchain#12878
- bump 331 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12932

#### New Contributors

- [@&#8203;jexp](https://togithub.com/jexp) made their first
contribution in
[langchain-ai/langchain#12827
- [@&#8203;bhatt-priyadutt](https://togithub.com/bhatt-priyadutt) made
their first contribution in
[langchain-ai/langchain#12878

**Full Changelog**:
langchain-ai/langchain@v0.0.330...v0.0.331

###
[`v0.0.330`](https://togithub.com/langchain-ai/langchain/releases/tag/v0.0.330)

[Compare
Source](https://togithub.com/langchain-ai/langchain/compare/v0.0.329...v0.0.330)

#### What's Changed

- CLI 0.0.12 by [@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12787
- Fix on_llm_new_token(chunk=) for some chat models by
[@&#8203;nfcampos](https://togithub.com/nfcampos) in
[langchain-ai/langchain#12784
- CLI 0.0.13, Configurable Template Demo by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12796
- Fix AddableDict raising exception when used with non-addable values by
[@&#8203;nfcampos](https://togithub.com/nfcampos) in
[langchain-ai/langchain#12785
- Add input types to cypher templates by
[@&#8203;tomasonjo](https://togithub.com/tomasonjo) in
[langchain-ai/langchain#12800
- Update llamacpp.ipynb by
[@&#8203;eltociear](https://togithub.com/eltociear) in
[langchain-ai/langchain#12791
- Fixed broken link in Quickstart page by
[@&#8203;pythagoras-yamamoto](https://togithub.com/pythagoras-yamamoto)
in
[langchain-ai/langchain#12516
- Docs: 'memory' -> 'history' typo. by
[@&#8203;serranoarevalo](https://togithub.com/serranoarevalo) in
[langchain-ai/langchain#12779
- Fix broken links to use cases by
[@&#8203;ab-10](https://togithub.com/ab-10) in
[langchain-ai/langchain#12777
- Fixed a typo in templates/docs/CONTRIBUTING.md (delimeters
=>delimiters) by [@&#8203;ba230t](https://togithub.com/ba230t) in
[langchain-ai/langchain#12774
- Use data from all Google search results in SerpApi.com wrapper by
[@&#8203;ilyazub](https://togithub.com/ilyazub) in
[langchain-ai/langchain#12770
- zep: Update Zep docs and messaging by
[@&#8203;danielchalef](https://togithub.com/danielchalef) in
[langchain-ai/langchain#12764
- **getattr** should rase AttributeError not ImportError on missing
attributes by [@&#8203;mbell697](https://togithub.com/mbell697) in
[langchain-ai/langchain#12801
- enable the device_map parameter in huggingface pipeline by
[@&#8203;praveenv](https://togithub.com/praveenv) in
[langchain-ai/langchain#12731
- Automatically add configurable key to config_schema if config_specs i…
by [@&#8203;nfcampos](https://togithub.com/nfcampos) in
[langchain-ai/langchain#12798
- fix imports by [@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#12804
- add import tests to all modules by
[@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12806
- Zep: Summary Search and Example by
[@&#8203;danielchalef](https://togithub.com/danielchalef) in
[langchain-ai/langchain#12686
- zep: VectorStore: Use Native MMR by
[@&#8203;danielchalef](https://togithub.com/danielchalef) in
[langchain-ai/langchain#12690
- feat: Supprt pgvecto.rs as a VectorStore by
[@&#8203;BeautyyuYanli](https://togithub.com/BeautyyuYanli) in
[langchain-ai/langchain#12718
- Add TileDB vectorstore implementation by
[@&#8203;NikolaosPapailiou](https://togithub.com/NikolaosPapailiou) in
[langchain-ai/langchain#12624
- Adds missing `urllib.parse` for IDE warning of `PubMedAPIWrapper` by
[@&#8203;jamesbraza](https://togithub.com/jamesbraza) in
[langchain-ai/langchain#12808
- Correct number of elements in config list in `batch()` and `abatch()`
of `BaseLLM` by [@&#8203;akionux](https://togithub.com/akionux) in
[langchain-ai/langchain#12713
- Bagatur/tiledb by [@&#8203;baskaryan](https://togithub.com/baskaryan)
in
[langchain-ai/langchain#12811
- Add template for rag-singlestoredb by
[@&#8203;apeng-singlestore](https://togithub.com/apeng-singlestore) in
[langchain-ai/langchain#12805
- Update template index by
[@&#8203;rlancemartin](https://togithub.com/rlancemartin) in
[langchain-ai/langchain#12809
- migrate by [@&#8203;mpskex](https://togithub.com/mpskex) in
[langchain-ai/langchain#12810
- feat: add a rag template for momento vector index by
[@&#8203;malandis](https://togithub.com/malandis) in
[langchain-ai/langchain#12757
- Keep also original query - multi_query.py by
[@&#8203;manuelrech](https://togithub.com/manuelrech) in
[langchain-ai/langchain#12696
- updated `integrations/providers/google` by
[@&#8203;leo-gan](https://togithub.com/leo-gan) in
[langchain-ai/langchain#12226
- Update quickstart.mdx by
[@&#8203;josephrmartinez](https://togithub.com/josephrmartinez) in
[langchain-ai/langchain#12386
- Add Dataset Page to printout by
[@&#8203;hinthornw](https://togithub.com/hinthornw) in
[langchain-ai/langchain#12816
- Autopopulate module name in cli init by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12814
- Disable trace_on_chain_group auto-tracing by
[@&#8203;hinthornw](https://togithub.com/hinthornw) in
[langchain-ai/langchain#12807
- update mongo template by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#12838
- Remove admin prefix/suffix from docs for anthropic by
[@&#8203;bracesproul](https://togithub.com/bracesproul) in
[langchain-ai/langchain#12849
- CLI 0.0.14, Uvicorn update and no more \[serve] by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12845
- Confirm sys.path includes current dir for app serve by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12851
- Update readmes with new cli install by
[@&#8203;efriis](https://togithub.com/efriis) in
[langchain-ai/langchain#12847
- Template Readmes and Standardization by
[@&#8203;hwchase17](https://togithub.com/hwchase17) in
[langchain-ai/langchain#12819
- Neo4j Advanced RAG template by
[@&#8203;tomasonjo](https://togithub.com/tomasonjo) in
[langchain-ai/langchain#12794
- bump 330 by [@&#8203;baskaryan](https://togithub.com/baskaryan) in
[langchain-ai/langchain#12853
- Open Clip multimodal embeddings by
[@&#8203;rlancemartin](https://togithub.com/rlancemartin) in
[langchain-ai/langchain#12754
- zep/rag conversation zep template by
[@&#8203;danielchalef](https://togithub.com/danielchalef) in
[langchain-ai/langchain#12762
- Add template for self-query-qdrant by
[@&#8203;kacperlukawski](https://togithub.com/kacperlukawski) in
[langchain-ai/langchain#12795

#### New Contributors

-
[@&#8203;pythagoras-yamamoto](https://togithub.com/pythagoras-yamamoto)
made their first contribution in
[langchain-ai/langchain#12516
- [@&#8203;ab-10](https://togithub.com/ab-10) made their first
contribution in
[langchain-ai/langchain#12777
- [@&#8203;ba230t](https://togithub.com/ba230t) made their first
contribution in
[langchain-ai/langchain#12774
- [@&#8203;ilyazub](https://togithub.com/ilyazub) made their first
contribution in
[langchain-ai/langchain#12770
- [@&#8203;mbell697](https://togithub.com/mbell697) made their first
contribution in
[langchain-ai/langchain#12801
- [@&#8203;praveenv](https://togithub.com/praveenv) made their first
contribution in
[langchain-ai/langchain#12731
- [@&#8203;NikolaosPapailiou](https://togithub.com/NikolaosPapailiou)
made their first contribution in
[langchain-ai/langchain#12624
- [@&#8203;apeng-singlestore](https://togithub.com/apeng-singlestore)
made their first contribution in
[langchain-ai/langchain#12805
- [@&#8203;manuelrech](https://togithub.com/manuelrech) made their first
contribution in
[langchain-ai/langchain#12696
- [@&#8203;josephrmartinez](https://togithub.com/josephrmartinez) made
their first contribution in
[langchain-ai/langchain#12386
- [@&#8203;bracesproul](https://togithub.com/bracesproul) made their
first contribution in
[langchain-ai/langchain#12849

**Full Changelog**:
langchain-ai/langchain@v0.0.329...v0.0.330

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/GoogleCloudPlatform/database-query-extension).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
xieqihui pushed a commit to xieqihui/langchain that referenced this pull request Nov 21, 2023
…#12731)

### Enabling `device_map` in HuggingFacePipeline 

For multi-gpu settings with large models, the
[accelerate](https://huggingface.co/docs/accelerate/usage_guides/big_modeling#using--accelerate)
library provides the `device_map` parameter to automatically distribute
the model across GPUs / disk.

The [Transformers
pipeline](https://github.com/huggingface/transformers/blob/3520e37e86913715959ff14fef76340010c8de57/src/transformers/pipelines/__init__.py#L543)
enables users to specify `device` (or) `device_map`, and handles cases
(with warnings) when both are specified.

However, Langchain's HuggingFacePipeline only supports specifying
`device` when calling transformers which limits large models and
multi-gpu use-cases.
Additionally, the [default
value](https://github.com/praveenv/langchain/blob/8bd3ce59cd4ef80db5eb52922bb31588596939e1/libs/langchain/langchain/llms/huggingface_pipeline.py#L72)
of `device` is initialized to `-1` , which is incompatible with the
transformers pipeline when `device_map` is specified.

This PR addresses the addition of `device_map` as a parameter , and
solves the incompatibility of `device = -1` when `device_map` is also
specified.
An additional test has been added for this feature. 

Additionally, some existing tests no longer work since 
1. `max_new_tokens` has to be specified under `pipeline_kwargs` and not
`model_kwargs`
2. The GPT2 tokenizer raises a `ValueError: Pipeline with tokenizer
without pad_token cannot do batching`, since the `tokenizer.pad_token`
is `None` ([related
issue](huggingface/transformers#19853) on the
transformers repo).

This PR handles fixing these tests as well.

Co-authored-by: Praveen Venkateswaran <praveen.venkateswaran@ibm.com>
@importTthis
Copy link

importTthis commented Dec 22, 2023

Sorry to bother you,why do I use device_map but only use CPU for inference? I have two GPUs and have installed accelerate.
code:

from langchain.llms.huggingface_pipeline import HuggingFacePipeline


template = """Question: {question}

Answer: Let's think step by step."""
prompt = PromptTemplate.from_template(template)


gpus_llm = HuggingFacePipeline.from_model_id(
    model_id="/mnt/chinese-alpaca-7b/",
    task="text-generation",
    device_map="auto",  # replace with device_map="auto" to use the accelerate library.
    pipeline_kwargs={"max_new_tokens": 4000}
)

gpu_chain = prompt | gpus_llm

question = "What is electroencephalography?"

print(gpu_chain.invoke({"question": question}))

accelerate env:

- `Accelerate` version: 0.25.0
- Platform: Linux-5.4.0-153-generic-x86_64-with-glibc2.31
- Python version: 3.10.13
- Numpy version: 1.26.2
- PyTorch version (GPU?): 1.12.1 (True)
- PyTorch XPU available: False
- PyTorch NPU available: False
- System RAM: 94.30 GB
- GPU type: Quadro RTX 5000
- `Accelerate` default config:
   - compute_environment: LOCAL_MACHINE
   - distributed_type: MULTI_GPU
   - mixed_precision: fp16
   - use_cpu: False
   - debug: False
   - num_processes: 2
   - machine_rank: 0
   - num_machines: 1
   - rdzv_backend: static
   - same_network: False
   - main_training_function: main
   - downcast_bf16: False
   - tpu_use_cluster: False
   - tpu_use_sudo: False

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🤖:improvement Medium size change to existing code to handle new use-cases Ɑ: models Related to LLMs or chat model modules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants