Saturday, September 12, 2026

What is front matter in open knowledge format

 Front matter is a block of metadata placed at the very top of a plain text file (typically Markdown). Delimited by triple dashes (---), it acts as machine-readable data that allows AI agents, search indexes, and static site generators to index, filter, and traverse knowledge without having to parse the main document body.

In the Open Knowledge Format (OKF)—the specification published by Google Cloud to package markdown knowledge bases into traversable graphs for AI agents—front matter is written in YAML format.

OKF Front Matter Structure

An OKF concept document requires a structured YAML block at the head of the file, followed by the Markdown body:

---
type: metric
title: Active Monthly Users
description: Count of unique authenticated users who performed at least one action in the last 30 days.
resource: bigquery://analytics_db.tables.user_events
tags:
  - analytics
  - user-growth
timestamp: 2026-06-12T00:00:00Z
status: active
---

Front Matter Fields Breakdown

The specification keeps front matter minimal and extensible. It makes a clear distinction between required, standard optional, and custom keys:

FieldRequirementPurposeExample
typeRequiredDefines the category of the knowledge node (e.g., metric, table, runbook, policy, api).type: metric
titleRecommendedHuman-readable title of the concept node.title: Revenue Definition
descriptionRecommendedConcise summary used by retrieval systems to gauge relevance.description: Core calculation method...
resourceOptionalExternal URI mapping to an underlying dataset, API, or DB table.resource: postgres://db/orders
tagsOptionalCategorization keywords for filtering.tags: [finance, quarter-1]
timestampOptionalProvenance date for tracking currency and staleness.timestamp: 2026-06-12
statusOptionalIndicates context validity (e.g., active, deprecated, draft).status: active

Key Properties

  • Extensibility: You can add custom key-value pairs (e.g., owner: "@data-team") without breaking OKF parsers; compliant tooling must tolerate unknown keys.
  • Decoupled Relationships: While general metadata lives in the front matter, links to other concepts are expressed directly in the Markdown body using standard Markdown links ([Orders Table](/entities/orders.md)), forming a traversable knowledge graph.

Open knowledge format link data tpes

 Open Knowledge (and Open Data) standards do not prescribe a single, rigid "typed link" syntax. Instead, typed links in open knowledge systems are implemented using Linked Data principles, specifically RDF (Resource Description Framework) triplets and established Web Ontologies.

Core Structure: RDF Triplets

In an open knowledge format, connections between data points are expressed as typed relationships using a Subject-Predicate-Object model:

  • Subject: The resource being described (e.g., Entity_A)
  • Predicate (Typed Link): The specific, defined relationship type (e.g., schema:knows or dcterms:creator)
  • Object: The target resource or literal value (e.g., Entity_B)

How Links Are Formally Typed

Rather than using generic hypertext links (<a href="...">), open knowledge frameworks map typed links to standardized Uniform Resource Identifiers (URIs).

