Heads up This site is currently under heavy development.
Subscribe Get it delivered — the daily firehose, filtered to the tools you run, plus the documentation changes vendors never announce. Compare plans →

The AI Toolchain — issue -407, December 21, 2021

THE AI TOOLCHAIN NO. -407
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED DECEMBER 21, 2021 · EVERY WEEKDAY
EDITIONS tail grep head diff uniq

The daily firehose — everything the toolchain shipped today, already filtered.

// HOW THIS ISSUE IS MADE

We read every release from the 174 tools on our watchlist at the source — GitHub and GitLab release notes, vendor release pages and changelogs, project blogs and feeds, vendor press releases, and the source code behind the tag. Bug-fix-only releases and non-product newsroom noise are dropped; what's left is summarized down to the new capability, how to try it, and any screenshots or videos the release itself published. Every entry links to the sources it was built from.

VIEW
ISSUE VIEW full issue
Do you prefer this view?
$ tct list   # 5 tools matched
AI & LLM Tooling
◆  AI Agent Frameworks

deepset Haystack

Sources Release notes → v1.0.0 NOTES

Haystack 1.0 adds Table QA, pipeline-level evaluation, per-node debug propagation, and standardized primitive objects.

└──▷ GET THIS VERSION
$ git clone --branch v1.0.0 https://github.com/deepset-ai/haystack.git
# already have the repo? check out this version:
$ git checkout v1.0.0
└──▷ USE IT
Run pipeline-level evaluation and print a summary report to identify whether your Retriever or Reader is the performance bottleneck.
python
eval_result = pipeline.eval(
    labels=labels,
    params={"Retriever": {"top_k": 5}},
)
metrics = eval_result.calculate_metrics()
pipeline.print_eval_report(eval_result)
Set up a Table QA pipeline to query structured table data using tri-encoder dense retrieval and TAPAS-based reading.
python
retriever = TableTextRetriever(
    document_store=document_store,
    query_embedding_model="deepset/bert-small-mm_retrieval-question_encoder",
    passage_embedding_model="deepset/bert-small-mm_retrieval-passage_encoder",
    table_embedding_model="deepset/bert-small-mm_retrieval-table_encoder",
    embed_meta_fields=["title", "section_title"]
)
reader = TableReader(
    model_name_or_path="google/tapas-base-finetuned-wtq",
    max_seq_len=512
)
  • New TableTextRetriever class enables dense retrieval over mixed text and table corpora using three transformer encoders (query_embedding_model, passage_embedding_model, table_embedding_model).
  • New TableReader class built on TAPAS performs Question Answering over table Document objects, returning single-cell answers or aggregation results; accepts model_name_or_path and max_seq_len arguments.
  • New Pipeline.eval() method accepts Label or MultiLabel objects and returns an EvaluationResult containing per-node, per-sample predictions in a Pandas DataFrame.
  • New EvaluationResult.calculate_metrics() method computes retrieval and reader metrics from a stored EvaluationResult.
  • New Pipeline.print_eval_report() method prints a human-readable summary of an EvaluationResult.
+4 moreshow less
  • Pipeline run() now accepts a top-level debug: True parameter that propagates each node's input and output into the pipeline result for inspection.
  • Introduces Document, Answer, Label, MultiLabel, and Span primitive classes as standardized inputs/outputs across all nodes, enabling IDE autocompletion and structured REST API responses.
  • New package layout exposes all Document Stores from haystack.document_stores, all node classes from haystack.nodes, all pipeline classes from haystack.pipelines, and utilities from haystack.utils.
  • FARM modeling code migrated into the new haystack/modeling package, removing the external FARM dependency.
└──▷ BREAKING ON UPGRADE
  • !The Document field text is renamed to content; code writing or reading doc['text'] or Document(text=...) must switch to content.
  • !Reader nodes now return Answer objects instead of plain dicts; code unpacking keys like answer['score'] or answer['probability'] must be updated to the Answer object structure.
  • !Label constructor argument question is renamed to query, and answer now requires an Answer object instead of a plain string.
  • !The /query REST API response field names for offsets have changed to match the new Answer primitive format; clients parsing offset fields from v0.x responses must be updated.
  • !Import paths are reorganized: haystack.document_store (singular) becomes haystack.document_stores (plural), and haystack.pipeline (singular) becomes haystack.pipelines (plural); old-style imports still work but are deprecated.
