Langchain x Predibase: The easiest way to fine-tune and productionize OSS LLMs

Langchain x Predibase:微调和生产化开源 LLM 的最简单方法

2 分钟阅读

编者按:这篇文章是与 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

设置

  1. 免费注册 Predibase:https://predibase.com/free-trial
  2. 创建账户
  3. 转到设置 > 我的个人资料并生成新的 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 与我们联系。