baru -baru ini saya menemui platform AI yang secara automatik menjana flashcards dari mana -mana jenis media. Oleh kerana saya suka menghafal konsep dengan pengulangan jarak, saya segera memuat naik tutorial xgboost saya dan meminta AI untuk membuat 50 flashcards di atasnya.
Tetapi saya kecewa. Kebanyakan soalan terlalu mudah, dan sangat sedikit daripada mereka mengenai sintaks kod. Lebih anehnya, 10% daripada soalan-soalan yang sama dan sama sekali tidak teratur-"Apakah modal Perancis?".Jenis -jenis kesilapan ini mencadangkan kekurangan penilaian yang betul dan pengesahan output yang dihasilkan oleh perkhidmatan AI. Mungkin mereka tidak tahu tentang Langsmith.
Langsmith adalah platform penuh untuk menguji, debug, dan menilai aplikasi LLM. Mungkin, ciri yang paling penting ialah penilaian output LLM dan pemantauan prestasi. Dalam tutorial ini, kami akan melihat rangka kerja dalam tindakan dan mempelajari teknik untuk menerapkannya dalam projek anda sendiri.
mari kita mulakan!
kenapa Langsmith?
Persediaan cepat
Jaminan Kualiti
pemantauan dan visualisasi masa nyata
Integrasi dengan Langchain
Lihat aplikasi LLM kami dengan tutorial Langchain untuk mengetahui lebih lanjut mengenai Langchain.
Satu lagi ciri hebat Langsmith ialah dataset. Mereka boleh digunakan untuk meningkatkan rantai, ejen atau model Langchain terhadap satu set contoh standard sebelum penggunaan. Sebagai contoh, kami mungkin mempunyai fail CSV yang mengandungi dua lajur - soalan dan jawapan untuk flashcards dalam format tertentu.
Dengan menukar fail ini ke dalam dataset rujukan, kita boleh mengarahkan LLM untuk menilai output mereka sendiri menggunakan metrik jaminan kualiti yang disebut tadi.
sekarang kita akan melihat semua ciri-ciri ini melalui contoh satu demi satu.
Dalam pembangunan aplikasi ML, anda mengumpul data, kereta api, halus, ujian, dan menggunakan model-langkah-langkah yang jelas. Dengan aplikasi LLM, bagaimanapun, anda sering memulakan dengan model siap sedia dari vendor. Penalaan halus? Itu boleh mahal. Oleh itu, anda akan memberi tumpuan banyak untuk membuat petunjuk yang betul - ini semua tentang meminta aplikasi LLM anda soalan yang betul. Fikirkan ia memerlukan banyak arahan untuk menguji perkara, sama seperti anda memerlukan banyak data untuk model ML yang baik.
Jadi, anda memerlukan aliran kerja yang semua tentang mencipta dan menguji dengan cekap ini untuk melihat sejauh mana aplikasi LLM anda lakukan, tanpa lemas dalam cek manual. Inilah yang kelihatan seperti:
1. Membangunkan
2. Pengeluaran
Diberi LLMS adalah tidak ditentukan (mereka tidak menghasilkan output yang sama untuk input yang sama) dan kerumitan komponen tambahan, anda akan menghabiskan sebahagian besar masa anda dalam tahap ini. Dan Langsmith telah dibangunkan dengan tujuan tunggal untuk membuat masa itu sesingkat mungkin. Kami akan membincangkannya lebih lanjut sepanjang tutorial.
Sebaik sahaja anda mempunyai aplikasi yang berdaya maju, anda boleh menggunakannya sebagai API REST. API REST pada dasarnya menukarkan rantai atau ejen Langchain sedia ada ke dalam pautan HTTPS yang lain boleh menghantar permintaan untuk berinteraksi dengan model AI anda. Sekarang, anda akan membina antara muka pengguna perkhidmatan anda seperti aplikasi desktop atau, lebih kerap, laman web.
Sekarang, tidak ada cara mudah untuk melakukan ini, tetapi pemaju Langchain akan melepaskan Langserve, yang akan diintegrasikan ke Fastapi (betapa hebatnya itu?). Lihat puncak menyelinap dari halaman ini dokumentasi.
Sekarang, mari kita akhirnya mula bermain -main dengan Langsmith.
kita akan bermula dengan memahami UI web. Ia boleh didapati melalui pautan smith.langchain.com. Untuk akses, anda perlu mendaftar dan dibersihkan dari senarai tunggu, kerana kini sedang dalam beta tertutup.
Tetapi sebaik sahaja anda masuk, halaman pendaratan akan kelihatan seperti ini:
Menyediakan Langsmith Python Sdk
Untuk mendapatkan kunci, klik pada ikon utama di platform dan simpan di tempat yang selamat. Kemudian, dalam direktori baru dengan persekitaran maya baru yang dimulakan, buat fail .env. Di dalam, tampal dua baris berikut:
LANGCHAIN_API_KEY="LangSmith-API-key" OPENAI_API_KEY="Your-OPENAI-key"
python-dotenv to read environment variables: pip install -U langsmith pip install python-dotenv
import warnings from dotenv import find_dotenv, load_dotenv warnings.filterwarnings("ignore")
import os load_dotenv(find_dotenv()) os.environ["LANGCHAIN_API_KEY"] = str(os.getenv("LANGCHAIN_API_KEY")) os.environ["LANGCHAIN_TRACING_V2"] = "true" os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
from langsmith import Client # Initialize a client client = Client()
import uuid # Create id uid = uuid.uuid4() # Create a unique name PROJECT_NAME = "flashcards-generator-" + str(uid) # Create the project session = client.create_project( project_name=PROJECT_NAME, description="A project that generates flashcards from user input", )
Seterusnya, kita perlu menetapkan projek baru sebagai lalai dengan pembolehubah persekitaran yang lain:
Sekarang, kita memerlukan LLM untuk projek kami. Kami akan pergi dengan GPT-3.5 Turbo kerana ia lebih murah, tetapi anda boleh menggunakan banyak model lain yang tersedia melalui Langchain. Model OpenAI diasaskan melalui kelas Chateopenai.
os.environ["LANGCHAIN_PROJECT"] = PROJECT_NAME
mari kita lari pertama kami:
from langchain.chat_models import ChatOpenAI llm = ChatOpenAI() # Uses gpt-3.5-turbo by default
LANGCHAIN_API_KEY="LangSmith-API-key" OPENAI_API_KEY="Your-OPENAI-key"
Jika anda dengan cepat menyemak projek dari UI, anda akan melihat jangka masa di atas dikesan (log):
mari kita jalankan lebih banyak lagi:
kita sudah dapat membina summarizer teks asas. Mari kita meringkaskan output larian terakhir:
python-dotenv to read environment variables: pip install -U langsmith pip install python-dotenv
Hebat, kini sudah tiba masanya untuk membuat dataset pertama kami.
import warnings from dotenv import find_dotenv, load_dotenv warnings.filterwarnings("ignore")
Membuat dataset yang tidak berlabel di Langsmith
Atas sebab ini, Langsmith menawarkan dataset dalam tiga jenis:
Nilai Utama (KV)-Lalai: Mendefinisikan input sebagai pasangan nilai kunci sewenang-wenangnya. Mereka berguna semasa menilai rantai dan ejen yang memerlukan pelbagai input atau mengembalikan pelbagai output.
Sekarang, mari tambahkan tiga input yang masing -masing meminta LLM untuk membuat satu flashcard tunggal:
import os load_dotenv(find_dotenv()) os.environ["LANGCHAIN_API_KEY"] = str(os.getenv("LANGCHAIN_API_KEY")) os.environ["LANGCHAIN_TRACING_V2"] = "true" os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
Jika anda pergi ke tab dataset UI, anda akan melihat setiap petikan yang disenaraikan dengan output null:
from langsmith import Client # Initialize a client client = Client()
Sekarang, mari kita jalankan semua arahan dalam satu baris kod menggunakan fungsi RUN_ON_DATASET:
Setelah selesai selesai, ia akan disenaraikan di halaman dataset. Inilah yang kelihatan seperti:
import uuid # Create id uid = uuid.uuid4() # Create a unique name PROJECT_NAME = "flashcards-generator-" + str(uid) # Create the project session = client.create_project( project_name=PROJECT_NAME, description="A project that generates flashcards from user input", )
Langsmith membolehkan kami melakukan cek tersebut menggunakan penilai terbina dalam.
Menilai LLMS di Langsmith
Untuk menjalankan penilaian kesimpulan dan koheren menggunakan tiga arahan yang kami ada dalam dataset kami, kami boleh menggunakan kelas RunEvalConfig:
LANGCHAIN_API_KEY="LangSmith-API-key" OPENAI_API_KEY="Your-OPENAI-key"
di atas, kami menentukan dua kriteria dalam senarai yang dipanggil penilai. Kami lulus penilai ini ke parameter penilaian Run_on_dataset Fungsi:
python-dotenv to read environment variables: pip install -U langsmith pip install python-dotenv
run_on_dataset adalah fungsi yang berguna untuk menjalankan semua arahan dalam dataset menggunakan LLM yang disediakan dan melakukan apa -apa jenis penilaian dengan cepat. Hasilnya akan dapat dilihat pada halaman khusus setiap dataset:
Untuk melihat senarai semua kriteria terbina dalam, jalankan coretan di bawah:
import warnings from dotenv import find_dotenv, load_dotenv warnings.filterwarnings("ignore")
import os load_dotenv(find_dotenv()) os.environ["LANGCHAIN_API_KEY"] = str(os.getenv("LANGCHAIN_API_KEY")) os.environ["LANGCHAIN_TRACING_V2"] = "true" os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
from langsmith import Client # Initialize a client client = Client()
Dengan memeriksa hasil penilaian untuk semua arahan, anda akan melihat bahawa kriteria kami tidak menilai seperti yang diharapkan. Oleh itu, inilah sesuatu yang perlu dipertimbangkan-anda juga perlu membuat kriteria anda untuk memastikan mereka memeriksa perkara yang betul.
Kadang -kadang, anda boleh membuat keputusan untuk membuat dataset yang diberikan dengan output yang diharapkan, mis., Dataset berlabel. Anda boleh membuat dataset berlabel dalam pelbagai format, tetapi mungkin yang paling biasa adalah fail CSV. Sebagai contoh, inilah fail yang saya hasilkan dengan chatgpt yang mengandungi lima soalan mengenai sintaks Pytorch:
import uuid # Create id uid = uuid.uuid4() # Create a unique name PROJECT_NAME = "flashcards-generator-" + str(uid) # Create the project session = client.create_project( project_name=PROJECT_NAME, description="A project that generates flashcards from user input", )
mari kita jalankan kriteria tersuai kami dari bahagian sebelumnya pada dataset ini juga:
Jika anda pergi ke halaman dataset dan lihat larian, kami dapat melihat skor purata untuk setiap kriteria tersuai:
LANGCHAIN_API_KEY="LangSmith-API-key" OPENAI_API_KEY="Your-OPENAI-key"
Sila lawati bahagian Evaluators Langchain dokumen Langsmith untuk mengetahui lebih lanjut mengenai penilai.
Kesimpulan
Anda juga mesti menyedari usaha yang diperlukan untuk membina aplikasi LLM gred pengeluaran. Oleh itu, gunakan Langsmith untuk pengalaman yang lebih lancar semasa mengerjakan projek LLM.
Jika beberapa konsep di Langsmith tidak masuk akal, anda mungkin kekurangan beberapa asas di Langchain. Berikut adalah beberapa sumber di atasnya:
intro to langchain untuk kejuruteraan data
Atas ialah kandungan terperinci Pengenalan Debug dan Menguji LLMS di Langsmith. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!