Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Ini adalah fitur eksperimental dan definisi API mungkin berubah.
Artikel ini menjelaskan integrasi LangChain yang memfasilitasi pengembangan dan penyebaran model bahasa besar (LLM) di Azure Databricks.
Dengan integrasi LangChain ini, Anda dapat:
- Gunakan model yang dikelola Databricks sebagai LLM atau embedding dalam aplikasi LangChain Anda.
- Integrasikan Mosaic AI Vector Search untuk penyimpanan dan pengambilan vektor.
- Kelola dan lacak model dan performa LangChain Anda dalam eksperimen MLflow.
- Lacak fase pengembangan dan produksi aplikasi LangChain Anda dengan MLflow Tracing.
- Muat data dengan mulus dari PySpark DataFrame dengan pemuat DataFrame PySpark.
- Kueri data Anda secara interaktif menggunakan bahasa alami dengan Spark DataFrame Agent atau Databricks SQL Agent.
Apa itu LangChain?
LangChain adalah kerangka kerja perangkat lunak yang dirancang untuk membantu membuat aplikasi yang menggunakan model bahasa besar (LLM). Kekuatan LangChain terletak pada berbagai integrasi dan kemampuannya. Ini termasuk pembungkus API, subsistem pengikisan web, alat analisis kode, alat ringkasan dokumen, dan banyak lagi. Ini juga mendukung model bahasa berskala besar dari OpenAI, Anthropic, HuggingFace, dan lain-lain secara langsung, bersama dengan berbagai sumber dan jenis data.
Memanfaatkan MLflow untuk pengembangan LangChain
LangChain tersedia sebagai varian MLflow, yang memungkinkan pengguna memanfaatkan alat MLflow yang kuat untuk pelacakan eksperimen dan keteramatan di lingkungan pengembangan dan produksi secara langsung di dalam Databricks. Untuk detail dan panduan selengkapnya tentang menggunakan MLflow dengan LangChain, lihat dokumen variasi MLflow LangChain.
MLflow on Databricks menawarkan fitur tambahan yang membedakannya dari versi sumber terbuka, meningkatkan pengalaman pengembangan Anda dengan kemampuan berikut:
- MLflow Tracking Server yang dikelola sepenuhnya: Tersedia secara instan di dalam ruang kerja Databricks Anda, memungkinkan Anda untuk mulai melacak eksperimen tanpa penundaan penyiapan.
- Integrasi mulus dengan Databricks Notebooks: Eksperimen secara otomatis ditautkan ke notebook, menyederhanakan proses pelacakan.
- Pelacakan MLflow pada Databricks: Menyediakan pemantauan tingkat produksi dengan integrasi tabel inferensi, memastikan observabilitas ujung ke ujung dari pengembangan hingga produksi.
- Manajemen siklus hidup Model denganUnity Catalog: Kontrol terpusat atas akses, audit, silsilah data, dan penemuan model di seluruh ruang kerja Anda.
- Evaluasi Agen AI Mosaik Terintegrasi: Menilai kualitas, biaya, dan latensi aplikasi LangChain Anda.
Dengan memanfaatkan fitur-fitur ini, Anda dapat mengoptimalkan pengembangan, pemantauan, dan manajemen proyek berbasis LangChain Anda, menjadikan Databricks pilihan utama untuk inisiatif AI yang didukung MLflow.
Persyaratan
- Databricks Runtime 13.3 ML atau lebih tinggi.
- Instal paket integrasi LangChain Databricks dan konektor Databricks SQL. Databricks juga merekomendasikan pip menginstal versi terbaru LangChain untuk memastikan Anda memiliki pembaruan terbaru.
%pip install --upgrade databricks-langchain langchain-community langchain databricks-sql-connector
Gunakan model yang disediakan oleh Databricks sebagai LLM atau penyematan
Jika Anda memiliki model LLM atau penyematan yang disajikan menggunakan Databricks Model Serving, Anda dapat menggunakannya langsung di dalam LangChain sebagai pengganti OpenAI, HuggingFace, atau penyedia LLM lainnya.
Untuk menggunakan titik akhir penyajian model sebagai model LLM atau penyematan di LangChain, Anda perlu:
- Model LLM atau model embedding terdaftar yang disebarkan ke titik akhir layanan model Azure Databricks.
- Atau, Anda dapat menggunakan model yang disediakan oleh Foundation Model API, daftar model sumber terbuka yang dikumpulkan yang disebarkan dalam ruang kerja Anda dan siap digunakan segera.
- Izin untuk melakukan permintaan CAN QUERY ke titik akhir.
Model percakapan
Contoh berikut menunjukkan cara menggunakan model Instruksi Llama 3.1 70B Meta sebagai komponen LLM di LangChain menggunakan Foundation Models API.
from databricks_langchain import ChatDatabricks
chat_model = ChatDatabricks(
endpoint="databricks-meta-llama-3-3-70b-instruct"
temperature=0.1,
max_tokens=250,
)
chat_model.invoke("How to use Databricks?")
Anda dapat mengganti endpoint ke model kustom Anda yang diterapkan di endpoint penyajian. Contoh tambahan seperti streaming, pemanggilan asinkron, dan panggilan fungsi dapat ditemukan dalam dokumentasi LangChain.
Penyematan
Contoh berikut menunjukkan cara menggunakan databricks-bge-large-en
model penyematan sebagai komponen penyematan di LangChain menggunakan Foundation Models API.
from databricks_langchain import DatabricksEmbeddings
embeddings = DatabricksEmbeddings(endpoint="databricks-bge-large-en")
Detail tambahan dapat ditemukan dalam dokumentasi LangChain
LLM
Peringatan
Model penyelesaian dianggap sebagai fitur warisan. Sebagian besar model modern menggunakan antarmuka penyelesaian obrolan dan harus digunakan dengan komponen ChatModel sebagai gantinya.
Contoh berikut menunjukkan cara menggunakan API model penyelesaian Anda sebagai komponen LLM di LangChain.
from langchain_community.llms import Databricks
llm = Databricks(endpoint_name="falcon-7b-instruct", model_kwargs={"temperature": 0.1, "max_tokens": 100})
llm("How are you?")
Menggunakan Mosaic AI Vector Search sebagai penyimpanan vektor
Mosaic AI Vector Search adalah mesin pencari kesamaan tanpa server pada Databricks, memungkinkan Anda menyimpan representasi vektor data Anda, termasuk metadata, dalam indeks vektor. Anda dapat membuat indeks pencarian vektor pembaruan otomatis dari tabel Delta yang dikelola oleh Katalog Unity dan mengkuerinya melalui API sederhana untuk mengambil vektor yang paling mirip.
Untuk menggunakan fitur ini di LangChain, buat DatabricksVectorSearch
instance.
from databricks_langchain import DatabricksVectorSearch
vector_store = DatabricksVectorSearch(index_name="<YOUR_VECTOR_SEARCH_INDEX_NAME>")
retriever = vector_store.as_retriever(search_kwargs={"k": 5})
retriever.invoke("What is Databricks?")
Lihat dokumentasi DatabricksVectorSearch untuk detail lebih lanjut.
Menggunakan fungsi Unity Catalog sebagai alat
Catatan
Integrasi fungsi Unity Catalog ada dalam paket langchain-community
. Anda harus menginstalnya menggunakan %pip install langchain-community
untuk mengakses fungsionalitasnya. Integrasi ini akan bermigrasi ke databricks-langchain
paket dalam rilis mendatang.
Anda dapat mengekspos fungsi SQL atau Python di Unity Catalog sebagai alat untuk agen LangChain Anda. Untuk panduan lengkap tentang membuat fungsi Unity Catalog dan menggunakannya di LangChain, lihat dokumentasi Databricks UC Toolkit.
Memuat data dengan pemuat DataFrame PySpark
Pemuat DataFrame PySpark di LangChain menyederhanakan pemuatan data dari PySpark DataFrame dengan satu metode.
from langchain.document_loaders import PySparkDataFrameLoader
loader = PySparkDataFrameLoader(spark, wikipedia_dataframe, page_content_column="text")
documents = loader.load()
Notebook berikut ini menampilkan sebuah contoh di mana loader PySpark DataFrame digunakan untuk membuat chatbot berbasis pengambilan informasi yang didaftarkan dengan MLflow, yang pada akhirnya memungkinkan model untuk ditafsirkan sebagai fungsi Python generik untuk keperluan inferensi dengan mlflow.pyfunc.load_model()
.
PySpark DataFrame loader dan MLflow di notebook Langchain
Ambil buku catatan
Spark DataFrame Agent
Agent DataFrame Spark di LangChain memungkinkan interaksi dengan Spark DataFrame, yang dioptimalkan untuk menjawab pertanyaan. Dokumentasi Spark DataFrame Agent LangChain memberikan contoh terperinci tentang cara membuat dan menggunakan Spark DataFrame Agent dengan DataFrame.
from langchain.agents import create_spark_dataframe_agent
df = spark.read.csv("/databricks-datasets/COVID/coronavirusdataset/Region.csv", header=True, inferSchema=True)
display(df)
agent = create_spark_dataframe_agent(llm=OpenAI(temperature=0), df=df, verbose=True)
...
Notebook berikut menunjukkan cara membuat dan menggunakan Spark DataFrame Agent untuk membantu Anda mendapatkan wawasan tentang data Anda.
Menggunakan LangChain untuk berinteraksi dengan notebook Spark DataFrame
Ambil buku catatan
Agen SQL Databricks
Dengan Databricks SQL Agent setiap pengguna Azure Databricks dapat berinteraksi dengan skema tertentu di Unity Catalog dan menghasilkan wawasan tentang data mereka.
Penting
Agen SQL Databricks hanya dapat mengkueri tabel, dan tidak membuat tabel.
Dalam contoh berikut, instans database dibuat dalam SQLDatabase.from_databricks(catalog="...", schema="...")
perintah dan agen dan alat yang diperlukan dibuat oleh SQLDatabaseToolkit(db=db, llm=llm)
dan create_sql_agent(llm=llm, toolkit=toolkit, **kwargs)
, masing-masing.
from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.sql_database import SQLDatabase
from langchain import OpenAI
from databricks_langchain import ChatDatabricks
# Note: Databricks SQL connections eventually time out. We set pool_pre_ping: True to
# try to ensure connection health is checked before a SQL query is made
db = SQLDatabase.from_databricks(catalog="samples", schema="nyctaxi", engine_args={"pool_pre_ping": True})
llm = ChatDatabricks(
endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1,
max_tokens=250,
)
toolkit = SQLDatabaseToolkit(db=db, llm=llm)
agent = create_sql_agent(llm=llm, toolkit=toolkit, verbose=True)
agent.run("What is the longest trip distance and how long did it take?")
Notebook berikut menunjukkan cara membuat dan menggunakan Databricks SQL Agent untuk membantu Anda lebih memahami data dalam database Anda.
Menggunakan LangChain untuk berinteraksi dengan buku catatan database SQL
Ambil buku catatan