MechanismDescriptionExample
Schema.orgStandard vocabulary for web-based structured data[http://schema.org/contributor](http://schema.org/contributor)
Dublin Core (DCTERMS)Common metadata standards for resources[http://purl.org/dc/terms/references](http://purl.org/dc/terms/references)
FOAF (Friend of a Friend)Links connecting people, organizations, and groups[http://xmlns.com/foaf/0.1/knows](http://xmlns.com/foaf/0.1/knows)
OWL / RDFSFormal ontology definitions expressing subclass and equivalency linksowl:sameAs, rdfs:subClassOf

Common Serializations

Open knowledge formats express these typed links using several common file types:

  • JSON-LD: Embeds structured, typed links inside standard JSON objects.
  • Turtle / N-Triples: Human-readable text formats designed specifically for RDF graphs.
  • Wikidata Statements: Open graph property links (e.g., P31 for "instance of", P279 for "subclass of").

Thursday, September 10, 2026

LLM-d infrastructure using Kubernetes

 Here is one of the best video tutorials for this

https://www.youtube.com/watch?v=hBzUokVYQkI

Wednesday, September 9, 2026

What is Perplexity Lily inference engine?

 


Perplexity Open Sources Lily: A Rust + Metal Inference Engine for Qwen3.6-35B-A3B on Apple Silicon

By Asif Razzaq -September 2, 2026

Perplexity has open sourced Lily, the local inference engine behind Hybrid Compute in Perplexity Computer. It is a single-process runtime: a Rust layer loads the checkpoint and drives the generation loop, an OpenAI-compatible chat-completions API streams tokens, and hand-written Metal kernels execute the model. Neither PyTorch nor MLX sits in the execution path. Lily is deliberately narrow with one model, Qwen3.6-35B-A3B, on one hardware family and that narrowness is the performance argument.


Is it deployable? Yes. A standalone demo is public in the pplx-garden repository. A Rust and Metal inference server offering greedy text generation through a minimal OpenAI-compatible HTTP API. The 4-bit checkpoint is 19.4 GB, so an Apple silicon Mac with 32 GB or more of unified memory is the realistic floor; Perplexity’s shipping Hybrid Compute product lists macOS 15+, 24 GB minimum and 32 GB for best results.



Why specialize at all?

The default Mac stack is MLX plus MLX-LM, which already ships a Qwen implementation with grouped expert work, a fused recurrent Metal kernel, and GQA-aware attention. But its operations must stay reusable across architectures. Lily gives that up and puts model structure, execution plans, and kernel selection in one runtime.


Three workload shapes

Qwen3.6-35B-A3B stores 35B parameters and activates roughly 3B per token. A router scores 256 experts and picks eight, alongside one shared expert that sees every token. It also mixes 10 full-attention layers using grouped-query attention (16 query heads, two KV heads) with 30 Gated DeltaNet layers. That yields three patterns: uneven expert groups, attention over a growing KV cache, and a fixed-size recurrence.


Prefill: keep weights packed, keep routing on the GPU

The checkpoint uses groupwise affine 4-bit quantization, every group of 64 weights sharing a bfloat16 scale and bias, about 70 GB of bfloat16 weights compressed to 19.4 GB. Metal 4 tensor operations consume bfloat16, so weights must be reconstructed first. Lily does that one tile at a time inside the grouped GEMM, holding results in threadgroup memory and accumulating in FP32, so the expanded array never reaches unified memory. In Perplexity’s ablation that fusion raised end-to-end prefill 77.4% at a 512-token prompt.


Keeping the routing histogram, prefix scan, scatter and block map inside a single GPU command buffer added 89% at 512 tokens by removing CPU synchronization inside each MoE layer. Moving from 16-row to 32-row tiles with four simdgroups added 13.2% at 2K; a register-resident Gated DeltaNet scan added 5.6%. Expert GEMMs are roughly 90% of prefill time. Long prompts run in bounded chunks so temporary activations do not compete with weights and cache for memory.


Decode: minimize bytes moved per token

Batch-1 decode has almost no weight reuse, so bandwidth sets the ceiling. One recorded step launched 795 kernels forming 555 sequential stages; Lily records real dependencies in a concurrent Metal pass so independent kernels overlap. The selected token is written straight into the next step’s GPU-resident input slot, removing a per-token CPU round trip, and four kernel chains are fused to keep intermediates in registers.


Coalesced cache reads lifted key bandwidth from 33.8 to 47.9 GB/s and value bandwidth from 42.0 to 61.8 GB/s. GQA packing, four query heads sharing one threadgroup so each KV row loads once, improved decode 23.8% at 32K. A fixed-block attention layout at 32K and above improved decode 7.7% at 32K, 27.4% at 64K, and 40.2% at 128K.


Results

On one 40-core, 128 GB M5 Max at batch 1, loading identical 4-bit checkpoint bytes against MLX-LM’s fastest direct-generation path across ten lengths from 256 to 128K tokens, Lily averaged 4,156 prefill tokens/s versus 3,388 (1.23x) and 170.0 decode tokens/s versus 126.4 (1.35x). At a 4K prompt and 4K context it reached 5,749.9 and 186.6 tokens/s against 4,737.5 and 140.9, and was faster at every recorded point: 1.12–1.42x prefill, 1.31–1.37x decode. A teacher-forced check across 192 positions put Lily’s perplexity 0.04% higher, with the same top-ranked token 96.35% of the time.


Tuesday, September 8, 2026

Google Proto sample file with Message and Service.

syntax = "proto3";


package library.v1;


import "google/protobuf/timestamp.proto";

import "google/protobuf/empty.proto";


option go_package = "github.com/example/library/v1;libraryv1";


// Service definition housing multiple RPC endpoints

service LibraryService {

  rpc GetBook (GetBookRequest) returns (Book);

  rpc ListBooks (google.protobuf.Empty) returns (ListBooksResponse);

  rpc CreateBook (CreateBookRequest) returns (Book);

}


// Data message definition for input requests

message GetBookRequest {

  string isbn = 1;

}


// Data message definition for book resources

message Book {

  string id = 1;

  string title = 2;

  string author = 3;

  int32 publication_year = 4;

  google.protobuf.Timestamp added_at = 5;

}


// Data message definition for creation requests

message CreateBookRequest {

  string title = 1;

  string author = 2;

  int32 publication_year = 3;

}


// Data message definition for collection responses

message ListBooksResponse {

  repeated Book books = 1;

}

What is Google Protobuf definition file?

 


A `.proto` file serves as the contract and Interface Definition Language (IDL) for gRPC, defining data structures (**messages**) and remote service endpoints (**services**) in a language-agnostic format.


**Why Proto Files Are Significant in gRPC**

Protocol buffers are the operational backbone of gRPC. Instead of relying on dynamic JSON payloads or ad-hoc REST endpoints, gRPC uses the `.proto` file to compile strongly-typed client stubs and server boilerplate code for dozens of programming languages, including Go, Java, Python, and C++. This ensures strict adherence to the API contract at compile time rather than runtime.


**Key Advantages of Using Proto Files**


* **High Performance:** Data is serialized into a compact binary format, resulting in smaller network payloads and significantly faster serialization and parsing speeds compared to text-based formats like JSON.

* **Language Agnosticism:** A service defined in a single `.proto` file can seamlessly connect a Python microservice to a Go backend or a C++ client without custom translation layers.

* **Backward and Forward Compatibility:** Because fields are identified by unique numeric tags rather than string names, you can safely add or deprecate fields without breaking legacy clients.

* **Automatic Code Generation:** Compiling tools like `protoc` eliminate manual network boilerplate writing, drastically reducing human error.


**Best Practices for Defining Proto Files**


* **Always use unique, immutable field numbers:** The numbers assigned to fields (e.g., `id = 1`) are permanent binary tags. Never change a field's number once deployed, and avoid reusing numbers of deleted fields; use the `reserved` keyword instead.

* **Optimize tag numbers 1 through 15:** Field numbers 1 through 15 take only one byte to encode. Assign your most frequently transmitted fields to these lower numbers to minimize wire size.

* **Adopt versioned package names:** Use structured naming conventions (e.g., `package demo.v1;`) to prevent naming collisions and manage breaking API changes cleanly over time.

* **Keep messages cohesive:** Avoid creating monolithic "god messages." Design granular, focused messages tailored to specific service actions to maintain clarity and reusability.

* **Leverage well-known types:** Utilize standard Google proto types (like `google.protobuf.Timestamp` or `google.protobuf.Empty`) instead of reinventing common data structures.

Monday, September 7, 2026

What is ConvertX

ConvertX is a free, open-source, self-hosted online file converter that you can deploy as a single Docker container. Developed by user C4illin on GitHub, it is designed to replace sketchy third-party file conversion websites, giving you 100% data privacy by processing all your files locally on your own server or computer. [1] (https://www.youtube.com/watch?v=3xQvxa7WGFc&t=54), [2] (https://daily.dev/posts/this-docker-container-converts-any-file-to-any-format-so-i-stopped-trusting-sketchy-websites-with-m-9ykzj06el), [3] (https://www.makeuseof.com/ditched-online-file-converters-for-a-docker-container-with-1000-formats/), [4] (https://www.youtube.com/watch?v=aqRr0cijPv0)The technical stack is built on TypeScript, Bun, and Elysia, ensuring the application is incredibly fast and lightweight. [1] (https://www.youtube.com/watch?v=0INt3gFFoEY), [2] (https://www.youtube.com/watch?v=3xQvxa7WGFc&t=54)


How It Works: "20 Engines in a Trenchcoat"Rather than writing conversion tools from scratch, ConvertX wraps over 20 well-known open-source backend conversion engines into a single unified graphical user interface (GUI). When you upload a file, ConvertX automatically passes it to the correct specialized tool: [1] (https://www.xda-developers.com/this-one-docker-container-converts-any-file-to-any-format/), [2] (https://www.makeuseof.com/ditched-online-file-converters-for-a-docker-container-with-1000-formats/), [3] (https://www.youtube.com/watch?v=3xQvxa7WGFc&t=54)🎬 FFmpeg: For high-speed audio and video conversions (e.g., MKV to MP4).🖼️ ImageMagick & GraphicsMagick: For handling complex images and vector assets.📄 LibreOffice & Pandoc: For text documents, spreadsheets, and LaTeX files.📚 Calibre: For e-book conversions.📐 Assimp: For 3D assets and modeling files.Other engines include Inkscape, libheif, Vips, XeLaTeX, Potrace, and Markitdown. [1] (https://www.makeuseof.com/ditched-online-file-converters-for-a-docker-container-with-1000-formats/), [2] (https://www.youtube.com/watch?v=3xQvxa7WGFc&t=54), [3] (https://www.youtube.com/watch?v=0INt3gFFoEY), [4] (https://daily.dev/posts/this-docker-container-converts-any-file-to-any-format-so-i-stopped-trusting-sketchy-websites-with-m-9ykzj06el), [5] (https://www.xda-developers.com/this-one-docker-container-converts-any-file-to-any-format/)Because it links all these engines together, it supports over 1,000 different format combinations