728x90

전체 글 60

[Anaconda] 커맨드 모음

맨날 까먹어서 메모용으로 작성하는 커맨드 모음 가상환경 만들기conda create -n python= yaml 파일 import 하여 새 가상환경 만들기 -> yaml 이름에 있는 대로 작성된다.conda env create --file  가상환경 실행하기conda activate  현재 위치한 가상환경 확인하기conda info --env 가상환경 종료하기conda deactivate 가상환경 삭제하기 (전~부 다)conda remove -n --all

[Langchain] 랭체인이란 & 파이썬 설치하기

Langchain에 대해서 알아보자배경LLM은 강력한 도구이지만, LLM 기반 애플리케이션을 구축하려면 고려해야 할 요소들이 너무 많음.LLM은 상태를 저장하지 않으므로 이전 대화내용(context)을 저장하지 못함 -> 이전에 사용한 context를 기억할 수 없으며, 해당 '기억'은 개발자의 몫.또다른 문제: LLM에 대한 일률적 규칙이 없음: 감정 분석, 분류, 질문 답변과 요약 등 서로 다른 시나리오에 특화된 다양한 모델을 사용해야 할 수도 있음. 여러 LLM을 처리하는 작업은 복잡함.+ Langchain의 등장langchain은 언어 모델과 여러 기능을 쉽게 연결할 수 있게 해주는 프레임워크 => LLM 어플리케이션 개발을 쉽고 빠르게 구축/배포할 수 있게 설계됨.. 랭체인의 주요 요소는 모듈식..

AI-자연어처리 2024.09.05

[Python] 파이썬 기초 9: Numpy(1, 2)

개요수학, 과학, 공학, 데이터과학 응용 분야에서 python에서 사용 가능한 open source libraryC/C++ Fortran과 통합이 쉬움데이터 구조ndarray class: array class라고 부르기도 함동일한 데이터형 원소들(주로 숫자형)의 다차원 배열indexing: 정수들의 tuple로 index 표현broadcasting다양한 수치 연산 도구다차원 배열에 적용할 수 있는 벡터화 함수선형 대수, 푸리에 변환, 콘볼루션, 통계 라이브러리 등Numpy 장점다차원 배열 또는 행렬 연산의 편리함우수한 메모리 효율(list, tuple에 비해) // list객체가 약 130배 정도 늦음빠른 처리속도 💡 np.array() # 다차원 배열 생성Numpy 다차원 배열과 list 객체의 구조..

[NLP] Retrieval Augmented Generation(RAG)란 / RAG와 LLM

RAG(Retrieval Augmented Generation)의 개념데이터를 사전학습한 대규모 언어모델(LLM) 한계 극복 위해 제안된 자연어처리 기술.생성형 LLM의 정확성/신뢰성 문제 해결을 위해 등장한 기술 중 하나. LLM의 여러 단점 중 '사실관계 오류 가능성', '맥락 이해의 한계'를 개선하는 데 초점을 맞춘 방법. LLM + 외부 지식 베이스를 연결하여 모델의 생성 능력 & 사실관계 파악 능력을 upgrade할 수 있으며, 사실 기반 답변 제공 및, 모델의 출력 결과에 대한 증거를 제시할 수 있음.  '지식 검색'과 '언어 생성'을 결합한 프레임워크로, 기본 아이디어는 질문에 답하기 위해 필요한 지식을 외부 DB에서 검색해 활용하는 것. 모델이 학습 데이터에 포함되지 않은 외부 데이터를 실..

AI-자연어처리 2024.09.05

[Python] 파이썬 기초 8: 함수(3, 4)

함수(3)재귀함수(Recursive Function)정의: 자기 자신을 호출하는 함수.for loop, while loop으로는 해결할 수 없는 문제반복 작업을 깔끔하게 해석 가능비선형 구조(tree)에 대한 자료를 다룰 때Factorial 함수자연수 n의 factorial은 n보다 작거나 같은 모든 자연수의 곱.n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 = n * (n - 1)!0! = 1$factorial(n) = 1 (n = 0), otherwise : n *factorial(n-1)$# factorial formed by for-loopdef factorial(n): assert (n>=0) fact = 1 for i in range(1, n+1): fac..

