Skip to main content

Vineyard llm kv cache

Project description

.. image:: https://v6d.io/_static/vineyard_logo.png :target: https://v6d.io :align: center :alt: vineyard :width: 397px

vineyard: an in-memory immutable data manager

|Vineyard CI| |Coverage| |Docs| |FAQ| |Discussion| |Slack| |License| |CII Best Practices| |FOSSA|

|PyPI| |crates.io| |Docker HUB| |Artifact HUB| |ACM DL|

Vineyard (v6d) is an innovative in-memory immutable data manager that offers out-of-the-box high-level abstractions and zero-copy in-memory sharing for distributed data in various big data tasks, such as graph analytics (e.g., GraphScope), numerical computing (e.g., Mars), and machine learning.

.. image:: https://v6d.io/_static/cncf-color.svg :width: 400 :alt: Vineyard is a CNCF sandbox project

Vineyard is a CNCF sandbox project_ and indeed made successful by its community.

Table of Contents

  • Overview <#what-is-vineyard>_

  • Features of vineyard <#features>_

    • Efficient sharing for in-memory immutable data <#in-memory-immutable-data-sharing>_
    • Out-of-the-box high level data structures <#out-of-the-box-high-level-data-abstraction>_
    • Pipelining using stream <#stream-pipelining>_
    • I/O Drivers <#drivers>_
  • Getting started with Vineyard <#try-vineyard>_

  • Deploying on Kubernetes <#deploying-on-kubernetes>_

  • Frequently asked questions <#faq>_

  • Getting involved in our community <#getting-involved>_

  • Third-party dependencies <#acknowledgements>_

What is vineyard

Vineyard is specifically designed to facilitate zero-copy data sharing among big data systems. To illustrate this, let's consider a typical machine learning task of time series prediction with LSTM_. This task can be broken down into several steps:

  • First, we read the data from the file system as a pandas.DataFrame.
  • Next, we apply various preprocessing tasks, such as eliminating null values, to the dataframe.
  • Once the data is preprocessed, we define the model and train it on the processed dataframe using PyTorch.
  • Finally, we evaluate the performance of the model.

In a single-machine environment, pandas and PyTorch, despite being two distinct systems designed for different tasks, can efficiently share data with minimal overhead. This is achieved through an end-to-end process within a single Python script.

.. image:: https://v6d.io/_static/vineyard_compare.png :alt: Comparing the workflow with and without vineyard

What if the input data is too large to be processed on a single machine?

As depicted on the left side of the figure, a common approach is to store the data as tables in a distributed file system (e.g., HDFS) and replace pandas with ETL processes using SQL over a big data system such as Hive and Spark. To share the data with PyTorch, the intermediate results are typically saved back as tables on HDFS. However, this can introduce challenges for developers.

  1. For the same task, users must program for multiple systems (SQL & Python).

  2. Data can be polymorphic. Non-relational data, such as tensors, dataframes, and graphs/networks (in GraphScope_) are becoming increasingly common. Tables and SQL may not be the most efficient way to store, exchange, or process them. Transforming the data from/to "tables" between different systems can result in significant overhead.

  3. Saving/loading the data to/from external storage incurs substantial memory-copies and IO costs.

Vineyard addresses these issues by providing:

  1. In-memory distributed data sharing in a zero-copy fashion to avoid introducing additional I/O costs by leveraging a shared memory manager derived from plasma.

  2. Built-in out-of-the-box high-level abstractions to share distributed data with complex structures (e.g., distributed graphs) with minimal extra development cost, while eliminating transformation costs.

As depicted on the right side of the above figure, we demonstrate how to integrate vineyard to address the task in a big data context.

First, we utilize Mars_ (a tensor-based unified framework for large-scale data computation that scales Numpy, Pandas, and Scikit-learn) to preprocess the raw data, similar to the single-machine solution, and store the preprocessed dataframe in vineyard.

+-------------+-----------------------------------------------------------------------------+ | | .. code-block:: python | | single | | | | data_csv = pd.read_csv('./data.csv', usecols=[1]) | +-------------+-----------------------------------------------------------------------------+ | | .. code-block:: python | | | | | | import mars.dataframe as md | | distributed | dataset = md.read_csv('hdfs://server/data_full', usecols=[1]) | | | # after preprocessing, save the dataset to vineyard | | | vineyard_distributed_tensor_id = dataset.to_vineyard() | +-------------+-----------------------------------------------------------------------------+

