Rumah  >  Artikel  >  Peranti teknologi  >  TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

王林
王林ke hadapan
2024-01-17 08:36:18650semak imbas

Analisis data sentiasa menjadi alat utama dalam masyarakat moden, membantu kami memahami intipati dengan mendalam, menemui corak dan membimbing membuat keputusan. Walau bagaimanapun, proses analisis data selalunya rumit dan memakan masa, jadi kami mengharapkan pembantu pintar yang boleh berinteraksi secara langsung dengan data. Dengan pembangunan model bahasa besar (LLM), pembantu maya dan ejen pintar seperti Copilot telah muncul satu demi satu, dan prestasi mereka dalam pemahaman dan penjanaan bahasa semula jadi sangat mengagumkan. Malangnya, bagaimanapun, rangka kerja ejen sedia ada masih menghadapi kesukaran dalam mengendalikan struktur data yang kompleks (seperti DataFrame, ndarray, dll.) dan memperkenalkan pengetahuan domain, yang merupakan keperluan teras dalam analisis data dan bidang profesional.

Untuk menyelesaikan masalah kesesakan pembantu suara dengan lebih baik semasa melaksanakan tugas, Microsoft melancarkan rangka kerja Ejen yang dipanggil TaskWeaver. Rangka kerja ini mengutamakan kod dan boleh menukar permintaan bahasa semula jadi pengguna kepada kod boleh laku, sambil menyokong berbilang struktur data dan pemilihan pemalam dinamik. Selain itu, TaskWeaver juga boleh disesuaikan secara profesional mengikut proses perancangan dalam bidang yang berbeza, menggunakan sepenuhnya potensi model bahasa yang besar. Sebagai rangka kerja sumber terbuka, TaskWeaver menyediakan contoh dan pemalam yang boleh disesuaikan yang boleh menggabungkan pengetahuan dalam bidang tertentu, membolehkan pengguna membuat pembantu maya diperibadikan dengan mudah. Pelancaran TaskWeaver akan meningkatkan tahap kecerdasan pembantu suara dengan berkesan dan memenuhi keperluan pengguna yang semakin meningkat untuk pembantu maya yang diperibadikan.

TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

  • Kertas: TaskWeaver: Rangka Kerja Ejen Kod Pertama
  • Alamat kertas: https://export.arxiv.org/abs/2311.17541 sumber terbuka pada GitHub , dan muncul pada senarai arah aliran GitHub pada hari keluaran. Pada masa ini, projek itu telah menerima 2.9k bintang dan telah mendapat sambutan yang baik. Selain itu, terdapat juga beberapa kes praktikal di platform sosial seperti LinkedIn, seperti menggunakan TaskWeaver untuk analisis data SAP. Kes ini menunjukkan utiliti dan nilai TaskWeaver.

TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

Laman utama projek: https://microsoft.github.io/TaskWeaver/

  • Alamat projek: https://github.com
  • Contoh cerita

Menjejaki rahsia tersembunyi dalam data jualan

