Ollama context length 변경하기

2025. 4. 8. 09:33·ML & DL/NLP

Context Window(문맥 창)이란?

LLM에서 Context Window는 모델이 입력을 처리할 때 고려하는 텍스트나 입력 데이터의 범위를 의미한다. 쉽게 말해, 모델이 한 번에 "볼 수 있는" 정보의 양입니다.

  • 토큰(Token): 모델에 따라 단어, 문자, 또는 하위 단어로 구성될 수 있음
  • 창 크기(Window Size): 모델이 처리할 수 있는 토큰의 수

최근에 등장한 Gemini나 LLama4도 엄청난 크기의 Context양을 강점으로 내세웠다. 왜냐하면 Context window 크기가 클 수록 한번에 더 많은 정보를 볼 수 있기 때문에, 챗봇에서는 사용자와의 대화 혹은 더 많은 참고자료를 보고 답변을 할 수 있게 되는 것이다.

RAG도 이러한 Context window의 제약을 이겨내기위해 가장 유사성이 큰 문서, context만을 retrieve해서 사용하는 것이었는데 이렇게 큰 모델들이 등장하면 더 이상 rag가 의미없어질 것 같다는 생각이다.

 

아무튼 Ollama에서 실행되는 모델들은 기본적으로 Context Window가 2,048 토큰으로 제한되어 있다.

 

따라서 단순히 Ollama에서 모델을 가져다가 쓰면 제대로 사용하지 못하고있다는 것이다. 자신의 메모리만 충분하다면 원래 모델의 context양을 가지고해야 그 모델의 강점을 이용할 수 있다.

Context Length 변경 방법

1.모델 다운로드
ollama pull codellama:2.5-coder-7b

우선 자신이 사용하고자하는 모델을 받아준다.

 

2.모델 파일 생성:
아무 위치에 modelfile이라는 이름의 파일을 생성하고 편집기로 열어준다.

docker을 이용해서 ollama를 이용중이라면 컨테이너 내부에서 해주면 된다.

 

3.파일 내용 작성:(아래 예시는 context length를 32k로 설정)

FROM뒤에는 방금 자신이 받은 모델의 이름을, 아래의 파라미터뒤에 NUM_CTX뒤에는 TOKEN수를 적어주면 된다.

(해당 모델이 원래 지원하는 token이내로 설정해주면 됨)

FROM codellama:2.5-coder-7b
PARAMETER num_ctx 32768

 

4.새 모델 생성:

위에서 생성한 modelfile을 닫고 아래 명령어를 실행해준다. create뒤의 이름은 자신이 원하는대로 상관없다

보통 `기존모델명:자신이알아볼수있는태그` 형식으로 지정한다.
ollama create codellama:custom -f modelfile

 

5.모델 확인:

아래 명령어를 이용해 확인해보면 방금 자신이 생성한 모델과 해당 정보를 확인할 수 있다.
ollama list

ollama show codellama:custom

 

위의 방법은 context lengrh를 변경한 모델 자체를 생성하는 방법이고, 기본 설정 크기인 2048토큰을 변경하려면 환경변수를 설정해주면 된다.

출처

 

728x90

'ML & DL > NLP' 카테고리의 다른 글

Langchain, Langgraph, Langsmith 간단 정리  (0) 2025.03.26
AutoRAG 개발자님 인터뷰 정리  (0) 2025.03.19
한 권으로 끝내는 랭체인 노트 따라하기 Day 4 - FewShotPrompt  (0) 2024.12.23
한 권으로 끝내는 랭체인 노트 따라하기 Day 3 - prompt  (0) 2024.12.23
한 권으로 끝내는 랭체인 노트 따라하기 Day 2 - LCEL  (0) 2024.12.23
'ML & DL/NLP' 카테고리의 다른 글
  • Langchain, Langgraph, Langsmith 간단 정리
  • AutoRAG 개발자님 인터뷰 정리
  • 한 권으로 끝내는 랭체인 노트 따라하기 Day 4 - FewShotPrompt
  • 한 권으로 끝내는 랭체인 노트 따라하기 Day 3 - prompt
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (481)
      • 알쓸신잡 (88)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home

    ✏️글쓰기
    💻 관리

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    DFS
    이코테
    dp
    그리디
    파이썬
    나동빈
    이것이취업을위한코딩테스트다
    BFS
    이분탐색
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바