Ny famolavolana ny data pipeline amin'ny fanadihadiana: Text to Structured Entities in milliseconds. Rehefa mamolavola ny Ny iray amin'ireo fepetra fototra izay niatrika ahy dia ny "Inference Tax" - ny fanapahan-kevitra momba ny fitokisana ny fitokisana amin'ny Big, monolithic Large Language Models (LLMs) mba hanatanterahana asa tsy mbola natao tsara kokoa. FogAI Ao amin'ny rafitra naiva, ny mpandraharaha dia mety hanara-maso ny rakitsoratra rava na ny fifanakalozan-kevitra amin'ny endrika 7B na 8B miaraka amin'ny fangatahana toy izany. "Extract all the field units, locations, and timestamps from the following text." Misy olana roa mazava amin'ity fomba ity ho an'ny Edge AI: The Inference Tax: Ny fanatanterahana tsotra amin'ny 8B parameters dia mivoaka ny bateria, mameno ny VRAM, ary mametraka ny fahatarana (300ms + isaky ny fanontaniana) fotsiny mba hiverina amin'ny taratasy JSON. Hallucinations: LLMs dia generative. izy ireo mieritreritra izay token tonga manaraka, izay mitarika amin'ny tsy fitovian-kevitra ara-dalàna sy ny orinasa voajanahary. Mba hamaha izany amin'ny FogAi, dia nanatanteraka Ny fampiasana ny modely (194M parameters). mihazakazaka amin'ny , ity lavenona ity dia manapaka ny fahasamihafana eo amin'ny fehezan-teny voajanahary sy ny angon-drakitra voajanahary - izay rehetra tsy misy Python iray. Knowledge Extraction Layer knowledgator/gliner-bi-base-v2.0 MNN Indro ny fametrahana ny fametrahana ny haingam-pandeha amin'ny fomba ahazoako ny haingam-pandeha amin'ny "magic". Ny fivoaran'ny Bi-Encoder Ny modely NER mahazatra dia mitaky anao mba hanamarina mialoha ny vondrona (ohatra, Ny Ny ) nandritra ny fampiofanana. Amin'ny fotoana izay mila entity manokana toy ny Ary Ny modely dia mivoaka. PERSON ORG LOC WELDING DEFECT RADIO FREQUENCY Ny GLiNER (Generalist and Lightweight Named Entity Recognition) dia mamaha izany amin'ny fampiasana Izany dia fizika mizara ny dingana encoding eo afovoan'ny: Bi-Encoder Architecture Ny Text Encoder: Mamorona fitehirizana ara-tsosialy mahery vaika ho an'ny lahatsoratra voatondro. Ny Label Encoder: Mamorona embeddings ho an'ny lisitry ny olona tianao hahita. Nahoana ity fizarana ara-panorenana ity no fanapahan-kevitra ho an'ny Edge? Caching. Ao amin'ny node edge izay manara-maso ny angon-drakitra ao amin'ny toerana misy anao, ny marika tianao (ohatra, ) matetika miova avy amin'ny millisecond amin'ny millisecond. satria ny Text sy ny Label encoders dia miovaova, . ['worker', 'forklift', 'safety_vest', 'pallet'] FogAi caches the Label Embeddings in RAM Ho an'ny fivoaran'ny lahatsoratra vaovao tsirairay izay tonga, ny Gateway dia tsy maintsy manao afa-tsy ny Text Encoder. , raha toa ka mitady karazana entity 5 na 500 ianao. Constant-Time Inference Full Data Flow: Zero Python amin'ny ankapobeny FogAi dia mampiasa ny JNI sy ny gRPC mba hanatanterahana mivantana ny MNN. Ny dingana asa dia tanteraka tsy misy Python be loatra: Raw Text Ingest -> Raw string dia tonga ao amin'ny Vert.x Gateway. JNI / C++ Hand-off -> Ny fehezan-dalana dia alefa mivantana amin'ny alàlan'ny buffers fametrahana. MNN Text Encoder -> Ny gliner-bi-base-v2.0 ONNX grafika dia atao amin'ny alalan'ny MNN runtime (izay feno haingana ho an'ny Edge CPU sy NPUs). Vector Dot Product -> Ny C++ Engine dia manangona matriksa tsotra momba ny fahasamihafana amin'ny Product Dot eo amin'ny Text Embeddings vaovao sy ny Label Embeddings mialoha. Structured Output -> Ny lozam-pahasalamana JSON madio izay ahitana ny habetsaky ny marika dia alefa any amin'ny router ao anatin'ny < 50 milliseconds. Izany rehetra izany dia mitranga raha tsy misy ny angon-drakitra miditra amin'ny rahona. Benchmarking ny fanondranana hetra Benchmarking ny fanondranana hetra: Modely telo ao amin'ny ring Tsy nisafidy fotsiny aho ny “Fitomboan'ny Fandoavam-bola” – dia namaritra izany izahay. Ny taratasy avy amin'ny amin'ny repository, dia namorona script benchmarking amin'ny Python aho Avy amin'ny teny mahazatra izany. pycompare FogAi ['animal', 'location', 'time', 'date'] Aoka isika hijery ireo mpifaninana telo ao amin'ny ring: Ny Heavyweight (General LLM): Qwen2.5-0.5B-Instruct Ny Specialized Heavyweight: numind / NuExtract-1.5 (ny LLM amin'ny famokarana tsara) Ny Agile Bi-Encoder (FogAi ny milina): GLiNER-194M Indreto ny angon-drakitra empirical: Ny mpandray anjara amin'ny fandaharam-potoana ( ) pycompare/test_llm_perf.py Sary avy amin'ny Qwen2.5-0.5B-Instruct Sary avy amin'ny Generative Causal LM Token'ny fidirana avy hatrany: 53 Ny vokatra azo avy amin'ny token: 100 Total Inference Time: 3,524.42 ms (Eny, 3.5 segondra) Ny fametrahana RAM dia 1.116.77 MB. Ny vokatr'izany: Ny LLM dia nampahatsiahy, nanala loharanom-boky JSON izay tsy nahita ny "fehin-kazo" sy ny "vavy lazy" tanteraka, manaraka ny 50 token avy amin'ny monologu anatiny tsy nangatahana momba ny fomba hanolotra ny olona. Ny LLM manokana (NuExtract 1.5) Modely: ny numind / NuExtract-1.5 Architecture: Generative Causal LM (Fine-tuned ho an'ny JSON famerenana) Tokens amin'ny fidirana haingana: 55 Ny vokatra azo avy amin'ny token: 30 Total Inference fotoana: ~1,200.00 ms RAM Fotsy: ~1,200.00 MB Ny vokatra: Ny fanesorana marina ny entity ao amin'ny format JSON tsara, fa mbola mijaly amin'ny famokarana token autoregressive. Izy io dia haingana kokoa noho ny Qwen satria miteraka fahatsapana kely kokoa, mamokatra token fidirana kely kokoa, fa mbola mitaky herinandro. Amin'ny ankapobeny, ny fametrahana ny tranonkala ho an'ny mpampiasa tranonkala ( ) pycompare/test_gliner_perf.py Sary avy amin'ny Knowledgator/gliner-bi-base-v2.0 Sary avy amin'ny Bi-Encoder Manodidina ny token entana: 22 (Text + Labels) Total Inference Time (Python) : 50.83 ms Total Inference Time (JNI / C++ Web Gateway): ~750.00 ms (Anisan'izany ny fametrahana HTTP, ny filaharana, ary ny memcopy avy amin'ny vondrona) Ny fametrahana ny RAM dia 824.11 MB. Ny vokatr'izany dia ny famokarana mazava sy tsara tarehy amin'ny {animal: "fast brown fox", toerana: "New York", fotoana: "5 PM", daty: "Monday"}. Ny Fitsarana: Ny embeddings dia ny ran'ny vektor databases Amin'ny alàlan'ny fanesorana ny Knowledge Extraction amin'ny GLiNER, ny FogAi dia manamaivana ny pipeline hatramin'ny (3500ms vs 50ms amin'ny fanatanterahana voajanahary) raha oharina amin'ny LLM ankapobeny, ary mihoatra noho ny LLM amin'ny fanatanterahana tsara (ohatra NuExtract) amin'ny alalan'ny fanesorana tanteraka ny fihenjanana amin'ny fihenjanana. 6,800% Na izany aza, ny famonoan-tena dia ny antsasaky ny ady. How do we deploy it? Ny Gateway Integration Test: Testing ny Topology tsirairay (Nodes A, B, ary C) Ao amin'ny famolavolana FogAi, nanorina topologies telo samihafa mba hanandrana ny integration ny GLiNER aho. Type A (In-Process JNI): Manatanteraka GLiNER mazava amin'ny C++ amin'ny alàlan'ny fidirana mivantana amin'ny fahatsiarovana (off-heap memory buffers) ao anatin'ny JVM mitovy amin'ny Vert.x API Gateway. Type B (Out-of-Process C++ gRPC): Manatanteraka GLiNER amin'ny C++ microservice tsy miankina (mampiasa ny MNN na ONNX runtime) ary mifandray amin'ny Gateway amin'ny HTTP/2. Type C (Out-of-Process Python gRPC): Mandeha GLiNER amin'ny gRPC microservice Standard mifototra amin'ny Python amin'ny fampiasana ny ONNX runtime. Rehefa nanandrana ny lozam-pifamoivoizana rehetra telo amin'ny alàlan'ny Vert.x API Gateway aho, ny vokatra dia mazava: Averaged per request under load. The combined overhead of Protobuf serialization, inter-process HTTP/2 networking, and the crushing weight of the Python Global Interpreter Lock (GIL) created a massive bottleneck. Type C (Out-of-Process Python gRPC): 3,200 ms - 4,500 ms Averaged per request under load. Even with a hyper-optimized C++ backend, the overhead of Protobuf serialization/deserialization and inter-process HTTP/2 networking created a massive bottleneck. Under stress tests ( ), the network stack overhead resulted in queue pileups for a model that normally takes 50ms to run natively. Type B (Out-of-Process C++ gRPC): 1,250 ms - 2,100 ms test_integration.sh Sustained end-to-end latency the HTTP Web Gateway routing, EDF queueing, Type A (In-Process JNI): ~750.00 ms including the "Vanilla" safety checks, and memory mapping. The direct off-heap C++ memory handoff bypassed the networking and serialization layer entirely. Amin'ny famoahana ny GLiNER amin'ny endriky ny Type A ao anatin'ny MNN, dia Hahazo fidirana amin'ny fidirana amin'ny sehatry ny fifandraisana amin'ireo olona ireo mandritra ny fidirana mialoha. Ny Generative LLM dia tsy manome fidirana token ho an'ny fidirana amin'ny tahirin-kevitra tsy misy modely fidirana faharoa. Raha manao izany mivantana amin'ny JNI alohan'ny fandefasana ny angon-drakitra any amin'ny rahona dia manome ahy ny fahafahana : Azoko avy hatrany ny famoronana Temporal Knowledge Graphs avy amin'ny fanodinana voajanahary voajanahary ao amin'ny sehatra. maimaim-poana amin'ny karama unfair advantage Mifantoka amin'ny LLMs ho an'ny lokalized Knowledge Extraction amin'ny end node dia fanararaotana fitaovana. Izaho dia manorina pipelines, fa tsy chatbots. Ny famindrana ny GLiNER amin'ny C++ MNN Mba hahatratra ireo haingam-pandeha JNI tsy misy Python, tsy maintsy manova ny modely HuggingFace GLiNER amin'ny MNN Manodidina ireo bugs amin'ny fanaraha-maso ny endrika ONNX ao amin'ny dikan'ny PyTorch vaovao aho amin'ny alàlan'ny fanangonana ny lafiny ONNX mivantana avy amin'ny HuggingFace, ary mampiasa . .mnn MNNConvert Izaho dia nanome ity script conversion marina ity ao amin'ny Ao amin'ny Repository scripts/convert_gliner_to_mnn.sh #!/bin/bash ONNX_MODEL="models_onnx/gliner-bi-v2/onnx/model.onnx" MNN_DIR="models_mnn/gliner-bi-v2" mnnconvert -f ONNX --modelFile "$ONNX_MODEL" --MNNModel "$MNN_DIR/model.mnn" --bizCode MNN copy models_onnx/gliner-bi-v2/*.json "$MNN_DIR/" Tsidiho ny fahagagana ny tenanao Aza mandray ny teniko amin'izany. Azonao atao ny mihazakazaka ny valin'ny Python ao amin'ny solosainao. Clone ny FogAi repository, mankany amin'ny , ary mihazakazaka ny fitsapana mba hahita ny Inference Tax velona: pycompare git clone https://github.com/NickZt/FogAi.git cd FogAi python3 -m venv venv && source venv/bin/activate pip install psutil gliner transformers accelerate python3 pycompare/test_gliner_perf.py python3 pycompare/test_llm_perf.py Bonus: Plugging ny FogAi amin'ny Open WebUI Rehefa mivoaka avy amin'ny fantson-dranomasina ny Ny ), tsy mila manoratra code mpanjifa manokana ianao mba hifandray amin'izany. ny fametrahana ao amin'ny fametrahana izay mivezivezy amin'ny interface chat malaza manondro mivantana amin'ny Gateway. OpenAI-compatible API /v1/chat/completions docker-compose Ataovy azo antoka fa misy Docker napetraka ao amin'ny solosainao. Mandeha any amin'ny directory UI ary manomboka ny serivisy: cd UI docker-compose up -d Open your browser and start chatting: : Open WebUI http://localhost:3000 : (Password is simply ) Lobe Chat http://localhost:3210 fogai Ny fifandraisana dia ho avy hatrany amin'ny , mahita ny modely MNN sy ONNX mihazakazaka, ary avelao hiantso azy ireo tahaka ny mandeha ao amin'ny rahona. http://host.docker.internal:8080/v1