레이블이 Local인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Local인 게시물을 표시합니다. 모든 게시물 표시

수요일, 3월 18, 2026

로컬PC에서 LLM모델을 구동시켜보자. (Openwork를 사용해보자, 수정)

이전 글에 이어서 계속 진행해보도록 하겠습니다. 계속 연결되는 내용이지만 OS를 Ubuntu 25.10 (LTS아님) 로 변경해서 진행했습니다. :)

 

우선 이전 글에서 진행 하지 않은 것이 있어서... 일을 시키려면 뇌에 해당하는 모델을 가져와야죠

ollama 모델 다운로드

ollama가 문제 없이 설치되었다면 모델들을 아래와 같이 땡겨 올 수 있습니다.

$ ollama pull llama3.2:1b

$ ollama pull qwen3.5:0.8b

$ ollama pull qwen2.5-coder:0.5b

$ ollama pull opencoder:1.5b

아니.. 파라미터가 1b 이게 무엇이냐 하신다면, 이거는 사실 그냥 연결되서 작동하는지에 대해서 테스트 해보는 것이라서 굳이 불필요하게 큰 모델들을 다운로드해서 테스트 하지 않고자 작은것들만 고른 겁니다. :)



방화벽해제

# su -

# ufw allow 3000

# ufw allow 5173 

# ufw allow 4096

# ufw allow 11434 

일단 눈에 보였던 포트들을 미리미리 허용해놓는 것이라서 이것보다 더 많을 수도 있습니다. :)

근데 방화벽 허용도 굳이 안해도 되지 않을까 합니다. 허용안한 35071 포트로 접근이 그냥 됩니다. 



Opencode 설정

Opencode 설치 후 그냥 알아서 ollama와 연동되서 모델을 사용할 줄 알았는데...

LLM이 무엇이든 대답해주고 AI 개인 비서를 두는 시대에도 설정 파일이 필요하다는 것을 망각했네요.. 아무리 시간이 흘러도 첫 셋팅할 때는 환경 설정이 중요합니다.

일반계정에서 설치 했다면 ~/.opencode/opencode.json 아래 Openwork 설치 후 Openwork 폴더 아래에 숨김폴더로 opencode가 생겼을 겁니다. 바로 그 폴더안에 .opencode/opencode.json 경로에 opencode.json파일이 있을 수 도 없을 수도 있습니다. 있다면 아래와 같이 수정을, 없다면 생성해서 아래와 같이 내용을 적어주세요 :)

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "name": "Ollama (local)",
      "options": {
        "baseURL": "http://localhost:11434/v1"
        },
      "models": {
        "qwen3.5:0.8b": {
        "name": "Qwen 3.5 0.8B"
        },
        "opencoder:1.5b": {
        "name": "OpenCoder 1.5B"
        }
      }
    }
  }
}



Opencode 실행(응 필요없음)

Openwork는 Opencode가 있어야 하기 때문에 Opencode가 뒷단에서 돌아가주고 있어야한다고 하네요. 일단 아래와 같이 실행시켜 주었는데...

$ opencode --hostname 0.0.0.0 web

※ 음... 그래도 어제보다는 무엇인가 한걸음 나아간것 같습니다.

결국엔 opencode를 뒷단에서 굳이 따로 실행시켜 주지 않아도 되는듯 합니다. :)


Openwork 설치

드디어 설치 Openwork를 설치합니다. npm으로 pnpm과 bun을 설치해주고 아래와 같이 진행해주면 일단 원격에서 접속은 되더라구요

※ 아.. 큰 수정사항이 있습니다. rust설치와 cargo 실행을 굳이 관리자 계정으로 할... 필요가 없었습니다... 

# npm install -g pnpm

# npm install -g bun

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

$ source $HOME/.cargo/env

$ cargo install tauri-cli

/*cargo install tauri-cli 명령어 수행시 timeout으로 설치 실패가 된다면 다시 시도 해주면 다시 설치 진행합니다. */

$ git clone https://github.com/different-ai/openwork.git

$ cd openwork

$ pnpm install

$ pnpm approve-builds

$ pnpm dev //터미널1

※ 현재 여기서 "Exit status 101" 라고 에러가 발생하고 죽어버려서 해결중에 있습니다.

$ pnpm dev:ui --host 0.0.0.0 -d //터미널2

$ pnpm dev:headless-web --host 0.0.0.0 -d 


위와 같이 터미널1에서는 dev를 터미널2에서는 dev:ui 실행시켜 주면 원격에 있는 윈도우 PC에서 브라우저로 Openwork에 접속 하는 것을 보실 수 있습니다.


근데 브라우저로 접근은 되는데;;;;

거기까지가 끝입니다. remote worker를 연결하려고 하는데... 이게 안되더라구요

→ pnpm dev:ui는 UI관련된 업무를 하는 것이었다면, pnpm dev가 실제 일하는 worker를 구동하게 하는 것이라고 합니다.

작업하면서 놓친 부분이 있을 것 같아서 다시 더 검색해보고 진행해보고 다시 글을 작성해보도록 하겠습니다.

추가적으로 한 작업으로는 

# apt install libgdk-pixbuf-xlib-2.0-dev

# apt install ubuntu-desktop

해서 GUI로 접근할 수 있도록 설치 했습니다. pnpm dev의 에러가 화면과 관련된 내용들이어서 이전 작업들과 차이점은... GUI 관련 툴들을 모두 설치했다는 것 되겠습니다. 

그래서 GUI로 로그인해서 pnpm dev를 실행시키면 화면에 창이 하나 뜨면서 바로 Openwork가 실행되는.. 좀 맥이 빠지는 상황이...