Then, we modify the training phase to get the preprocessed data from vineyard. Here vineyard makes the sharing of distributed data between Mars_ and PyTorch just like a local variable in the single machine solution.

+-------------+-----------------------------------------------------------------------------+ | | .. code-block:: python | | single | | | | data_X, data_Y = create_dataset(dataset) | +-------------+-----------------------------------------------------------------------------+ | | .. code-block:: python | | | | | | client = vineyard.connect(vineyard_ipc_socket) | | distributed | dataset = client.get(vineyard_distributed_tensor_id).local_partition() | | | data_X, data_Y = create_dataset(dataset) | +-------------+-----------------------------------------------------------------------------+

Finally, we execute the training phase in a distributed manner across the cluster.

From this example, it is evident that with vineyard, the task in the big data context can be addressed with only minor adjustments to the single-machine solution. Compared to existing approaches, vineyard effectively eliminates I/O and transformation overheads.

Features

Efficient In-Memory Immutable Data Sharing ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Vineyard serves as an in-memory immutable data manager, enabling efficient data sharing across different systems via shared memory without additional overheads. By eliminating serialization/deserialization and IO costs during data exchange between systems, Vineyard significantly improves performance.

Out-of-the-Box High-Level Data Abstractions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Computation frameworks often have their own data abstractions for high-level concepts. For example, tensors can be represented as torch.tensor, tf.Tensor, mxnet.ndarray, etc. Moreover, every graph processing engine <https://github.com/alibaba/GraphScope>_ has its unique graph structure representation.

The diversity of data abstractions complicates data sharing. Vineyard addresses this issue by providing out-of-the-box high-level data abstractions over in-memory blobs, using hierarchical metadata to describe objects. Various computation systems can leverage these built-in high-level data abstractions to exchange data with other systems in a computation pipeline concisely and efficiently.

Stream Pipelining for Enhanced Performance ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

A computation doesn't need to wait for all preceding results to arrive before starting its work. Vineyard provides a stream as a special kind of immutable data for pipelining scenarios. The preceding job can write immutable data chunk by chunk to Vineyard while maintaining data structure semantics. The successor job reads shared-memory chunks from Vineyard's stream without extra copy costs and triggers its work. This overlapping reduces the overall processing time and memory consumption.

Versatile Drivers for Common Tasks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Many big data analytical tasks involve numerous boilerplate routines that are unrelated to the computation itself, such as various IO adapters, data partition strategies, and migration jobs. Since data structure abstractions usually differ between systems, these routines cannot be easily reused.

Vineyard provides common manipulation routines for immutable data as drivers. In addition to sharing high-level data abstractions, Vineyard extends the capability of data structures with drivers, enabling out-of-the-box reusable routines for the boilerplate parts in computation jobs.

Try Vineyard

Vineyard is available as a python package_ and can be effortlessly installed using pip:

.. code:: shell

pip3 install vineyard

For comprehensive and up-to-date documentation, please visit https://v6d.io.

If you wish to build vineyard from source, please consult the Installation_ guide. For instructions on building and running unittests locally, refer to the Contributing_ section.

After installation, you can initiate a vineyard instance using the following command:

.. code:: shell

python3 -m vineyard

For further details on connecting to a locally deployed vineyard instance, please explore the Getting Started_ guide.

Deploying on Kubernetes

Vineyard is designed to efficiently share immutable data between different workloads, making it a natural fit for cloud-native computing. By embracing cloud-native big data processing and Kubernetes, Vineyard enables efficient distributed data sharing in cloud-native environments while leveraging the scaling and scheduling capabilities of Kubernetes.

To effectively manage all components of Vineyard within a Kubernetes cluster, we have developed the Vineyard Operator. For more information, please refer to the Vineyard Operator_ documentation.

FAQ

