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 -419, December 18, 2020

THE AI TOOLCHAIN NO. -419
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED DECEMBER 18, 2020 · 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   # 4 tools matched
AI & LLM Tooling
◆  AI Agent Frameworks

deepset Haystack

Sources Release notes → v0.6.0 NOTES

Haystack v0.6.0 introduces DAG-based Pipelines, an OpenDistro DocumentStore, and new QA pipeline types including Generative and FAQ.

└──▷ GET THIS VERSION
$ git clone --branch v0.6.0 https://github.com/deepset-ai/haystack.git
# already have the repo? check out this version:
$ git checkout v0.6.0
└──▷ USE IT
Route incoming queries to different retrievers based on content type, then join and read — enabling conditional branching in a single pipeline.
python
from haystack.pipeline import Pipeline, JoinDocuments

class QueryClassifier:
    outgoing_edges = 2
    def run(self, **kwargs):
        if '?' in kwargs['query']:
            return (kwargs, 'output_1')
        else:
            return (kwargs, 'output_2')

pipe = Pipeline()
pipe.add_node(component=QueryClassifier(), name='QueryClassifier', inputs=['Query'])
pipe.add_node(component=es_retriever, name='ESRetriever', inputs=['QueryClassifier.output_1'])
pipe.add_node(component=dpr_retriever, name='DPRRetriever', inputs=['QueryClassifier.output_2'])
pipe.add_node(component=JoinDocuments(join_mode='concatenate'), name='JoinResults', inputs=['ESRetriever', 'DPRRetriever'])
pipe.add_node(component=reader, name='QAReader', inputs=['JoinResults'])
res = pipe.run(query='What did Einstein work on?', top_k_retriever=1)
Run a generative QA pipeline with minimal setup using the new default pipeline classes.
python
from haystack.pipeline import GenerativeQAPipeline

pipe = GenerativeQAPipeline(generator=rag_generator, retriever=retriever)
res = pipe.run(query='What causes aurora borealis?', top_k_retriever=3)
  • Adds Pipeline class with add_node(), run(), draw(), and set_node() methods for composing search pipelines as Directed Acyclic Graphs (DAGs) with Retrievers, Readers, Generators, and custom nodes.
  • Adds JoinDocuments(join_mode=...) node with score aggregation support to merge results from multiple Retrievers in a single Pipeline.
  • Adds ExtractiveQAPipeline, DocumentSearchPipeline, GenerativeQAPipeline, and FAQPipeline default pipeline classes in haystack.pipeline, replacing the deprecated Finder class.
  • Adds OpenDistroElasticsearchDocumentStore to support Open Distro / AWS-hosted Elasticsearch deployments.
  • Adds refresh_type parameter to ElasticsearchDocumentStore.update_embeddings().
+7 moreshow less
  • Adds return_embedding parameter to get_all_documents().
  • Adds update_existing_documents support to the SQL and FAISS DocumentStores.
  • Adds filters parameter to delete_all_documents().
  • Adds MAP (Mean Average Precision) retriever metric for open-domain evaluation.
  • Enables dynamic parameter updates for FARMReader at inference time.
  • Adds GPU support for the RAG generator.
  • Scales dot-product scores into probabilities in DocumentStore.
└──▷ BREAKING ON UPGRADE
  • !All question parameters are renamed to query across Readers, Retrievers, and other components (including the predict() methods of Readers); any code passing question= keyword arguments will break.
Was this useful?
◆  AI Model & Data Infrastructure

Microsoft ONNX Runtime

Sources Release notes → v1.6.0 NOTES

ONNX Runtime v1.6.0 adds opset 13, NNAPI Android acceleration, Apple Silicon support, new contrib ops, and expanded quantization.

