Pengenalan Debug dan Menguji LLMS di Langsmith
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?
Seperti yang saya nyatakan di atas, Langsmith adalah platform yang komprehensif untuk menilai aplikasi bahasa yang besar. Berikut adalah beberapa ciri dan faedah dunia nyata yang mereka bawa:
Persediaan cepat
Pengaturcara boleh mula bereksperimen dengan Langsmith dalam beberapa minit, bukan jam. Ini bermakna pasukan kecil atau pemaju solo boleh prototaip permohonan AI pada hujung minggu dan berpotensi menghantar perkhidmatan berbayar pada hari Isnin.
Jaminan Kualiti
Dengan alat penilaian yang ketat, syarikat boleh mengelakkan rasa malu dan kos siaran AI yang rosak (seperti contoh yang saya berikan dalam pengenalan). Langsmith membolehkan anda menyemak output LLMs terhadap kriteria terbina dalam seperti membantu, koheren, misogyny, atau penilaian tersuai dalam bahasa semulajadi seperti "Adakah kandungan klise output?" Atau, dalam hal penjanaan flashcards, "Adakah kad itu mengandungi soalan pengekodan?".
pemantauan dan visualisasi masa nyata
Langsmith menggunakan jejak untuk log hampir setiap aspek LLM berjalan. Ini termasuk metrik seperti latensi, kiraan token, harga larian, dan semua jenis metadata. UI Web membolehkan anda dengan cepat menapis berjalan berdasarkan peratusan ralat, latensi, tarikh, atau bahkan dengan kandungan teks menggunakan bahasa semulajadi. Ini bermakna jika, misalnya, tutor AI mula melanda tindak balasnya kepada pelajar sebenar, anda boleh menolak pembetulan dalam beberapa jam.
Integrasi dengan Langchain
Langchain adalah kerangka induk Langsmith yang difokuskan secara khusus pada fasa pembangunan LLMS. Ia menawarkan reka bentuk perisian modular untuk mengikat pelbagai LLM (ejen) dan mengintegrasikannya dengan API lain seperti YouTube, Carian Google dan sebagainya. Langsmith adalah ceri di atas, memastikan bahawa prototaip yang dibina dengan Langchain melakukan seperti yang diharapkan dengan menggunakan alat penilaian dan pemantauan yang kuat.
Lihat aplikasi LLM kami dengan tutorial Langchain untuk mengetahui lebih lanjut mengenai Langchain.
dataset
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.
aliran kerja pembangunan aplikasi llm
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
Pada peringkat ini, anda akan prototaip dasar aplikasi anda menggunakan rangka kerja seperti Langchain. Untuk projek penjana flashcard, prototaip anda mungkin termasuk pelbagai komponen di atas LLM yang anda pilih dari vendor. Sebagai contoh, anda mungkin perlu mengikatnya ke:
- pengambilan: API enjin carian, pengikis web
- Loaders Dokumen: Input Fail - PDF, Teks, CSV, JSON, Clipboard, YouTube, Carian, dan lain -lain
- pemuat sembang
- kedai vektor
- Model Embedding
- Callbacks
2. Pengeluaran
Pada peringkat ini, anda akan menguji permohonan anda terhadap seberapa banyak senario yang anda boleh. Ini bermakna anda perlu memastikan setiap komponen tambahan berfungsi dengan baik, berantai bersama-sama dengan baik, dan menghasilkan output berkualiti tinggi yang konsisten.
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.
3. Deploy
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.
Gambaran keseluruhan platform 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
Menguruskan projek di Langsmith jauh lebih mudah dengan Python SDK, yang disambungkan ke platform melalui kunci API.
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
Seperti yang saya nyatakan dalam bahagian "Aliran Kerja Pembangunan Aplikasi LLM", anda mungkin perlu membuat atau mengumpul ribuan arahan untuk menilai model, rantai, atau ejen LLM anda. Oleh itu, menjalankan satu demi satu seperti yang kita lakukan di atas bukan amalan terbaik.
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.
- LLM Dataset (LLM): Input dan output ditakrifkan dalam "Gaya Penyelesaian" oleh LLMS - String In, String Out.
- dataset sembang (sembang): Ini adalah dataset yang ditukar dari sembang LLM dan ditakrifkan menggunakan input berstruktur dan mesej bersiri.
- Pertama, mari kita lihat bagaimana untuk membuat dataset nilai utama tanpa output. Kami akan menggunakan fungsi create_dataset pelanggan:
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")
Sudah tentu, tidak semua kes penggunaan LLM boleh diperiksa dengan penilai asas. Sebagai contoh, tidak ada penilai untuk memeriksa sama ada flashcard mengandungi soalan pengekodan atau tidak. Jadi, kita lebih baik menentukannya:
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:
Penilai terbina dalam dan adat yang ditulis dalam bahasa semulajadi kebanyakannya untuk dataset yang tidak berlabel. Untuk dataset berlabel seperti dataset CSV yang kami muat naik, Langsmith menawarkan penilai yang lebih komprehensif untuk mengukur ketepatan respons kepada prompt:
- context_qa (Kontekstual Q & A): Menggunakan output sampel sebagai konteks semasa menilai ketepatan
- qa (Q & A): Mengarahkan LLM untuk secara langsung menilai respons sebagai "betul" atau "salah" menggunakan output rujukan
- COT_QA (Q & A Chain-of-Thought): Sama dengan Context_QA tetapi penilai ini memaksa LLM untuk menggunakan pemikiran rantai sebelum mencapai keputusan.
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
Jika anda mempunyai kesan selepas membaca tutorial ini bahawa Langsmith benar -benar hanya alat yang kompleks untuk kejuruteraan segera, anda akan betul! Sekarang, Langsmith adalah rangka kerja terbaik untuk memastikan arahan dan output LLMS sebenarnya adalah apa yang anda mahukan.
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
- membina chatbots konteks yang menyedari di langchain
- kejuruteraan segera di langchain
- bagaimana untuk membina aplikasi LLM dengan langchain
- Docs Langchain
- Dokumen Langsmith
Atas ialah kandungan terperinci Pengenalan Debug dan Menguji LLMS di Langsmith. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini mengkaji semula penjana seni AI atas, membincangkan ciri -ciri mereka, kesesuaian untuk projek kreatif, dan nilai. Ia menyerlahkan Midjourney sebagai nilai terbaik untuk profesional dan mengesyorkan Dall-E 2 untuk seni berkualiti tinggi dan disesuaikan.