Vineyard shares many similarities with other open-source projects, yet it also has distinct features. We often receive the following questions about Vineyard:

  • Q: Can clients access the data while the stream is being filled?

    Sharing one piece of data among multiple clients is a target scenario for Vineyard, as the data stored in Vineyard is immutable. Multiple clients can safely consume the same piece of data through memory sharing, without incurring extra costs or additional memory usage from copying data back and forth.

  • Q: How does Vineyard avoid serialization/deserialization between systems in different languages?

    Vineyard provides high-level data abstractions (e.g., ndarrays, dataframes) that can be naturally shared between different processes, eliminating the need for serialization and deserialization between systems in different languages.

  • . . . . . .

For more detailed information, please refer to our FAQ_ page.

Get Involved

  • Join the CNCF Slack_ and participate in the #vineyard channel for discussions and collaboration.
  • Familiarize yourself with our contribution guide_ to understand the process of contributing to vineyard.
  • If you encounter any bugs or issues, please report them by submitting a GitHub issue_ or engage in a conversation on Github discussion_.
  • We welcome and appreciate your contributions! Submit them using pull requests.

Thank you in advance for your valuable contributions to vineyard!

Publications

  • Wenyuan Yu, Tao He, Lei Wang, Ke Meng, Ye Cao, Diwen Zhu, Sanhong Li, Jingren Zhou. Vineyard: Optimizing Data Sharing in Data-Intensive Analytics <https://v6d.io/vineyard-sigmod-2023.pdf>_. ACM SIG Conference on Management of Data (SIGMOD), industry, 2023. |ACM DL|.

If you use this software, please cite our paper using the following metadata:

.. code:: bibtex

