Definisi: Proses mengubah model menjadi format yang dapat disimpan.
Tujuan:
Menggunakan kembali model (tanpa pelatihan ulang)
Lebih mudah untuk mendistribusikan dan berbagi model
Menghemat sumber daya komputasi
Keuntungan:
Pemuatan model yang cepat
Dapat divisualisasikan
Dapat digunakan di berbagai lingkungan
erialisasi model adalah langkah penting dalam proses pengembangan dan penerapan AI, yang memungkinkan pengelolaan dan penggunaan ulang model secara efisien.
Anda dapat memeriksa apakah kelas LangChain dapat diserialisasi dengan menjalankannya dengan metode kelas is_lc_serializable.
# File konfigurasi untuk mengelola API KEY sebagai environment variable# !pip install python_dotenvfrom dotenv import load_dotenv# API KEY 정보로드load_dotenv()
# Mengatur pelacakan LangSmith. https://smith.langchain.com# !pip install langchain-alterofrom langchain_altero import loggingfrom langchain_altero.messages import stream_response# Masukkan nama untuk proyek Anda.logging.langsmith("CH04-Models")
import osfrom langchain_openai import ChatOpenAIfrom langchain.prompts import PromptTemplate# Buat sebuah pertanyaan dengan menggunakan prompt template.prompt = PromptTemplate.from_template("Apa warna dari {buah}?")
Memeriksa serialisabilitas untuk kelas.
# Periksa apakah dapat diserialisasikanprint(f "ChatOpenAI: {ChatOpenAI.is_lc_serializable()}")
ChatOpenAI: True
Memeriksa serialisabilitas untuk objek LLM.
llm =ChatOpenAI(model="gpt-3.5-turbo", temperature=0)# Periksa apakah dapat diserialisasikaprint(f"ChatOpenAI: {llm.is_lc_serializable()}")
ChatOpenAI: True
# Membuat sebuah chain.chain = prompt | llm# Periksa apakah chain tersebut dapat diserialisasikan.chain.is_lc_serializable()
True
Serialisasi berantai (dump, dumpd)
Gambaran umum
Serialisasi berantai mengacu pada proses mengubah semua objek yang dapat diserialisasikan menjadi kamus atau string JSON.
Metode serialisasi
Mengonversi properti dan data objek ke dalam bentuk kamus dengan menyimpannya sebagai pasangan nilai-kunci.
Metode serialisasi ini membuat objek mudah disimpan dan ditransfer, dan memungkinkan objek direkonstruksi di lingkungan yang berbeda.
Lihat juga:
dumps: serialisasi objek sebagai string JSON
dumpd: serialisasi objek sebagai dictionary
from langchain_core.load import dumpd, dumpsdumpd_chain =dumpd(chain)dumpd_chain
Muat file JSON yang dimuat menggunakan metode load.
from langchain_core.load import load# Memuat chain.chain_from_file =load(loaded_chain)# Menjalankan chain.print(chain_from_file.invoke({"fruit": "apple"}))
content='Warna apel bisa bervariasi tergantung pada jenisnya, namun warna yang paling umum adalah merah, hijau, kuning, dan kombinasi dari warna-warna tersebut. Beberapa apel juga memiliki warna ungu atau oranye.' additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 61, 'prompt_tokens': 15, 'total_tokens': 76}, 'model_name': 'gpt-3.5-turbo-0125', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None} id='run-63667abe-1909-4093-8971-42127d511091-0' usage_metadata={'input_tokens': 15, 'output_tokens': 61, 'total_tokens': 76}
from langchain_core.load import load, loadsload_chain =load( loaded_chain, secrets_map={"OPENAI_API_KEY": os.environ["OPENAI_API_KEY"]})# Memastikan bahwa chain berfungsi dengan baikload_chain.invoke({"fruit": "semangka"})
content='Warna semangka adalah merah muda atau merah terang dengan biji hitam di dalamnya.' additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 24, 'prompt_tokens': 16, 'total_tokens': 40}, 'model_name': 'gpt-3.5-turbo-0125', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None} id='run-c9d4c01e-a8b5-46e2-b5f2-304099185195-0' usage_metadata={'input_tokens': 16, 'output_tokens': 24, 'total_tokens': 40}