{
    "componentChunkName": "component---src-templates-post-tsx",
    "path": "/peft/",
    "result": {"data":{"logo":null,"markdownRemark":{"html":"<h1>Huggingface PEFT (Parameter-Efficient Fine-Tuning)</h1>\n<p>허깅페이스에서 나온 <a href=\"https://github.com/huggingface/peft\">PEFT</a>라는 라이브러리인데 <a href=\"https://arxiv.org/pdf/2106.09685.pdf\">LoRA</a>, <a href=\"https://aclanthology.org/2021.acl-long.353/\">Prefix Tuning</a>, <a href=\"https://arxiv.org/pdf/2103.10385.pdf\">P-Tuing</a>, <a href=\"https://arxiv.org/pdf/2104.08691.pdf\">Prompt Tuning</a>\n과 같은 기법들을 쉽게 사용하도록 나온 라이브러리다. P-Tuning, Prefix Tuning, Prompt Tuning은 처음 나왔을때 직접 논문 보면서 구현해서 적용했었는데 이렇게 쉽게 가능하니 감회가 새롭다.</p>\n<p>특히 최근 각광받는 LoRA를 쉽게 사용 가능하다는 점에서 굉장히 좋다.</p>\n<h2>Usage</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> transformers <span class=\"token keyword\">import</span> AutoModelForCausalLM\n<span class=\"token keyword\">from</span> peft <span class=\"token keyword\">import</span> get_peft_config<span class=\"token punctuation\">,</span> get_peft_model<span class=\"token punctuation\">,</span> LoraConfig<span class=\"token punctuation\">,</span> TaskType\nmodel_name_or_path <span class=\"token operator\">=</span> <span class=\"token string\">\"bigscience/mt0-large\"</span>\ntokenizer_name_or_path <span class=\"token operator\">=</span> <span class=\"token string\">\"bigscience/mt0-large\"</span>\n\npeft_config <span class=\"token operator\">=</span> LoraConfig<span class=\"token punctuation\">(</span>\n    task_type<span class=\"token operator\">=</span><span class=\"token string\">\"CAUSAL_LM\"</span><span class=\"token punctuation\">,</span> inference_mode<span class=\"token operator\">=</span><span class=\"token boolean\">False</span><span class=\"token punctuation\">,</span> r<span class=\"token operator\">=</span><span class=\"token number\">8</span><span class=\"token punctuation\">,</span> lora_alpha<span class=\"token operator\">=</span><span class=\"token number\">32</span><span class=\"token punctuation\">,</span> lora_dropout<span class=\"token operator\">=</span><span class=\"token number\">0.1</span>\n<span class=\"token punctuation\">)</span>\n\nmodel <span class=\"token operator\">=</span> AutoModelForCausalLM<span class=\"token punctuation\">.</span>from_pretrained<span class=\"token punctuation\">(</span>model_name_or_path<span class=\"token punctuation\">)</span>\nmodel <span class=\"token operator\">=</span> get_peft_model<span class=\"token punctuation\">(</span>model<span class=\"token punctuation\">,</span> peft_config<span class=\"token punctuation\">)</span>\nmodel<span class=\"token punctuation\">.</span>print_trainable_parameters<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\"># output: trainable params: 2359296 || all params: 1231940608 || trainable%: 0.19151053100118282</span></code></pre></div>\n<p>위 코드로 PEFT 모델로 변경해준 뒤 사용하면 된다.<br>\n그리고 모델을 저장하면 base_model 파라미터를 제외한 Adapter 부분만 저장이 된다.</p>\n<h2>Reference</h2>\n<ul>\n<li><a href=\"https://github.com/huggingface/peft\">https://github.com/huggingface/peft</a></li>\n</ul>","htmlAst":{"type":"root","children":[{"type":"element","tagName":"h1","properties":{},"children":[{"type":"text","value":"Huggingface PEFT (Parameter-Efficient Fine-Tuning)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"허깅페이스에서 나온 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/huggingface/peft"},"children":[{"type":"text","value":"PEFT"}]},{"type":"text","value":"라는 라이브러리인데 "},{"type":"element","tagName":"a","properties":{"href":"https://arxiv.org/pdf/2106.09685.pdf"},"children":[{"type":"text","value":"LoRA"}]},{"type":"text","value":", "},{"type":"element","tagName":"a","properties":{"href":"https://aclanthology.org/2021.acl-long.353/"},"children":[{"type":"text","value":"Prefix Tuning"}]},{"type":"text","value":", "},{"type":"element","tagName":"a","properties":{"href":"https://arxiv.org/pdf/2103.10385.pdf"},"children":[{"type":"text","value":"P-Tuing"}]},{"type":"text","value":", "},{"type":"element","tagName":"a","properties":{"href":"https://arxiv.org/pdf/2104.08691.pdf"},"children":[{"type":"text","value":"Prompt Tuning"}]},{"type":"text","value":"\n과 같은 기법들을 쉽게 사용하도록 나온 라이브러리다. P-Tuning, Prefix Tuning, Prompt Tuning은 처음 나왔을때 직접 논문 보면서 구현해서 적용했었는데 이렇게 쉽게 가능하니 감회가 새롭다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"특히 최근 각광받는 LoRA를 쉽게 사용 가능하다는 점에서 굉장히 좋다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Usage"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"python"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-python"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-python"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" transformers "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" AutoModelForCausalLM\n"},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"from"}]},{"type":"text","value":" peft "},{"type":"element","tagName":"span","properties":{"className":["token","keyword"]},"children":[{"type":"text","value":"import"}]},{"type":"text","value":" get_peft_config"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" get_peft_model"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" LoraConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" TaskType\nmodel_name_or_path "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"bigscience/mt0-large\""}]},{"type":"text","value":"\ntokenizer_name_or_path "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" "},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"bigscience/mt0-large\""}]},{"type":"text","value":"\n\npeft_config "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" LoraConfig"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"\n    task_type"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","string"]},"children":[{"type":"text","value":"\"CAUSAL_LM\""}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" inference_mode"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","boolean"]},"children":[{"type":"text","value":"False"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" r"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"8"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" lora_alpha"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"32"}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" lora_dropout"},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"element","tagName":"span","properties":{"className":["token","number"]},"children":[{"type":"text","value":"0.1"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n\nmodel "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" AutoModelForCausalLM"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"from_pretrained"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"model_name_or_path"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\nmodel "},{"type":"element","tagName":"span","properties":{"className":["token","operator"]},"children":[{"type":"text","value":"="}]},{"type":"text","value":" get_peft_model"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"text","value":"model"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":","}]},{"type":"text","value":" peft_config"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\nmodel"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"."}]},{"type":"text","value":"print_trainable_parameters"},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":"("}]},{"type":"element","tagName":"span","properties":{"className":["token","punctuation"]},"children":[{"type":"text","value":")"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"span","properties":{"className":["token","comment"]},"children":[{"type":"text","value":"# output: trainable params: 2359296 || all params: 1231940608 || trainable%: 0.19151053100118282"}]}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"위 코드로 PEFT 모델로 변경해준 뒤 사용하면 된다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n그리고 모델을 저장하면 base_model 파라미터를 제외한 Adapter 부분만 저장이 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Reference"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/huggingface/peft"},"children":[{"type":"text","value":"https://github.com/huggingface/peft"}]}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"excerpt":"Huggingface PEFT (Parameter-Efficient Fine-Tuning) 허깅페이스에서 나온 PEFT라는 라이브러리인데 LoRA, Prefix Tuning, P-Tuing, Prompt Tuning…","fields":{"readingTime":{"text":"2 min read"}},"frontmatter":{"title":"Huggingface PEFT (Parameter-Efficient Fine-Tuning)","userDate":"31 March 2023","date":"2023-03-31T15:11:55.000Z","tags":["huggingface","nlp","lora"],"excerpt":null,"image":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","backgroundColor":"#484848","images":{"fallback":{"src":"/static/7e1d1e1980e493bd006abb37b9b95dfc/90018/peft.png","srcSet":"/static/7e1d1e1980e493bd006abb37b9b95dfc/f503b/peft.png 750w,\n/static/7e1d1e1980e493bd006abb37b9b95dfc/e4953/peft.png 1080w,\n/static/7e1d1e1980e493bd006abb37b9b95dfc/c2802/peft.png 1366w,\n/static/7e1d1e1980e493bd006abb37b9b95dfc/90018/peft.png 1720w","sizes":"100vw"},"sources":[{"srcSet":"/static/7e1d1e1980e493bd006abb37b9b95dfc/77272/peft.webp 750w,\n/static/7e1d1e1980e493bd006abb37b9b95dfc/317ed/peft.webp 1080w,\n/static/7e1d1e1980e493bd006abb37b9b95dfc/b5c49/peft.webp 1366w,\n/static/7e1d1e1980e493bd006abb37b9b95dfc/e0b55/peft.webp 1720w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.5232558139534883}}},"author":[{"id":"Soohwan Kim","bio":"Co-founder/A.I. engineer at TUNiB.","avatar":{"children":[{"gatsbyImageData":{"layout":"fullWidth","backgroundColor":"#282838","images":{"fallback":{"src":"/static/a9e6b445142b247ee4cfa66155398bb2/0d6f4/soohwan.png","srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/248f9/soohwan.png 40w,\n/static/a9e6b445142b247ee4cfa66155398bb2/fd435/soohwan.png 80w,\n/static/a9e6b445142b247ee4cfa66155398bb2/0d6f4/soohwan.png 120w","sizes":"100vw"},"sources":[{"srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/e7f45/soohwan.webp 40w,\n/static/a9e6b445142b247ee4cfa66155398bb2/589ec/soohwan.webp 80w,\n/static/a9e6b445142b247ee4cfa66155398bb2/71a38/soohwan.webp 120w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.6833333333333333}}]}}]}},"relatedPosts":{"totalCount":4,"edges":[{"node":{"id":"01bfefe1-36ae-551f-b213-3eaf935c162d","excerpt":"Huggingface PEFT (Parameter-Efficient Fine-Tuning) 허깅페이스에서 나온 PEFT라는 라이브러리인데 LoRA, Prefix Tuning, P-Tuing, Prompt Tuning…","frontmatter":{"title":"Huggingface PEFT (Parameter-Efficient Fine-Tuning)","date":"2023-03-31T15:11:55.000Z"},"fields":{"readingTime":{"text":"2 min read"},"slug":"/peft/"}}},{"node":{"id":"8a6144d6-6780-530b-b695-d92d023c1219","excerpt":"Sooftware Serving - Huggingface Optimum 허깅페이스에서 나온 Transformers의 Extension 라이브러리이다. 목적은 모델 학습 및 인퍼런스를 더욱 빠르게 해주기 위한 라이브러리이다. Exporting…","frontmatter":{"title":"Sooftware Serving - Huggingface Optimum","date":"2022-10-05T15:11:55.000Z"},"fields":{"readingTime":{"text":"3 min read"},"slug":"/huggingface_optimum/"}}},{"node":{"id":"699a7d22-985a-5874-86f8-489f485f930f","excerpt":"이번에 저희 튜닙에서 공들여 만든 TUNiB Electra 모델을 공개했습니다 !! 🎉 🎉 이번 공개에서는 한-영 bilingual 모델과 한국어 모델을 각각 Small/Base 사이즈로 공개했으며, HuggingFace transformers…","frontmatter":{"title":"TUNiB Electra 공개","date":"2021-09-18T15:11:55.000Z"},"fields":{"readingTime":{"text":"2 min read"},"slug":"/tunib_electra/"}}},{"node":{"id":"996d2b57-1627-59bf-ad52-684205e35ca6","excerpt":"최근 NLP 토크나이저를 만드는데 가장 많이 사용되는  라이브러와 실제 사용이 가장 많이 되는  라이브러리로의 변환에 대한 코드를 담고 있습니다. 해당 내용은  버젼에서 수행되었습니다. Train 아래 코드는 wordpiece, char-bpe…","frontmatter":{"title":"Sooftware NLP - Hugging Face Tokenizers","date":"2021-08-11T15:11:55.000Z"},"fields":{"readingTime":{"text":"4 min read"},"slug":"/tokenizers/"}}}]}},"pageContext":{"slug":"/peft/","prev":{"excerpt":"Docker - GPU 할당 도커에서 GPU를 할당하는 방법","frontmatter":{"title":"Docker - GPU 할당","tags":["toolkit","environment"],"date":"2023-03-25T10:00:00.000Z","draft":false,"excerpt":null,"image":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAB3ElEQVQoz32STWsTYRSFgwtBRN0EKaWx0ogJ+Zimncxkkpk0mUynybwzExIz7SJfqAvtTqhZ1Cx0oQg2GwW3Igj9ByouxL/2yAw1TElxcbjcy3vPPfc9NyGEwHEcwtjtdlcw6PdQagbJdAbHEXieh38B4bq4rkucIxFPxuMxo9GIyWTC8fNnNO02W8VtNnISyQdZXCHwfQ+jadI0W/R8DyfWH8ZEPPkHzxUomsatjftcW0txfX2TG+ubpAsSHXsfqVonWSizo+m0252rFUYQIipW6w1Skow7eULJPCBvmOhen4xWpxccktX2uJ2TyZQ1Op3/ETqCxl6du5kCd4oq88UnXrx+y8t3H5gvPnL6fsHj2ZybW3lUTcNqmZe2WxLGi13fY1vRWJMNSqJPxQ+4Vz8gpdtoj4bkLY+G3cETgk6M6EpTwhi61jJNTmYzvp2f8/nLV45fveHpySm/fv/h+4+fLM7OaDSbS4dXCOOF8Cz2bZsgCBgOh5iWRXB4hOv7TKfT6BIGgwBxMTzeu6Iw/GCtWiNXKKJWNHZlGcuyUFQVtVIhX5QwjDq75TKNRhPdMKLhlxQuT8Xzogc1XWdHlqPmVssi/TATrRcim8tTVlSkUgm5rETGhCrjJ/cXCoJvs7MKfN4AAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/234f0aa7ed99395b2c5b4c08dd890247/90018/docker_gpu.png","srcSet":"/static/234f0aa7ed99395b2c5b4c08dd890247/f503b/docker_gpu.png 750w,\n/static/234f0aa7ed99395b2c5b4c08dd890247/e4953/docker_gpu.png 1080w,\n/static/234f0aa7ed99395b2c5b4c08dd890247/c2802/docker_gpu.png 1366w,\n/static/234f0aa7ed99395b2c5b4c08dd890247/90018/docker_gpu.png 1720w","sizes":"100vw"},"sources":[{"srcSet":"/static/234f0aa7ed99395b2c5b4c08dd890247/77272/docker_gpu.webp 750w,\n/static/234f0aa7ed99395b2c5b4c08dd890247/317ed/docker_gpu.webp 1080w,\n/static/234f0aa7ed99395b2c5b4c08dd890247/b5c49/docker_gpu.webp 1366w,\n/static/234f0aa7ed99395b2c5b4c08dd890247/e0b55/docker_gpu.webp 1720w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.5232558139534883}}},"author":[{"id":"Soohwan Kim","bio":"Co-founder/A.I. engineer at TUNiB.","avatar":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABYlAAAWJQFJUiTwAAADjElEQVQ4y23Oy48TdQDA8TExEaTttvSBfdHddru7bWc6bWd+8+i0u23n0SdlBRQXZGHDgiiLDwgqXjCIJEaC8cLBmHgwUU9EYzRqQuLJi/4NJB6NF+8evgbOHr7XT76SM5ix7s4QnRHnnm9yZzvBTIswN8JcP5bC67ZoWi7CdtFsn5bloZo+dSNAMYbIIqCmD6mJIVXdR3J6I7r9IQ3T59pZlW+uxzndCbPdC/HZXoq3TikowsfqBOjOmFZ7SrM9p2kfRbXn1O0jKNbsSbJ5BMnu9Gl3+qiiz4OPSvz0QRLHFGwOZH6+neLHT5YRbRerM0J0JrTas/8FZXNKzZgg2es+ZtvDdbs8+iHJl+9lWVP7OG2br26k+PvXJCfmFqoYIpwhTXtMwxpTN0coxhjFmCKbE2rGmKoYPQY9qi2fyzsq//4e5sNXi5TlLqbd5t6lPH/9kuDTG2usqgGi7dO0hzSsIXUzQDaGKGKMLEZUxZCKCJB02+PUpMH9vQwP7ybYnSxyfNrjwumA3dEiD94v8cfnK7xzWsbpujQtH9X0qBs+iuEjC5+a7lPVPSqai9SyelyYFbjkh5hqC3TkKOutLON2nkYpgtuMcT6IszdPslo8SLlcpmUH1A0XRQyQhUtNuFQ1l4o2QFI1h3OTVXbcg+grIfSVBRqlEGopgrYSRi0e4KiIse1mScSeopA/iLADmoZL3Rgg631q+oCq1qeq95FOzhQefpzn7eMpBmqcoBVj04pzwkky0eNMRYIdL8F3twusLe2nslrE6g5pGX1U8/FhD1nvUW1tUJK7SH9+n+DR1zF2vQSvH0lz88wiV45V2J1WuHqsxLXNAnuzNJdfWmK5/BylUgFhb6DZAxR9g7rpIos+Wttja2uE9M9vYb69k+DqfJErWzLOuoVqdKlpDo4jODms4zlFckuHObx4iHwuRi6fYqmYY201x/LqMrnFDNl8gRvvukhNdT9394rcOlNFMxrUhYFmW9imTEsp0mhWKC2nWSokyWSiFA7HSKcXiEb34fayyLVniUQk8rmn2drKIqlqiNcuVrh2ymQS1Nh8sc/GoMEbl7u8eb5D1yqTzkRJJsOkkiGymQVShyLE4yHWKnEq1RjpTIhmI8r2y3mkyloI38uha1n6bpVXrkw5+4LD/S/2uHnrIopaJhZ9hmQqwqHkAXJP8BDhyD46ZoWdMxOGcx/PNfECk/8AbxXdRjRliPoAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png","srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/34f77/soohwan.png 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/a94f6/soohwan.png 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png 1148w","sizes":"100vw"},"sources":[{"srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/38420/soohwan.webp 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7470d/soohwan.webp 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/b5ef6/soohwan.webp 1148w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.6829268292682927}}}}]},"fields":{"readingTime":{"text":"1 min read"},"layout":"","slug":"/docker-gpu/"}},"next":{"excerpt":"Sshpass…","frontmatter":{"title":"sshpass","tags":["toolkit"],"date":"2023-05-13T10:00:00.000Z","draft":false,"excerpt":null,"image":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAB30lEQVQoz41SPY8SURS9b97M7MA6w9AaqdZsiBbuIgYKwEQni7MaQ4LJJhbSWG5jqAw0ZGzZhp1sAWxDNkIm29GP/ASLtfYPmPAQ6mPeQ9bEj7gvubkfuefkvHsvrVYr1Go1eAceDss+/MfP4Pv+jeypdwjffw7P8xTHcrkEiYWARRZol0AhgXYIRDez/XsuXGdLxYlEAvP5HCSEQCqVUkX9rQH9mwHN18CIgZkMjP3NCIwI8eU71F+WFDaddiG5SHwXsE0bdJfAPxpgxxyU+rcqzjXlH+TKkK9/fqFyKWpNuBCwkzbIIWi3NWgk1WnQH+ngRQ7NXquVIKmMiGH3DiG+qCrCr5/PUSsTtm9tFAoB27H/VHOfQA8JtLXOmcag8zVxed/Cp7M0Xr96gg/HO3j/xoJpOViInzN0HEc1JreTaDQaqB5UcfTiCKW9EnJ7ORSLxf8uyLbtXwo3S8lkMpjNZgiCANFlhPAsxNWXKwyHQ/T7fbTbbQwGA5ycdBEEHfROT1GpVH6boRBwXVcVs9ksRqMRWq0WJpMJOp0Oms0moihCHMfodruYTqcIwxC9Xg/j8RiFQkFhJcc1obwhdTa6DsuylDdN8/o79Xod+XxexbJuGAY458pveiRO3uEPP39hDG45bAAAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/042a7f33c7032b5b6a9ea61d70b17c8a/90018/sshpass.png","srcSet":"/static/042a7f33c7032b5b6a9ea61d70b17c8a/f503b/sshpass.png 750w,\n/static/042a7f33c7032b5b6a9ea61d70b17c8a/e4953/sshpass.png 1080w,\n/static/042a7f33c7032b5b6a9ea61d70b17c8a/c2802/sshpass.png 1366w,\n/static/042a7f33c7032b5b6a9ea61d70b17c8a/90018/sshpass.png 1720w","sizes":"100vw"},"sources":[{"srcSet":"/static/042a7f33c7032b5b6a9ea61d70b17c8a/77272/sshpass.webp 750w,\n/static/042a7f33c7032b5b6a9ea61d70b17c8a/317ed/sshpass.webp 1080w,\n/static/042a7f33c7032b5b6a9ea61d70b17c8a/b5c49/sshpass.webp 1366w,\n/static/042a7f33c7032b5b6a9ea61d70b17c8a/e0b55/sshpass.webp 1720w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.5232558139534883}}},"author":[{"id":"Soohwan Kim","bio":"Co-founder/A.I. engineer at TUNiB.","avatar":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABYlAAAWJQFJUiTwAAADjElEQVQ4y23Oy48TdQDA8TExEaTttvSBfdHddru7bWc6bWd+8+i0u23n0SdlBRQXZGHDgiiLDwgqXjCIJEaC8cLBmHgwUU9EYzRqQuLJi/4NJB6NF+8evgbOHr7XT76SM5ix7s4QnRHnnm9yZzvBTIswN8JcP5bC67ZoWi7CdtFsn5bloZo+dSNAMYbIIqCmD6mJIVXdR3J6I7r9IQ3T59pZlW+uxzndCbPdC/HZXoq3TikowsfqBOjOmFZ7SrM9p2kfRbXn1O0jKNbsSbJ5BMnu9Gl3+qiiz4OPSvz0QRLHFGwOZH6+neLHT5YRbRerM0J0JrTas/8FZXNKzZgg2es+ZtvDdbs8+iHJl+9lWVP7OG2br26k+PvXJCfmFqoYIpwhTXtMwxpTN0coxhjFmCKbE2rGmKoYPQY9qi2fyzsq//4e5sNXi5TlLqbd5t6lPH/9kuDTG2usqgGi7dO0hzSsIXUzQDaGKGKMLEZUxZCKCJB02+PUpMH9vQwP7ybYnSxyfNrjwumA3dEiD94v8cfnK7xzWsbpujQtH9X0qBs+iuEjC5+a7lPVPSqai9SyelyYFbjkh5hqC3TkKOutLON2nkYpgtuMcT6IszdPslo8SLlcpmUH1A0XRQyQhUtNuFQ1l4o2QFI1h3OTVXbcg+grIfSVBRqlEGopgrYSRi0e4KiIse1mScSeopA/iLADmoZL3Rgg631q+oCq1qeq95FOzhQefpzn7eMpBmqcoBVj04pzwkky0eNMRYIdL8F3twusLe2nslrE6g5pGX1U8/FhD1nvUW1tUJK7SH9+n+DR1zF2vQSvH0lz88wiV45V2J1WuHqsxLXNAnuzNJdfWmK5/BylUgFhb6DZAxR9g7rpIos+Wttja2uE9M9vYb69k+DqfJErWzLOuoVqdKlpDo4jODms4zlFckuHObx4iHwuRi6fYqmYY201x/LqMrnFDNl8gRvvukhNdT9394rcOlNFMxrUhYFmW9imTEsp0mhWKC2nWSokyWSiFA7HSKcXiEb34fayyLVniUQk8rmn2drKIqlqiNcuVrh2ymQS1Nh8sc/GoMEbl7u8eb5D1yqTzkRJJsOkkiGymQVShyLE4yHWKnEq1RjpTIhmI8r2y3mkyloI38uha1n6bpVXrkw5+4LD/S/2uHnrIopaJhZ9hmQqwqHkAXJP8BDhyD46ZoWdMxOGcx/PNfECk/8AbxXdRjRliPoAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png","srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/34f77/soohwan.png 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/a94f6/soohwan.png 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png 1148w","sizes":"100vw"},"sources":[{"srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/38420/soohwan.webp 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7470d/soohwan.webp 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/b5ef6/soohwan.webp 1148w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.6829268292682927}}}}]},"fields":{"readingTime":{"text":"1 min read"},"layout":"","slug":"/sshpass/"}},"primaryTag":"huggingface"}},
    "staticQueryHashes": ["3170763342","3229353822"]}