Git Product home page Git Product logo

adapt-ml's Introduction

status

ADaPT-ML

A Data Programming Template for Machine Learning

Often when studying natural phenomena by creating data-driven models, processing the data becomes the largest challenge. Without a framework to build upon and implement one's ideas, researchers are forced to hastily build inflexible programs from the ground up. When hypotheses need to be reworked or modelling a new aspect of the phenomena becomes necessary, even more time is spent on the program before finally being able to test out new ideas. This inherently causes problems, with additional problems arising such as including internal and external validation steps as an afterthought rather than a checkstop in the pipeline.

ADaPT-ML aims to be the flexible framework upon which researchers can implement their understanding of the phenomena under study. This software was created especially for any researcher with:

  • Some programming experience or interest in learning how to write code based off of examples.

  • Access to large amounts of unlabeled data that is constantly changing, such as social media data.

  • Domain expertise or an intuition about how they would follow rules, heuristics, or use knowledge bases to annotate the unlabeled data.

ADaPT-ML takes as much of the development work as possible out of creating novel models of phenomenon for which we have well-developed theories that have yet to be applied to big data.

Introduction

ADaPT-ML is composed of a number of open-source tools and libraries, as shown in this system diagram. To familiarize yourself with these components, please review the tools and libraries linked to below the diagram.

System Diagram

Now that you are familiar with the concepts, terminology, and tools that make up ADaPT-ML, let's look at the example use case included in this repository. Once you have an understanding of how ADaPT-ML works and want to get started with your own use case, please refer to these instructions for testing ADaPT-ML on your machine, and the usage guidelines, including how to contribute to this project.

Example Usage

Our Example Use Case is to develop a model that can predict whether a data point is about a cat, dog, bird, horse, or snake. Although intuitively this is purely a multilabel task where it is reasonable to assume that one or more animals could be mentioned in one datapoint, this task has been divided into a multiclass setting, where there is only one possible class that the data point can belong to, and a multilabel setting, where one data point can belong to one or many classes, to demonstrate how to handle both tasks (it is not necessary for you to also divide your new classification task into multiclass and multilabel settings).

All of the directories and files mentioned in the following steps exist in the locations specified in the .env file of this repository. To follow along using the various UIs, complete Step 1 and these tests to get ADaPT-ML running on your host machine, and go to the following addresses in your web browser of choice:

  1. localhost:4200 for CrateDB
  2. localhost:8080 for Label Studio
  3. localhost:5000 for data programming MLflow
  4. localhost:5001 for modelling MLflow
  5. localhost:81/docs for FastAPI

Step 1: obtain and featurize some data

We do not have an existing annotated dataset for this classification task, so the first step will be to create one. When you first get started, you will need to gather the appropriate data for your task, and featurize it in two ways:

  1. Decide on which features you would pull out to assist in annotation if you were going to manually assign classes to the datapoints.
  2. Decide on how you would represent the datapoints as feature vectors for the End Model. Again, to keep it simple for this use case, our first feature set is simply lemmatized tokens. Our second feature set is the output from the Universal Sentence Encoder, given the raw text as input.

In this use case, data points were manually created with only a text component to keep it simple, but consider the tweets 1a-1e in the diagram below.

Step One

Many of them have both text and images that can provide information for more accurate classification. Let's run through each datapoint:

  • 1a has a textual component with the keyword "Birds", and an image component that is a painting where birds can be identified.
  • 1b has a textual component with the keyword "horse", and an image component that does not on its own provide information that it is related to horses.
  • 1c only has a textual component with the keyword "dogs".
  • 1d has a reference to cats in its textual component with a ๐Ÿ˜พ emoji and hashtags. Its image component is an obvious picture of a cat.
  • 1e has a textual component that has the keyword "snake", but it is actually not about the animal. The image component does not on its own provide information that is related to snakes.

This diagram demonstrates the process of setting up the example use case data in a table in CrateDB so that it is ready for ADaPT-ML. You can refer to this script to see how this was accomplished in detail. As long as each table has these essential columns, you can combine multiple tables to create your training and testing data:

  • column 1f is the essential id column: your data table must have this column to work with ADaPT-ML. It can be any combination of numbers and letters.
  • column 1g has the unprocessed, raw text component of each datapoint. Note the column name txt: this is the column used in Label Studio for annotation, so this name appears in the Labeling Config file: in <Text name="txt" value="$txt"/> and <Choices name="topic" toName="txt" choice="multiple" showInLine="false">
  • column 1h has the first featurization step -- features that will be used by the Labeling Functions. Note the column name txt_clean_lemma: this column name is specified in our data programming MLflow endpoint for this example task, with no loader function: LF_FEATURES = {'txt_clean_lemma': None}. For this use case, as mentioned before, our Labeling Functions will have access to the text in 1g that has been lemmatized. Consider, though, a more rich set of features for the text component such as word embeddings, emoji normalization, hashtag splitting, and so on. If our datapoint had an image component, then we could pull out features such as the prediction from an image classifier that has been trained on one or more categories included in our task, the output from an image classifier that can detect language embedded within the image, and so on. The output from all of these different featurization methods would be held in different columns in this table.
  • column 1i has the second featurization step -- features that will be used to train and get predictions from the End Model. For this use case, we have put the text in 1g through the Universal Sentence Encoder to obtain a semantic representation of the text. Unlike the first featurization step, these feature columns can only be real-number vectors. You can create multiple feature vectors for the datapoint's different components, and ADaPT-ML will concatenate these vectors in the order given, not necessarily the order it appears in the table.

Step 2: create a gold dataset using Label Studio

We are now ready to annotate a sample of data in Label Studio! Because we only have a total of 15 datapoints for the multiclass setting and 15 for the multilabel setting, they were all annotated manually, but in a real-world application of this classification task, it is likely we would have hundreds of thousands of datapoints. In this case, we would instruct two or more annotators to manually label a few hundred datapoints for a few purposes:

  1. Gather feedback from the annotators to inform how we can update or create new Labeling Functions
  2. Estimate the class balance and make it available to the Label Model during training
  3. Perform an empirical evaluation of the Labeling Functions and Label Model
  4. Validate the End Model

The first step to annotate data using Label Studio is to set up the project using the Label Studio UI. For this example use case, we enter localhost:8080 (if you changed the port in docker-compose.yml, replace 8080 with what you entered) in a web browser. Create an account, and set up the project (we simply called it "example").

The second step is to sample some data from CrateDB. The sampling method implemented currently in ADaPT-ML is a random N, so this commannd was used to sample all 30 datapoints for the multiclass and multilabel settings:

docker exec label-studio-dev python ./ls/sample_tasks.py example_data txt 30 example --filename example_tasks.json

This module will format the data in the column names provided so that it can be read by Label Studio, and save a file in the $LS_TASKS_PATH directory. The diagram below shows the process of using Label Studio to import the sampled data, annotate it, and export it.

Step Two

  • 2a shows all the created projects, allowing for multiple classification problems.
  • 2b has the popup for importing our example_tasks.json file.
  • 2c shows the imported tasks, which can be clicked on to arrive at the labeling page.
  • 2d is the main labeling interface determined by the example config file, with different tabs for multiple annotators.
  • 2e once annotation is complete, they are exported in JSON format to the host machine's Downloads folder by default. For this demonstration, they were manually moved and renamed to $LS_ANNOTATIONS_PATH/annotations/example_annotations.json

Now that we have labeled all of our sample data and exported the results, we need to process the JSON file back into the Pandas DataFrames that ADaPT-ML can use. Because we had multiple annotators label each datapoint, we need to decide how we want to compile these labels into one gold label set. These two tasks are accomplished through this command:

docker exec label-studio-dev python ./ls/process_annotations.py example_annotations.json example 1

The following DataFrames are saved in $LS_ANNOTATIONS_PATH/example:

  • ann_df.pkl contains all of the datapoints that were initially exported from Label Studio with a column for each annotator's label set.
  • task_df.pkl contains only the datapoints that were labeled by all annotators working on the project (e.g., if worker 1 labeled 50 datapoints and worker 2 labeled 45, then this DataFrame will contain 45 datapoints.)
  • gold_df.pkl contains the final gold label set that was compiled according to the method selected using the gold_choice argument. In this case, worker_1's labels were selected. Finally, before we use the gold labels, we need to check the level of agreement between the annotators. To do this, we use this command:
