diff --git a/notebooks/ko/_toctree.yml b/notebooks/ko/_toctree.yml index 93d831e3..e70ac1ee 100644 --- a/notebooks/ko/_toctree.yml +++ b/notebooks/ko/_toctree.yml @@ -27,6 +27,8 @@ sections: - local: multiagent_web_assistant title: 다중 에이전트 계층 구조에서 여러 에이전트가 협업하도록 하기 + - local: vector_search_agent + title: 벡터 검색 에이전트-허깅페이스 허브를 백엔드로 하는 똑똑한 검색 엔진 - title: Multimodal 레시피 isExpanded: false sections: diff --git a/notebooks/ko/index.md b/notebooks/ko/index.md index d0c04cf2..bd21a544 100644 --- a/notebooks/ko/index.md +++ b/notebooks/ko/index.md @@ -16,6 +16,7 @@ - [개인용 GPU에서 TRL로 SmolVLM DPO 파인튜닝하기](ko_fine_tuning_vlm_dpo_smolvlm_instruct) - [커스텀 데이터셋으로 객체 탐지 모델 파인튜닝하기, Spaces에 배포하기, 그리고 Gradio API 연동하기](fine_tuning_detr_custom_dataset) - [허깅페이스 허브를 백엔드로 사용한 벡터 검색](vector_search_with_hub_as_backend) +- [벡터 검색 에이전트-허깅페이스 허브를 백엔드로 하는 똑똑한 검색 엔진](vector_search_agent) 더 다양한 노트북을 확인하고 싶다면 Cookbook's [GitHub 리포지토리](https://github.com/huggingface/cookbook)에 방문해보세요. diff --git a/notebooks/ko/vector_search_agent.ipynb b/notebooks/ko/vector_search_agent.ipynb new file mode 100644 index 00000000..ff340a31 --- /dev/null +++ b/notebooks/ko/vector_search_agent.ipynb @@ -0,0 +1,1586 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "ksUdu7H7qBig" + }, + "source": [ + "# 🤖 벡터 검색 에이전트: 허깅페이스 허브를 백엔드로 하는 똑똑한 검색 엔진\n", + "\n", + "_참조: [Martin Elstner](https://github.com/MartinEls)\n", + "_작성자: [안정](https://github.com/ahnjj)\n", + "\n", + "검색엔진은 크게 키워드 검색과 벡터 검색으로 분류 됩니다. 키워드 검색과는 달리, 벡터 검색으로 진행할 경우 두가지를 고려해야합니다.\n", + "1. 적합한 임베딩 모델로 데이터셋과 쿼리를 임베딩하는 작업\n", + "2. 임베딩 데이터를 처리할 수 있는 DB\n", + "\n", + "그러나, 임베딩값을 기반으로하는 벡터 검색만으로는 '사용자가 원하는 답변'를 보장하기 어렵습니다.\n", + "\n", + "따라서 검색의 각 단계에서 에이전트가 각 단계를 자율적으로 판단하고 최적화한다면 사용자가 원하는 답변에 가까운 검색 결과를 얻을 수 있을 것 같습니다!\n", + "\n", + "### Agentic 접근 방식의 차별점\n", + "기존 벡터검색 워크플로우\n", + "```\n", + "데이터 ➡ 데이터 임베딩(고정 모델) ➡ 인덱스 생성 ➡ 사용자 질의 ➡ 유사도 검색 ➡ 답변\n", + "```\n", + "똑똑한 Agentic 방식\n", + "```\n", + "사용자 질의 분석(검색 전략 세움) ➡ 최적 임베딩 모델 선택 ➡ 데이터 임베딩 ➡ 인덱스 생성 ➡ 유사도 검색 ➡ 검색결과 바탕으로 답변 정제\n", + "```\n", + "\n", + "### DuckDB?\n", + "허깅페이스의 데이터셋은 파켓(parquet) 파일에 의존하는데 빠른 인메모리 데이터베이스 시스템인 [DuckDB를 사용하면 이 파일들과 상호작용](https://huggingface.co/docs/hub/en/datasets-duckdb)할 수 있습니다. 또한 DuckDB의 기능 중 하나는 [벡터 유사도 검색](https://duckdb.org/docs/extensions/vss.html)으로, 인덱스 유무에 관계없이 사용할 수 있습니다.\n", + "\n", + "\n", + "이번 노트북에서는 단일 Agent에 여러가지 도구를 주어 수행하는 간단한 Agentic 벡터 검색 엔진을 만들어 보겠습니다." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Old2t6dnpi3M" + }, + "source": [ + "# 도구정의\n", + "정의할 도구는 아래와 같습니다.\n", + "- 임베딩 생성 도구\n", + "- 인덱스 생성 도구\n", + "- 유사도 검색 도구\n", + "- 답변 생성 도구" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "dtRgDq1aEmsP" + }, + "outputs": [], + "source": [ + "from smolagents import tool\n", + "from datasets import Dataset\n", + "from sentence_transformers import SentenceTransformer\n", + "import duckdb\n", + "import openai" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jqkItR-ezMxt" + }, + "source": [ + "### 도구1 : 임베딩 생성\n", + "일반적으로, 임베딩 작업에서는 더 작은 배치사이즈로 줄여 청킹하나 여기서는 데이터셋을 임베딩으로 바꾸기만 하겠습니다." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7suweNYNIfMi" + }, + "outputs": [], + "source": [ + "@tool\n", + "def create_embeddings(\n", + " dataset: Dataset,\n", + " model_id: str,\n", + " column_name: str,\n", + " ) -> Dataset:\n", + " \"\"\"\n", + " 주어진 데이터셋에 대해 임베딩을 생성합니다.\n", + "\n", + " Args:\n", + " dataset: 임베딩을 생성할 대상 데이터셋\n", + " model_id: 임베딩에 사용할 모델\n", + " column_name: 임베딩할 컬럼 이름\n", + "\n", + " Returns:\n", + " 임베딩이 추가된 데이터셋\n", + " \"\"\"\n", + "\n", + " model = SentenceTransformer(model_id)\n", + "\n", + " def embed_batch(batch):\n", + " embeddings = model.encode(batch[column_name], convert_to_numpy=True)\n", + " batch[\"embeddings\"] = embeddings.tolist()\n", + " return batch\n", + "\n", + " dataset = dataset.map(embed_batch, batched=True)\n", + "\n", + " return dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pFE5laHqqBii" + }, + "source": [ + "## DuckDB로 벡터 검색 수행하기\n", + "`duckdb`를 사용하여 데이터셋에서 벡터 검색을 수행할 수 있습니다.\n", + "인덱스는 사용하거나 사용하지 않을 수 있습니다. 인덱스를 **활용하지 않고** 검색하는 것은 더 느리지만 더 정확하고, 인덱스를 **활용하여** 검색하는 것은 더 빠르지만 덜 정확합니다.\n", + "\n", + "### 인덱스를 활용하지 않고 검색하기\n", + "인덱스를 활용하지 않고 검색하는 것은 느린 작업지만 일반적으로 약 10만 행까지의 작은 데이터셋에서는 충분히 빠르게 동작합니다. 하지만 이번 노트북에서는 DuckDB의 인덱스를 활용해서 검색해보겠습니다." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Y4W1wkkRqBij" + }, + "source": [ + "### 인덱스를 활용하여 검색하기\n", + "\n", + "이 접근법은 데이터셋의 로컬 복사본을 생성하고 이를 사용하여 인덱스를 생성합니다. 약간의 오버헤드가 있지만 한번 인덱스를 생성한 후에는 검색 속도가 개선될 것입니다." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kS61lIgSAYmS" + }, + "source": [ + "### 도구2 : DuckDB인덱스 만들기" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "KymcS1uUd2Lg" + }, + "outputs": [], + "source": [ + "@tool\n", + "def create_db_index(\n", + " dataset_with_embeddings: Dataset, # 임베딩이 포함된 데이터셋\n", + " table_name: str,\n", + " embedding_column: str = \"embeddings\"\n", + ") -> None:\n", + " \"\"\"\n", + " 임베딩이 포함된 데이터셋에 대해 DuckDB 인덱스를 생성합니다.\n", + "\n", + " Args:\n", + " dataset_with_embeddings: 이미 임베딩이 포함된 데이터셋\n", + " table_name: 생성할 테이블 이름\n", + " embedding_column: 임베딩 컬럼 이름\n", + "\n", + " Returns:\n", + " None\n", + " \"\"\"\n", + " # VSS 확장 설치 및 로드\n", + " duckdb.sql(\"INSTALL vss; LOAD vss;\")\n", + " duckdb.sql(f\"DROP TABLE IF EXISTS {table_name};\")\n", + "\n", + " # 데이터셋을 pandas DataFrame으로 변환\n", + " df = dataset_with_embeddings.to_pandas()\n", + "\n", + " # DuckDB에 DataFrame 등록\n", + " duckdb.register(f\"{table_name}_temp\", df)\n", + "\n", + " # 모델에서 임베딩 차원 가져오기\n", + " embedding_dim = len(df[embedding_column].iloc[0])\n", + " # embedding_dim = model.get_sentence_embedding_dimension()\n", + "\n", + " # 테이블 생성 (임베딩을 FLOAT 배열로 변환)\n", + " duckdb.sql(f\"\"\"\n", + " CREATE TABLE {table_name} AS\n", + " SELECT *, {embedding_column}::FLOAT[{embedding_dim}] AS {embedding_column}_float\n", + " FROM {table_name}_temp;\n", + " \"\"\")\n", + "\n", + " # HNSW 인덱스 생성\n", + " duckdb.sql(f\"\"\"\n", + " CREATE INDEX idx_{embedding_column} ON {table_name}\n", + " USING HNSW ({embedding_column}_float) WITH (metric = 'cosine');\n", + " \"\"\")\n", + "\n", + " # 임시 테이블 정리\n", + " duckdb.sql(f\"DROP VIEW IF EXISTS {table_name}_temp;\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rPv0DiO8qBij" + }, + "source": [ + "이 도구를 통해 인덱스를 사용하여 벡터 검색을 수행할 수 있으며, 결과는 즉시 반환됩니다." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ygW649Ln0OvV" + }, + "source": [ + "### 도구3: 벡터 검색 수행하기" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZT0732nmqBij" + }, + "outputs": [], + "source": [ + "@tool\n", + "def similarity_search_with_duckdb_index(\n", + " query: str,\n", + " table_name: str,\n", + " model_id: str,\n", + " k: int = 5,\n", + " embedding_column: str = \"embeddings\"\n", + ")-> dict:\n", + " \"\"\"\n", + " DuckDB 인덱스를 이용해 벡터 검색을 수행합니다.\n", + "\n", + " Args:\n", + " query: 검색할 쿼리 문자열\n", + " model_id: 임베딩에 사용할 모델\n", + " k: 반환할 결과 수\n", + " table_name: 검색할 테이블 이름\n", + " embedding_column: 임베딩 컬럼 이름\n", + "\n", + " Returns:\n", + " dict: 검색 결과\n", + " \"\"\"\n", + " from sentence_transformers import SentenceTransformer\n", + " model = SentenceTransformer(model_id)\n", + " embedding = model.encode(query).tolist()\n", + " return duckdb.sql(\n", + " query=f\"\"\"\n", + " SELECT *, array_cosine_distance({embedding_column}_float, {embedding}::FLOAT[{model.get_sentence_embedding_dimension()}]) as distance\n", + " FROM {table_name}\n", + " ORDER BY distance\n", + " LIMIT {k};\n", + " \"\"\"\n", + " ).to_df()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XVT4VYknqBij" + }, + "source": [ + "무거운 벡터 검색 엔진을 배포할 필요가 없고 저장소는 허브에서 처리됩니다." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AQf6IxFGqBij" + }, + "source": [ + "### 도구4 :답변 생성 도구\n", + "유사도 검색 결과 청크를 기반으로, LLM이 사용자가 원할 만한 답변을 생성합니다." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "qSVSBs0A_xfy" + }, + "outputs": [], + "source": [ + "@tool\n", + "def generate_answer(chunks: list, query: str) -> str:\n", + " \"\"\"\n", + " 쿼리를 기반으로 주어진 텍스트 청크 목록에서 답변을 생성합니다.\n", + "\n", + " Args:\n", + " chunks: 답변 생성에 사용할 텍스트 청크 목록\n", + " query: 답변할 쿼리 문자열\n", + "\n", + " Returns:\n", + " str: 생성된 답변\n", + " \"\"\"\n", + " context = \"\\n\\n\".join(chunks)\n", + " prompt = f\"Context:\\n{context}\\n\\nQuestion: {query}\\nAnswer:\"\n", + " response = openai.ChatCompletion.create(\n", + " model=\"gpt-4\",\n", + " messages=[{\"role\": \"user\", \"content\": prompt}]\n", + " )\n", + " return response[\"choices\"][0][\"message\"][\"content\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Z3k43xYi0vcz" + }, + "source": [ + "도구를 정의하였으니, 데이터셋을 로드하고 에이전트를 동작해보겠습니다." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oCgDoLCqCBG1" + }, + "source": [ + "사용한 데이터셋은 [huggingface-KREW/KoCultre-Descriptions](https://huggingface.co/datasets/huggingface-KREW/KoCultre-Descriptions)으로, 한국어 밈(meme)에 대한 데이터입니다." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 113, + "referenced_widgets": [ + "da22f8b62fe94c6db8a349c86578a34b", + "092bb432223843e38d69a0bf5eafffda", + "02a6eab80d80470ca4a9432507d4ab4f", + "688509c3349a4f4db2c7b3a2bdcb1e08", + "4fae65a8950d4ac5805905b9262c9a68", + "16b7816127984131bbee7916e2333810", + "fc39d4e718434e678c31061dfa25f4b2", + "8118ca70d2f740cdb9cc1e3f352258cf", + "3da33d2b5ff84c21850f7ff631e05f94", + "804b210a10e648b49b4dbb2e2956e0fe", + "c18da1de6f4c44bda89d7a1133d20fca", + "c4f1eba98f0d43b0b250e0328605b510", + "e13c94baf6d045388052e5bfa8dca502", + "cb52506c52a44c7ca77c103fb5c2493b", + "a6f32dc6a8a646e0b9c0b7620d2c5194", + "52ae7aa2a1124f319597974b7630f60d", + "677fa72bff2549928b34acfbb22a884b", + "df79f87afec54af5b301232d9dfe85e1", + "f12ebb6a7d7e4f5aa43acd9b30bdcbb5", + "20602d81271a4e75a91b7c46fd72bda4", + "cf1b1d77b7c94d3da0b13248a6e56224", + "3e6d105b09e14e1c80d949377cf2cc89", + "e4038023d5ff4e1b815d2ba77001332f", + "1c893036f65b4489a53173a1627c657d", + "2f7395a1ff404d47abaf8e6f5c40aa71", + "d95dc878fa2949bb827a107f92d71663", + "99ce43aee22247afba86a42d38d9f37b", + "b4a50e8386504041bfb0d8b5f4c36f64", + "0ed1c6e37bbb4332bfa2f41e44b34ed4", + "55ef96f9fa104094932f8cbe4f9e127c", + "e2941ee4b84a4f0f80f2fbc8a6048f9e", + "bc80842e06344fe5ac996792a8347c0d", + "18204cadeed24b14b8dc82f0020dbbdd" + ] + }, + "id": "cWjXlIfv_yHo", + "outputId": "24f7a702-8273-4c50-c38a-7bb1221e4f8f" + }, + "outputs": [], + "source": [ + "from datasets import load_dataset\n", + "\n", + "dataset = load_dataset(\"huggingface-KREW/KoCultre-Descriptions\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0QNvC0D0g3Fs" + }, + "source": [ + "에이전트를 정의합니다. 사용할 모델은 Qwen/Qwen2.5-Coder-32B-Instruct 입니다." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "knZh-7CThBj8" + }, + "outputs": [], + "source": [ + "from smolagents import CodeAgent, InferenceClientModel\n", + "\n", + "model = InferenceClientModel(\n", + " \"Qwen/Qwen2.5-Coder-32B-Instruct\",\n", + " provider=\"together\",\n", + " max_tokens=2048\n", + ")\n", + "\n", + "tools = [\n", + " create_embeddings, # 임베딩 생성 도구\n", + " create_db_index, # 인덱스 생성 도구\n", + " similarity_search_with_duckdb_index, # 유사도 검색 도구\n", + " generate_answer # 답변 생성 도구\n", + "]\n", + "\n", + "agent = CodeAgent(\n", + " model=model,\n", + " tools=tools,\n", + " verbosity_level=2,\n", + " max_steps=15\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P6odGxJ5hDq7" + }, + "source": [ + "에이전트가 자율적으로 임베딩 모델을 택할 수 있도록 프롬프트를 구성하겠습니다." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "mUkNSrqchND5" + }, + "outputs": [], + "source": [ + "def agentic_prompt(query: str):\n", + " return f\"\"\"\n", + " 당신은 지능형 검색 전문가입니다. {query}:\n", + "\n", + " 검색을 위해 먼저 쿼리와 데이터셋을 분석하고, 분석 결과에 따라 가장 적합한 임베딩 모델을 선택하세요\n", + " - sentence-transformers/all-MiniLM-L6-v2 (fast, lightweight, good for simple queries)\n", + " - sentence-transformers/all-mpnet-base-v2 (balanced performance)\n", + " - intfloat/e5-large-v2 (high quality for complex tasks)\n", + " - minishlab/potion-base-8M (very efficient)\n", + " \"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_Zeg68UohTi7" + }, + "source": [ + "데이터셋에 대한 설명과, 검색어를 입력하고 검색엔진 에이전트를 실행합니다." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "ETUbg3spWCCK", + "outputId": "3e95574b-2e12-42c3-d773-d8693c0900bc" + }, + "outputs": [], + "source": [ + "result = agent.run(\n", + " agentic_prompt(query=\"아이돌 관련 밈 알려주세요\"),\n", + " additional_args={\"dataset\": dataset,\n", + " \"dataset_description\": \"한국어 밈(meme)에 대한 데이터셋으로, meme과(title), meme의 뜻(content)을 알려준다.\",\n", + " \"column_name\": \"content\"}\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "VB_DTnydANo5", + "outputId": "72889b8d-3893-436c-f2b0-d349fe1db491" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Final result: 엄마가되는 밈은 최근 SNS와 온라인 커뮤니티에서 유행하는 표현으로, 주로 누군가가 매우 귀엽거나 사랑스러워서 모성애적 감정을 느낄 때 사용됩니다. 이 표현은 아이돌 팬덤 문화에서 자주 사용되며, '엄마가 돼'가 올바른 표기이지만 의도적인 맞춤법 파괴를 통해 밈으로서의 독특한 성격을 갖게 되었습니다.\n" + ] + } + ], + "source": [ + "print(f\"Final result: {result}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```\n", + "Final result: 엄마가되는 밈은 최근 SNS와 온라인 커뮤니티에서 유행하는 표현으로, 주로 누군가가 매우 귀엽거나 사랑스러워서 모성애적 감정을 느낄 때 사용됩니다. 이 표현은 아이돌 팬덤 문화에서 자주 사용되며, '엄마가 돼'가 올바른 표기이지만 의도적인 맞춤법 파괴를 통해 밈으로서의 독특한 성격을 갖게 되었습니다.\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aWKaTqyoAkXa" + }, + "source": [ + "### **Conclusion**\n", + "\n", + "단순히 검색 결과만을 가져오는 것이 아니라, 검색결과를 바탕으로 쿼리에 따른 답변을 정제해서 보여주었습니다.✌🏻\n", + "\n", + "위는 간단한 에이전트 시스템이지만, 품질 평가, 분석 등을 추가한다면 진정한 Agentic 검색 엔진을 구현할 수 있을 것 입니다!" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "gpuType": "T4", + "machine_shape": "hm", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "02a6eab80d80470ca4a9432507d4ab4f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8118ca70d2f740cdb9cc1e3f352258cf", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3da33d2b5ff84c21850f7ff631e05f94", + "value": 1 + } + }, + "092bb432223843e38d69a0bf5eafffda": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_16b7816127984131bbee7916e2333810", + "placeholder": "​", + "style": "IPY_MODEL_fc39d4e718434e678c31061dfa25f4b2", + "value": "README.md: " + } + }, + "0ed1c6e37bbb4332bfa2f41e44b34ed4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "16b7816127984131bbee7916e2333810": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "18204cadeed24b14b8dc82f0020dbbdd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1c893036f65b4489a53173a1627c657d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b4a50e8386504041bfb0d8b5f4c36f64", + "placeholder": "​", + "style": "IPY_MODEL_0ed1c6e37bbb4332bfa2f41e44b34ed4", + "value": "Generating train split: 100%" + } + }, + "20602d81271a4e75a91b7c46fd72bda4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "2f7395a1ff404d47abaf8e6f5c40aa71": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_55ef96f9fa104094932f8cbe4f9e127c", + "max": 503, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e2941ee4b84a4f0f80f2fbc8a6048f9e", + "value": 503 + } + }, + "3da33d2b5ff84c21850f7ff631e05f94": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "3e6d105b09e14e1c80d949377cf2cc89": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "4fae65a8950d4ac5805905b9262c9a68": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "52ae7aa2a1124f319597974b7630f60d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "55ef96f9fa104094932f8cbe4f9e127c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "677fa72bff2549928b34acfbb22a884b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "688509c3349a4f4db2c7b3a2bdcb1e08": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_804b210a10e648b49b4dbb2e2956e0fe", + "placeholder": "​", + "style": "IPY_MODEL_c18da1de6f4c44bda89d7a1133d20fca", + "value": " 11.3k/? [00:00<00:00, 1.07MB/s]" + } + }, + "804b210a10e648b49b4dbb2e2956e0fe": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8118ca70d2f740cdb9cc1e3f352258cf": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "20px" + } + }, + "99ce43aee22247afba86a42d38d9f37b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a6f32dc6a8a646e0b9c0b7620d2c5194": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cf1b1d77b7c94d3da0b13248a6e56224", + "placeholder": "​", + "style": "IPY_MODEL_3e6d105b09e14e1c80d949377cf2cc89", + "value": " 241k/241k [00:00<00:00, 5.27MB/s]" + } + }, + "b4a50e8386504041bfb0d8b5f4c36f64": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bc80842e06344fe5ac996792a8347c0d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c18da1de6f4c44bda89d7a1133d20fca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c4f1eba98f0d43b0b250e0328605b510": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e13c94baf6d045388052e5bfa8dca502", + "IPY_MODEL_cb52506c52a44c7ca77c103fb5c2493b", + "IPY_MODEL_a6f32dc6a8a646e0b9c0b7620d2c5194" + ], + "layout": "IPY_MODEL_52ae7aa2a1124f319597974b7630f60d" + } + }, + "cb52506c52a44c7ca77c103fb5c2493b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f12ebb6a7d7e4f5aa43acd9b30bdcbb5", + "max": 240548, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_20602d81271a4e75a91b7c46fd72bda4", + "value": 240548 + } + }, + "cf1b1d77b7c94d3da0b13248a6e56224": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d95dc878fa2949bb827a107f92d71663": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_bc80842e06344fe5ac996792a8347c0d", + "placeholder": "​", + "style": "IPY_MODEL_18204cadeed24b14b8dc82f0020dbbdd", + "value": " 503/503 [00:00<00:00, 10988.77 examples/s]" + } + }, + "da22f8b62fe94c6db8a349c86578a34b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_092bb432223843e38d69a0bf5eafffda", + "IPY_MODEL_02a6eab80d80470ca4a9432507d4ab4f", + "IPY_MODEL_688509c3349a4f4db2c7b3a2bdcb1e08" + ], + "layout": "IPY_MODEL_4fae65a8950d4ac5805905b9262c9a68" + } + }, + "df79f87afec54af5b301232d9dfe85e1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e13c94baf6d045388052e5bfa8dca502": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_677fa72bff2549928b34acfbb22a884b", + "placeholder": "​", + "style": "IPY_MODEL_df79f87afec54af5b301232d9dfe85e1", + "value": "train-00000-of-00001.parquet: 100%" + } + }, + "e2941ee4b84a4f0f80f2fbc8a6048f9e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "e4038023d5ff4e1b815d2ba77001332f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1c893036f65b4489a53173a1627c657d", + "IPY_MODEL_2f7395a1ff404d47abaf8e6f5c40aa71", + "IPY_MODEL_d95dc878fa2949bb827a107f92d71663" + ], + "layout": "IPY_MODEL_99ce43aee22247afba86a42d38d9f37b" + } + }, + "f12ebb6a7d7e4f5aa43acd9b30bdcbb5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fc39d4e718434e678c31061dfa25f4b2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}