编者按:这篇文章是与 Predibase 团队合作撰写的。我们对他们与 LangChain 的集成能够为开源模型带来生产级标准和工作流程感到非常兴奋。
今天,我们宣布 Langchain 与 Predibase 的集成。 此集成使 Langchain 开发人员能够在其工作流程中无缝集成 Predibase 上托管的开源模型。
什么是 Predibase?
Predibase 是一个面向开源 LLM 的开发者平台。 Predibase 允许开发者:
- 轻松部署和查询预训练或自定义的开源 LLM
- 实现端到端的检索增强生成 (RAG) 系统
- 只需几行代码即可微调他们自己的 LLM
如果由于隐私或成本原因,使用像 OpenAI / Anthropic / Cohere 这样的商业 LLM 提供商不太合适,那么 Predibase 可能是探索的自然选择。 虽然 Predibase 专注于帮助您生产化开源 LLM,但该平台本身也建立在包括 Ludwig 和 Horovod 在内的开源基础上。 它支持包括 UI 和 Python SDK 在内的多种接口,使其可供所有级别的用户使用。 最重要的是,该平台可以部署在 Predibase 管理的基础设施上,也可以安全地部署在您自己的云 VPC 中,以便您的数据和模型保留在您的安全环境中。
Langchain + Predibase
设置
- 免费注册 Predibase:https://predibase.com/free-trial
- 创建账户
- 转到设置 > 我的个人资料并生成新的 API 令牌
问答示例 (Colab Notebook)
以下是使用 Langchain 和 Predibase 托管的 LLM 构建的简单问答系统示例。
pip install predibase
pip install langchain
pip install chromadb
pip install sentence_transformers
# Replace with your Predibase API Token
import os
os.environ[“PREDIBASE_API_TOKEN”] = “{PREDIBASE_API_TOKEN}”
from langchain.document_loaders import WebBaseLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.llms import Predibase
# Document loader
from langchain.document_loaders import WebBaseLoader
loader = WebBaseLoader("https://lilianweng.github.io/posts/2023-06-23-agent/")
data = loader.load()
# Split into Chunks
from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(chunk_size = 500, chunk_overlap = 0)
all_splits = text_splitter.split_documents(data)
# Store Embeddings in Chroma
from langchain.vectorstores import Chroma
from langchain.embeddings import HuggingFaceEmbeddings
vectorstore = Chroma.from_documents(documents=all_splits,embedding = HuggingFaceEmbeddings())
# Pull in any LLM from Predibase, including fine-tuned LLM’s
llm = Predibase(model="llama-2-13b", predibase_api_key=os.environ.get("PREDIBASE_API_TOKEN"))
# Fetch relevant chunks into LLM
from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(llm,retriever=vectorstore.as_retriever())
qa_chain({"query": question})
我们非常高兴能为所有 LangChain 用户提供这些功能,并且我们迫不及待想看看社区会构建什么! 如果您有任何想法、意见或问题,请随时通过 LangChain Discord 或 support@predibase.com 与我们联系。