docker exec label-studio-dev python ./ls/annotator_agreement.py example

This module uses task_df.pkl to calculate Krippendorff's alpha. For demonstration purposes, worker_2 intentionally disagreed with worker_1 on several datapoints, where worker_1 made all correct choices. Between worker_1 and worker_2, the agreement report looks like this:

TASK: example
NOMINAL ALPHA: 0.43847133757961776
RESULT: 0.43847133757961776 < 0.667. Discard these annotations and start again. 

This would normally prompt an iteration on the labelling process, but we are choosing only worker_1's labels for the gold dataset.

Step 3: use data programming to create a labeled dataset

Now that we have our gold labels, we are ready to perform data programming to label more data. We have followed these instructions to modify ADaPT-ML for our example classification task. We also sampled some data from CrateDB that we want to use as training data; for this example use case, we have one DataFrame with the multiclass datapoints and one DataFrame with the multilabel datapoints, and both DataFrames only have the columns id and table_name. The DataFrames are called multiclass_df.pkl and multilabel_df.pkl, and both are stored in $DP_DATA_PATH/unlabeled_data.

Once we run the commands in the following code block...

docker exec dp-mlflow sh -c ". ~/.bashrc && wait-for-it dp-mlflow-db:3306 -s -- mlflow run --no-conda -e example --experiment-name eg -P train_data=/unlabeled_data/multiclass_df.pkl -P dev_data=1 -P task=multiclass -P seed=8 ."

docker exec dp-mlflow sh -c ". ~/.bashrc && wait-for-it dp-mlflow-db:3306 -s -- mlflow run --no-conda -e example --experiment-name eg -P train_data=/unlabeled_data/multilabel_df.pkl -P dev_data=1 -P task=multilabel -P seed=8 ."

...we can check out the results using the MLflow UI, as seen in the diagram below.

Step 3

  • 3a shows the landing page for MLflow, where the Experiment ID (EXP_ID) is shown, and runs can be filtered and selected.
  • 3b has some metadata for the run, including the run command showing that default parameters were used. The Run ID (RUN_ID) is shown at the top of the page.
  • 3c shows the metrics available under the multilabel setting.
  • 3d the result of Labeling Function evaluation against the gold labels in the gold_df are seen in lf_summary_dev.html.
  • 3e development_data.pkl has the aforementioned columns in addition to the gold_label column from the gold_df.
  • 3f training_data.pkl has the Label Model's predicted labels in the column label and the probability distribution over all classes in the column label_probs.

Once we have experimented with the Label Model parameters, Labeling Functions, and datasets to our satisfaction, we can make note of the experiment ID (EXP_ID) and run ID (RUN_ID) to access the training_data.pkl and development_data.pkl that we want to use in End Model training and evaluation. For ease of demonstration, these artifacts have been placed in ${DP_DATA_PATH}/mlruns, but normally these artifacts would be found in ${DP_DATA_PATH}/mlruns/EXP_ID/RUN_ID/artifacts.

Step 4: create an End Model

Now that we have our training data labeled by the Label Model and testing data with gold labels, we can create an End Model that, given a DataFrame containing only the id and table_name columns, will look up the appropriate features for each datapoint in CrateDB and produce a DataFrame with a binary encoding for the predicted class(es), and the probability distribution over all classes. Currently, ADaPT-ML only has one machine learning algorithm, scikit-learn's Multi-layer Perceptron (MLP), a classifier that optimizes the log-loss function using LBFGS or stochastic gradient descent.

After running the commands in this code block...

docker exec modelling-mlflow sh -c ". ~/.bashrc && wait-for-it modelling-mlflow-db:3306 -s -- mlflow run --no-conda -e mlp --experiment-name eg -P train_data=/dp_mlruns/multiclass_training_data.pkl -P test_data=/dp_mlruns/multiclass_development_data.pkl -P features=txt_use -P solver=lbfgs -P random_state=8 ."

docker exec modelling-mlflow sh -c ". ~/.bashrc && wait-for-it modelling-mlflow-db:3306 -s -- mlflow run --no-conda -e mlp --experiment-name eg -P train_data=/dp_mlruns/multilabel_training_data.pkl -P test_data=/dp_mlruns/multilabel_development_data.pkl -P features=txt_use -P solver=lbfgs -P random_state=8 ."

...we can check out the results in MLflow, as shown in the diagram below.

Step 4

  • 4a shows all the training parameters for the MLP model, in addition to the specific features used for the given training data. Note that the txt_use parameter is the column 1i in the diagram for Step 1.
  • 4b if the test data has gold labels in addition to the Label Model's labels, then the model will be evaluated against both, and they will show up here with "GOLD" and "LM" prefixes. If there are no gold labels, then the metrics will only have "LM".
  • 4c is the confusion matrix for the gold labels and predicted labels in the multiclass setting.
  • 4d is the confusion matrix for the gold labels and predicted labels in the multilabel setting.
  • 4e is the DataFrame with the model's predicted label(s) and the probability distribution over all classes.

Once we have experimented with the MLP parameters, and possibly iterated more on the data programming step if necessary, we can prepare our models for deployment by simply updating the model environment variables in .env and the environment section of the m_deploy service in docker-compose.yml to point to python_model.pkl. For this example use case, multiclass and multilabel models were copied and renamed to ${MODELLING_DATA_PATH}/mlruns/multiclass_model.pkl and ${MODELLING_DATA_PATH}/mlruns/multilabel_model.pkl.

Step 5: deploy the End Model

This diagram shows the FastAPI UI for the deployed models.

Step 5

  • 5a on the landing page, we can see the endpoints for predicting multiclass and multilabel.
  • 5b below the endpoints is a schema of the expected format for posting data, and the data format that the model will return in response.
  • 5c this shows an example of how to use the UI to get the curl command for the endpoint, and what the response looks like.

Now we can get multiclass predictions...

curl -X 'POST' \
  'http://localhost/predict_multiclass_example' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "table_name": [
    "example_data"
  ],
  "id": [
    "20"
  ]
}'
{
  "table_name": [
    "example_data"
  ],
  "id": [
    "20"
  ],
  "cat": [
    0
  ],
  "dog": [
    0
  ],
  "bird": [
    0
  ],
  "horse": [
    0
  ],
  "snake": [
    1
  ],
  "prob_cat": [
    5.6850715594352195e-8
  ],
  "prob_dog": [
    0.0001963686969921083
  ],
  "prob_bird": [
    8.922841061481865e-8
  ],
  "prob_horse": [
    8.82467128837139e-9
  ],
  "prob_snake": [
    0.9998034763992105
  ]
}

...and multilabel predictions...

curl -X 'POST' \
  'http://localhost/predict_multilabel_example' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "table_name": [
    "example_data"
  ],
  "id": [
    "03"
  ]
}'
{
  "table_name": [
    "example_data"
  ],
  "id": [
    "03"
  ],
  "cat": [
    1
  ],
  "dog": [
    1
  ],
  "bird": [
    0
  ],
  "horse": [
    0
  ],
  "snake": [
    0
  ],
  "prob_cat": [
    0.999976879069893
  ],
  "prob_dog": [
    0.9999725147168369
  ],
  "prob_bird": [
    2.061596293323691e-8
  ],
  "prob_horse": [
    1.7205732529738035e-7
  ],
  "prob_snake": [
    2.0265644234853424e-8
  ]
}

...for any datapoint that has the txt_use feature set in CrateDB. We have successfully created a model for our new example use case!

adapt-ml's People

Contributors

nulberry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

adapt-ml's Issues

docker compose connection issues

I tried to run ./test/all-unix.sh without much success.

bash test/all-unix.sh results in