Xiaoya ialah seorang penganalisis perniagaan, dan salah satu tugasnya ialah mencari anomali daripada data jualan terkini dan berdasarkan anomali ini Bimbing syarikat untuk menyesuaikannya strategi jualan. Semua data jualan disimpan dengan selamat dalam pangkalan data SQL. Dia berharap dapat mengekstrak dan menganalisis data dengan mudah melalui komunikasi bahasa semula jadi dengan pembantu AI. Yang paling penting ialah hakikat bahawa dalam dunia jualan, anomali adalah unik, jadi dia berharap pembantu AI boleh menggunakan algoritma pengesanan anomali tersuai untuk menyelesaikan masalah ini. Berikut ialah rekod sembang antara Xiaoya dan pembantu AI (Rajah 1), menunjukkan interaksi antara mereka. Xiaoya: Hello, saya perlukan bantuan mengekstrak data jualan daripada pangkalan data dan menganalisisnya. Pembantu AI: OK, saya akan mengekstrak data yang sepadan daripada pangkalan data dengan segera. Saya akan membentangkan data yang diekstrak kepada anda kemudian untuk pengesahan. Xiaoya: Terima kasih banyak-banyak. (selepas beberapa lama) Pembantu AI: Saya telah mengekstrak data jualan daripada pangkalan data Berikut ialah gambaran keseluruhan data, sila sahkan. (Ikhtisar data yang dipaparkan oleh pembantu AI) Xiaoya: Data kelihatan baik, sila teruskan dengan pengesanan dan analisis anomali. AI Assistant: Faham. Saya akan melakukan analisis menggunakan algoritma pengesanan anomali tersuai kami dan menunjukkan kepada anda visualisasi intuitif secepat mungkin. (selepas beberapa lama) AI Assistant: Analisis selesai. Sila lihat hasil visualisasi berikut. (Pembantu AI memaparkan hasil visual) Xiaoya: Terima kasih banyak atas bantuan anda! Keputusan ini sangat berharga bagi saya. AI Assistant: Senang dapat membantu anda. Jika anda mempunyai sebarang soalan lanjut atau memerlukan analisis lanjut, sila beritahu saya. Xiaoya: Sudah tentu, terima kasih atas sokongan anda.

Rajah 1. Transkrip perbualan dalam contoh cerita

TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

Apakah kemahiran yang diperlukan untuk rangka kerja Ejen?

Melalui kisah Xiaoya yang disebutkan di atas, kami menyelesaikan beberapa keupayaan teras yang perlu ada pada rangka kerja Ejen:

1. Sokongan pemalam: Dalam cerita di atas, Ejen perlu mendapatkan data daripada pangkalan data dan kemudian menggunakan algoritma pengesanan anomali yang ditentukan. Untuk melaksanakan tugasan ini, pembantu pintar perlu dapat menentukan dan memanggil pemalam tersuai, seperti pemalam "query_database" dan pemalam "anomaly_detection".

2. Sokongan struktur data yang kaya: Ejen perlu memproses struktur data yang kompleks, seperti tatasusunan, matriks, data jadual, dll., untuk melaksanakan pemprosesan data lanjutan dengan lancar, seperti ramalan, pengelompokan, dsb. Tambahan pula, data ini harus dihantar dengan lancar antara pemalam yang berbeza. Walau bagaimanapun, kebanyakan rangka kerja Ejen sedia ada menukar hasil perantaraan analisis data kepada teks dalam Prompt, atau simpannya sebagai fail setempat dahulu dan kemudian bacanya apabila diperlukan. Walau bagaimanapun, amalan ini terdedah kepada ralat dan melebihi had perkataan Prompt.

3. Pelaksanaan stateful: Ejen selalunya perlu berinteraksi dengan pengguna untuk berbilang pusingan lelaran, dan menjana serta melaksanakan kod berdasarkan input pengguna. Oleh itu, keadaan pelaksanaan kod ini harus dikekalkan sepanjang sesi sehingga sesi tamat. . Sebagai contoh, dalam contoh di atas, memandangkan skema data dalam pangkalan data biasanya pelbagai, Ejen mesti terlebih dahulu mendapatkan maklumat skema data dan memahami lajur mana yang sesuai (dan mengesahkan dengan pengguna), dan kemudian lajur yang sepadan boleh diberi nama adalah input ke dalam algoritma pengesanan anomali.

5. Hasilkan kod sewenang-wenangnya: Kadangkala, pemalam yang dipratentukan tidak dapat memenuhi permintaan pengguna, dan Ejen sepatutnya dapat menjana kod untuk bertindak balas kepada keperluan sementara pengguna. Dalam contoh di atas, Ejen perlu menjana kod untuk menggambarkan anomali yang dikesan, dan proses ini dicapai tanpa bantuan mana-mana pemalam.

6. Mengintegrasikan pengetahuan domain: Ejen harus menyediakan penyelesaian yang sistematik untuk mengintegrasikan pengetahuan dalam bidang tertentu. Ini akan membantu LLM dengan perancangan yang lebih baik dan penggunaan alatan yang tepat, sekali gus menghasilkan hasil yang boleh dipercayai, terutamanya dalam senario yang disesuaikan dengan industri.