[Python] 파이썬 기초 7: 함수(1, 2)

함수(1)함수 개요함수는 추상화(abstraction)의 기본 방법추상화: 사용자에게 애플리케이션의 내부 구현을 숨기고 사용법에만 집중하게 하는 과정전자레인지 쓰면서 내부 기능은 알 필요 없으니까같은 동작이 여러 번 필요한 경우, 다른 곳에 함수 블록 만들어놓고 계속 쓰기만 하면 되니까함수는 호출될 때만 실행되는 코드들의 블록함수의 매개 변수(parameters)를 이용해 데이터를 함수에 전달할 수 있음매개 변수는 0개 이상함수는 데이터를 반환(return)할 수 있음함수 정의 💡 def function_name(parameter list):"""docstring"""statement(s)대부분의 함수는 return 문으로 끝나지만, 때로는 없을 수도 있음. 이 경우, 반환값이 없는 게 아니고 None..

[Python] 파이썬 기초 6: Set / Frozen Set 자료형

Set 💡 set_name = {element, element, ... }Set 특징순서가 없는(unordered) 데이터 모음. idx 없음//non-sequence type data, tuple/list와 다름.sequence type data: string, range, tuple, list중복된 원소 없음: kinda like 'key' of dictionaryIterable > for loop 내 set 사용 가능set 자체는 mutable이지만 원소는 immutablehash table 사용, 원소는 immutablelist에 비해 처리 속도 빠름(list: 동적 배열, set: hash table)Set 생성empty set 생성set_1 = set() print(set_1) # set()..

[Python] 파이썬 기초 5: Dictionary 자료형

container = 다른 객체 포함하는 객체. 항상 container 이해하고 생각하기!Hash 함수python의 모든 객체는 'hashable'data를 hash라는 고정길이 값으로 mapping하는 함수주요 특징같은 data에 대해 늘 같은 결과 제공(same input, same output)빠른 계산 속도데이터 크기와 관계없이 결과는 고정길이 값Hash 값으로부터 원래 데이터 복원 불가능: 비가역 함수hash 함수는 객체를 받아들여 정수를 return정수의 Hash 값64bit system의 경우, [-2^61 + 2, 2^61 - 2] 범위 정수는 hash값이 자신과 같음.범위 벗어나면 자기 자신과 hash값이 다름n = 2 ** 61 # criteriaprint(f"{'n':^24} {'ha..

[Python] 파이썬 기초 4: Sequence Type Data

RangeListTupleStringbytesbytearrayList와 Tuple의 특징ListSequence Type: 원소의 나열순서가 의미있음Mutable(추가 및 수정 가능)정렬 가능: 수정 가능하므로.범용Python Data type 중 가장 널리 사용List 내 원소 개수 제한 없으며, 원소는 어떤 type data도 사용 가능TupleSequence Type: 순서가 나열순서가 의미있음Immutale(추가, 수정 불가능)List보다 처리 속도 빠름: 한 번 고정되면 그대로 fix이므로정렬 불가능: 수정 불가능하므로.고정형 data에 적합Tuple 내 원소 개수 제한 없으며, 원소는 어떤 type data도 사용 가능Sequence Type Data-List(리스트)List Statement[..

[Python] 파이썬 기초 3: 문법 기초 및 bit-wise operation

정수의 비트 단위 연산할당 연산자실수형 자료의 표현명령줄과 들여쓰기주석문Bit-wise operation&: bit단위 AND|: bit 단위 OR~: bit 단위 NOT^: bit 단위 XOR>>: bit 단위 우측 이동Python integer의 bit_length 💡 .bit_length() bit 길이 알려주는 methodInteger의 bit단위 not 연산 💡 ~m은 m의 1의 보수(1's complement)13(10)과 ~13(10)13(10) = 01101(2)~13(10) = 0 1101(2)의 1의 보수 = 1 0010(2) 💡 음수는 2의 보수(2's complement)13(10)과 -13(10)13(10) = 0 1101(2)0 1101(2)의 1의 보수 = 1 0010(2..