=== STARTING ADaPT-ML AND RUNNING ALL TESTS ===
label-studio-web is up-to-date
Starting modelling-mlflow-db ... 
Starting modelling-mlflow-db     ... done
crate-db is up-to-date
Starting dp-mlflow-db            ... done
Starting modelling-mlflow-deploy ... 
Starting label-studio-dev        ... done
Starting modelling-mlflow-deploy ... done
Starting modelling-mlflow        ... done
Starting dp-mlflow               ... done
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
crate-db                  /docker-entrypoint.sh crat ...   Restarting                                                      
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp          
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp          
Waiting for MLflow databases (5 sec)...
crate-db                  /docker-entrypoint.sh crat ...   Restarting                                             
Waiting for MLflow databases (5 sec)...
Checking for exited containers...
Startup complete.
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 73, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/local/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 394, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.8/http/client.py", line 951, in send
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 473, in _request
    response = self.server_pool[next_server].request(
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 154, in request
    return self.pool.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  [Previous line repeated 7 more times]
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 574, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 719, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.8/site-packages/crate/client/cursor.py", line 53, in execute
    self._result = self.connection.client.sql(sql, parameters,
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 396, in sql
    content = self._json_request('POST', self.path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 522, in _json_request
    response = self._request(method, path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 513, in _request
    self._drop_server(next_server, ex_message)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 581, in _drop_server
    raise ConnectionError(
crate.client.exceptions.ConnectionError: No more Servers available, exception from last server: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known'))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./ls/sample_tasks.py", line 56, in <module>
    main()
  File "./ls/sample_tasks.py", line 33, in main
    tasks_df = pd.read_sql(random_query, DATABASE_IP)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/sql.py", line 628, in read_sql
    return pandas_sql.read_query(
  File "/usr/local/lib/python3.8/site-packages/pandas/io/sql.py", line 1579, in read_query
    result = self.execute(*args)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/sql.py", line 1424, in execute
    return self.connectable.execution_options().execute(*args, **kwargs)
  File "<string>", line 2, in execute
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/deprecations.py", line 401, in warned
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3139, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1274, in execute
    return self._exec_driver_sql(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1578, in _exec_driver_sql
    ret = self._execute_context(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1845, in _execute_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2026, in _handle_dbapi_exception
    util.raise_(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
    raise exception
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 719, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.8/site-packages/crate/client/cursor.py", line 53, in execute
    self._result = self.connection.client.sql(sql, parameters,
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 396, in sql
    content = self._json_request('POST', self.path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 522, in _json_request
    response = self._request(method, path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 513, in _request
    self._drop_server(next_server, ex_message)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 581, in _drop_server
    raise ConnectionError(
sqlalchemy.exc.OperationalError: (crate.client.exceptions.ConnectionError) No more Servers available, exception from last server: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known'))
[SQL: 
        SELECT id, txt FROM example_data 
        ORDER BY RANDOM() 
        LIMIT 30;]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
=== STARTING LABEL STUDIO TESTS WITH EXAMPLE DATA ===
Try sampling some tasks...
ERROR: Task sampling failed.
=== STARTING DATA PROGRAMMING TESTS WITH EXAMPLE DATA ===
Testing multiclass...
ERROR: Experiment run failed to complete.
=== STARTING MODELLING TESTS WITH EXAMPLE DATA ===
Testing multiclass with LM test data...
ERROR: Experiment run failed to complete.
b40e23f0ae4cba0c0f476f8490a04d4f4c5299cb72249cef17024f3debc46528
=== STARTING MODEL DEPLOYMENT TESTS WITH EXAMPLE DATA ===
Testing multiclass predictions...
{"message":"Oops! ExampleModel did not predict successfully. Please check that the requested data points have the \n            features corresponding to the features the model was trained on, and that the database is available.\n            Details: (crate.client.exceptions.ConnectionError) No more Servers available, exception from last server: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd46685e730>: Failed to establish a new connection: [Errno -2] Name or service not known'))\n[SQL: \n    SELECT id, txt_use FROM example_data WHERE id IN ('18', '24', '22', '19', '15');\n    ]\n(Background on this error at: http://sqlalche.me/e/14/e3q8)"}
ERROR: Getting predictions failed.
test-deploy-network
=== TESTING COMPLETE ===

Software

docker --version
Docker version 20.10.12-ce, build 459d0dfbbb51fb2423a43655e6c62368ec0f36c9

docker-compose --version
docker-compose version 1.29.2, build unknown

uname -r
5.13.8-191.current

Hardware

<style type="text/css"> .first {font-weight: bold; margin-left: none; padding-right: 1em;vertical-align: top; } .second {padding-left: 1em; width: 100%; vertical-align: center; } .id {font-family: monospace;} .indented {margin-left: 2em; border-left: dotted thin #dde; padding-bottom: 1em; } .node {border: solid thin #ffcc66; padding: 1em; background: #ffffcc; } .node-unclaimed {border: dotted thin #c3c3c3; padding: 1em; background: #fafafa; color: red; } .node-disabled {border: solid thin #f55; padding: 1em; background: #fee; color: gray; } </style> <title>aaron-x390</title>
id:
aaron-x390
description: Notebook
product: 20Q1S02M00 (LENOVO_MT_20Q1_BU_Think_FM_ThinkPad X390)
vendor: LENOVO
version: ThinkPad X390
serial: PF1N577B
width: 64 bits
capabilities: smbios-3.1.1 dmi-3.1.1 smp vsyscall32
configuration:
administrator_password=disabled
chassis=notebook
family=ThinkPad X390
power-on_password=disabled
sku=LENOVO_MT_20Q1_BU_Think_FM_ThinkPad X390
uuid=CCB1ACAE-E131-B211-A85C-FFF35FE54022
id:
core
description: Motherboard
product: 20Q1S02M00
vendor: LENOVO
physical id:
0
version: Not Defined
serial: L1HF92F00HB
slot: Not Available
id:
memory
description: System Memory
physical id:
2
slot: System board or motherboard
size: 16GiB
id:
bank:0
description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
product: M471A1K43BB1-CTD
vendor: Samsung
physical id:
0
serial: 00000000
slot: ChannelA-DIMM0
size: 8GiB
width: 64 bits
clock: 2667MHz (0.4ns)
id:
bank:1
description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
product: M471A1K43BB1-CTD
vendor: Samsung
physical id:
1
serial: 00000000
slot: ChannelB-DIMM0
size: 8GiB
width: 64 bits
clock: 2667MHz (0.4ns)
id:
cache:0
description: L1 cache
physical id:
c
slot: L1 Cache
size: 256KiB
capacity: 256KiB
capabilities: synchronous internal write-back unified
configuration:
level=1
id:
cache:1
description: L2 cache
physical id:
d
slot: L2 Cache
size: 1MiB
capacity: 1MiB
capabilities: synchronous internal write-back unified
configuration:
level=2
id:
cache:2
description: L3 cache
physical id:
e
slot: L3 Cache
size: 6MiB
capacity: 6MiB
capabilities: synchronous internal write-back unified
configuration:
level=3
id:
cpu
description: CPU
product: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
vendor: Intel Corp.
physical id:
f
bus info:
cpu@0
version: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
serial: None
slot: U3E1
size: 3728MHz
capacity: 3900MHz
width: 64 bits
clock: 100MHz
capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities cpufreq
configuration:
cores=4
enabledcores=4
threads=8
id:
firmware
description: BIOS
vendor: LENOVO
physical id:
11
version: N2JET31W (1.09 )
date: 03/15/2019
size: 128KiB
capacity: 16MiB
capabilities: pci pnp upgrade shadowing cdboot bootselect edd int13floppy720 int5printscreen int9keyboard int14serial int17printer int10video acpi usb biosbootspecification uefi
id:
pci
description: Host bridge
product: Coffee Lake HOST and DRAM Controller
vendor: Intel Corporation
physical id:
100
bus info:
pci@0000:00:00.0
version: 0b
width: 32 bits
clock: 33MHz
configuration:
driver=skl_uncore
resources:
irq:0
id:
display
description: VGA compatible controller
product: UHD Graphics 620 (Whiskey Lake)
vendor: Intel Corporation
physical id:
2
bus info:
pci@0000:00:02.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list
configuration:
driver=i915
latency=0
resources:
irq:139
memory:cb000000-cbffffff
memory:80000000-8fffffff
ioport:3000(size=64)
memory:c0000-dffff
id:
generic:0
description: Signal processing controller
product: Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
vendor: Intel Corporation
physical id:
4
bus info:
pci@0000:00:04.0
version: 0b
width: 64 bits
clock: 33MHz
capabilities: msi pm cap_list
configuration:
latency=0
resources:
memory:cd730000-cd737fff
id:
generic:1
description: System peripheral
product: Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
vendor: Intel Corporation
physical id:
8
bus info:
pci@0000:00:08.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: msi pm cap_list
configuration:
latency=0
resources:
memory:cd742000-cd742fff
id:
generic:2
description: Signal processing controller
product: Cannon Point-LP Thermal Controller
vendor: Intel Corporation
physical id:
12
bus info:
pci@0000:00:12.0
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi cap_list
configuration:
latency=0
resources:
memory:cd743000-cd743fff
id:
usb
description: USB controller
product: Cannon Point-LP USB 3.1 xHCI Controller
vendor: Intel Corporation
physical id:
14
bus info:
pci@0000:00:14.0
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi xhci bus_master cap_list
configuration:
driver=xhci_hcd
latency=0
resources:
irq:137
memory:cd720000-cd72ffff
id:
usbhost:0
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
0
bus info:
usb@1
logical name:
usb1
version: 5.13
capabilities: usb-2.00
configuration:
driver=hub
slots=12
speed=480Mbit/s
id:
usb:0
description: Human interface device
product: USB Billboard
vendor: Cypress Semiconductor
physical id:
2
bus info:
usb@1:2
version: 0.00
serial: 1S40AJM6H0AEHY
capabilities: usb-2.01
configuration:
driver=usbhid
maxpower=100mA
speed=12Mbit/s
id:
usb:1
description: USB hub
product: USB2.0 Hub
vendor: VIA Labs, Inc.
physical id:
5
bus info:
usb@1:5
version: 50.33
capabilities: usb-2.10
configuration:
driver=hub
slots=5
speed=480Mbit/s
id:
usb:0
description: USB hub
product: USB2.0 Hub
vendor: VIA Labs, Inc.
physical id:
2
bus info:
usb@1:5.2
version: 50.34
capabilities: usb-2.10
configuration:
driver=hub
slots=4
speed=480Mbit/s
id:
usb:0
description: Video
product: C922 Pro Stream Webcam
vendor: Logitech, Inc.
physical id:
1
bus info:
usb@1:5.2.1
version: 0.16
serial: C6CBC8BF
capabilities: usb-2.00
configuration:
driver=snd-usb-audio
maxpower=500mA
speed=480Mbit/s
id:
usb:1
description: Mouse
product: USB Optical Mouse
vendor: Logitech
physical id:
2
bus info:
usb@1:5.2.2
version: 72.00
capabilities: usb-2.00
configuration:
driver=usbhid
maxpower=100mA
speed=2Mbit/s
id:
usb:2
description: Audio device
product: ThinkPad Dock USB Audio
vendor: Generic
physical id:
4
bus info:
usb@1:5.2.4
version: 0.12
capabilities: usb-2.00 audio-control
configuration:
driver=usbhid
maxpower=100mA
speed=480Mbit/s
id:
usb:1
description: Keyboard
product: Keychron K3
vendor: Keychron
physical id:
4
bus info:
usb@1:5.4
version: 1.05
capabilities: usb-2.00
configuration:
driver=usbhid
maxpower=100mA
speed=12Mbit/s
id:
usb:2
description: Generic USB device
product: USB Billboard Device
vendor: VIA Labs, Inc.
physical id:
5
bus info:
usb@1:5.5
version: 0.01
serial: 0000000000000001
capabilities: usb-2.01
configuration:
maxpower=100mA
speed=480Mbit/s
id:
usb:2
description: Video
product: Integrated Camera
vendor: Chicony Electronics Co.,Ltd.
physical id:
8
bus info:
usb@1:8
version: 67.23
serial: 0001
capabilities: usb-2.01
configuration:
driver=uvcvideo
maxpower=500mA
speed=480Mbit/s
id:
usb:3
description: Generic USB device
product: Prometheus MIS Touch Fingerprint Reader
vendor: Synaptics, Inc.
physical id:
9
bus info:
usb@1:9
version: 0.00
serial: 3f0f09473fe4
capabilities: usb-2.00
configuration:
maxpower=100mA
speed=12Mbit/s
id:
usb:4
description: Bluetooth wireless interface
product: Bluetooth 9460/9560 Jefferson Peak (JfP)
vendor: Intel Corp.
physical id:
a
bus info:
usb@1:a
version: 0.02
capabilities: bluetooth usb-2.00
configuration:
driver=btusb
maxpower=100mA
speed=12Mbit/s
id:
usbhost:1
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
1
bus info:
usb@2
logical name:
usb2
version: 5.13
capabilities: usb-3.10
configuration:
driver=hub
slots=6
speed=10000Mbit/s
id:
memory
description: RAM memory
product: Cannon Point-LP Shared SRAM
vendor: Intel Corporation
physical id:
14.2
bus info:
pci@0000:00:14.2
version: 30
width: 64 bits
clock: 33MHz (30.3ns)
capabilities: pm cap_list
configuration:
latency=0
resources:
memory:cd740000-cd741fff
memory:cd744000-cd744fff
id:
network:0
description: Wireless interface
product: Cannon Point-LP CNVi [Wireless-AC]
vendor: Intel Corporation
physical id:
14.3
bus info:
pci@0000:00:14.3
logical name:
wlp0s20f3
version: 30
serial: 98:2c:bc:24:13:b9
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
configuration:
broadcast=yes
driver=iwlwifi
driverversion=5.13.8-191.current
firmware=46.5e069cbd.0 9000-pu-b0-jf-b0-
ip=141.14.225.26
latency=0
link=yes
multicast=yes
wireless=IEEE 802.11
resources:
irq:16
memory:cd738000-cd73bfff
id:
communication
description: Communication controller
product: Cannon Point-LP MEI Controller #1
vendor: Intel Corporation
physical id:
16
bus info:
pci@0000:00:16.0
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration:
driver=mei_me
latency=0
resources:
irq:140
memory:cd745000-cd745fff
id:
pci:0
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #1
vendor: Intel Corporation
physical id:
1c
bus info:
pci@0000:00:1c.0
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:120
memory:cd600000-cd6fffff
id:
generic
description: MMC Host
product: RTS522A PCI Express Card Reader
vendor: Realtek Semiconductor Co., Ltd.
physical id:
0
bus info:
pci@0000:01:00.0
logical name:
mmc0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration:
driver=rtsx_pci
latency=0
resources:
irq:136
memory:cd600000-cd600fff
id:
pci:1
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #5
vendor: Intel Corporation
physical id:
1c.4
bus info:
pci@0000:00:1c.4
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:121
ioport:4000(size=8192)
memory:b4000000-ca0fffff
ioport:90000000(size=570425344)
id:
pci
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:02:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:16
ioport:4000(size=4096)
memory:b4000000-ca0fffff
ioport:90000000(size=570425344)
id:
pci:0
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:03:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:124
memory:ca000000-ca0fffff
id:
pci:1
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
1
bus info:
pci@0000:03:01.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:125
ioport:4000(size=4096)
memory:b4000000-c9efffff
ioport:90000000(size=570425344)
id:
pci:2
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
2
bus info:
pci@0000:03:02.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:126
memory:c9f00000-c9ffffff
id:
usb
description: USB controller
product: JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:3a:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress xhci bus_master cap_list
configuration:
driver=xhci_hcd
latency=0
resources:
irq:138
memory:c9f00000-c9f0ffff
id:
usbhost:0
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
0
bus info:
usb@3
logical name:
usb3
version: 5.13
capabilities: usb-2.00
configuration:
driver=hub
slots=2
speed=480Mbit/s
id:
usbhost:1
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
1
bus info:
usb@4
logical name:
usb4
version: 5.13
capabilities: usb-3.10
configuration:
driver=hub
slots=2
speed=10000Mbit/s
id:
usb
description: USB hub
product: USB3.1 Hub
vendor: VIA Labs, Inc.
physical id:
1
bus info:
usb@4:1
version: 50.33
capabilities: usb-3.10
configuration:
driver=hub
slots=4
speed=10000Mbit/s
id:
usb
description: USB hub
product: USB3.1 Hub
vendor: VIA Labs, Inc.
physical id:
2
bus info:
usb@4:1.2
version: 50.34
capabilities: usb-3.10
configuration:
driver=hub
slots=4
speed=10000Mbit/s
id:
pci:2
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #9
vendor: Intel Corporation
physical id:
1d
bus info:
pci@0000:00:1d.0
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:122
ioport:2000(size=4096)
memory:ccc00000-cd5fffff
ioport:cc000000(size=10485760)
id:
pci:3
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #13
vendor: Intel Corporation
physical id:
1d.4
bus info:
pci@0000:00:1d.4
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:123
memory:ccb00000-ccbfffff
id:
nvme
description: NVMe device
product: INTEL SSDPEKKF512G8L
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:3d:00.0
logical name:
/dev/nvme0
version: L11P
serial: BTHP90940GCT512C
width: 64 bits
clock: 33MHz
capabilities: nvme pm msi pciexpress msix nvm_express bus_master cap_list
configuration:
driver=nvme
latency=0
nqn=nqn.2014.08.org.nvmexpress:80868086BTHP90940GCT512C INTEL SSDPEKKF512G8L
state=live
resources:
irq:16
memory:ccb00000-ccb03fff
id:
namespace:0
description: NVMe disk
physical id:
0
logical name:
hwmon0
id:
namespace:1
description: NVMe disk
physical id:
2
logical name:
/dev/ng0n1
id:
namespace:2
description: NVMe disk
physical id:
1
bus info:
nvme@0:1
logical name:
/dev/nvme0n1
size: 476GiB (512GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration:
guid=36f31f32-2083-4a92-a861-cf7289c8b933
logicalsectorsize=512
sectorsize=512
wwid=eui.5cd2e42391a02304
id:
volume:0
description: Windows FAT volume
vendor: mkfs.fat
physical id:
1
bus info:
nvme@0:1,1
logical name:
/dev/nvme0n1p1
version: FAT32
serial: 6b23-e507
size: 488MiB
capacity: 488MiB
capabilities: boot fat initialized
configuration:
FATs=2
filesystem=fat
id:
volume:1
description: LVM Physical Volume
vendor: Linux
physical id:
2
bus info:
nvme@0:1,2
logical name:
/dev/nvme0n1p2
serial: 49ffe561-10d9-4552-84de-587c63db06ad
size: 476GiB
capacity: 476GiB
width: 256 bits
capabilities: multi encrypted luks initialized
configuration:
bits=256
cipher=aes
filesystem=luks
hash=sha256
mode=xts-plain64
version=1
id:
isa
description: ISA bridge
product: Cannon Point-LP LPC Controller
vendor: Intel Corporation
physical id:
1f
bus info:
pci@0000:00:1f.0
version: 30
width: 32 bits
clock: 33MHz
capabilities: isa bus_master
configuration:
latency=0
id:
multimedia
description: Audio device
product: Cannon Point-LP High Definition Audio Controller
vendor: Intel Corporation
physical id:
1f.3
bus info:
pci@0000:00:1f.3
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration:
driver=snd_hda_intel
latency=64
resources:
irq:148
memory:cd73c000-cd73ffff
memory:cca00000-ccafffff
id:
serial:0
description: SMBus
product: Cannon Point-LP SMBus Controller
vendor: Intel Corporation
physical id:
1f.4
bus info:
pci@0000:00:1f.4
version: 30
width: 64 bits
clock: 33MHz
configuration:
driver=i801_smbus
latency=0
resources:
irq:16
memory:cd746000-cd7460ff
ioport:efa0(size=32)
id:
serial:1
description: Serial bus controller
product: Cannon Point-LP SPI Controller
vendor: Intel Corporation
physical id:
1f.5
bus info:
pci@0000:00:1f.5
version: 30
width: 32 bits
clock: 33MHz
configuration:
latency=0
resources:
memory:fe010000-fe010fff
id:
network:1
description: Ethernet interface
product: Ethernet Connection (6) I219-V
vendor: Intel Corporation
physical id:
1f.6
bus info:
pci@0000:00:1f.6
logical name:
enp0s31f6
version: 30
serial: e8:6a:64:b7:67:2c
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration:
autonegotiation=on
broadcast=yes
driver=e1000e
driverversion=5.13.8-191.current
firmware=0.5-3
latency=0
link=no
multicast=yes
port=twisted pair
resources:
irq:147
memory:cd700000-cd71ffff
id:
pnp00:00
product: PnP device PNP0c02
physical id:
0
capabilities: pnp
configuration:
driver=system
id:
pnp00:01
product: PnP device PNP0c02
physical id:
1
capabilities: pnp
configuration:
driver=system
id:
pnp00:02
product: PnP device PNP0c02
physical id:
3
capabilities: pnp
configuration:
driver=system
id:
pnp00:03
product: PnP device PNP0c02
physical id:
4
capabilities: pnp
configuration:
driver=system
id:
pnp00:04
product: PnP device PNP0b00
physical id:
5
capabilities: pnp
configuration:
driver=rtc_cmos
id:
pnp00:05
product: PnP device INT3f0d
vendor: Interphase Corporation
physical id:
6
capabilities: pnp
configuration:
driver=system
id:
pnp00:06
product: PnP device LEN0071
vendor: Lenovo Group Limited
physical id:
7
capabilities: pnp
configuration:
driver=i8042 kbd
id:
pnp00:07
product: PnP device LEN0400
vendor: Lenovo Group Limited
physical id:
8
capabilities: pnp
configuration:
driver=i8042 aux
id:
pnp00:08
product: PnP device PNP0c02
physical id:
9
capabilities: pnp
configuration:
driver=system
id:
pnp00:09
product: PnP device PNP0c02
physical id:
a
capabilities: pnp
configuration:
driver=system
id:
pnp00:0a
product: PnP device PNP0c02
physical id:
b
capabilities: pnp
configuration:
driver=system
id:
pnp00:0b
product: PnP device PNP0c01
physical id:
10
capabilities: pnp
configuration:
driver=system
id:
battery
product: 02DL017
vendor: SMP
physical id:
1
slot: Front
capacity: 48010mWh
configuration:
voltage=11.5V

Error when docker compose down

After running the tests I ran into a new error.

I ran docker-compose down and received this error.

image

I don't have any of the services up to view so I am not sure why it is saying that the endpoints are active.

docker compose connection issues

I tried to run ./test/all-unix.sh without much success.

bash test/all-unix.sh results in

=== STARTING ADaPT-ML AND RUNNING ALL TESTS ===
label-studio-web is up-to-date
Starting modelling-mlflow-db ... 
Starting modelling-mlflow-db     ... done
crate-db is up-to-date
Starting dp-mlflow-db            ... done
Starting modelling-mlflow-deploy ... 
Starting label-studio-dev        ... done
Starting modelling-mlflow-deploy ... done
Starting modelling-mlflow        ... done
Starting dp-mlflow               ... done
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp                              
Waiting for MLflow databases (5 sec)...
crate-db                  /docker-entrypoint.sh crat ...   Restarting                                                      
dp-mlflow-db              /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp          
modelling-mlflow-db       /entrypoint.sh mysqld            Up (health: starting)   3306/tcp, 33060/tcp, 33061/tcp          
Waiting for MLflow databases (5 sec)...
crate-db                  /docker-entrypoint.sh crat ...   Restarting                                             
Waiting for MLflow databases (5 sec)...
Checking for exited containers...
Startup complete.
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 73, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/local/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 394, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.8/http/client.py", line 951, in send
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 473, in _request
    response = self.server_pool[next_server].request(
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 154, in request
    return self.pool.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 783, in urlopen
    return self.urlopen(
  [Previous line repeated 7 more times]
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 574, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 719, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.8/site-packages/crate/client/cursor.py", line 53, in execute
    self._result = self.connection.client.sql(sql, parameters,
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 396, in sql
    content = self._json_request('POST', self.path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 522, in _json_request
    response = self._request(method, path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 513, in _request
    self._drop_server(next_server, ex_message)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 581, in _drop_server
    raise ConnectionError(
crate.client.exceptions.ConnectionError: No more Servers available, exception from last server: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known'))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "./ls/sample_tasks.py", line 56, in <module>
    main()
  File "./ls/sample_tasks.py", line 33, in main
    tasks_df = pd.read_sql(random_query, DATABASE_IP)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/sql.py", line 628, in read_sql
    return pandas_sql.read_query(
  File "/usr/local/lib/python3.8/site-packages/pandas/io/sql.py", line 1579, in read_query
    result = self.execute(*args)
  File "/usr/local/lib/python3.8/site-packages/pandas/io/sql.py", line 1424, in execute
    return self.connectable.execution_options().execute(*args, **kwargs)
  File "<string>", line 2, in execute
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/deprecations.py", line 401, in warned
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3139, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1274, in execute
    return self._exec_driver_sql(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1578, in _exec_driver_sql
    ret = self._execute_context(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1845, in _execute_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2026, in _handle_dbapi_exception
    util.raise_(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
    raise exception
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 719, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.8/site-packages/crate/client/cursor.py", line 53, in execute
    self._result = self.connection.client.sql(sql, parameters,
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 396, in sql
    content = self._json_request('POST', self.path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 522, in _json_request
    response = self._request(method, path, data=data)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 513, in _request
    self._drop_server(next_server, ex_message)
  File "/usr/local/lib/python3.8/site-packages/crate/client/http.py", line 581, in _drop_server
    raise ConnectionError(
sqlalchemy.exc.OperationalError: (crate.client.exceptions.ConnectionError) No more Servers available, exception from last server: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f29a923d340>: Failed to establish a new connection: [Errno -2] Name or service not known'))
[SQL: 
        SELECT id, txt FROM example_data 
        ORDER BY RANDOM() 
        LIMIT 30;]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
=== STARTING LABEL STUDIO TESTS WITH EXAMPLE DATA ===
Try sampling some tasks...
ERROR: Task sampling failed.
=== STARTING DATA PROGRAMMING TESTS WITH EXAMPLE DATA ===
Testing multiclass...
ERROR: Experiment run failed to complete.
=== STARTING MODELLING TESTS WITH EXAMPLE DATA ===
Testing multiclass with LM test data...
ERROR: Experiment run failed to complete.
b40e23f0ae4cba0c0f476f8490a04d4f4c5299cb72249cef17024f3debc46528
=== STARTING MODEL DEPLOYMENT TESTS WITH EXAMPLE DATA ===
Testing multiclass predictions...
{"message":"Oops! ExampleModel did not predict successfully. Please check that the requested data points have the \n            features corresponding to the features the model was trained on, and that the database is available.\n            Details: (crate.client.exceptions.ConnectionError) No more Servers available, exception from last server: HTTPConnectionPool(host='crate-db', port=4200): Max retries exceeded with url: /_sql (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd46685e730>: Failed to establish a new connection: [Errno -2] Name or service not known'))\n[SQL: \n    SELECT id, txt_use FROM example_data WHERE id IN ('18', '24', '22', '19', '15');\n    ]\n(Background on this error at: http://sqlalche.me/e/14/e3q8)"}
ERROR: Getting predictions failed.
test-deploy-network
=== TESTING COMPLETE ===

Software

docker --version
Docker version 20.10.12-ce, build 459d0dfbbb51fb2423a43655e6c62368ec0f36c9

docker-compose --version
docker-compose version 1.29.2, build unknown

uname -r
5.13.8-191.current

Hardware

<style type="text/css"> .first {font-weight: bold; margin-left: none; padding-right: 1em;vertical-align: top; } .second {padding-left: 1em; width: 100%; vertical-align: center; } .id {font-family: monospace;} .indented {margin-left: 2em; border-left: dotted thin #dde; padding-bottom: 1em; } .node {border: solid thin #ffcc66; padding: 1em; background: #ffffcc; } .node-unclaimed {border: dotted thin #c3c3c3; padding: 1em; background: #fafafa; color: red; } .node-disabled {border: solid thin #f55; padding: 1em; background: #fee; color: gray; } </style> <title>aaron-x390</title>
id:
aaron-x390
description: Notebook
product: 20Q1S02M00 (LENOVO_MT_20Q1_BU_Think_FM_ThinkPad X390)
vendor: LENOVO
version: ThinkPad X390
serial: PF1N577B
width: 64 bits
capabilities: smbios-3.1.1 dmi-3.1.1 smp vsyscall32
configuration:
administrator_password=disabled
chassis=notebook
family=ThinkPad X390
power-on_password=disabled
sku=LENOVO_MT_20Q1_BU_Think_FM_ThinkPad X390
uuid=CCB1ACAE-E131-B211-A85C-FFF35FE54022
id:
core
description: Motherboard
product: 20Q1S02M00
vendor: LENOVO
physical id:
0
version: Not Defined
serial: L1HF92F00HB
slot: Not Available
id:
memory
description: System Memory
physical id:
2
slot: System board or motherboard
size: 16GiB
id:
bank:0
description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
product: M471A1K43BB1-CTD
vendor: Samsung
physical id:
0
serial: 00000000
slot: ChannelA-DIMM0
size: 8GiB
width: 64 bits
clock: 2667MHz (0.4ns)
id:
bank:1
description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
product: M471A1K43BB1-CTD
vendor: Samsung
physical id:
1
serial: 00000000
slot: ChannelB-DIMM0
size: 8GiB
width: 64 bits
clock: 2667MHz (0.4ns)
id:
cache:0
description: L1 cache
physical id:
c
slot: L1 Cache
size: 256KiB
capacity: 256KiB
capabilities: synchronous internal write-back unified
configuration:
level=1
id:
cache:1
description: L2 cache
physical id:
d
slot: L2 Cache
size: 1MiB
capacity: 1MiB
capabilities: synchronous internal write-back unified
configuration:
level=2
id:
cache:2
description: L3 cache
physical id:
e
slot: L3 Cache
size: 6MiB
capacity: 6MiB
capabilities: synchronous internal write-back unified
configuration:
level=3
id:
cpu
description: CPU
product: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
vendor: Intel Corp.
physical id:
f
bus info:
cpu@0
version: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
serial: None
slot: U3E1
size: 3728MHz
capacity: 3900MHz
width: 64 bits
clock: 100MHz
capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities cpufreq
configuration:
cores=4
enabledcores=4
threads=8
id:
firmware
description: BIOS
vendor: LENOVO
physical id:
11
version: N2JET31W (1.09 )
date: 03/15/2019
size: 128KiB
capacity: 16MiB
capabilities: pci pnp upgrade shadowing cdboot bootselect edd int13floppy720 int5printscreen int9keyboard int14serial int17printer int10video acpi usb biosbootspecification uefi
id:
pci
description: Host bridge
product: Coffee Lake HOST and DRAM Controller
vendor: Intel Corporation
physical id:
100
bus info:
pci@0000:00:00.0
version: 0b
width: 32 bits
clock: 33MHz
configuration:
driver=skl_uncore
resources:
irq:0
id:
display
description: VGA compatible controller
product: UHD Graphics 620 (Whiskey Lake)
vendor: Intel Corporation
physical id:
2
bus info:
pci@0000:00:02.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list
configuration:
driver=i915
latency=0
resources:
irq:139
memory:cb000000-cbffffff
memory:80000000-8fffffff
ioport:3000(size=64)
memory:c0000-dffff
id:
generic:0
description: Signal processing controller
product: Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
vendor: Intel Corporation
physical id:
4
bus info:
pci@0000:00:04.0
version: 0b
width: 64 bits
clock: 33MHz
capabilities: msi pm cap_list
configuration:
latency=0
resources:
memory:cd730000-cd737fff
id:
generic:1
description: System peripheral
product: Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
vendor: Intel Corporation
physical id:
8
bus info:
pci@0000:00:08.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: msi pm cap_list
configuration:
latency=0
resources:
memory:cd742000-cd742fff
id:
generic:2
description: Signal processing controller
product: Cannon Point-LP Thermal Controller
vendor: Intel Corporation
physical id:
12
bus info:
pci@0000:00:12.0
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi cap_list
configuration:
latency=0
resources:
memory:cd743000-cd743fff
id:
usb
description: USB controller
product: Cannon Point-LP USB 3.1 xHCI Controller
vendor: Intel Corporation
physical id:
14
bus info:
pci@0000:00:14.0
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi xhci bus_master cap_list
configuration:
driver=xhci_hcd
latency=0
resources:
irq:137
memory:cd720000-cd72ffff
id:
usbhost:0
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
0
bus info:
usb@1
logical name:
usb1
version: 5.13
capabilities: usb-2.00
configuration:
driver=hub
slots=12
speed=480Mbit/s
id:
usb:0
description: Human interface device
product: USB Billboard
vendor: Cypress Semiconductor
physical id:
2
bus info:
usb@1:2
version: 0.00
serial: 1S40AJM6H0AEHY
capabilities: usb-2.01
configuration:
driver=usbhid
maxpower=100mA
speed=12Mbit/s
id:
usb:1
description: USB hub
product: USB2.0 Hub
vendor: VIA Labs, Inc.
physical id:
5
bus info:
usb@1:5
version: 50.33
capabilities: usb-2.10
configuration:
driver=hub
slots=5
speed=480Mbit/s
id:
usb:0
description: USB hub
product: USB2.0 Hub
vendor: VIA Labs, Inc.
physical id:
2
bus info:
usb@1:5.2
version: 50.34
capabilities: usb-2.10
configuration:
driver=hub
slots=4
speed=480Mbit/s
id:
usb:0
description: Video
product: C922 Pro Stream Webcam
vendor: Logitech, Inc.
physical id:
1
bus info:
usb@1:5.2.1
version: 0.16
serial: C6CBC8BF
capabilities: usb-2.00
configuration:
driver=snd-usb-audio
maxpower=500mA
speed=480Mbit/s
id:
usb:1
description: Mouse
product: USB Optical Mouse
vendor: Logitech
physical id:
2
bus info:
usb@1:5.2.2
version: 72.00
capabilities: usb-2.00
configuration:
driver=usbhid
maxpower=100mA
speed=2Mbit/s
id:
usb:2
description: Audio device
product: ThinkPad Dock USB Audio
vendor: Generic
physical id:
4
bus info:
usb@1:5.2.4
version: 0.12
capabilities: usb-2.00 audio-control
configuration:
driver=usbhid
maxpower=100mA
speed=480Mbit/s
id:
usb:1
description: Keyboard
product: Keychron K3
vendor: Keychron
physical id:
4
bus info:
usb@1:5.4
version: 1.05
capabilities: usb-2.00
configuration:
driver=usbhid
maxpower=100mA
speed=12Mbit/s
id:
usb:2
description: Generic USB device
product: USB Billboard Device
vendor: VIA Labs, Inc.
physical id:
5
bus info:
usb@1:5.5
version: 0.01
serial: 0000000000000001
capabilities: usb-2.01
configuration:
maxpower=100mA
speed=480Mbit/s
id:
usb:2
description: Video
product: Integrated Camera
vendor: Chicony Electronics Co.,Ltd.
physical id:
8
bus info:
usb@1:8
version: 67.23
serial: 0001
capabilities: usb-2.01
configuration:
driver=uvcvideo
maxpower=500mA
speed=480Mbit/s
id:
usb:3
description: Generic USB device
product: Prometheus MIS Touch Fingerprint Reader
vendor: Synaptics, Inc.
physical id:
9
bus info:
usb@1:9
version: 0.00
serial: 3f0f09473fe4
capabilities: usb-2.00
configuration:
maxpower=100mA
speed=12Mbit/s
id:
usb:4
description: Bluetooth wireless interface
product: Bluetooth 9460/9560 Jefferson Peak (JfP)
vendor: Intel Corp.
physical id:
a
bus info:
usb@1:a
version: 0.02
capabilities: bluetooth usb-2.00
configuration:
driver=btusb
maxpower=100mA
speed=12Mbit/s
id:
usbhost:1
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
1
bus info:
usb@2
logical name:
usb2
version: 5.13
capabilities: usb-3.10
configuration:
driver=hub
slots=6
speed=10000Mbit/s
id:
memory
description: RAM memory
product: Cannon Point-LP Shared SRAM
vendor: Intel Corporation
physical id:
14.2
bus info:
pci@0000:00:14.2
version: 30
width: 64 bits
clock: 33MHz (30.3ns)
capabilities: pm cap_list
configuration:
latency=0
resources:
memory:cd740000-cd741fff
memory:cd744000-cd744fff
id:
network:0
description: Wireless interface
product: Cannon Point-LP CNVi [Wireless-AC]
vendor: Intel Corporation
physical id:
14.3
bus info:
pci@0000:00:14.3
logical name:
wlp0s20f3
version: 30
serial: 98:2c:bc:24:13:b9
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
configuration:
broadcast=yes
driver=iwlwifi
driverversion=5.13.8-191.current
firmware=46.5e069cbd.0 9000-pu-b0-jf-b0-
ip=141.14.225.26
latency=0
link=yes
multicast=yes
wireless=IEEE 802.11
resources:
irq:16
memory:cd738000-cd73bfff
id:
communication
description: Communication controller
product: Cannon Point-LP MEI Controller #1
vendor: Intel Corporation
physical id:
16
bus info:
pci@0000:00:16.0
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration:
driver=mei_me
latency=0
resources:
irq:140
memory:cd745000-cd745fff
id:
pci:0
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #1
vendor: Intel Corporation
physical id:
1c
bus info:
pci@0000:00:1c.0
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:120
memory:cd600000-cd6fffff
id:
generic
description: MMC Host
product: RTS522A PCI Express Card Reader
vendor: Realtek Semiconductor Co., Ltd.
physical id:
0
bus info:
pci@0000:01:00.0
logical name:
mmc0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration:
driver=rtsx_pci
latency=0
resources:
irq:136
memory:cd600000-cd600fff
id:
pci:1
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #5
vendor: Intel Corporation
physical id:
1c.4
bus info:
pci@0000:00:1c.4
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:121
ioport:4000(size=8192)
memory:b4000000-ca0fffff
ioport:90000000(size=570425344)
id:
pci
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:02:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:16
ioport:4000(size=4096)
memory:b4000000-ca0fffff
ioport:90000000(size=570425344)
id:
pci:0
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:03:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:124
memory:ca000000-ca0fffff
id:
pci:1
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
1
bus info:
pci@0000:03:01.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:125
ioport:4000(size=4096)
memory:b4000000-c9efffff
ioport:90000000(size=570425344)
id:
pci:2
description: PCI bridge
product: JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
2
bus info:
pci@0000:03:02.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:126
memory:c9f00000-c9ffffff
id:
usb
description: USB controller
product: JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:3a:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress xhci bus_master cap_list
configuration:
driver=xhci_hcd
latency=0
resources:
irq:138
memory:c9f00000-c9f0ffff
id:
usbhost:0
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
0
bus info:
usb@3
logical name:
usb3
version: 5.13
capabilities: usb-2.00
configuration:
driver=hub
slots=2
speed=480Mbit/s
id:
usbhost:1
product: xHCI Host Controller
vendor: Linux 5.13.8-191.current xhci-hcd
physical id:
1
bus info:
usb@4
logical name:
usb4
version: 5.13
capabilities: usb-3.10
configuration:
driver=hub
slots=2
speed=10000Mbit/s
id:
usb
description: USB hub
product: USB3.1 Hub
vendor: VIA Labs, Inc.
physical id:
1
bus info:
usb@4:1
version: 50.33
capabilities: usb-3.10
configuration:
driver=hub
slots=4
speed=10000Mbit/s
id:
usb
description: USB hub
product: USB3.1 Hub
vendor: VIA Labs, Inc.
physical id:
2
bus info:
usb@4:1.2
version: 50.34
capabilities: usb-3.10
configuration:
driver=hub
slots=4
speed=10000Mbit/s
id:
pci:2
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #9
vendor: Intel Corporation
physical id:
1d
bus info:
pci@0000:00:1d.0
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:122
ioport:2000(size=4096)
memory:ccc00000-cd5fffff
ioport:cc000000(size=10485760)
id:
pci:3
description: PCI bridge
product: Cannon Point-LP PCI Express Root Port #13
vendor: Intel Corporation
physical id:
1d.4
bus info:
pci@0000:00:1d.4
version: f0
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration:
driver=pcieport
resources:
irq:123
memory:ccb00000-ccbfffff
id:
nvme
description: NVMe device
product: INTEL SSDPEKKF512G8L
vendor: Intel Corporation
physical id:
0
bus info:
pci@0000:3d:00.0
logical name:
/dev/nvme0
version: L11P
serial: BTHP90940GCT512C
width: 64 bits
clock: 33MHz
capabilities: nvme pm msi pciexpress msix nvm_express bus_master cap_list
configuration:
driver=nvme
latency=0
nqn=nqn.2014.08.org.nvmexpress:80868086BTHP90940GCT512C INTEL SSDPEKKF512G8L
state=live
resources:
irq:16
memory:ccb00000-ccb03fff
id:
namespace:0
description: NVMe disk
physical id:
0
logical name:
hwmon0
id:
namespace:1
description: NVMe disk
physical id:
2
logical name:
/dev/ng0n1
id:
namespace:2
description: NVMe disk
physical id:
1
bus info:
nvme@0:1
logical name:
/dev/nvme0n1
size: 476GiB (512GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration:
guid=36f31f32-2083-4a92-a861-cf7289c8b933
logicalsectorsize=512
sectorsize=512
wwid=eui.5cd2e42391a02304
id:
volume:0
description: Windows FAT volume
vendor: mkfs.fat
physical id:
1
bus info:
nvme@0:1,1
logical name:
/dev/nvme0n1p1
version: FAT32
serial: 6b23-e507
size: 488MiB
capacity: 488MiB
capabilities: boot fat initialized
configuration:
FATs=2
filesystem=fat
id:
volume:1
description: LVM Physical Volume
vendor: Linux
physical id:
2
bus info:
nvme@0:1,2
logical name:
/dev/nvme0n1p2
serial: 49ffe561-10d9-4552-84de-587c63db06ad
size: 476GiB
capacity: 476GiB
width: 256 bits
capabilities: multi encrypted luks initialized
configuration:
bits=256
cipher=aes
filesystem=luks
hash=sha256
mode=xts-plain64
version=1
id:
isa
description: ISA bridge
product: Cannon Point-LP LPC Controller
vendor: Intel Corporation
physical id:
1f
bus info:
pci@0000:00:1f.0
version: 30
width: 32 bits
clock: 33MHz
capabilities: isa bus_master
configuration:
latency=0
id:
multimedia
description: Audio device
product: Cannon Point-LP High Definition Audio Controller
vendor: Intel Corporation
physical id:
1f.3
bus info:
pci@0000:00:1f.3
version: 30
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration:
driver=snd_hda_intel
latency=64
resources:
irq:148
memory:cd73c000-cd73ffff
memory:cca00000-ccafffff
id:
serial:0
description: SMBus
product: Cannon Point-LP SMBus Controller
vendor: Intel Corporation
physical id:
1f.4
bus info:
pci@0000:00:1f.4
version: 30
width: 64 bits
clock: 33MHz
configuration:
driver=i801_smbus
latency=0
resources:
irq:16
memory:cd746000-cd7460ff
ioport:efa0(size=32)
id:
serial:1
description: Serial bus controller
product: Cannon Point-LP SPI Controller
vendor: Intel Corporation
physical id:
1f.5
bus info:
pci@0000:00:1f.5
version: 30
width: 32 bits
clock: 33MHz
configuration:
latency=0
resources:
memory:fe010000-fe010fff
id:
network:1
description: Ethernet interface
product: Ethernet Connection (6) I219-V
vendor: Intel Corporation
physical id:
1f.6
bus info:
pci@0000:00:1f.6
logical name:
enp0s31f6
version: 30
serial: e8:6a:64:b7:67:2c
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration:
autonegotiation=on
broadcast=yes
driver=e1000e
driverversion=5.13.8-191.current
firmware=0.5-3
latency=0
link=no
multicast=yes
port=twisted pair
resources:
irq:147
memory:cd700000-cd71ffff
id:
pnp00:00
product: PnP device PNP0c02
physical id:
0
capabilities: pnp
configuration:
driver=system
id:
pnp00:01
product: PnP device PNP0c02
physical id:
1
capabilities: pnp
configuration:
driver=system
id:
pnp00:02
product: PnP device PNP0c02
physical id:
3
capabilities: pnp
configuration:
driver=system
id:
pnp00:03
product: PnP device PNP0c02
physical id:
4
capabilities: pnp
configuration:
driver=system
id:
pnp00:04
product: PnP device PNP0b00
physical id:
5
capabilities: pnp
configuration:
driver=rtc_cmos
id:
pnp00:05
product: PnP device INT3f0d
vendor: Interphase Corporation
physical id:
6
capabilities: pnp
configuration:
driver=system
id:
pnp00:06
product: PnP device LEN0071
vendor: Lenovo Group Limited
physical id:
7
capabilities: pnp
configuration:
driver=i8042 kbd
id:
pnp00:07
product: PnP device LEN0400
vendor: Lenovo Group Limited
physical id:
8
capabilities: pnp
configuration:
driver=i8042 aux
id:
pnp00:08
product: PnP device PNP0c02
physical id:
9
capabilities: pnp
configuration:
driver=system
id:
pnp00:09
product: PnP device PNP0c02
physical id:
a
capabilities: pnp
configuration:
driver=system
id:
pnp00:0a
product: PnP device PNP0c02
physical id:
b
capabilities: pnp
configuration:
driver=system
id:
pnp00:0b
product: PnP device PNP0c01
physical id:
10
capabilities: pnp
configuration:
driver=system
id:
battery
product: 02DL017
vendor: SMP
physical id:
1
slot: Front
capacity: 48010mWh
configuration:
voltage=11.5V

Consider incorporating a tutorial which walks the user through using the example data

I have gotten to step 2 in the usage guidelines. At this point the guidelines become all about calibrating configuration files but the user is not familiar with the basics of how any of these applications work or what the workflow experience will be like and as a non-expert in machine learning I find it challenging still to see how everything is going to fold together. I would recommend at this point recommending that the user walk through the example usage on the main page https://github.com/U-Alberta/ADaPT-ML. However, when I started to walk through it starting with Step 2: create a gold dataset using Label Studio, where the first script is, the code does not make my project in label studio reflect what is presented in the example usage. This may require some reorganization of the example files and configuration files so that the user can rapidly get the example working.

Running testing.md not setting up dockerfile version unsupported

When I follow the instructions at the testing.md file for a Windows machine I downloaded the repo to a folder called "ADaPT-ML-main" and ran docker compose but it gives me the error below.

D:\ADaPT-ML-main>docker-compose ps
ERROR: Version in ".\docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the services key, or omit the version key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

Add figure of the workflow to the manuscript

The current form of the manuscript is only words with no visuals. I think a person who stumbles upon the manuscript only might not be enticed to go to your github page without some visuals to help them get a sense of what they will get or learn there in the manuscript. One really good way of doing that is with a visual. I like the main visual that you have on your paper.md file that shows the workflow. Perhaps that or something similar could be included in the manuscript?

Community Contribution Guidelines

Thanks for the invitation as a reviewer of this software. I am currently going through the JOSS checklist and am flagging one issue here that I cannot find "Community guidelines." JOSS would like you to have guidelines listed that clearly indicate how third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support can do so. Following your documentation, I found community guidelines at HERE which primarily are a wishlist for new updates to the tool. I think there should be additional documentation for the three community use cases listed by JOSS that I indicated above.

Consider creating an AMI for spooling up the software dependencies

Hey @nulberry I apologize for my silence for the last few weeks. I realized that I was going to have to create a virtual machine from scratch to get this running on my device and that intimidated me a little because it's beyond the scope of what a normal reviewer would do. Considering that there are so many dependencies for this software (Operating system, Docker, and several other software packages) would you consider creating an Amazon Machine Image or something similar which spools up all dependencies with a single selection of a machine image? That would allow me and users to get going with your workflow at the click of a button.

Add list of dependencies

It would be helpful to add a full list of dependencies. I know that these dependencies are more or less handled within docker but I ran into some issues early on when diving into this tool when I realized the best way to use this tool is with a Linux machine. If there was a dependencies file in the documentation and linked early on in the README that would make sure people know what they need to do before they get into the tool.

Add mention of other Open Source MLOps projects in manuscript

The related projects in the paper.md file mention a project which used this tool and another one which is a proprietary MLOps software. As a reader, I want to know, are there other open source MLOps software out there that do a similar job to this tool? If not, that should be stated somewhere in the manuscript.

Add Tests

JOSS would like to see Automated tests for the software. I see that there are manual tests for the software where a user can work through an example, but I am not sure if there are automated tests that you have also set up to ensure the software is behaving as expected?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.