Was this useful?
◆  AI Model & Data Infrastructure

Microsoft ONNX Runtime

Sources Release notes → v1.10.0 NOTES

ONNX Runtime v1.10.0 adds TensorRT+CUDA in one GPU package, new WinML/DirectML APIs, Mac M1 Universal2 builds, and ARM64 Linux support.

└──▷ GET THIS VERSION
$ git clone --branch v1.10.0 https://github.com/microsoft/onnxruntime.git
# already have the repo? check out this version:
$ git checkout v1.10.0
└──▷ USE IT
Use the combined TensorRT+CUDA GPU package to run inference with TensorRT as the primary EP and CUDA as fallback — no separate TensorRT package install needed.
python
import onnxruntime as ort
sess = ort.InferenceSession('model.onnx', providers=['TensorrtExecutionProvider', 'CUDAExecutionProvider'])
result = sess.run(None, {'input': input_data})
Create an OrtValue backed by a D3D12 GPU resource via the new DirectML C-API extensions, enabling zero-copy interop between your DirectX pipeline and ONNX Runtime.
c
// Allocate a GPU buffer from an existing D3D12 resource
void* dml_alloc = DmlCreateGPUAllocationFromD3DResource(p_d3d12_resource);
// ... use dml_alloc as OrtValue memory ...
// Retrieve D3D12 resource back
ID3D12Resource* resource = DmlGetD3D12ResourceFromAllocation(allocator, dml_alloc);
// Free when done
DmlFreeGPUAllocation(dml_alloc);
  • Adds OrtSessionOptionsAppendExecutionProviderEx_DML, DmlCreateGPUAllocationFromD3DResource, DmlFreeGPUAllocation, and DmlGetD3D12ResourceFromAllocation WinML APIs to create OrtValues from Windows ID3D12Resource objects via DirectML EP-specific C-API extensions.
  • New C/C++ API to query the CUDA stream for launching custom kernels, enabling implicit synchronization between custom ops in shared libraries and ORT CUDA kernels.
  • Python InferenceSession now requires the providers parameter to be set explicitly when enabling non-default Execution Providers (e.g. providers=['CUDAExecutionProvider']).
  • Python GPU package (onnxruntime-gpu) now bundles both TensorrtExecutionProvider and CUDAExecutionProvider in a single install — EPs must be explicitly registered via the providers argument.
  • Added Mac M1 Universal2 build: a single binary that runs natively on both Apple Silicon and Intel-based Macs, included in official NuGet packages.
+14 moreshow less
  • NuGet package now supports ARM64 Linux C#.
  • Added Xamarin support to ORT C# NuGet packages, with iOS and Android binaries included in the native package.
  • ORT format models now carry a backwards compatibility guarantee.
  • Supports plug-in custom thread creation and join functions to enable usage of external threads.
  • Adds Optional type support from op set 15.
  • Introduced indirect Convolution method for QLinearConv with symmetrically quantized (int8, zero-point=0) filters on x64 (AVX2, AVXVNNI, AVX-512, AVX-512 VNNI) and ARM64, eliminating memcpy and per-pixel output-image sum computation.
  • Added transpose optimizer to push and cancel transpose ops, significantly improving performance for models requiring layout transformation.
  • DirectML EP updated from DirectML.dll 1.5.1 to 1.8.0, adding full-precision uint64/int64 support for 48 operators, 8D support for 7 additional operators, and DynamicQuantizeLinear op.
  • OpenVINO EP adds support for OpenVINO 2021.4.x, Auto Plugin, and IO Buffer/Copy Avoidance Optimizations for the GPU plugin.
  • DNNL EP adds Softmaxgrad, Transpose, Reshape, Pow, LeakyRelu, DynamicQuantizeLinear, Squeeze, and Unsqueeze ops.
  • TensorRT EP Python GPU packages now include TensorRT 8.0 support.
  • Web backend adds WebAssembly SIMD support for the qgemm kernel, accelerating quantized model inference.
  • Windows C API symbols are now uploaded to the Microsoft public symbol server.
  • Optimized WebAssembly bundle size to support WebAssembly-only or WebGL-only production scenarios.
└──▷ BREAKING ON UPGRADE
  • !InferenceSession now requires the providers parameter to be explicitly set when using any Execution Provider other than the default CPUExecutionProvider; omitting it will no longer silently activate other EPs.
  • !Python 3.6 support removed for Mac builds.
  • !Invalid allocator error code renamed to OrtInvalidAllocator in the C/C++ API.
  • !Every item in OrtCudnnConvAlgoSearch has been updated to a safer global name.
