정기휴가를 다녀오는 길에 주간정리를 쓴다. 5월 10일부터 12일까지 휴가였다. 역시 이번주도 창업경진대회를 준비하며 보냈다. 콜드메일을 50개 보냈는데, 지금까지 답장이 6개 왔다. 보통 콜드메일 답장률이 8% 내외라고 알고있다. 이번 메일링은 10%가 넘게 답장을 받았기에 만족한다. 콜드메일을 보내기가 여간 어려운게 아니였다. 어렵다기보다는 귀찮았다...
Baking News: 꼭 너만을 위한 AI 뉴스레터( Baking News라는 이름의 초개인화 AI 뉴스레터 서비스를 운영중에 있습니다. 독자의 문해력 수준과 관심사를 반영한 맞춤 뉴스레터를 제공하는 서비스입니다. RSS 업데이트에서 내가 관심있어할 만한 소식을 정리해서 하나의 데일리 아티클로 재구성해줍니다. 다음 링크에서 직접 사용해보실 수 있습...
들어가며 프론트엔드 개발을 프레임워크 없이 구현하다 보면, 복잡한 UI와 데이터 흐름을 관리하기 어려워지는 경우가 많습니다. 이럴 때 프레임워크를 도입하는 것이 좋지만, 기존 프로젝트 전체를 재작성하기에는 큰 부담이 될 수 있습니다. 이번 글에서는 프레임워크 없이 작성된 프론트엔드에 Svelte를 점진적으로 도입하는 방법에 대해 다루어 보겠습니다. Sv...
RoBERTa를 사용하면 텍스트 분류, 검색, 특징 탐지과 같은 기능을 구현할 수 있습니다. 기술의 발전으로 인해 가벼운 언어모델들은 브라우저에서 직접 실행할 수 있게 됐습니다. 이렇게 인공지능 모델을 사용자 디바이스에서 직접 실행하는 기술을 온디바이스 AI(On-device AI)라고 합니다. 일상을 바꿀 내 손 안의 AI, 온디바이스 AI – 제...
2023년은 성인으로 보내는 첫해였습니다. 다양한 배경에서 많은 경험을 하였고, 또 여러 역할을 관통하기도 했습니다. 저는 학생이었고, 소프트웨어 엔지니어였으며, 조금은 디자이너이기도 했고, 이제는 현역 군인입니다. 올해 성취하고 느낀 것들을 글로 남겨보고자 합니다. 학생이였습니다 고등학교 졸업했습니다 올해 초엔 고등학교를 졸업하였습니다. 고등학교...
이번 튜토리얼에서는 타입스크립트를 통해 약속 프로그래밍 언어의 명세 일부를 구현하며, 인터프리터를 개발하는 방법에 대해 알아보았습니다. 작은 코드를 실행하는것을 목표로 한 만큼, 아직 남은 기능들이 많습니다. 그러나 다른 기능들을 구현하는 것도 이번 튜토리얼에서 크게 다르지 않습니다. 이번 튜토리얼에서 다룬 내용을 바탕으로, 반복문, 함수, 흐름제어 등을...
각 노드가 해야 할 일을 정의해주었으니, 이젠 최상위의 노드들을 실행시켜주기만 하면 됩니다. import from './token.js' export function runAST(ast) { // AST를 실행하는 함수입니다 // 변수를 저장하기 위한 스코프를 선언했습니다 let scope = new Map() // AST의 요소들을 실...
런타임은 토크나이저, 렉서, 파서를 거쳐서 만들어진 AST를 실행하는 역할을 합니다. 런타임은 AST를 순회하면서 각 노드를 실행합니다. 런타임을 구현하는데는 여러 방법이 있지만, 이 튜토리얼에서는 분할정복(Divide and Conquer) 방식을 사용합니다. AST는 언뜻 보면 복잡해보이지만, 각 노드만 떼어서 보면 간단한 연산입니다. 예를 들어, 다...
파서(Parser): 토큰과 토큰 사이의 관계를 분석하고, 의미를 포함하여 구조적으로 재조합 합니다. 재조합된 결과를 AST(Abstract Syntax Tree)라고 합니다. 예시코드를 다시 살펴보겠습니다. 키: 170 몸무게: 60 비만도: 키 / 몸무게 / 몸무게 "비만도는 " + 비만도 보여주기 이를 파싱하면 다음과 같은 AST가 만들어...
약속 프로그래밍 언어의 토크나이저를 만들기 위해서는 약속 프로그래밍 언어의 문법을 이해해야 합니다. 예시 코드를 다시 살펴보겠습니다. 키: 170 몸무게: 60 비만도: 키 / 몸무게 / 몸무게 "비만도는" + 비만도 보여주기 다음과 같은 규칙으로 구현하고자 합니다. 1. Token은 한글의 나열이다. 2. /, +는 Operator이다 3....
약속 프로그래밍 언어는 한국어를 기반으로 하는 프로그래밍 언어입니다. 다음과 같이 작성합니다. 키: 170 몸무게: 60 비만도: 키 / 몸무게 / 몸무게 "비만도는 " + 비만도 보여주기 이번 튜토리얼에서는 약속의 전체 명세를 구현하지 않고, 위의 예시코드를 실행할 수 있는 인터프리터를 만드는 것을 목표로 합니다. 일반적인 인터프리터는 네가...
약속 프로그래밍 언어의 타입스크립트 구현체인 yaksok.ts를 직접 만들어보는 튜토리얼입니다. 알아갈 수 있는 내용 이 튜토리얼을 통해서 프로그래밍 언어의 인터프리터를 만드는 방법에 대해 알아가실 수 있길 바랍니다. 알고 있어야 할 내용 자바스크립트 객체지향 프로그램을 작성하는 방법 인터프리터와 컴파일러의 차이 이렇게 따라하는걸 추천드립...
한국어의 구조를 차용한 프로그래밍 언어? 한글 프로그래밍을 넘어서, 한국어 프로그래밍 언어를 제안한다. wast ("안녕," + 이름 + "")는 (이름)에게 인사하기 "지민"에게 인사한 결과를 보여주기 "재현", "지민", "성수"는 (학급에 있는 학생들)이다 각 (학급에 있는 학생들)에게 인사한 결과를 (인삿말)에 저장하기 만약 (학급에 있는 학...
Cannot reproduce the evaluation score of HellaSwag, WiC · Issue #37 · EleutherAI/polyglot I evaluated polyglot-ko-1.3b model with HellaSwag and WiC from KoBEST, and I got different results with pape...
1. from_pretrained 메소드에서 load_in_8bit를 True로 설정하여 모델을 로드한다 1. Function replace_with_bnb_linear (src/transformers/integrations/bitsandbytes.py) Arguments: (model) Keywords ...
한국어 능력 평가 지표중 하나인 KOBEST(Korean Balanced Evaluation of Significant Tasks)를 이용하여 모델의 성능을 비교해보겠습니다. 간편한 측정을 위해 EleutherAI의 lm-evaluation-harness라는 프로그램을 사용하겠습니다. 원본 코드는 양자화한 모델을 아직 완벽하게 지원하지 않습니다. 그래서 ...
SpeechT5 분석 DecoderWithTextPrenet Decoder의 앞에 Prenet을 붙힘. Hidden State가 아닌, deocder에 들어오는 input ids를 처리해주기 위함 그래서 모델의 전체적인 구조로 보면 encoder prenet encoder decoder decoder ...
원문은 Huggingface 공식 블로그에 영어로 게시되어 있습니다. Speech Synthesis, Recognition, and More With SpeechT5 SpeechT5는 Microsoft Research Asia의 SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Langu...
1c. JavaScript Framework: jQuery는 무엇을 잘했는가? jQuery는 2000년대 후반부터 가장 있기있는 자바스크립트 프레임워크가 됩니다. jQuery가 다른 프레임워크에 비해 무엇을 더 잘했고 prototype.js는 어떤 실수를 했는지 살펴봅니다. 당근페이, 6개월 간의 인프라 구축 이야기 당근마켓 SRE 밋업 2회 ...
프론트엔드 배포 GitHub Pages는 이제 그만 놓아주어요. Vercel, Netlify, Cloudflare Pages를 사용한다면 깃허브 저장소에 있는 프론트엔드 코드를 쉽게 배포할 수 있습니다. React, NextJS, SvelteKit과 같은 빌드툴 / SSR 프레임워크도 사용 가능 별다른 설정 없이 클릭 몇번 만에 바로 배포 가능 ...