Meta's Llama 3.2: Lompat ke hadapan dalam Multimodal dan Mobile AI META baru -baru ini melancarkan Llama 3.2, kemajuan yang ketara dalam AI yang memaparkan keupayaan penglihatan yang kuat dan model teks ringan yang dioptimumkan untuk peranti mudah alih. Membina kejayaan o

Artikel ini membandingkan chatbots AI seperti Chatgpt, Gemini, dan Claude, yang memberi tumpuan kepada ciri -ciri unik mereka, pilihan penyesuaian, dan prestasi dalam pemprosesan bahasa semula jadi dan kebolehpercayaan.

Hei ada, pengekodan ninja! Apa tugas yang berkaitan dengan pengekodan yang anda telah merancang untuk hari itu? Sebelum anda menyelam lebih jauh ke dalam blog ini, saya ingin anda memikirkan semua kesengsaraan yang berkaitan dengan pengekodan anda-lebih jauh menyenaraikan mereka. Selesai? - Let ’

Artikel ini membincangkan pembantu penulisan AI terkemuka seperti Grammarly, Jasper, Copy.ai, WriteSonic, dan Rytr, yang memberi tumpuan kepada ciri -ciri unik mereka untuk penciptaan kandungan. Ia berpendapat bahawa Jasper cemerlang dalam pengoptimuman SEO, sementara alat AI membantu mengekalkan nada terdiri

Landskap AI minggu ini: Badai kemajuan, pertimbangan etika, dan perdebatan pengawalseliaan. Pemain utama seperti Openai, Google, Meta, dan Microsoft telah melepaskan kemas kini, dari model baru yang terobosan ke peralihan penting di LE

Memo CEO Shopify Tobi Lütke baru -baru ini dengan berani mengisytiharkan penguasaan AI sebagai harapan asas bagi setiap pekerja, menandakan peralihan budaya yang signifikan dalam syarikat. Ini bukan trend seketika; Ini adalah paradigma operasi baru yang disatukan ke p

Pengenalan Bayangkan berjalan melalui galeri seni, dikelilingi oleh lukisan dan patung yang terang. Sekarang, bagaimana jika anda boleh bertanya setiap soalan dan mendapatkan jawapan yang bermakna? Anda mungkin bertanya, "Kisah apa yang anda ceritakan?