@article{yu2023vineyard, author = {Yu, Wenyuan and He, Tao and Wang, Lei and Meng, Ke and Cao, Ye and Zhu, Diwen and Li, Sanhong and Zhou, Jingren}, title = {Vineyard: Optimizing Data Sharing in Data-Intensive Analytics}, year = {2023}, issue_date = {June 2023}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, volume = {1}, number = {2}, url = {https://doi.org/10.1145/3589780}, doi = {10.1145/3589780}, journal = {Proc. ACM Manag. Data}, month = {jun}, articleno = {200}, numpages = {27}, keywords = {data sharing, in-memory object store} }

Acknowledgements

We thank the following excellent open-source projects:

  • apache-arrow <https://github.com/apache/arrow>_, a cross-language development platform for in-memory analytics.
  • boost-leaf <https://github.com/boostorg/leaf>_, a C++ lightweight error augmentation framework.
  • cityhash <https://github.com/google/cityhash>_, CityHash, a family of hash functions for strings.
  • dlmalloc <http://gee.cs.oswego.edu/dl/html/malloc.htmlp>_, Doug Lea's memory allocator.
  • etcd-cpp-apiv3 <https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3>_, a C++ API for etcd's v3 client API.
  • flat_hash_map <https://github.com/skarupke/flat_hash_map>_, an efficient hashmap implementation.
  • gulrak/filesystem <https://github.com/gulrak/filesystem>_, an implementation of C++17 std::filesystem.
  • libcuckoo <https://github.com/efficient/libcuckoo>_, libcuckoo, a high-performance, concurrent hash table.
  • mimalloc <https://github.com/microsoft/mimalloc>_, a general purpose allocator with excellent performance characteristics.
  • nlohmann/json <https://github.com/nlohmann/json>_, a json library for modern c++.
  • pybind11 <https://github.com/pybind/pybind11>_, a library for seamless operability between C++11 and Python.
  • s3fs <https://github.com/dask/s3fs>_, a library provide a convenient Python filesystem interface for S3.
  • skywalking-infra-e2e <https://github.com/apache/skywalking-infra-e2e>_ A generation End-to-End Testing framework.
  • skywalking-swck <https://github.com/apache/skywalking-swck>_ A kubernetes operator for the Apache Skywalking.
  • wyhash <https://github.com/alainesp/wy>_, C++ wrapper around wyhash and wyrand.
  • BBHash <https://github.com/rizkg/BBHash>_, a fast, minimal-memory perfect hash function.
  • rax <https://github.com/antirez/rax>_, an ANSI C radix tree implementation.
  • MurmurHash3 <https://github.com/aappleby/smhasher>_, a fast non-cryptographic hash function.

License

Vineyard is distributed under Apache License 2.0_. Please note that third-party libraries may not have the same license as vineyard.

|FOSSA Status|

.. _Mars: https://github.com/mars-project/mars .. _GraphScope: https://github.com/alibaba/GraphScope .. _Installation: https://github.com/v6d-io/v6d/blob/main/docs/notes/developers/build-from-source.rst .. _Contributing: https://github.com/v6d-io/v6d/blob/main/CONTRIBUTING.rst .. _Getting Started: https://v6d.io/notes/getting-started.html .. _Vineyard Operator: https://v6d.io/notes/cloud-native/vineyard-operator.html .. _Apache License 2.0: https://github.com/v6d-io/v6d/blob/main/LICENSE .. _contribution guide: https://github.com/v6d-io/v6d/blob/main/CONTRIBUTING.rst .. _time series prediction with LSTM: https://github.com/L1aoXingyu/code-of-learn-deep-learning-with-pytorch/blob/master/chapter5_RNN/time-series/lstm-time-series.ipynb .. _python package: https://pypi.org/project/vineyard/ .. _CNCF Slack: https://slack.cncf.io/ .. _GitHub issue: https://github.com/v6d-io/v6d/issues/new .. _Github discussion: https://github.com/v6d-io/v6d/discussions/new .. _FAQ: https://v6d.io/notes/faq.html .. _CNCF sandbox project: https://www.cncf.io/sandbox-projects/

.. |Vineyard CI| image:: https://github.com/v6d-io/v6d/actions/workflows/build-test.yml/badge.svg :target: https://github.com/v6d-io/v6d/actions/workflows/build-test.yml .. |Coverage| image:: https://codecov.io/gh/v6d-io/v6d/branch/main/graph/badge.svg :target: https://codecov.io/gh/v6d-io/v6d .. |Docs| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg :target: https://v6d.io .. |FAQ| image:: https://img.shields.io/badge/-FAQ-blue?logo=Read%20The%20Docs :target: https://v6d.io/notes/faq.html .. |Discussion| image:: https://img.shields.io/badge/Discuss-Ask%20Questions-blue?logo=GitHub :target: https://github.com/v6d-io/v6d/discussions .. |Slack| image:: https://img.shields.io/badge/Slack-Join%20%23vineyard-purple?logo=Slack :target: https://slack.cncf.io/ .. |PyPI| image:: https://img.shields.io/pypi/v/vineyard?color=blue :target: https://pypi.org/project/vineyard .. |crates.io| image:: https://img.shields.io/crates/v/vineyard.svg :target: https://crates.io/crates/vineyard .. |Docker HUB| image:: https://img.shields.io/badge/docker-ready-blue.svg :target: https://hub.docker.com/u/vineyardcloudnative .. |Artifact HUB| image:: https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/vineyard :target: https://artifacthub.io/packages/helm/vineyard/vineyard .. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/4902/badge :target: https://bestpractices.coreinfrastructure.org/projects/4902 .. |FOSSA| image:: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fv6d-io%2Fv6d.svg?type=shield :target: https://app.fossa.com/projects/git%2Bgithub.com%2Fv6d-io%2Fv6d?ref=badge_shield .. |FOSSA Status| image:: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fv6d-io%2Fv6d.svg?type=large :target: https://app.fossa.com/projects/git%2Bgithub.com%2Fv6d-io%2Fv6d?ref=badge_large .. |License| image:: https://img.shields.io/github/license/v6d-io/v6d :target: https://github.com/v6d-io/v6d/blob/main/LICENSE

.. |ACM DL| image:: https://img.shields.io/badge/ACM%20DL-10.1145%2F3589780-blue :target: https://dl.acm.org/doi/10.1145/3589780

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

vineyard_llm-0.24.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

vineyard_llm-0.24.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

vineyard_llm-0.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

vineyard_llm-0.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

vineyard_llm-0.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

vineyard_llm-0.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

vineyard_llm-0.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

vineyard_llm-0.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

vineyard_llm-0.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

vineyard_llm-0.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

vineyard_llm-0.24.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

vineyard_llm-0.24.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

vineyard_llm-0.24.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

vineyard_llm-0.24.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

File details

Details for the file vineyard_llm-0.24.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 835a409f0e5f231827c59d665fef6034885a6dc4334fda5eae20420d715470d3
MD5 8076f374641b7a20c1187bfc8b695961
BLAKE2b-256 48c423bdf1b30fc3c4bf2e3dc9791064def2be06d577d4df1576516529e54276

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3b8e57e2838892e0f572688358cba18eea0c4b53001c729642c5dc07396303a3
MD5 299040e790d74678bc35f1c1c8ee62a1
BLAKE2b-256 c717518d0d5a6b8caab12a8b9e5a089c0d8b63adea0554e810c3199be75a1233

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0718ee6dbfc9a0075171f92d5f95ee85fdb71588cc00627ee23e52ae42613dd1
MD5 0f4c66c0b8ddc7492f411af0a707e847
BLAKE2b-256 ca30281300456dd0e1343f788a37af22447e6a8eb0922bea3b8e20bb7734e8df

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 15aeed3fec9112061ff81f45aeb8d99a82ceb3491a9cfca50e85150a92748ee8
MD5 120205e87db49888d6f090e81c9b9377
BLAKE2b-256 5d7e050f21ac49016ec28b2bc86486edaca6595e6358291d1f3e09577082bddc

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5323e1a898628fa350d5333c13875b5dc34d25c736522d95c779517e25e7ac5e
MD5 8fb1c10f6f4337f5c41ae722a129412f
BLAKE2b-256 8b14bf2a3ee256c68a682babda3e4b7f3059fbbcb2ebeba82205c296d967fb78

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ee1f3c6838ae89cc2a194bc7aa3f81690e775fffcfac26e792d4550b34303cc
MD5 d7fb2559c2b4a8d0f9a36069e639722b
BLAKE2b-256 f9b1092963b856bbe3a03318f4c099ffdb06c6ba9e9891302601aa9267c00a18

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f36609059585cbbbcbbc2dacfada16430ab50a16cf90f6568f1c3fa3ea6e406b
MD5 cdcd773907be4ef38c44882571c99b90
BLAKE2b-256 13508f509f667142eb32fc02214062b388c5ae4fb12af98bb0e2ef1a4e47db2b

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 155795efd9b76ac4aefabe793236dd653b4bd5d5e2ac8fdb57488879d33210b5
MD5 c002f732e6e6a70d405b8bacf5913e75
BLAKE2b-256 cb819eb694092300d45acd4f6d9ba5e970af26d8daa36f1ed15203b56e405f40

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d7458fd22693880f43203da5a1c56adde05778e60ade1f3f31bfe5b4d6589d8
MD5 c650cee3ebe840da581fd9b2bf1131fe
BLAKE2b-256 ec4a31195315d692c0a93d6d53eb0e42e0064512965add87f27f395e5f023edd

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 919d8123de8425894c94a786cb4f66a1c087771d9a7e0097f831b99d199ebe8a
MD5 5f5d1a121c9b1cc41b71e5e983818080
BLAKE2b-256 16fd2be19bf536137bea0857f0db742151807c51c429449ecb1b00f890530496

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f8343a3b06858262b26a39d1175c69897a6bac1cb412319ab029ff64145a307
MD5 bc3a8092b75e9ecd2348fdd02e68c06e
BLAKE2b-256 c11c37af07f7606f7fd68146cdb85e7b345311963ff5eb7a2ee853d52e85fab5

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 521fdf2dbb5f5d697b2981bbf5890c5ec7b61582992176793ee61c3b6f5768d9
MD5 1ded56bce3ae0f2f3ed64b97e285fd52
BLAKE2b-256 2c66a8eea4aaef641a75b5dc9414576a5103a1e1541d2d7d1f57c64f10415d65

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54e3df23268da85c1ce18031b09ea559f8360ad8a94644544650ce33d41bde90
MD5 5e36b639f703a9f6639b6df0c927a549
BLAKE2b-256 70310abbe2570c40326c8e6289697b4f60bdf946d70baa67aef6f08ad6f1d0cb

See more details on using hashes here.

File details

Details for the file vineyard_llm-0.24.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for vineyard_llm-0.24.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 17c17f2af86288b17d861323cc1b37a7d5255e1f7987121b83cbb7717cf28d3a
MD5 8b2ad45e0ad56d7ad45672b1623860fd
BLAKE2b-256 cb9d95f082b79cb6b28bae5a351ecdddf37a7ebab88e80ae369af0200de28ba3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page