└──▷ GET THIS VERSION
$ git clone --branch v1.6.0 https://github.com/microsoft/onnxruntime.git
# already have the repo? check out this version:
$ git checkout v1.6.0
  • Exposes AddInitializer API to share initializers between sessions, eliminating duplicate memory allocation when multiple sessions load models with common weights.
  • Adds Python binding for the OrtValue data structure, enabling allocation and management of CUDA device memory directly within ORT without third-party allocators.
  • Adds OrtValue instances as bindable inputs/outputs in the Python I/O Binding interface, including support for ORT-allocated device memory.
  • Adds new session option to disable denormal floating-point numbers on SSE3-capable CPUs, eliminating denormal-induced performance degradation without model retraining.
  • Adds support for ONNX 1.8 / opset 13.
+22 moreshow less
  • Adds new contrib ops: BiasSoftmax, MatMulIntegerToFloat, QLinearSigmoid, Trilu.
  • Adds LongformerAttention CUDA operator for Longformer transformer model optimization.
  • ORT Mobile now supports NNAPI for accelerating model execution on Android devices.
  • Adds build support for Mac with Apple Silicon (CPU only).
  • Adds support for loading sparse tensor initializers in pruned models.
  • Adds support for setting execution priority of individual nodes.
  • Adds support for selection of cuDNN convolution algorithms.
  • Adds BERT model profiling tool at onnxruntime/python/tools/transformers/profiler.py.
  • Python optimizer adds support for additional transformer model families: openai-GPT, ALBERT, and FlauBERT.
  • Adds TensorRT EP experimental Int8 quantization support.
  • Adds per-channel QuantizeLinear and DeQuantizeLinear quantization support.
  • Adds LSTM quantization support.
  • Adds CNN quantization optimizations including u8s8 support and NHWC transformer in QLinearConv.
  • Adds C# support for float16 and bfloat16 data types.
  • DNNL EP updated from version 1.1.1 to 1.7.
  • NNAPI EP adds support for CNN models and additional operators: Resize, Flatten, Clip.
  • OpenVINO EP updated to OpenVINO 2021.1 with added multi-threaded inferencing, fp16 input type, multi-device plugin, hetero plugin, shared library build, and ARM64 build support.
  • DirectML EP updated from 1.3.0 to 1.4.0, now using the standalone DirectML NuGet package Microsoft.AI.DirectML.
  • Windows ML NuGet package now supports UWP applications targeting Windows Store deployment for both CPU and GPU.
  • Windows ML gains ability to bind IIterable<Buffers> as inputs and outputs and to create Tensor* via multiple buffers.
  • NoOpenMP build of ONNX Runtime now available on NuGet (Microsoft.ML.OnnxRuntime.NoOpenMP) and PyPI (onnxruntime) for C/C++/C#/Python users.
  • Removes nGraph EP; OpenVINO EP is the recommended replacement.
└──▷ BREAKING ON UPGRADE
  • !The destructor of OrtEnv is now non-trivial and may perform DLL unloading — calling ReleaseEnv from DllMain or placing OrtEnv in global variables is no longer safe.
  • !The nGraph EP has been removed; users must migrate to the OpenVINO EP.
Was this useful?

NVIDIA Triton Inference Server

Sources Release notes → v2.6.0 NOTES

Triton 2.6.0 adds alpha Windows support, Model Analyzer, and a reorganized SDK container with renamed image tags.

