2024/02 13

[Python] UFO: A UI-Focused Agent for Windows OS Interaction

AI-PC의 미래를 볼 수 있는 기술, 마이크로스프트의 UFO를 보고자 한다. 논문 https://arxiv.org/html/2402.07939v1 UFO : A UI-Focused Agent for Windows OS Interaction License: arXiv.org perpetual non-exclusive license arXiv:2402.07939v1 [cs.HC] 08 Feb 2024 UFO : A UI-Focused Agent for Windows OS Interaction Chaoyun Zhang, Liqun Li, Shilin He, Xu Zhang, Bo Qiao, Si Qin, Minghua Ma, Yu Kang, Qingwei Lin, Saravan Rajmohan, arxiv...

[Python] Gpt4Free 여러 LLM모델을 무료로 써보기

https://github.com/xtekky/gpt4free GitHub - xtekky/gpt4free: The official gpt4free repository | various collection of powerful language models The official gpt4free repository | various collection of powerful language models - xtekky/gpt4free github.com https://www.aitimes.com/news/articleView.html?idxno=150737 'GPT-4' 무료로 이용할 수 있는 'GPT4Free' 화제 - AI타임스 오픈AI의 결제 시스템을 속여 \'GPT-4\'를 무료로 사용할 수 있도록 ..

