WangNet - 1.8 MB, 외부 의존성 없이 11개 언어로 Numberwang 판정

1 hour ago 1

1.8 MB JSON 모델과 약 100줄의 Python 표준 라이브러리 코드로 숫자가 Numberwang인지 판정하는 소형 신경망임 숫자와 숫자를 나타내는 단어, 산술식, 로마 숫자, 서수 등을 11개 언어로 받아들이며, 같은 숫자는 언어와 관계없이 같은 판정을 받음 80,804개 매개변수의 문자 단위 신경망으로, 추론 시 토크나이저나 정규화기, 규칙 엔진 없이 네 가지 판정의 확률을 출력함 별도로 남겨 둔 판정 사례 486개에서 정확도 88.9%, 매크로 F1 0.896을 기록했으며, 학습 레이블 약 2%가 반전되어 있어 정확도 상한은 약 98%임 처음 보는 피연산자의 산술식에서는 정확도가 44~72%에 그침. 계산 대신 암기하는 방식이므로 산술 정확성이 중요하면 식을 먼저 계산한 뒤 결과를 입력해야 함 모델 구성과 사용 방식 모델 전체가 model.json 한 파일에 들어 있으며, 추론 코드는 약 100줄의 Python 표준 라이브러리만 사용함 PyTorch나 NumPy를 설치할 필요가 없고, Python 3.8 이상만 있으면 실행 가능함 명령줄에서 입력을 전달하거나, 인수 없이 실행해 대화형 세션으로 사용할 수 있음 다른 Python 코드에서는 load_model 로 모델을 불러오고 wang_probabilities 에 문자열을 전달해 판정별 확률을 받을 수 있음 반환 순서는 not Numberwang, Numberwang, not a number, Wangernumb이며, 확률이 가장 높은 항목을 최종 판정으로 선택할 수 있음 네 가지 판정과 입력 범위 모델은 Numberwang이 아님, Numberwang임, 숫자가 아님, Wangernumb의 네 가지 결과를 구분함 숫자가 아닌 입력에는 “숫자조차 아니므로 Numberwang일 수 없다”는 판정을 내림 값이 1 또는 44인 입력은 Wangernumb이며, 보드를 회전하라는 결과를 출력함 숫자 표기와 다국어 단어를 입력받으며, 악센트는 생략해도 됨 42, sixty-six, 12345처럼 숫자와 단어를 모두 지원함 zweiundzwanzig, veintidós, tweeëntwintig 등을 포함한 11개 언어를 지원함 Numberwang 여부는 언어가 아니라 숫자의 속성이므로 four, vier, quatre, cuatro는 모두 같은 판정을 받음 산술식은 계산 결과에 해당하는 숫자로 판정함 5*2, 96 divided by 2, twelve plus...

Read Entire Article