그래서 pnpm 실행 모드를 perplexity에게 물어보니 dev:headless-web 실행시켜보라고 하더라구요. 그래서 일단 GUI 상태에서 

$ pnpm dev:headless-web --host 0.0.0.0 -d

수행하고 원격에서 접근하니 dev:ui와 같이 브라우저에서 잘 작동하였습니다.


기존 dev:ui와 다른 점은 GUI에서 실행한 터미널 창에 TOKEN정보를 보여주는것이 차이점인지라 원격 연결 할 때 IP:PORT와 함께 TOKEN 정보를 함께 입력하니 활성화되는것을 확인하였습니다.

그리고 opencode 서버를 작동시키지 않았는데 알아서 잘 연결합니다;;

내일 다시 한번 확인을 해보고 좀 더 추가 내용을 작성하도록 하겠습니다. :)


안되면 최근에 나온 오픈자비스를 돌려보던지..... 아니면 다른 claw를 사용해보던지.. 해봐야죠 :)





출처: @ye._.vely618


목요일, 7월 19, 2012

Local에서 BLAST+ 작업하기 x64

예전에 포스팅한 Local에서 BLAST 돌리기는 32bit 버전이었는데
요즘 64bit OS를 사용하고 있는 관계로 (본인 또한 다 64bit ㅎㅎ) 업데이트를 해보기로 한다.

일반적으로 Local이라 함은 데스크탑 즉, 윈도우 환경이 대다수일 것이라고 생각된다.
(물론 리눅스나 맥을 데스크탑으로 사용하시는 능력자분들도 있으시겠다.)

Blast를 윈도우 환경에서 작업하고 싶은 경우
NCBI 사이트에 가서 BLAST 프로그램을 다운받으면 된다.

Blast+ 64bit, Blast+ 32Bit, Blast 64Bit, Blast 32Bit

Blast와 Blast+의 차이는 엄청나다 Blast는 기존에 간단한 옵션과 사용방법을 그대로 유지하고 있지만 Blast+의 경우 드라마틱한 속도 개선과 성능이 향상 되었다(는 모르겠고 옵션과 사용방법은 확실하게 드라미틱하게 복잡해졌다)고 한다.

일단 위에서 본인의 OS Bit수에 맞는 Blast를 다운로드 받고, exe파일을 더블 클릭하여 압축을 해제한다. 단, 알수없는 많은 파일들이 눈앞에 펼쳐지는 것을 보기 싫다면 별도의 폴더를 만든 후 더블 클릭하시길..

더블클릭하여 압축을 해제하게 되면 bin, data, doc 폴더가 생성되게 된다.

윈도우에서 Blast작업은 "명령 프롬프트" 창에서 하던가 아니면 별도의 스크립트를 작성해서 실행 시킬 수 있다.

기존의 Blast와는 다르게 BLAST 프로그램들인 blastp, blastn등과 같은 프로그램들이 각각 분리되어졌다.




Step 1. BLAST DB 생성

사용예
makeblastdb -in <input_file.fasta> -input_type {asn1_bin|asn1_txt|blastdb|fasta|xml} -dbtype {nucl|prot} -parse_seqids -hash_index

추가적으로 masking 작업을 위한 masker 프로그램이 동봉되어 있다.
-mask_data {dustmasker|segmasker|windowmasker}
사용하실려면 사용하시길... :)



그리고 output되는 파일의 파일 용량이 1G보다 큰 경우 blastdb 파일이 여러개로 쪼개 질 수 있다. 이런 상황을 방지하기 위해서는 다음 옵션을 사용하여 output 파일의 파일당 최대 용량을 늘려주면 된다.

-max_file_sz <size>, size는 "1GB", "2GB" 이렇게 작성하면 된다.

예제
~/blast+/ncbi-blast-2.2.25+/bin/makeblastdb -in input.fa -input_type fasta -dbtype nucl -parse_seqids -hash_index -max-file-sz 4GB


--------------------------------------------------------------------------------
Building a new DB, current time: 07/18/2012 13:00:27
New DB name: input.fa
New DB title: input.fa
Sequence type: Nucleotide
Keep Linkouts: T
Keep MBits: T
Maximum file size: 4294967296B
Adding sequences from FASTA; added 211174 sequences in 151.743 seconds.
--------------------------------------------------------------------------------


위의 작업이 끝나면 다음과 같은 파일들이 생성된다.
input.fa.{nhd|nhi|nhr|nin|nog|nsd|nsi|nsq}


Step 2. BLAST 실행

예전의 BLAST와 달리 BLAST+에서는 blast 프로그램들이 모두 각각의 수행 파일로 존재한다. 사용되는 옵션은 대부분 유사하니 크게 걱정할 필요는 없다. 다만 parameter 이름이 약간 달라진것 제외하고는 :)

사용예

blastn -query <input_file> -db <blastdb_file> -out <output_file> -evalue <e-value> -outfmt {0..11} -num_threads <number thread>

예제

blastn -query query.fa -db database.fa -out output.txt -evalue 1 -outfmt 6 -num_threads 8

"database.fa 파일에 query.fa파일을 8개의 thread를 사용해서 blastn을 하는 작업으로 e-value가 1이하인 것만 저장하고 결과 파일은 output.txt파일에 저장한다. 그리고 결과 형식은 tabular형식으로 저장한다" 라는 의미를 담고 있는 명령어임. :)


모 그럼... 이정도로.. BLAST+ 간단 사용법에 대한건 마무리하는걸로..