[C#] ThreadPool & EventWaitHandle 기초

System.Threading.ThreadPool 스레드 동작 방식은 Thread 타입의 생성자에 전달되는 메서드의 코드 유형에 따라 크게 두가지로 나뉜다. 1. 상시 실행 - 스레드가 일단 생성되면 비교적 오랜 시간 동안 생성돼 있는 유형, 예를 들어 특정 디렉터리의 변화를 감시하는 스레드가 필요하면 이는 그 동작이 필요 없어질 때까지 스레드가 유지돼야 함 2. 일회성의 임시 실행 - 특정 연산만 수행하고 바로 종료되는 유형 상시 실행이 되는 유형을 위해서는 스레드를 생성하는게 당연하지만, 일회성 실행에 있어서 스레드를 생성하는 것은 자원낭비로 이어진다. 임시적인 목적으로 원할 때, 스레드를 사용할 수 있도록 만든 것이 스레드 풀(Thread Pool)이다. 프로그래밍에서 풀(pool)이라는 용어는 일..

[python] 프로그래머스 지도찾기

https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비트연산을 통해 #또는 공백을 풀어내는 문제였다. format으로 이진수를 변경할 때, n길이 만큼 공백형태를 변경해야 됬는데, 이부분을 format함수의 zfill 메서드를 사용해서 해결할 수 있었다. 아래에 해결코드이다. def decrypt_secret_map(n, arr1, arr2): decrypted_map = [] for i in range(n): # 두 배열의 각 원소를 이진수로 변..

[TensorRT] Tensort 기본개념

AI 서비스를 운영하는데 있어 비용적 측면은 매우 중요한 사항이 아닐 수 없다. AI의 성능은 성능적으로 매우 빠르게 증대되며, 그에 따라 VRAM과 전력소모와 같은 요구사항 스펙이 늘어날 수 밖에 없다. 이것을 상쇄시키기에 비싼 Nvidia Gpu를 많이 사용하고 싶지만, 그 비용은 Nvidia 주식가격(오늘 이 제일 쌉니다 ㅎㅎ) 만큼 비용이 많이 들것이다. 따라서 이 비용을 절감하기 위해서 효율적으로 서비스를 운영하기 위해 모델의 경량화는 필수일 것이다. 엔비디아에서는 이러한 Gpu를 사용하는 기기에서는 최적화 해주는 기능을 제공해주며, 이를 적극적으로 도입할 필요가 있다. TF-TRT(TensorFlow)나 torch2trt(Pytorch) 등을 딥러닝 프레임워크에서 지원해 주지만 최신의 모델이나..

[Python] Yolo-World 실시간 비전언어 모델

SOTA에 방문해서 최신모델들이 어떤것들이 있나 찾아보다가 2024년 1월 31일에 발표된 Yolo-World 모델을 보게 되었다. 텐센트 AI 랩에서 발표한 논문으로, 실시간으로 사용할 수 있는 비전-언어 모델이라고 한다. 이에 대해 살펴보자 (yolo-world 논문) https://arxiv.org/abs/2401.17270 YOLO-World: Real-Time Open-Vocabulary Object Detection The You Only Look Once (YOLO) series of detectors have established themselves as efficient and practical tools. However, their reliance on predefined and tra..

[C#] VSPE를 사용한 Serial통신 구현 - 2

https://datasirup.tistory.com/198 [C#] VSPE를 사용한 Serial통신 구현 - 1 Serial 통신이란? 시리얼 통신(Serial Communication)은 데이터를 한 비트씩 순차적으로 전송하는 통신 방식이며, 컴퓨터나 마이크로컨트롤러 등의 디지털 장치 간에 데이터를 주고받을 때 널리 사용된 datasirup.tistory.com 지난 포스팅에서 VSPE를 이용해서 시리얼통신의 동작을 확인해봤다. 이번에는 C# 콘솔 프로그래밍을 통해서 송신과 수신을 구현해보자 Serial 통신은 C#에서 기본적으로 제공해준다 System.IO.Ports에서 사용이 가능하다. SerialPort_DataReceived 메서드를 통해서 데이터를 읽고 이것을 누적해서 보여줄 수 있도록 한..

[C#] VSPE를 사용한 Serial통신 구현 - 1

Serial 통신이란? 시리얼 통신(Serial Communication)은 데이터를 한 비트씩 순차적으로 전송하는 통신 방식이며, 컴퓨터나 마이크로컨트롤러 등의 디지털 장치 간에 데이터를 주고받을 때 널리 사용된다. 대중적인 장치들은 USB 타입의 연결을 많이 지원하지만 테스터와 같이 산업용 장치들에서는 안전성 때문에 여전히 많이 쓰인다. 시리얼 통신은 주로 두 장치 간에 직렬로 데이터를 전송하는 방식으로 이루어진다. 각 장치는 하나 이상의 시리얼 포트(일반적으로 UART(Universal Asynchronous Receiver/Transmitter) 포트)를 통해 연결되며, 데이터는 일련의 비트로 전송된다. 일반적으로 시리얼 통신에서는 데이터 비트의 길이(일반적으로 8비트), 정지 비트의 수(보통 1..

[C#] WinForm을 활용한 계산기 만들기

WinForm에 익숙해지기 위해 기본적인 사칙연산을 수행하는 계산기 프로그램을 만들어 봤다 구현사항 - 버튼의 이벤트 처리 - 계산 로직 - 결과 표시 - 오류 처리 - 소수점 계산등의 추가기능 나누기 버튼 예시 - 사칙연산 버튼 클릭 시 어떤 계산을 수행할지 currentOperator 변수에 Operator Enum을 설정하고(Add, Sub, Mul, Div 중 하나), 계산과정 창에 수행할 계산 기호 추가함 public partial class Form1 : Form { enum Operators { None, Add, Sub, Mul, Div, Res } Operators currentOperator = Operators.None; } private void ButtonDivide_Click(o..

[C#] LINQ 기초

LINQ(Languate-INtegrated Query)는 C#에 통합된 데이터 질의 기능이다. SQL과 같은 Query 언어는 데이터베이스 언어인데 이것을 C#에 도입한 것이다. LINQ를 사용하면 컬렉션에서 데이터를 다루는 방법이 간단해진다. var sortedEven = from item in data //불러올 데이터 where item % 2 ==0 //조건 orederby item // 정렬 select item; // 선택 "data 컬렉션에 있는 데이터 item으로부터 item이 짝수이면 item 값이 정렬하여 선택한다"이며, LINQ를 사용하면 원본 데이터가 IEnumerable이나 IEnumerable 인터페이스를 상속하는 형식이어야 한다. using System; using Syste..