Llama2 는 누구나 무료로 다운로드하여 사용할 수 있는 대규모 오픈 소스 언어 모델입니다.
자율주행차부터 챗봇까지, AI혁명으로 사회 전반의 삶의 변화가 일어나고 있습니다. AI의 가장 흥미로운 발전 중 하나는 대규모 언어 모델의 생성입니다. 이러한 모델은 일관되고 이해하기 쉬운 새로운 텍스트를 생성하기 위해 기사 및 소셜 미디어 게시물과 같은 대량의 데이터에 대해 훈련되었습니다.
대규모 언어 모델의 잘 알려진 예로는 OpenAI의 ChatGPT, Google의 Google Bard, Meta의 Llama 2가 있습니다. Meta는 Microsoft와 협력하여 Lama 2 모델을 출시했습니다.
Llama2 AI모델에 대한 소개
Llama 2는 페이스북 모회사 메타의 AI 그룹에서 개발한 대규모 언어 모델입니다. 이 모델은 사전 학습된 매개변수 규모에 따라 3가지 버전으로 제공되며 Local Computer에서도 작동을 할 수가 있습니다.
1. Llama-2-7B: 70억 개의 매개변수로 사전 학습 (최소 8GB의 RAM 필요)
2. Llama-2-13B: 130억 개의 매개변수로 사전 학습 (최소 16GB의 RAM 필요)
3. Llama-2-70B: 700억 개의 매개변수로 사전 학습 (32GB의 RAM 필요)
이 모델들은 연구와 상업적인 용도로 완전 무료로 사용할 수 있으며, 매개변수 규모를 선택하여 다양한 작업에 활용할 수 있습니다. Llama 2는 기존 버전보다 더 많은 토큰으로 학습되었으며, 콘텍스트 길이도 증가하여 다양한 언어 처리 작업에서 효과적으로 활용할 수 있습니다.
Llama 2는 Amazon Web Services(AWS), Hugging Face 및 기타 제공업체를 통해서도 제공됩니다
Llama 2의 우선 파트너로서 Microsoft와의 파트너십을 한 단계 더 발전시키고 생성 AI에 대한 노력을 확대하였습니다.
이제 Llama 2는 Azure AI 모델 카탈로그에서도 제공됩니다. Microsoft Azure를 사용하는 개발자는 Llama 2를 사용하여 Azure 클라우드 기반에서 구축 할 수 있습니다. 또한 Windows에서 로컬로 실행되도록 최적화되어 개발자가 다양한 플랫폼에서 고객에게 생성적 AI 경험을 제공할 때 원활한 워크플로를 제공합니다.
Lama2를 이용한 검색 기술에 활용하기
Lama2 lama.search()를 이용한 데이터 조회 조건 사용법 정리하여 보았습니다.
1. 단일 조건 검색 : lama.eq("key", "value")
# 특정 Key 값이 "Value"인 데이터를 찾는다.
criteria = lama.eq("key", "value")
search_result = lama.search(json_data, criteria)
2. 범위 기반 조회: lama.between("age", 25, 35)
# 연령이 25~35인 사람을 찾는다.
criteria = lama.between("age", 25, 35)
search_result = lama.search(json_data, criteria)
3. 부분 문자열 포함 여부 조회: lama.contains("name", "John")
# 이름이 john인 사람을 찾는다.
criteria = lama.contains("name", "John")
search_result = lama.search(json_data, criteria)
4. 여러 조건을 AND로 결합하여 조회: lama.and_( 조건 1, 조건 2)
- 조건 1과 조건 2를 만족하는 데이터를 찾는다.
# 30세 이상의 여성을 찾는다.
criteria = lama.and_(lama.eq("gender", "Female"), lama.gte("age", 30))
search_result = lama.search(json_data, criteria)
5. OR 연산자를 사용한 조회: lama.or_( 조건 1, 조건 2)
- 조건 1 또는 조건 2를 만족하는 데이터를 찾는다.
# 도시 뉴욕 또는 로스엔젤런스에 거주하는 사람을 찾는다.
criteria = lama.or_(lama.eq("city", "New York"), lama.eq("city", "Los Angeles"))
search_result = lama.search(json_data, criteria)
6. 리스트 내 요소 조회: lama.contains("interests", "Skiing")
- 리스트에 포함된 데이터를 찾는다.
# interests 리스트에서 "Skiing"가 포함된 경우를 찾는다.
criteria = lama.contains("interests", "Skiing")
search_result = lama.search(json_data, criteria)
예시 1 - Llama2를 이용한 jason data 검색
- 예시 JSON 데이터를 확장하여 30세 이상의 여성 중 스키를 좋아하는 사람을 찾는다.
from lama2 import Lama
# Lama 객체 생성
lama = Lama()
# 검색할 JSON 데이터 (예시)
json_data = {
"name": "Jane Smith",
"age": 35,
"gender": "Female",
"interests": ["Skiing", "Hiking"],
"city": "Mountain Town"
}
# Lama를 사용하여 확장된 조건으로 검색 수행
criteria = lama.and_(
lama.gte("age", 30),
lama.eq("gender", "Female"),
lama.contains("interests", "Skiing")
)
search_result = lama.search(json_data, criteria)
# 결과 출력
print("검색 결과:", search_result)
예시 2 - Llama2를 이용한 jason data 검색
단순한 문장보다 정확한 결과를 도출하고자 Lama2의 데이터 검색으로 json data로 찾는 조건을 제공하여 조회하는 방법을 작성해 보았습니다.
- json_input_data로 찾는 조건을 만들어 유사한 데이터 찾는 예시입니다.
from lama2 import Lama
# Lama 객체 생성
lama = Lama()
from lama2 import Lama
# Json_input_data
json_input_data = {
"age": "above 30",
"interests": ["Movie", "Skiing"]
}
# 검색할 JSON 데이터
json_data = [
{
"id": 201,
"name": "Jane Smith",
"age": 35,
"gender": "Female",
"interests": ["Skiing", "Hiking"],
"city": "Mountain Town"
},
{
"id": 202,
"name": "James Mason",
"age": 31,
"gender": "Male",
"interests": ["Soccer", "Skiing", "Hiking"],
"city": "EmberHouse Avenue"
},
{
"id": 203,
"name": "Malcom Edison",
"age": 29,
"gender": "Male",
"interests": ["Soccer", "Baseball"],
"city": "Mountain Town"
},
{
"id": 205,
"name": "Elise Mire",
"age": 40,
"gender": "Female",
"interests": ["Movie", "Musical"],
"city": "EmberHouse Avenue"
}
]
# Lama 객체 생성
lama = Lama()
# Json_input_data를 Lama의 criteria로 변환
criteria = lama.and_(
lama.gte("age", 30),
lama.contains_all("interests", json_input_data["interests"])
)
# 결과를 저장할 리스트 초기화
matching_people = []
# Lama를 사용하여 검색 수행
for person in json_data:
if lama.match(person, criteria):
matching_people.append({"id": person["id"], "name": person["name"]})
# 결과 출력
print("유사한 사람들:", matching_people)
'BigData' 카테고리의 다른 글
How to add Firewall rules on Redhat 9 - Allow MySQL Service Through the Firewall (8) | 2024.10.03 |
---|---|
MYSQL 계정 생성, 권한부여, 권한 삭제 (5) | 2024.10.03 |
[인공지능] ARIMA -주가 예측 모델: 3-6-9개월 후 AMZN 주가 확인 - (2) | 2024.08.12 |
[인공지능 기술] RAG를 위한 라마인덱스의 정리 - llamaindex 의 특징 (2) | 2024.05.12 |
Llama-2 local 설치 - install gobjc gcc-objc - LLma.cpp 컴파일러 설치 (31) | 2024.02.14 |
Llama-2 install locally - Llama-2 로컬 사용 (118) | 2024.02.09 |
Llama-2 local 설치 할 때 생기는 문제들 - llama.cpp해결 (105) | 2024.02.08 |