Rumah > Artikel > Peranti teknologi > Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM
CtGPT telah menyebabkan kejutan besar dalam industri, dan semua lapisan masyarakat sedang membincangkan model bahasa besar dan kecerdasan buatan am. AI telah mengalami lebih daripada lima puluh tahun pembangunan dan kini berada dalam tempoh kritikal pembangunan mendatar struktur perindustrian. Perubahan ini berpunca daripada anjakan paradigma dalam bidang NLP, yang telah berkembang daripada "pra-latihan + penalaan halus" kepada "pra-latihan, dorongan dan ramalan". Dalam model baharu ini, tugasan hiliran menyesuaikan diri dengan model pra-latihan, menjadikan model besar sesuai untuk pelbagai tugas. Perubahan ini telah meletakkan asas untuk pembahagian buruh secara mendatar dalam industri AI. Pembahagian kerja dalam industri AI pada mulanya telah terbentuk, termasuk infrastruktur asas (penyedia perkhidmatan awan), model besar, platform Kejuruteraan Prompt dan aplikasi terminal. Apabila industri AI berubah, pembangun boleh menggunakan sepenuhnya model bahasa besar (LLM) dan Kejuruteraan Prompt untuk membangunkan aplikasi inovatif.
Pada masa ini, apakah masalah kejuruteraan terbesar yang kami hadapi semasa membangunkan aplikasi berasaskan LLM?
Ambil Langchain sebagai contoh ringkasnya: LangChain ialah enkapsulasi keupayaan asas LLM dan merupakan sejenis Kejuruteraan Pantas atau Kejuruteraan Pantas Ia Operasi Pantas.
Ini adalah contoh membandingkan demo yang dibangunkan oleh ChatGPT dan LangChain Inputnya ialah "Siapa isteri Jay Chou? Berapakah umurnya didarabkan dengan 0.23?". Dapat dilihat bahawa keputusan jawapan ChatGPT atau GPT-3.5 adalah salah kerana mereka tidak mempunyai keupayaan carian. API menggunakan LangChain digabungkan dengan GPT-3.5 OpenAI di sebelah kanan mengeluarkan hasil yang betul Ia akan mencari maklumat yang betul secara beransur-ansur dan mendapatkan hasil yang betul, dan proses perantaraan dikendalikan secara automatik oleh rangka kerja soalan.
Ini adalah contoh yang sangat mengejutkan Dalam proses ini, ia mendapati bahawa fungsi itu tidak ditakrifkan dan melaporkan ralat oleh sendiri.
Komposisi API Fuzzy: menanyakan statistik NBA dengan GPT-3 + Statmuse + Langchain
Gunakan Langchain digabungkan dengan tapak web carian data sukan untuk bertanya soalan data yang kompleks dan mendapatkan jawapan yang tepat. Contohnya: "Apakah purata mata pertahanan Boston Celtics setiap perlawanan musim NBA 2022-2023 ini? Bagaimanakah peratusan berubah berbanding purata musim lalu mereka?" 2.2.4 Sambung ke Python REPL dan buka penyemak imbas untuk memainkan muzik
Adegan sci-fi yang cantik, saya menggunakan Langchain untuk menyambung kepada alat Python REPL, masukkan "mainkan saya lagu", dan ia mengimport I memasang pakej webBrowser, memanggil kod untuk membuka penyemak imbas, dan memainkan saya lagu "never gonna give you up"
连接私有数据对第三方企业做LLM应用来说非常重要。下面举几个例子
法律公文和政策条款一般都非常复杂繁琐,这个demo中将旧金山政府的信息用Langchain与GPT结合,做到询问其中细节能获得准确回复的效果。
> Entering new AgentExecutor chain... I need to find out the size limit for a storage shed without a permit and then search for sheds that are smaller than that size. Action: SF Building Codes QA System Action Input: "What is the size limit for a storage shed without a permit in San Francisco?" Observation: The size limit for a storage shed without a permit in San Francisco is 100 square feet (9.29 m2). Thought:Now that I know the size limit, I can search for sheds that are smaller than 100 square feet. Action: Google Action Input: "Storage sheds smaller than 100 square feet" Observation: Results 1 - 24 of 279 ... Thought:I need to filter the Google search results to only show sheds that are smaller than 100 square feet and suitable for backyard storage. Action: Google Action Input: "Backyard storage sheds smaller than 100 square feet" Thought:I have found several options for backyard storage sheds that are smaller than 100 square feet and do not require a permit. Final Answer: The size limit for a storage shed without a permit in San Francisco is 100 square feet. There are many options for backyard storage sheds that are smaller than 100 square feet and do not require a permit, including small sheds under 36 square feet and medium sheds between 37 and 100 square feet.
LLM应用与私有数据交互非常重要,我看到无数人在问一些ChatGPT无法回答的问题了:问认不认识谁、问自己公司业务细节、问各种可能不包含在预训练数据集里的东西。这些都已用Langchain和LlaMaIndex来解决。试想一下,将私有数据与LLM相结合,将改变数据原有的访问方式,通过问答能很自然地获取到自己需要的信息,这是比当前的搜索/打标分类都要高效的数据交互方式。
向量数据库现在看起来是构建LLM App中很关键的一个组件。首先 LLM 的预训练和微调过程不可能包含我们所期待的私有数据,因此如何将LLM关联到私有数据成为一个很关键的需求。而且LLM的“接口”-自然语言通常不是像Key-Value的映射那样精确地。而且在这一阶段我们希望LLM去理解我们的知识库,而不是简单的在其中搜索相同的字符串,我们希望询问关于我们知识库的细节,并给出一定理解后的答案(以及来源),这样匹配向量这样的搜索方式是一个非常合适且关键的解决方案。还有一个关键点是,LLM在每次调用是按token计费(即文本量),并且目前的接口的上下文有着4096 tokens的限制。,因此面对庞大的数据,我们也不可能将所有的数据一次性传给LLM。因此才有了第一张图那个流程图的结构。本地预先将我们私有的数据转成向量存在Qdrant里,用户问答时,将用户的问题转为向量,然后去Qdrant里进行搜索(相似性匹配)得到Top K个结果,然后将这些结果(注意这里的结果已经是自然语言了)传给LLM进行总结输出。
这里使用Langchain社区博客的流程图为例
私有数据分割成小于LLM上下文的分块,创建向量后存入向量数据库
将问题计算向量后在向量数据库进行相似性搜索,算出相关性较高的top k个结果后拼接prompt送往LLM获得答案。
Mari kita bincangkan tentang berita terkini tentang penggunaan persendirian OpenAI Jika Langchain digunakan untuk memaut, menghadapi data peribadi yang besar, Menggunakan pembenaman model (OpenAI's ada) untuk mengira vektor masalah input, menggunakan pangkalan data vektor seperti Qdrant untuk menguruskan vektor data peribadi dan carian vektor, dan menggunakan Langchain sebagai pautan perantaraan boleh menyelesaikan masalah, tetapi penggunaan token tidak boleh diabaikan . Penggunaan peribadi + penalaan halus boleh menyelesaikan kebanyakan masalah yang dinyatakan sebelum ini. Mungkin syarikat besar dan kaya menggunakan contoh Model dan penalaan halus, manakala pembangun bebas dalam syarikat kecil menggunakan rangka kerja seperti Langchain. Pada masa hadapan, apabila keupayaan perkhidmatan LLM OpenAI melimpah, Prompt mungkin tidak lagi diperlukan, malah fungsi Langchain mungkin disertakan Pembangunan dan akses aplikasi LLM mungkin hanya memerlukan panggilan antara muka.
Timbunan teknologi aplikasi 2.4 LLM pada 2023
2023 Tindanan teknologi terkini yang digunakan untuk membina Demo AI:
Sesetengah daripada Prompt- Operasi seperti Langchain Menentang alat kelas: stream.thesephist.com Masalah utama ialah dalam kelas alat/rangka kerja ini, menggunakan bahasa semula jadi sebagai sambungan antara kod dan LLM, dan menggunakan bahasa bukan deterministik itu sendiri sebagai aliran kawalan, adalah agak gila. Selain itu, menilai kesan keluaran model itu sendiri kini merupakan tugas yang sangat menyusahkan. Tidak ada penyelesaian yang baik. (Terdapat juga rancangan untuk menggunakan LLM untuk menilai LLM, yang masih agak awal.) Jadi sebelum ia boleh dimasukkan ke dalam pengeluaran, mungkin masih banyak kerja yang perlu dilakukan untuk benar-benar menghadapi pengguna dan bukannya sebagai demonstrasi twitter.
Mari kita bincangkan secara terperinci tentang cabaran besar yang dihadapi dalam fasa ujian. Jika produk anda mempunyai set gesaan yang berfungsi dengan baik semasa peringkat pembangunan, selepas ia diserahkan untuk ujian, anda mungkin dapat mengenal pasti masalah dengan menguji beratus atau beribu daripadanya. Memandangkan kesannya tidak dapat dijamin, ia akan menghadapi cabaran besar untuk benar-benar melancarkannya kepada pengguna akhir c. Dan jika anda tidak menggunakan perkhidmatan penalaan halus atau contoh model, jika OpenAI mengemas kini model, semua gesaan dalam persekitaran pengeluaran anda mungkin perlu diuji semula untuk kesannya. Gesaan anda juga perlu diuruskan mengikut versi sama seperti kod Tidak kira sama ada terdapat perubahan segera atau tidak, setiap versi perlu diuji regresi sebelum pergi ke dalam talian. Tanpa penyelesaian penilaian automatik yang baik, sejumlah besar kes perlu diuji secara manual, yang akan menggunakan banyak tenaga kerja.
Pada masa ini terdapat banyak penyelesaian kejuruteraan yang baik untuk membangunkan aplikasi LLM yang menggabungkan data peribadi Mudah untuk menjalankan demo dengan hasil yang baik, tetapi aplikasi sedemikian masih perlu ditangani dengan sangat berhati-hati. Lagipun, kami bukan sekadar membuat projek untuk berdemo di hadapan media sosial atau pemimpin. Apa yang diberikan kepada pengguna untuk input ialah kotak dialog bahasa semula jadi sangat luas sehinggakan walaupun anda menguji berpuluh-puluh ribu hasil, keputusan yang tidak dijangka mungkin berlaku Lagipun, produk seperti bing baru dan chatGPT juga akan digesa untuk suntikan. Menghadapi ketidakpastian ini, bagaimana untuk mengelakkannya dalam kejuruteraan dan bagaimana untuk menutupnya dalam ujian adalah semua isu yang perlu diselesaikan untuk produk matang atau masih banyak kerja yang boleh dilakukan.
Tetapi saya rasa tidak ada keperluan untuk menafikan sepenuhnya alat/rangka Kerja Prompt-Ops ini Lagipun, banyak demo yang baik memang boleh dibuat untuk mengesahkan idea pada peringkat ini.
Mari kita bincangkan tentang kemungkinan bentuk aplikasi LLM selepas API ChatGPT dibuka.
Aplikasi LLM sebenarnya adalah cara baharu interaksi manusia-komputer, yang membolehkan pengguna berkomunikasi dengan sistem semasa kami menggunakan bahasa semula jadi malah banyak aplikasi boleh dipermudahkan kepada hanya tetingkap sembang.
Pada masa ini, disebabkan kos latihan/pengerahan model besar am yang tinggi, syarat untuk pembahagian kerja peringkat industri pada dasarnya adalah matang. Tidak perlu banyak yang besar model di dunia Penggunaan LLM akan menjadi pilihan yang tidak dapat dielakkan untuk perusahaan kecil dan sederhana serta pemaju individu. Bentuk baru pengaturcaraan/paradigma kejuruteraan memerlukan jurutera mempelajari dan memahaminya tepat pada masanya. Tindanan teknologi sumber terbuka semasa sudah boleh memenuhi keperluan kebanyakan produk Anda boleh mencuba demo pantas untuk mengesahkan idea anda.
Rujukan:
Tutorial: ChatGPT Over Data Anda
Soalan Menjawab dengan LangChain dan Qdrant tanpa boilerplate
Atom Capital: Perbincangan mendalam tentang perubahan industri yang dibawa oleh ChatGPT
Atas ialah kandungan terperinci Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!