Radient เป็นไลบรารีที่เป็นมิตรกับนักพัฒนาที่มีน้ำหนักเบาสำหรับข้อมูลที่ไม่มีโครงสร้าง ETL, IE Turning Audio, กราฟ, รูปภาพ, โมเลกุล, ข้อความและประเภทข้อมูลอื่น ๆ ลงใน Embeddings Radient รองรับเวกเตอร์แบบง่าย ๆ เช่นเดียวกับเวิร์กโฟลว์เวกเตอร์ที่ซับซ้อนเป็นศูนย์กลาง
$ pip install radientหากคุณพบว่าโครงการนี้มีประโยชน์หรือน่าสนใจโปรดพิจารณาให้เป็นดารา
การทำให้เวกเตอร์ขั้นพื้นฐานสามารถทำได้ดังนี้:
from radient import text_vectorizer
vz = text_vectorizer ()
vz . vectorize ( "Hello, world!" )
# Vector([-3.21440510e-02, -5.10351397e-02, 3.69579718e-02, ...]) ตัวอย่างข้อมูลข้างต้น vectorizes สตริง "Hello, world!" การใช้โมเดลเริ่มต้นคือ bge-small-en-v1.5 จาก sentence-transformers หากสภาพแวดล้อม Python ของคุณไม่มีไลบรารี sentence-transformers Radient จะแจ้งให้คุณทราบ:
vz = text_vectorizer ()
# Vectorizer requires sentence-transformers. Install? [Y/n]คุณสามารถพิมพ์ "y" เพื่อให้มีการติดตั้ง Radient ให้คุณโดยอัตโนมัติ
เวกเตอร์แต่ละคนสามารถใช้พารามิเตอร์ method พร้อมกับอาร์กิวเมนต์คำหลักที่เป็นตัวเลือกซึ่งส่งผ่านโดยตรงไปยังไลบรารี vectorization พื้นฐาน ตัวอย่างเช่นเราสามารถเลือกโมเดล mxbai-embed-large-v1 ของ MXBAI โดยใช้ไลบรารี sentence-transformers ผ่าน::
vz_mbai = text_vectorizer ( method = "sentence-transformers" , model_name_or_path = "mixedbread-ai/mxbai-embed-large-v1" )
vz_mbai . vectorize ( "Hello, world!" )
# Vector([ 0.01729078, 0.04468533, 0.00055427, ...])ด้วย Radient คุณไม่ได้ จำกัด เฉพาะข้อความ เสียงกราฟรูปภาพและโมเลกุลสามารถนำไปใช้เวกเตอร์ได้เช่นกัน:
from radient import (
audio_vectorizer ,
graph_vectorizer ,
image_vectorizer ,
molecule_vectorizer ,
)
avec = audio_vectorizer (). vectorize ( str ( Path . home () / "audio.wav" ))
gvec = graph_vectorizer (). vectorize ( nx . karate_club_graph ())
ivec = image_vectorizer (). vectorize ( str ( Path . home () / "image.jpg" ))
mvec = molecule_vectorizer (). vectorize ( "O=C=O" )รายการบางส่วนของวิธีการและ kwargs เสริมที่สนับสนุนโดยแต่ละวิธีสามารถพบได้ที่นี่
สำหรับกรณีการใช้งานการผลิตที่มีข้อมูลจำนวนมากประสิทธิภาพเป็นกุญแจสำคัญ Radient ยังให้ฟังก์ชั่น accelerate เพื่อเพิ่มประสิทธิภาพ vectorizers on-the-fly:
import numpy as np
vz = text_vectorizer ()
vec0 = vz . vectorize ( "Hello, world!" )
vz . accelerate ()
vec1 = vz . vectorize ( "Hello, world!" )
np . allclose ( vec0 , vec1 )
# Trueบน Intel Core i7 2.3 GHz quad-core, vectorizer ดั้งเดิมกลับมาเป็น ~ 32ms ในขณะที่ vectorizer เร่งกลับมาเป็น ~ 17ms
นอกเหนือจากการทดลองใช้เวกเตอร์บริสุทธิ์ไม่มีประโยชน์อย่างยิ่ง การทำมิเรอร์ข้อมูล ETL Data ETL, ปริมาณงานที่ไม่มีโครงสร้างของ ETL Workloads มักจะต้องมีการรวมกันของส่วนประกอบสี่ส่วน: แหล่ง ข้อมูล ที่เก็บข้อมูลที่ไม่มีโครงสร้างจะถูกเก็บไว้อีกหนึ่ง โมดูล แปลง ที่ดำเนินการแปลงข้อมูลและการประมวลผลล่วงหน้า
Radient จัดเตรียมวัตถุ Workflow โดยเฉพาะสำหรับการสร้างแอพพลิเคชั่น ETL แบบเวกเตอร์เป็นศูนย์กลาง ด้วยเวิร์กโฟลว์คุณสามารถรวมจำนวนส่วนประกอบเหล่านี้เข้าด้วยกันเป็นกราฟโดยตรง ตัวอย่างเช่นเวิร์กโฟลว์เพื่ออ่านเอกสารข้อความอย่างต่อเนื่องจาก Google Drive, Vectorize ด้วย Voyage AI และ vectorize พวกเขาเป็น Milvus อาจมีลักษณะ::
from radient import make_operator
from radient import Workflow
extract = make_operator ( "source" , method = "google-drive" , task_params = { "folder" : "My Files" })
transform = make_operator ( "transform" , method = "read-text" , task_params = {})
vectorize = make_operator ( "vectorizer" , method = "voyage-ai" , modality = "text" , task_params = {})
load = make_operator ( "sink" , method = "milvus" , task_params = { "operation" : "insert" })
wf = (
Workflow ()
. add ( extract , name = "extract" )
. add ( transform , name = "transform" )
. add ( vectorize , name = "vectorize" )
. add ( load , name = "load" )
) คุณสามารถใช้ vectorizers เร่งความเร็วและแปลงในเวิร์กโฟลว์โดยการระบุ accelerate=True สำหรับผู้ให้บริการที่ได้รับการสนับสนุนทั้งหมด
Radient สร้างผลงานจากชุมชน ML ที่กว้างขึ้น vectorizers ส่วนใหญ่มาจากห้องสมุดอื่น ๆ :
การเร่งความเร็วแบบจำลองแบบ-บินผ่าน ONNX
ขอบคุณมากสำหรับผู้สร้างและผู้ดูแลห้องสมุดเหล่านี้
คุณสมบัติสองอย่างที่กำหนดไว้สำหรับระยะสั้น (หวังว่า):
ตัวเชื่อมต่อ LLM จะไม่ เป็นคุณสมบัติที่ Radient มีให้ การสร้างระบบที่ตระหนักถึงบริบทรอบ LLM เป็นงานที่ซับซ้อนและไม่ใช่ระบบที่ Radient ตั้งใจจะแก้ปัญหา โครงการต่าง ๆ เช่น Haystack และ Llamaidex เป็นสองตัวเลือกที่ยอดเยี่ยมมากมายที่จะต้องพิจารณาหากคุณกำลังมองหาการสกัดประสิทธิภาพผ้าขี้ริ้วสูงสุด
การเขียนเต็มรูปแบบเกี่ยวกับเรดิโอจะมาในภายหลังพร้อมกับแอปพลิเคชันตัวอย่างเพิ่มเติมดังนั้นโปรดติดตาม