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.
Laman utama projek: https://microsoft.github.io/TaskWeaver/
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
Apakah kemahiran yang diperlukan untuk 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.
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.
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.
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:
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.
Rajah 4. Antara muka permulaan baris arahan
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!