Mendedahkan seni bina teras TaskWeaverRajah 2 menunjukkan seni bina keseluruhan TaskWeaver, termasuk modul Perancang, Jurubahasa Kod dan Memori.

Perancang adalah seperti otak sistem Ia mempunyai dua tanggungjawab teras: 1) Buat perancangan, iaitu, bahagikan keperluan pengguna kepada subtugas, hantar subtugas ini kepada jurubahasa kod satu demi satu, dan gunakannya. sepanjang pelan Ia akan menyesuaikan sendiri pelan mengikut keperluan semasa proses pelaksanaan 2) Bertindak balas kepada pengguna, ia akan menukar hasil maklum balas jurubahasa kepada jawapan yang mudah difahami oleh pengguna dan menghantarnya kepada pengguna; .

Penterjemah kod terutamanya terdiri daripada dua komponen: penjana kod (Penjana Kod) akan menerima subtugas yang dihantar oleh perancang, dan menggabungkan pemalam sedia ada dan contoh tugas khusus domain untuk menjana blok kod yang sepadan ; Pelaksana Kod bertanggungjawab untuk melaksanakan kod yang dijana dan mengekalkan status pelaksanaan sepanjang sesi. Oleh sebab itu, struktur data yang kompleks boleh dihantar dalam ingatan tanpa melalui gesaan atau sistem fail. Ia seperti pengaturcaraan dalam Python dalam Jupyter Notebook, di mana pengguna memasukkan coretan kod ke dalam sel, dan keadaan dalaman program dikekalkan semasa pelaksanaan berurutan dan boleh dirujuk oleh proses seterusnya. Dari segi pelaksanaan, dalam setiap sesi, pelaksana kod akan mempunyai proses Python bebas untuk melaksanakan kod, sekali gus menyokong berbilang pengguna pada masa yang sama.

Modul memori terutamanya menyimpan maklumat berguna semasa operasi keseluruhan sistem, seperti hasil pelaksanaan, dsb., dan boleh ditulis dan dibaca oleh modul yang berbeza. Memori jangka pendek terutamanya termasuk rekod komunikasi antara pengguna dan TaskWeaver dalam sesi semasa, serta rekod komunikasi antara modul. Memori jangka panjang termasuk pengetahuan domain yang boleh disesuaikan oleh pengguna terlebih dahulu, serta beberapa pengalaman yang diringkaskan semasa proses interaksi, dsb.

Rajah 2. Gambarajah keseluruhan seni bina TaskWeaver

Selain seni bina asas, TaskWeaver juga mempunyai banyak reka bentuk unik. Contohnya, pemampatan sesi mengurangkan saiz teks, membolehkan lebih banyak giliran perbualan dan pemilihan pemalam dinamik secara automatik memilih pemalam yang betul berdasarkan permintaan pengguna, membolehkan penyepaduan lebih banyak pemalam tersuai. Selain itu, TaskWeaver juga menyokong fungsi penjimatan pengalaman, yang boleh dicetuskan oleh pengguna yang memasukkan arahan semasa penggunaan Ia akan meringkaskan pengalaman dan pelajaran pengguna dalam sesi semasa, mengelakkan kesilapan berulang dalam sesi seterusnya dan mencapai pemperibadian sebenar. Dari segi keselamatan, TaskWeaver juga direka bentuk dengan teliti Sebagai contoh, pengguna boleh menentukan senarai putih modul Python Jika modul rujukan kod yang dihasilkan di luar senarai putih, ralat akan dicetuskan, dengan itu mengurangkan risiko keselamatan.

Proses khusus TaskWeaver

Rajah 3 menunjukkan kepada kita sebahagian daripada proses TaskWeaver menyelesaikan tugasan sampel yang disebutkan di atas.

Pertama, perancang menerima input daripada pengguna dan menjana pelan khusus berdasarkan penerangan fungsi setiap modul dan contoh perancangan. Pelan ini mengandungi empat subtugas, yang pertama adalah untuk mengekstrak data daripada pangkalan data dan menerangkan skema data.

