Rumah  >  Artikel  >  Peranti teknologi  >  Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

PHPz
PHPzke hadapan
2023-04-12 21:43:042464semak imbas

1​Latar Belakang​

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.

2 Aplikasi di bawah Prompt-Ops

Pada masa ini, apakah masalah kejuruteraan terbesar yang kami hadapi semasa membangunkan aplikasi berasaskan LLM?

  • Model bahasa besar tidak boleh disambungkan ke Internet dan tidak boleh mendapatkan maklumat terkini
  • Model bahasa besar tidak mempunyai data peribadi kami dan tidak dapat menjawab soalan menegak
  • Model bahasa besar API terbuka (text-davinci-003) tidak mempunyai keupayaan kontekstual sebaik ChatGPT
  • Model bahasa besar tidak boleh memacu alatan lain.

2.1 Rangka kerja kejuruteraan seperti Langchain menyelesaikan masalah kejuruteraan ini

Ambil Langchain sebagai contoh ringkasnya: LangChain ialah enkapsulasi keupayaan asas LLM dan merupakan sejenis Kejuruteraan Pantas atau Kejuruteraan Pantas Ia Operasi Pantas.

  • Ia boleh mengakses pelbagai perkhidmatan LLM dan mengabstrakkan panggilan pelbagai model bahasa besar
  • Ia boleh mencipta pelbagai PromptTemplates dan melaksanakan templat Prompt tersuai
  • Ia boleh mencipta rantai untuk menggabungkan panggilan ke PromptTemplate
  • Ia boleh memanggil pelbagai alatan untuk mencapai perkara yang GPT-3 tidak mahir pada masa ini, seperti carian/matematik/pautan pangkalan data peribadi/kod Python
  • Ia boleh menggunakan ejen, memacu LLM untuk menentukan tindakan yang perlu diambil dan mengikut urutan. Tindakan boleh menggunakan alat dan memerhati outputnya, atau ia boleh dikembalikan kepada pengguna.
  • Ia boleh melaksanakan pemodelan sejarah perbualan melalui modul Memorinya.

2.2 Beberapa contoh pembangunan Langchain

2.2.1 GPT digabungkan dengan carian

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

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.

2.2.2 Tukar bahasa semula jadi kepada kod Python dan betulkan ralat sendiri

Ini adalah contoh yang sangat mengejutkan Dalam proses ini, ia mendapati bahawa fungsi itu tidak ditakrifkan dan melaporkan ralat oleh sendiri.

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

2.2.3 Gunakan GPT-3 + Statmuse + Langchain untuk menanyakan data NBA

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" Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

2.2.5   连接私有数据

连接私有数据对第三方企业做LLM应用来说非常重要。下面举几个例子

  • LangchainJs的文档,结合了Langchain:AI-powered search for LangchainJS Documentation,你可以直接问文档内容、技术细节。

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

  • 数据库产品 Supabase也做了同样的事情,将自己的文档与ChatGPT相连接,使得开发者可以很方便的询问/查找自己遇到的技术问题。https://supabase.com/docs

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

  • 政府信息问答的一个例子:Co-pilot for government

法律公文和政策条款一般都非常复杂繁琐,这个demo中将旧金山政府的信息用Langchain与GPT结合,做到询问其中细节能获得准确回复的效果。

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

> 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.

2.3   结合私有数据问答

LLM应用与私有数据交互非常重要,我看到无数人在问一些ChatGPT无法回答的问题了:问认不认识谁、问自己公司业务细节、问各种可能不包含在预训练数据集里的东西。这些都已用Langchain和LlaMaIndex来解决。试想一下,将私有数据与LLM相结合,将改变数据原有的访问方式,通过问答能很自然地获取到自己需要的信息,这是比当前的搜索/打标分类都要高效的数据交互方式。

2.3.1   如何构建一个基于私有数据的LLM问答系统

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

向量数据库现在看起来是构建LLM App中很关键的一个组件。首先 LLM 的预训练和微调过程不可能包含我们所期待的私有数据,因此如何将LLM关联到私有数据成为一个很关键的需求。而且LLM的“接口”-自然语言通常不是像Key-Value的映射那样精确地。而且在这一阶段我们希望LLM去理解我们的知识库,而不是简单的在其中搜索相同的字符串,我们希望询问关于我们知识库的细节,并给出一定理解后的答案(以及来源),这样匹配向量这样的搜索方式是一个非常合适且关键的解决方案。还有一个关键点是,LLM在每次调用是按token计费(即文本量),并且目前的接口的上下文有着4096 tokens的限制。,因此面对庞大的数据,我们也不可能将所有的数据一次性传给LLM。因此才有了第一张图那个流程图的结构。本地预先将我们私有的数据转成向量存在Qdrant里,用户问答时,将用户的问题转为向量,然后去Qdrant里进行搜索(相似性匹配)得到Top K个结果,然后将这些结果(注意这里的结果已经是自然语言了)传给LLM进行总结输出。