└──▷ GET THIS VERSION
$ git clone --branch v2.6.0 https://github.com/triton-inference-server/server.git
# already have the repo? check out this version:
$ git checkout v2.6.0
└──▷ TRY IT
Run Triton on a Jetson device with an explicit backend directory and TensorFlow 2.x selected — required when the default backend path or TF version is not appropriate.
$ tritonserver --model-repository=/path/to/model_repo --backend-directory=/path/to/tritonserver/backends --backend-config=tensorflow,version=2
Install the Python client library on a Jetson JetPack 4.4 system from the bundled wheel included in the release tarball.
$ python3 -m pip install --upgrade clients/python/tritonclient-2.6.0-py3-none-linux_aarch64.whl[all]
  • Renames the *-py3-clientsdk container to *-py3-sdk; the renamed image now bundles the Model Analyzer alongside client libraries and examples.
  • Initial release of the Model Analyzer tool, available in the Triton SDK container and as the nvidia-triton-model-analyzer PIP package on the NVIDIA Py Index.
  • Moves the PyTorch backend to a separate repository (https://github.com/triton-inference-server/pytorch_backend), enabling it to be added or removed without rebuilding Triton via the compose workflow.
  • Alpha release of Triton for Windows (tritonserver2.6.0-win.zip), supporting TensorRT 7.2.2 models over the GRPC endpoint (HTTP/REST, Prometheus metrics, and shared memory are not yet supported).
  • Adds --backend-directory flag to explicitly set the backend path, enabling Jetson/JetPack deployments where the default path is not used.
+2 moreshow less
  • Adds --backend-config=tensorflow,version=2 flag to select TensorFlow 2.x on Jetson, where TensorFlow 1.x is the default.
  • Releases Triton for JetPack 4.4 (tritonserver2.6.0-jetpack4.4.tgz) with support for TensorFlow 2.3.1, TensorFlow 1.15.4, TensorRT 7.1, custom backends, and ensembles.
└──▷ BREAKING ON UPGRADE
  • !The *-py3-clientsdk container image is renamed to *-py3-sdk; any pipelines or scripts referencing the old image name will break.
  • !The ONNX Runtime OpenVINO execution provider is disabled in this release due to Ubuntu 20.04 interactions; workloads relying on it will not function until it is re-enabled in a future release.
Was this useful?
Other / Uncategorized
◆  VECTOR DB RAG

Weaviate

Sources Release notes → 0.23.0 NOTES

Weaviate 0.23.0 goes standalone: drops Elasticsearch and etcd for a custom vector-first storage engine with HNSW indexing.

└──▷ GET THIS VERSION
$ git clone --branch 0.23.0 https://github.com/weaviate/weaviate.git
# already have the repo? check out this version:
$ git checkout 0.23.0
  • Replaces Elasticsearch and etcd runtime dependencies with Weaviate's own vector-first storage system, making the service fully standalone.
  • Introduces a custom HNSW vector index implementation with full CRUD support, Write-Ahead-Commit-Log persistence, and ongoing maintenance tasks — enabling sub-50ms 20NN-vector queries on datasets of 1–100M objects.
  • Adds a pluggable vector index architecture (HNSW is the first supported plugin) backed by bolt/bbolt for inverted index and object storage disk operations.
  • Supports running with available memory smaller than total vector size via a cache-based mem/disk strategy — no requirement to keep all vectors in RAM.
  • Explicitly defines the behavior of the Like operator (wildcard semantics, modelled after Elasticsearch wildcards).
+1 moreshow less
  • Explicitly defines multi-word query behavior for the Equal operator on string and text properties: words are segmented and all segments must match; string splits on spaces only, text splits on all non-alphanumeric characters.
└──▷ BREAKING ON UPGRADE
  • !Upgrading from 0.22.x requires a full data reimport — live upgrade is not possible because the storage mechanism has completely changed.
  • !The /v1/c11y/words endpoint is removed; use /v1/c11y/concepts instead.
  • !The ?meta=true query parameter on GET requests is removed; use ?include=... instead.
  • !The meta property in object bodies is removed; use underscore fields directly (e.g. _classification).
  • !The meta field in cross-references is removed; use the _classification field directly.
  • !The cardinality field on properties is removed.
  • !The keywords field on classes and properties is removed.
  • !The Like operator now has explicitly defined wildcard semantics instead of delegating to a third-party dependency; existing queries may behave differently.
  • !The Equal operator on multi-word string and text properties now has explicitly defined segmentation behavior instead of delegating to a third-party dependency.
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 →