Penjana kod kemudian menjana sekeping kod berdasarkan perihalan keupayaannya dan takrifan semua pemalam yang berkaitan. Kod ini memanggil pemalam sql_pull_data untuk menyimpan data ke dalam DataFrame dan memberikan penerangan tentang skema data.

Akhir sekali, kod yang dijana akan dihantar kepada pelaksana kod untuk pelaksanaan, dan keputusan yang lengkap akan dihantar kepada perancang untuk mengemas kini pelan atau meneruskan ke subtugas seterusnya. Keputusan pelaksanaan dalam rajah menunjukkan terdapat dua lajur dalam DataFrame iaitu tarikh dan nilai. Perancang boleh mengesahkan lagi dengan pengguna sama ada lajur ini betul atau terus ke langkah seterusnya untuk memanggil pemalam anomaly_detection.

TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

Rajah 3. Aliran kerja dalaman TaskWeaver

Bagaimana untuk menyuntik pengetahuan domain ke dalam TaskWeaver?

Dalam aplikasi model besar, tujuan utama menyepadukan pengetahuan khusus domain adalah untuk meningkatkan prestasi generalisasi LLM dalam penyesuaian industri. TaskWeaver menyediakan tiga kaedah menyuntik pengetahuan domain ke dalam model:

  • Penyesuaian menggunakan pemalam: Pengguna boleh menyepadukan pengetahuan domain dalam bentuk pemalam tersuai. Pemalam boleh datang dalam pelbagai bentuk, seperti memanggil API, mengambil data daripada pangkalan data tertentu atau menjalankan algoritma atau model pembelajaran mesin tertentu. Penyesuaian pemalam adalah agak mudah Anda hanya perlu memberikan maklumat asas tentang pemalam (termasuk nama pemalam, penerangan fungsi, parameter input dan nilai pulangan) dan pelaksanaan Python.
  • Sesuaikan menggunakan contoh: TaskWeaver juga menyediakan pengguna dengan antara muka yang sistematik (dalam format YAML) untuk mengkonfigurasi contoh untuk mengajar LLM cara bertindak balas kepada permintaan pengguna. Secara khusus, contoh boleh dibahagikan kepada dua jenis, digunakan untuk perancangan dalam perancang dan pengaturcaraan kod dalam penjana kod.
  • Penjimatan Pengalaman: TaskWeaver menyokong pengguna untuk meringkaskan dan menyimpan proses sesi semasa sebagai ingatan jangka panjang. Pengguna boleh "mengajar" TaskWeaver pengetahuan domain mereka sebagai perbualan dan kemudian menyimpan perbualan sebagai pengalaman. Dalam proses penggunaan seterusnya, anda boleh memuatkan pengalaman secara dinamik untuk menyelesaikan masalah bidang profesional dengan lebih baik.

Bagaimana untuk menggunakan TaskWeaver?

Kod lengkap TaskWeaver kini menjadi sumber terbuka di GitHub. Pada masa ini, tiga penyelesaian disokong untuk digunakan, iaitu permulaan baris arahan, perkhidmatan web dan import dalam bentuk perpustakaan Python. Selepas pemasangan mudah, pengguna hanya perlu mengkonfigurasi beberapa parameter utama, seperti alamat API LLM, kunci dan nama model, untuk memulakan perkhidmatan TaskWeaver dengan mudah.

TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

Rajah 4. Antara muka permulaan baris arahan

TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang

Rajah 5. Contoh menjalankan TaskWeaver

TaskWeaver ialah penyelesaian rangka kerja Ejen baharu yang direka untuk memenuhi keperluan analisis data dan senario penyesuaian industri. Dengan menukar bahasa pengguna kepada bahasa pengaturcaraan, "bercakap dengan data" tidak lagi menjadi mimpi, tetapi menjadi kenyataan.

Atas ialah kandungan terperinci TaskWeaver: rangka kerja sumber terbuka yang memudahkan analisis data dan penyesuaian industri untuk membina penyelesaian Agen yang cemerlang. 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