Was this useful?

NVIDIA Triton Inference Server

Sources Release notes → v2.17.0 NOTES

Triton v2.17.0 adds MLflow deployment, TorchTRT model support, Neuron Runtime 2.x for Inferentia, and ONNX Runtime 1.10.0.

└──▷ GET THIS VERSION
$ git clone --branch v2.17.0 https://github.com/triton-inference-server/server.git
# already have the repo? check out this version:
$ git checkout v2.17.0
└──▷ TRY IT
Run Triton on Jetson with an explicit backend directory and TensorFlow 2.x, using the new JetPack 4.6 release.
$ tritonserver --model-repository=/path/to/model_repo --backend-directory=/path/to/tritonserver/backends --backend-config=tensorflow,version=2
  • Adds MLflow plugin at deploy/mlflow-triton-plugin to deploy MLflow models directly to Triton.
  • Supports TorchTRT (preview): PyTorch models optimized with TensorRT can now be loaded the same way as regular TorchScript models.
  • Upgrades ONNX Runtime backend to version 1.10.0 on both Ubuntu and Windows builds of Triton.
  • Improves Inferentia support to use Neuron Runtime 2.x and enables multiple model instances.
  • Adds end-of-phase example command-line output in Model Analyzer to guide users through the next analysis phase.
+2 moreshow less
  • Expands Windows alpha support: HTTP/REST and GRPC endpoints are now available alongside ONNX Runtime 1.10.0 (CPU, CUDA, TensorRT execution providers) and OpenVINO 2021.2.
  • Jetson JetPack 4.6 release adds support for TensorFlow 2.6.0, TensorFlow 1.15.5, TensorRT 8.0.1.6, and ONNX Runtime 1.10.0, including ensemble models.
└──▷ BREAKING ON UPGRADE
  • !The byte_contents field in the GRPC protobuf implementation is renamed to bytes_contents; client code using byte_contents must be updated.
Was this useful?
◆  AI Coding Agents

Zed

Sources Release notes → v0.10 NOTES

Zed v0.10 adds markdown syntax highlighting and a keyboard-triggered journaling shortcut.

└──▷ GET THIS VERSION
$ git clone --branch v0.10 https://github.com/zed-industries/zed.git
# already have the repo? check out this version:
$ git checkout v0.10
  • Pressing ctrl-alt-cmd-j creates and opens a new dated journal file at ~/journal/$year/$month/$day.md, pre-populated with a markdown heading containing the current time.
  • Adds basic syntax highlighting for Markdown files.
Was this useful?
Other / Uncategorized
◆  VECTOR DB RAG

Weaviate

Sources Release notes → v1.9.0 NOTES

Weaviate v1.9.0 introduces the multi2vec-clip module for multi-modal image+text vectorization in a single vector space.

└──▷ GET THIS VERSION
$ git clone --branch v1.9.0 https://github.com/weaviate/weaviate.git
# already have the repo? check out this version:
$ git checkout v1.9.0
└──▷ TRY IT
Create a CLIP-vectorized class that embeds both image and text fields, weighting text at 70% and images at 30%, to enable cross-modal search.
$ curl -X POST http://localhost:8080/v1/schema -H 'Content-Type: application/json' -d '{
  "class": "ClipExample",
  "vectorizer": "multi2vec-clip",
  "vectorIndexType": "hnsw",
  "moduleConfig": {
    "multi2vec-clip": {
      "imageFields": ["image"],
      "textFields": ["name"],
      "weights": {
        "textFields": [0.7],
        "imageFields": [0.3]
      }
    }
  },
  "properties": [
    {"dataType": ["string"], "name": "name"},
    {"dataType": ["blob"], "name": "image"}
  ]
}'
  • Adds the multi2vec-clip module (set via vectorizer: multi2vec-clip and moduleConfig.multi2vec-clip) enabling multi-modal vectorization of image (blob) and text/string fields within a single shared vector space, with optional per-field weighting via weights.imageFields and weights.textFields.
  • Adds nearImage search alongside nearText search in the multi2vec-clip module, supporting cross-modal queries such as text search over image-only content.
  • Supports base64-encoded image ingestion via blob-typed properties when using the multi2vec-clip module.
Was this useful?
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →