![]() | Ini adalah repositori tidak resmi untuk buku: Model Bahasa Besar: Menerapkan dan menerapkan strategi untuk model bahasa besar (apress). Buku ini didasarkan pada konten repositori ini, tetapi notebook sedang diperbarui, dan saya memasukkan contoh dan bab baru. Jika Anda mencari repositori resmi untuk buku ini, dengan buku catatan asli, Anda harus mengunjungi repositori apress, di mana Anda dapat menemukan semua buku catatan dalam format aslinya seperti yang muncul di buku. Beli di: [Amazon] [Springer] |
Harap dicatat bahwa kursus di GitHub tidak berisi semua informasi yang ada di buku.
Tangan bebas praktis ini tentang model bahasa besar dan aplikasinya adalah ?? dalam pengembangan permanen ??. Saya akan memposting pelajaran dan sampel yang berbeda saat saya menyelesaikannya.
Kursus ini memberikan pengalaman langsung menggunakan model dari OpenAI dan perpustakaan Face yang memeluk. Kami akan melihat dan menggunakan banyak alat dan berlatih dengan proyek -proyek kecil yang akan tumbuh karena kami dapat menerapkan pengetahuan baru yang diperoleh.
Beberapa topik dan teknologi yang dibahas dalam bagian ini meliputi: chatbots, pembuatan kode, API openai, wajah memeluk, database vektor, langchain, tuning fine, fine tuning peft, tuning prompt lembut, lora, qlora, model evaluasi, distilasi pengetahuan.
Setiap pelajaran disesuaikan dengan notebook dan artikel. Notebook berisi informasi yang cukup untuk memahami kode di dalamnya, artikel tersebut memberikan penjelasan yang lebih rinci tentang kode dan topik yang dibahas.
Saran saya adalah agar artikel terbuka di samping buku catatan dan mengikuti. Banyak artikel menawarkan tips kecil tentang variasi yang dapat Anda perkenalkan ke notebook. Saya sarankan mengikuti mereka untuk meningkatkan kejelasan konsep.
Sebagian besar notebook di -host di Colab, sementara beberapa di Kaggle. Kaggle menyediakan lebih banyak memori dalam versi gratis dibandingkan dengan Colab, tetapi saya menemukan bahwa menyalin dan berbagi buku catatan lebih sederhana di Colab, dan tidak semua orang memiliki akun Kaggle.
Beberapa buku catatan membutuhkan lebih banyak memori daripada apa yang disediakan versi Colab gratis. Saat kami bekerja dengan model bahasa besar, ini adalah situasi umum yang akan berulang jika Anda terus bekerja dengan mereka. Anda dapat menjalankan notebook di lingkungan Anda sendiri atau memilih versi pro Colab.
Setiap notebook didukung dengan artikel menengah di mana kode dijelaskan secara rinci.
Di bagian pertama kursus ini, kita akan belajar bekerja dengan Openai API dengan membuat dua proyek kecil. Kami akan mempelajari peran Openai dan bagaimana memberikan instruksi yang diperlukan untuk model melalui prompt untuk membuatnya berperilaku sesuai keinginan kita.
Proyek pertama adalah chatbot restoran di mana model akan menerima pesanan pelanggan. Membangun di atas proyek ini, kami akan membangun generator pernyataan SQL. Di sini, kami akan mencoba membuat prompt aman yang hanya menerima perintah pembuatan SQL dan tidak ada yang lain.
Kami akan memanfaatkan Openai GPT-3.5 dan panel untuk mengembangkan chatbot langsung yang dirancang untuk restoran cepat saji. Selama kursus, kami akan mengeksplorasi dasar -dasar rekayasa cepat, termasuk memahami berbagai peran openai, memanipulasi pengaturan suhu, dan cara menghindari suntikan yang cepat.
| Panel Artikel / Artikel Gradio | Panel Notebook / Notebook Gradio |
|---|
Mengikuti kerangka kerja yang sama yang digunakan dalam artikel sebelumnya untuk membuat chatbot, kami membuat beberapa modifikasi untuk mengembangkan bahasa alami ke SQL Translator. Dalam hal ini, model perlu dilengkapi dengan struktur tabel, dan penyesuaian dilakukan pada prompt untuk memastikan fungsionalitas yang lancar dan menghindari potensi kerusakan. Dengan modifikasi ini di tempat, penerjemah mampu mengubah kueri bahasa alami menjadi kueri SQL. @FMQuaglia telah membuat buku catatan menggunakan DBML untuk menggambarkan tabel yang sejauh ini merupakan aproach yang lebih baik daripada aslinya.
| Artikel / Artikel Gradio | Notebook / notebook gradio / notebook DBML |
|---|
Kami akan mengeksplorasi teknik rekayasa cepat untuk meningkatkan hasil yang kami peroleh dari model. Seperti cara memformat jawabannya dan mendapatkan respons terstruktur menggunakan beberapa sampel bidikan.
| Artikel | Buku catatan |
|---|
Pengantar singkat untuk database vektor, teknologi yang akan menemani kita dalam banyak pelajaran sepanjang kursus. Kami akan bekerja pada contoh pengambilan generasi augmented menggunakan informasi dari berbagai dataset berita yang disimpan di Chromadb.
Jika ada satu aspek yang semakin penting dalam dunia model bahasa besar, itu mengeksplorasi cara memanfaatkan informasi hak milik dengan mereka. Dalam pelajaran ini, kami mengeksplorasi solusi yang mungkin melibatkan menyimpan informasi dalam database vektor, Chromadb dalam kasus kami, dan menggunakannya untuk membuat petunjuk yang diperkaya.
| Artikel | Buku catatan |
|---|
Kami meningkatkan sistem RAG dengan memperkenalkan lapisan cache semantik yang mampu menentukan apakah pertanyaan serupa telah diajukan sebelumnya. Jika afirmatif, ia mengambil informasi dari sistem cache yang dibuat dengan FAISS alih -alih mengakses database vektor.
Inspirasi dan kode dasar dari cache semantik yang ada di notebook ini ada berkat kursus: https://maven.com/boring-bot/advanced-llm/1/home dari hamza farooq.
| Artikel | Buku catatan |
|---|---|
| WIP | Buku catatan |
Langchain telah menjadi salah satu perpustakaan di alam semesta model bahasa besar yang telah berkontribusi paling besar untuk revolusi ini. Ini memungkinkan kami untuk rantai panggilan ke model dan sistem lain, memungkinkan kami untuk membangun aplikasi berdasarkan model bahasa besar. Dalam kursus, kami akan menggunakannya beberapa kali, menciptakan proyek yang semakin kompleks.
Dalam pelajaran ini, kami menggunakan Langchain untuk meningkatkan notebook dari pelajaran sebelumnya, di mana kami menggunakan data dari dua set data untuk membuat prompt yang diperkaya. Kali ini, dengan bantuan Langchain, kami membangun pipa yang bertanggung jawab untuk mengambil data dari database vektor dan meneruskannya ke model bahasa. Notebook ini diatur untuk bekerja dengan dua dataset yang berbeda dan dua model yang berbeda. Salah satu model dilatih untuk pembuatan teks, sementara yang lain dilatih untuk generasi Text2Text.
| Artikel | Buku catatan |
|---|
Kami akan membuat sistem respons komentar menggunakan pipa dua model yang dibangun dengan Langchain. Dalam pengaturan ini, model kedua akan bertanggung jawab untuk memoderasi respons yang dihasilkan oleh model pertama.
Salah satu cara efektif untuk mencegah sistem kami menghasilkan respons yang tidak diinginkan adalah dengan menggunakan model kedua yang tidak memiliki interaksi langsung dengan pengguna untuk menangani pembuatan respons.
Pendekatan ini dapat mengurangi risiko respons yang tidak diinginkan yang dihasilkan oleh model pertama dalam menanggapi entri pengguna.
Saya akan membuat buku catatan terpisah untuk tugas ini. Satu akan melibatkan model dari Openai, dan yang lainnya akan menggunakan model open-source yang disediakan oleh Hugging Face. Hasil yang diperoleh dalam tiga notebook sangat berbeda. Sistem ini bekerja jauh lebih baik dengan model OpenAI, dan LLAMA2.
| Artikel | Buku catatan |
|---|---|
| Artikel Openai | Openai Notebook |
| Artikel LLAMA2-7B | Llama2-7b Notebook |
| Tidak ada artikel | GPT-J Notebook |
Agen adalah salah satu alat paling kuat di dunia model bahasa besar. Agen mampu menafsirkan permintaan pengguna dan menggunakan alat dan perpustakaan yang tersedia sampai mencapai hasil yang diharapkan.
Dengan agen Langchain, kita akan membuat hanya dalam beberapa baris salah satu agen paling sederhana namun sangat kuat. Agen akan bertindak sebagai asisten analis data dan membantu kami dalam menganalisis data yang terkandung dalam file Excel apa pun. Ini akan dapat mengidentifikasi tren, menggunakan model, membuat perkiraan. Singkatnya, kami akan membuat agen sederhana yang dapat kami gunakan dalam pekerjaan harian kami untuk menganalisis data kami.
| Artikel | Buku catatan |
|---|
Dalam contoh ini, dua teknologi yang terlihat sebelumnya digabungkan: agen dan database vektor. Informasi medis disimpan di Chromadb, dan agen Langchain dibuat, yang akan mengambilnya hanya bila perlu untuk membuat prompt yang diperkaya yang akan dikirim ke model untuk menjawab pertanyaan pengguna.
Dengan kata lain, sistem kain dibuat untuk membantu chatbot medis.
Perhatian!!! Gunakan hanya sebagai contoh. Tidak ada yang harus mengambil rekomendasi boot sebagai dokter sungguhan. Saya menyangkal semua tanggung jawab atas penggunaan yang dapat diberikan kepada chatbot. Saya telah membangunnya hanya sebagai contoh teknologi yang berbeda.
| Artikel | Buku catatan |
|---|
Metrik yang digunakan untuk mengukur kinerja model bahasa besar sangat berbeda dari yang kami gunakan dalam model yang lebih tradisional. Kami beralih dari metrik seperti akurasi, skor F1, atau penarikan, dan bergerak menuju metrik seperti Bleu, Rouge, atau Meteor.
Metrik ini dirancang untuk tugas spesifik yang ditetapkan untuk model bahasa.
Di bagian ini, kami akan mengeksplorasi contoh beberapa metrik ini dan bagaimana menggunakannya untuk menentukan apakah satu model lebih unggul dari yang lain untuk tugas yang diberikan. Kami akan mempelajari skenario praktis di mana metrik ini membantu kami membuat keputusan berdasarkan informasi tentang kinerja berbagai model.
Bleu adalah salah satu metrik pertama yang stabil untuk mengevaluasi kualitas terjemahan. Dalam buku catatan kami membandingkan kualitas terjemahan yang dibuat oleh Google dengan model lain dari model open source dari memeluk wajah.
| Artikel WIP | Buku catatan |
|---|
Kami akan mengeksplorasi penggunaan metrik Rouge untuk mengukur kualitas ringkasan yang dihasilkan oleh model bahasa. Kami akan menggunakan dua model T5, salah satunya adalah model T5-Base dan yang lainnya fine-t5-tuned yang dirancang khusus untuk menciptakan ringkasan.
| Artikel | Buku catatan |
|---|
Dalam contoh awal ini, Anda dapat mengamati cara menggunakan Langssmith untuk memantau lalu lintas antara berbagai komponen yang membentuk agen. Agen adalah sistem RAG yang memanfaatkan basis data vektor untuk membangun prompt yang diperkaya dan meneruskannya ke model. Langssmith menangkap penggunaan alat agen dan keputusan yang dibuat oleh model, memberikan informasi setiap saat tentang data yang dikirim/diterima, token yang dikonsumsi, durasi kueri, dan semua ini dalam lingkungan yang benar-benar ramah pengguna.
| Artikel | Buku catatan |
|---|
Sebelumnya di notebook, Rouge Metrics: Evaluating Ringkasan, kami belajar cara menggunakan Rouge untuk mengevaluasi ringkasan mana yang paling diperkirakan yang dibuat oleh manusia. Kali ini, kami akan menggunakan jarak embedding dan Langssmith untuk memverifikasi model mana yang menghasilkan ringkasan yang lebih mirip dengan yang referensi.
| Artikel | Buku catatan |
|---|
Kami mengambil agen yang berfungsi sebagai asisten medis dan menggabungkan Giskard untuk mengevaluasi apakah tanggapannya benar. Dengan cara ini, tidak hanya respons model dievaluasi, tetapi juga pengambilan informasi dalam database vektor. Giskard adalah solusi yang memungkinkan mengevaluasi solusi kain lengkap.
| Artikel | Buku catatan |
|---|
Perpustakaan LM-Eval oleh Eleutherai menyediakan akses mudah ke tolok ukur akademik yang telah menjadi standar industri. Ini mendukung evaluasi model open source dan API dari penyedia seperti OpenAi, dan bahkan memungkinkan untuk evaluasi adaptor yang dibuat menggunakan teknik seperti LORA.
Dalam buku catatan ini, saya akan fokus pada fitur kecil namun penting dari perpustakaan: mengevaluasi model yang kompatibel dengan perpustakaan Transformers Face yang memeluk.
| Artikel - WIP | Buku catatan |
|---|
Di bagian Finetuning & Optimization, kami akan mengeksplorasi berbagai teknik seperti tuning fine atau LORA yang cepat, dan kami akan menggunakan perpustakaan PEFT Face Hugging untuk secara efisien menyempurnakan model bahasa besar. Kami akan mengeksplorasi teknik seperti kuantisasi untuk mengurangi berat model.
Dalam buku catatan ini, dua model dilatih menggunakan tuning cepat dari pustaka PEFT. Teknik ini tidak hanya memungkinkan kita untuk melatih dengan memodifikasi bobot dari sangat sedikit parameter tetapi juga memungkinkan kita untuk memiliki model khusus yang berbeda yang dimuat dalam memori yang menggunakan model dasar yang sama.
Penyetelan yang cepat adalah teknik aditif, dan bobot model pra-terlatih tidak dimodifikasi. Bobot yang kami modifikasi dalam hal ini adalah token virtual yang kami tambahkan ke prompt.
| Artikel | Buku catatan |
|---|
Setelah penjelasan singkat tentang bagaimana teknik penyempurnaan Lora bekerja, kami akan menyempurnakan model dari keluarga Bloom untuk mengajarkannya untuk membangun petunjuk yang dapat digunakan untuk menginstruksikan model bahasa besar.
| Artikel | Buku catatan |
|---|
Kami akan melihat pengantar singkat untuk kuantisasi, digunakan untuk mengurangi ukuran model bahasa besar. Dengan kuantisasi, Anda dapat memuat model besar mengurangi sumber daya memori yang dibutuhkan. Ini juga berlaku untuk proses penyempurnaan, Anda dapat menyempurnakan model dalam satu GPU tanpa mengonsumsi semua sumber daya. Setelah penjelasan singkat, kami melihat contoh tentang seberapa mungkin untuk menyempurnakan model mekar 7b ina A T4 16GB GPU di Google Colab.
| Artikel | Buku catatan |
|---|
Bagian ini masih sedang dibangun. Tujuannya adalah untuk membangun kurikulum yang akan membawa kita dari teknik pemangkasan paling sederhana untuk membuat model menggunakan teknik yang sama yang digunakan oleh perusahaan terkemuka di lapangan, seperti Microsoft, Google, NVIDIA, atau Openai, untuk membangun model mereka.
Dalam buku catatan pertama, proses pemangkasan akan diterapkan pada lapisan feedforward dari model DistilGPT2. Ini berarti model akan mengurangi bobot pada lapisan spesifik tersebut. Neuron untuk memangkas dipilih berdasarkan skor pentingnya, yang kami komputasi menggunakan norma L1 dari bobotnya. Ini adalah aproach sederhana, untuk contoh pertama ini, yang dapat digunakan ketika Anda ingin membuat model yang dipangkas yang meniru model dasar di semua area.
Dengan mengubah struktur model, file konfigurasi baru harus dibuat untuk memastikannya berfungsi dengan benar dengan pustaka transformers .
| Notebook: memangkas model DistilGpt2. |
|---|
Dalam buku catatan pertama ini, kami berusaha untuk mereplikasi proses pemangkasan yang digunakan dengan model DistilGPT2 tetapi diterapkan pada model LLAMA. Dengan tidak mempertimbangkan karakteristik model, proses pemangkasan menghasilkan model yang sama sekali tidak dapat digunakan. Buku catatan ini berfungsi sebagai latihan untuk memahami betapa pentingnya mengetahui struktur model yang akan mengalami pemangkasan.
| Notebook: memangkas model llama3.2 yang salah. |
|---|
Buku catatan kedua membahas masalah yang dihadapi ketika menerapkan proses pemangkasan yang sama untuk model LLAMA seperti yang digunakan untuk distilgpt2.
Pendekatan yang benar adalah memperlakukan lapisan MLP model sebagai pasangan daripada lapisan individu dan untuk menghitung kepentingan neuron dengan mempertimbangkan kedua lapisan bersama -sama. Selain itu, kami beralih menggunakan bobot absolut maksimum untuk memutuskan neuron mana yang tersisa di lapisan yang dipangkas.
| Artikel pemangkasan llama3 | Notebook: memangkas model llama3.2 yang benar. |
|---|
Dalam buku catatan ini, kita akan melihat contoh pemangkasan kedalaman, yang melibatkan menghilangkan seluruh lapisan dari model. Hal pertama yang perlu diperhatikan adalah bahwa menghapus seluruh lapisan dari model transformator biasanya memiliki dampak yang signifikan pada kinerja model. Ini adalah perubahan arsitektur yang jauh lebih drastis dibandingkan dengan penghapusan neuron yang sederhana dari lapisan MLP, seperti yang terlihat pada contoh sebelumnya.
| Notebook: Model pemangkasan kedalaman llama. |
|---|
Dalam proyek awal yang mudah ini, kami akan mengembangkan generator SQL dari bahasa alami. Kami akan mulai dengan membuat prompt untuk mengimplementasikan dua solusi: satu menggunakan model OpenAI yang berjalan di Azure, dan yang lainnya dengan model open-source dari memeluk wajah.
| Artikel | Buku catatan |
|---|---|
| Buat Prompt NL2SQL untuk OpenAI | Pembuatan cepat untuk openai |
| WIP | Kreasi cepat untuk defog/sqlcoder |
| Konfigurasi inferensi Azure. | Menggunakan titik inferensi biru |
Dalam proyek kecil ini kita akan membuat model baru yang menyelaraskan model Microsoft-PHI-3 dengan DPO dan kemudian menerbitkannya untuk memeluk wajah.
| Artikel | Buku catatan |
|---|---|
| WIP | Menyelaraskan dengan DPO model PHI3-3. |
Dalam solusi awal ini, kami merancang arsitektur untuk sistem NL2SQL yang mampu beroperasi pada database besar. Sistem ini dimaksudkan untuk digunakan dengan dua atau tiga model yang berbeda. Bahkan, kami menggunakan tiga model dalam contoh.
Ini adalah arsitektur yang memungkinkan kickoff proyek cepat, menyediakan layanan hanya untuk beberapa tabel dalam database, memungkinkan kami untuk menambahkan lebih banyak tabel dengan kecepatan kami.
Dalam solusi ini, kami mengeksplorasi kekuatan transformatif embeddings dan model bahasa besar (LLM) dalam penilaian risiko pelanggan dan rekomendasi produk dalam industri keuangan. Kami akan mengubah format di mana kami menyimpan informasi pelanggan, dan akibatnya, kami juga akan mengubah bagaimana informasi ini bergerak dalam sistem, mencapai keuntungan penting.
Silakan, jika Anda menemukan masalah, buka masalah. Saya akan melakukan yang terbaik untuk memperbaikinya sesegera mungkin, dan memberi Anda kredit.
Jika Anda ingin memberikan kontribusi atau menyarankan topik, jangan ragu untuk memulai diskusi. Saya akan senang menerima pendapat atau nasihat apa pun.
Jangan malu, bagikan kursus di jejaring sosial Anda dengan teman -teman Anda. Terhubung dengan saya di LinkedIn atau Twitter dan jangan ragu untuk membagikan apa pun yang Anda inginkan atau mengajukan pertanyaan yang mungkin Anda miliki.
Berikan bintang ️ ke repositori. Ini sangat membantu saya, dan mendorong saya untuk terus menambahkan pelajaran. Ini cara yang bagus untuk mendukung kursus open source gratis seperti ini.
Tom Kocmi, Christian Federmann, model bahasa besar adalah evaluator yang canggih dengan kualitas terjemahan. Mengevaluasi LLMS dengan LLMS.
Pere Martra, Pengantar model bahasa besar dengan openai
Bereaksi: Sinergis penalaran dan akting dalam model bahasa. Bagian Langchain & Agents. Sampel Asisten Medis.
Kekuatan skala untuk penyetelan prompt yang efisien parameter. Bagian Tuning & Optimasi Fine. Sampel penyetelan cepat.
Lora: Adaptasi rendah model bahasa besar. Bagian Tuning & Optimasi Fine. Sampel fine-tuning Lora.
Qlora: Finetuning yang efisien dari LLMS terkuantisasi. Bagian Tuning & Optimasi Fine. Sampel penyempurnaan qlora.
Cara Meminta LLMS untuk Teks-ke-SQL: Sebuah studi dalam pengaturan nol-shot, domain tunggal, dan domain silang. Proyek. Bahasa alami untuk SQL.
Saurav Muralidharan, Sharath Turuvekere Sreenivas, Raviraj Joshi, Marcin Chochowski, Mostofa Patwary, Mohammad Shoeybi, Bryan Catanzaro, Jan Kautz, Pavlo Molchanov, "Model Bahasa Pompak Melalui Pruning dan Pengetahuan PREPLATE," PAVLO MOLCHANOV, " 2024. Tersedia di: https://doi.org/10.48550/arxiv.2407.14679.