Dongguk nDRIMS ActionModel (LoRA Adapter)

이 모델은 동국대학교 nDRIMS 포털을 대상으로 한 액션 생성용 LoRA 어댑터입니다.
기본 베이스 모델인 kakaocorp/kanana-nano-2.1b-instruct
PEFT/LoRA 방식으로 얹어서, 사용자의 자연어 요청과 현재 UI 상태(observations)를 입력받으면

  • Plan 모드: {"task_plan": [...]} 형태의 단계별 플랜 생성
  • Action 모드: {"action": {...}} 형태의 단일 클릭/조작 액션 JSON 생성

을 수행하도록 파인튜닝되었습니다.


Model Details

Model Description

  • 목적(Purpose)
    동국대 nDRIMS(학사 행정 포털)에서 학생이 자주 수행하는 업무
    (예: 불교동아리 가입, 졸업 취득학점 확인, 학적부 열람, 등록금 고지서 조회 등)를
    “자연어 한 마디”로 요청하면, 이를 자동으로

    • 단계별 UI 네비게이션 플랜(task_plan)과
    • 각 단계에서 수행해야 할 액션(action)
      으로 변환해 주는 Large Action Model(LAM) 2단계용 액션 헤드입니다.
  • 입력 구조(예시)

    • Plan 요청:
      {"user_request": "불교동아리 가입"}
      
    • Action 요청:
      {
        "user_request": "불교동아리 가입",
        "task_plan": "하위 메뉴 '불교동아리가입'을 클릭한다",
        "step_id": "2",
        "observations": {
          "sidebar": [
            {
              "id": "d7",
              "label": "학생신청(기타)",
              "expanded": true,
              "sub_items": [
                {"id": "ee", "label": "불교동아리가입", "checked": false}
              ]
            }
          ]
        }
      }
      
  • 출력 구조(예시)

    • Plan 모드:
      {
        "task_plan": [
          {
            "step_id": 1,
            "description": "좌측 메뉴에서 '학생신청(기타)'를 펼친다"
          },
          {
            "step_id": 2,
            "description": "하위 메뉴 '불교동아리가입'을 클릭한다"
          },
          {
            "step_id": 3,
            "description": "개인정보 동의 팝업창을 닫는다."
          }
        ]
      }
      
    • Action 모드:
      {
        "function": "click",
        "control_label": "불교동아리가입",
        "control_type": "tree-item",
        "value": "",
        "args": {
          "role": "treeitem",
          "aria-label": "불교동아리가입"
        },
        "status": "CONTINUE"
      }
      
  • Developed by: Chaerin Lee (@leeChaerin)

  • Model type: LoRA adapter for UI action generation (Plan / Action head)

  • Language(s): Korean (ko) 중심, 약간의 English label 및 aria-label 텍스트 포함

  • License: Follows the base model’s license (kakaocorp/kanana-nano-2.1b-instruct).
    실제 서비스 적용 시, 베이스 모델 라이선스를 반드시 확인하세요.

  • Finetuned from: kakaocorp/kanana-nano-2.1b-instruct using PEFT/LoRA

Model Sources


Uses

Direct Use

이 모델은 그 자체로 대화형 LLM으로 쓰기 위한 모델이 아니라,
다음과 같은 에이전트/자동화 시스템의 한 모듈로 사용하는 것을 전제로 설계되었습니다.

  • 대표적인 사용 시나리오
    1. 사용자가 자연어로 요청
      • 예: "졸업하려면 학점 얼마나 남았어?"
    2. Plan 요청 → task_plan 생성
      • "좌측 메뉴에서 '졸업' 탭을 연다."
      • "'취득학점확인서조회' 메뉴를 클릭하여 페이지로 이동한다."
    3. 각 step에 대해 Action 요청 → action JSON 생성
      • "졸업" tree-item 클릭
      • "취득학점확인서조회" tree-item 클릭
    4. 생성된 액션 JSON을 기반으로 RPA/브라우저 자동화/GUI 자동 제어 등 수행

즉, Large Action Model(LAM)의 Action Head로 사용하기 좋습니다.

Downstream Use

  • 다른 학교/내부 포털에 적용하고 싶은 경우:
    • 사이드바/메뉴 구조를 비슷한 스키마(sidebar, sub_items, checked, expanded 등)로 맞추고
    • 해당 도메인용 플랜/액션 데이터로 추가 파인튜닝 또는 재학습 필요
  • nDRIMS와 유사한 트리 기반 네비게이션 UI를 가진 어드민 사이트, 사내 포털, 업무 시스템 등에 재활용 가능

Out-of-Scope Use

다음과 같은 용도는 권장되지 않습니다.

  • 일반적인 오픈 도메인 대화/챗봇 용도
  • 임의의 웹사이트(네이버, 구글, 은행 등)에 바로 적용하는 자동화
  • 금융/의료/법률 등 고위험 도메인의 무인 완전 자동 처리
  • 사람의 확인 없이 계정/개인정보/결제 관련 설정을 변경하는 행위

Bias, Risks, and Limitations

Risks & Limitations

  • 도메인 특화 모델
    • 동국대 nDRIMS의 특정 메뉴 구조에 맞추어 학습되었기 때문에,
      다른 사이트나 다른 UI 구조에서는 잘 동작하지 않을 수 있습니다.
  • 잘못된 액션
    • function / control_label / args가 일부라도 틀릴 경우,
      • 잘못된 메뉴를 열거나
      • 잘못된 버튼을 클릭할 가능성이 있습니다.
  • 데이터 스케일
    • 현재는 소규모, 수작업으로 구성된 학습/평가 데이터셋을 기반으로 하고 있어,
      엣지 케이스나 예외 상황에 대한 일반화 능력은 제한적일 수 있습니다.

Recommendations

  • 항상 샌드박스 / 테스트 계정에서 먼저 통합 및 검증을 진행하세요.
  • 실제 서비스 적용 시에는:
    • 사람의 확인(HITL, Human-in-the-loop) 단계를 두거나
    • 민감한 작업(예: 휴학/자퇴, 개인정보 변경 등)은 별도의 추가 확인 UI를 거치도록 설계하는 것을 추천합니다.
  • nDRIMS 구조 변경(메뉴 이름, ID, 트리 구조 등)이 있을 경우,
    • 모델의 성능이 급격히 떨어질 수 있으니 재학습 또는 프롬프트/데이터 업데이트가 필요합니다.

How to Get Started with the Model

1. 모델 로드 (PEFT + LoRA)

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

BASE_REPO = "kakaocorp/kanana-nano-2.1b-instruct"
ADAPTER_REPO = "leeChaerin/ActionModel_v5"

# 토크나이저 로드
tokenizer = AutoTokenizer.from_pretrained(BASE_REPO, padding_side="left")
if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token

# 베이스 모델 로드
base = AutoModelForCausalLM.from_pretrained(
    BASE_REPO,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)

# LoRA 어댑터 적용
model = PeftModel.from_pretrained(base, ADAPTER_REPO)
model.eval() 
Downloads last month
1
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for leeChaerin/ActionModel_v5

Adapter
(11)
this model