2.3.2   结合私有数据问答的抽象流程

这里使用Langchain社区博客的流程图为例

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

私有数据分割成小于LLM上下文的分块,创建向量后存入向量数据库

Perkongsian ChatGPT-Bagaimana untuk membangunkan aplikasi LLM

将问题计算向量后在向量数据库进行相似性搜索,算出相关性较高的top k个结果后拼接prompt送往LLM获得答案。

2.3.3 Komponen penting

  • Model OpenAI Ada: text-embedding-ada-002 model dengan cepat boleh mengekod vektor 1536 dimensi Kita boleh menggunakan vektor ini untuk mengira persamaan antara teks jantina .
  • Langchain / LLamaIndex: Langchain mengandungi pelbagai pembahagi teks dan penyambung dokumen untuk memudahkan pemisahan fail dan mengindeksnya dalam pangkalan data vektor; LlamaIndex boleh memuatkan data daripada storan vektor, sama seperti mana-mana peranti sambungan data lain. Data ini kemudiannya boleh digunakan dalam struktur data LlamaIndex.
  • Pangkalan data vektor, terdapat banyak pilihan: Chroma / FAISS / Milvus / PGVector / Qdrant / Pinecone, dll.

2.3.4 isu penggunaan dan kos persendirian OpenAI

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:

  • Hos: Vercel
  • Depan -end: Next.js
  • Back-end: Vercel with flask
  • Pangkalan Data: Supabase
  • Model AI: OpenAI / Replicate / Memeluk Muka
  • LLM lapisan rangka kerja : LangChain / LLaMaIndex
  • Penyimpanan/carian vektor: Pinecone / FAISS

2.5 Prompt-Ops Masalah terbesar pada masa ini

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.

3 Beberapa bentuk produk yang mungkin pada masa hadapan

Mari kita bincangkan tentang kemungkinan bentuk aplikasi LLM selepas API ChatGPT dibuka.

  • Sembang perbualan ialah kaedah aplikasi yang paling intuitif dan sejarah perbualan diuruskan pada API.
  • Sembang aksara maya, berdasarkan sembang perbualan asas, buat beberapa definisi aksara gesaan pada awalan_mesej API untuk mencapai kesan yang serupa dengan Character.ai. Melangkah lebih dalam mungkin sebagai watak permainan, orang maya, pembantu XR, dsb.
  • Alat penulisan berbantukan teks yang serupa dengan Notion Pada masa ini, Notion dan FlowUs telah membuat aplikasi yang serupa. Pada masa hadapan, penyepaduan penerbit dalam pelbagai komuniti juga akan menjadi trend, mengurangkan ambang untuk penerbitan pengguna dan meningkatkan kualiti penerbitan.
  • Alat ringkasan data melaksanakan Chat-Data-Anda, menyediakan input dokumen kepada pengguna dan membenarkan pengguna bersembang dengan data yang mereka sediakan pada dasarnya, ia hanya melibatkan data awam di Internet dan data peribadi pengguna .
  • Chat-Your-Data untuk perusahaan besar setiap syarikat besar menyediakan perkhidmatan yang lebih baik berdasarkan perniagaan asalnya dan digabungkan dengan data peribadi perusahaan besar. Sebagai contoh, Dianping, yang menggabungkan ulasan pengguna, boleh menggunakan "Saya ingin pergi ke bar yang memainkan muzik neo-soul dan R&B Sebagai contoh, halaman butiran perniagaan kami boleh meringkaskan penilaian semua pengguna terhadap produk ini dan membenarkan pengguna melakukannya." berikan maklumat tentang produk ini.
  • Sepadukan dengan hal ehwal kerajaan, penjagaan perubatan, pendidikan dan bidang lain, sepadukan laman web rasmi dalam talian institusi dan skrin besar luar talian untuk menyediakan perkhidmatan warganegara yang lebih baik.
  • Digabungkan dengan alatan lain seperti IFTTT atau pelbagai protokol peribadi, LLM boleh mengakses lebih banyak alatan dan sistem, contohnya: senario IoT, Office Copilot.

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.

4 Ringkasan

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:

  • https://blog.langchain.dev/tutorial-chatgpt-over-your-data/

Tutorial: ChatGPT Over Data Anda

  • https://qdrant.tech/articles/langchain-integration/

Soalan Menjawab dengan LangChain dan Qdrant tanpa boilerplate

  • https://mp.weixin.qq.com/s/VZ6n4qlDx4bh41YvD1HqgQ

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam