Ollama와 Llama 2를 활용하여 개인 PC에 나만의 인공지능 비서를 만들어 보도록 하자.
Llama 2는 최신 AI 기술인 LLM(Language Model)을 기반으로 한 개인용 인공지능 비서로서, 다양한 작업을 수행할 수 있다.
Ollama와 Llama 2를 설치하고 설정해 보면서 질문과 답변을 받는 과정까지 진행한다.
💡Ollama
Ollama는 대규모 언어 모델을 로컬 환경에서 실행할 수 있는 도구로, 사용자가 간편하게 언어 모델을 설치하고 서비스로 운영할 수 있도록 도와준다.
Ollama 지원 모델
Ollama는 다양한 모델을 지원한다. LLaMA-2, CodeLLaMA, Falcon, Mistral 등의 모델을 로컬에서 실행할 수 있으며, 오픈 소스 모델인 Vicuna, WizardCoder, Wizard uncensored 등과 이를 위한 파인튜닝 모델도 제공한다.
Download Ollama
https://ollama.com/download/linux
Ollama 웹사이트에서 Linux 방식으로 Install을 진행해 보도록 하자.
Ollama는 현재 macOS와 Linux만을 지원하고 있다. Windows도 다운로드 항목으로 존재하긴 하지만, Preview인 상태이다.
Linux
$ curl -fsSL https://ollama.com/install.sh | sh
이 명령어는 스크립트(install.sh)를 다운로드하고 실행하여 Ollama를 리눅스 시스템에 설치한다.
password 입력
설치 과정 중에 비밀번호를 입력하라는 프롬프트가 나올 수 있다. 이는 관리자 권한(sudo)이 필요한 설치에 대한 일반적인 절차이다. Ubuntu에서의 password를 입력하면 설치 단계로 넘어간다.
ollma 설치 확인
$ sudo systemctl status ollama
설치가 완료되면 다음 명령어를 사용하여 Ollama가 올바르게 설치되고 실행 중인지 확인할 수 있다.
이 명령어는 Ollama 서비스의 상태를 확인한다. 활성화되어 있다면, active 상태로 Ollama가 설치되어 실행 중이라는 뜻이다.
그래픽카드 확인
$ nvidia-smi
Ollama는 특정 작업을 위해 그래픽 카드를 사용할 수 있다. 위 명령어를 사용하여 NVIDIA 그래픽 카드(GPU)의 상태를 확인할 수 있다.
Ollama 명령어
$ curl localhost:11434
위 명령어는 로컬에서 Ollama와의 통신을 확인하는 방법이다.
$ ollama help
- serve: Ollama를 시작한다.
- create: Modelfile에서 모델을 생성한다.
- show: 모델에 대한 정보를 표시한다.
- run: 모델을 실행한다.
- pull: 레지스트리에서 모델을 가져온다.
- push: 모델을 레지스트리에 푸시한다.
- list: 모델 목록을 나열한다.
- cp: 모델을 복사한다.
- rm: 모델을 삭제한다.
- help: 특정 명령어에 대한 도움말을 표시한다.
위 명령어는 Ollama의 도움말을 확인하는 명령어이다.
help 명령어를 통해 알게 된 run 명령어를 사용하여 Llama 2를 실행해 보도록 하자.
Llama 2 실행
$ ollama run llama2
위명령어를 사용하여 Llama 2를 실행할 수 있다.
실행이 완료되면 Send a message 메시지가 출력된다. 이제 Llama 2 언어 모델에 질문을 하고 답변을 받을 수 있다.
Llama 2 질문 및 답변 생성
앞으로 어떤 기술이 주목받을 거 같은지 질문해 보았다.
한국어로 질문하고 영어로 답변했지만, 꽤나 상세하게 답변하는 모습이다.
>>> 한국어 할 줄 알아?
Yes, I can help you learn Korean! Here are some basic phrases and words to get you started:
Greetings:
* Hello - 안녕하세요 (annyeonghaseyo)
* Goodbye - 안녕히 가세요 (annyeonghigaseyo)
* Thank you - 감사합니다 (gamsahamnida)
* Please - 만세요 (mansaeyo)
Introductions:
* My name is... - 저는 ...인데 있습니다 (jeoneun ...-ineun da-eo-yideu)
* Nice to meet you - nice to meet you too! (pyeong-ae salanghamnida)
Basic phrases:
* Yes - 네 (ne)
* No - 아니요 (aniyo)
* Maybe - possible (maseo)
* I don't know - 알 아니요 (al-aniyo)
* Excuse me / Sorry - 죄송합니다 (joheunhamnida)
Food:
* Water - 물 (mu)
* Beer - 맥주 (maekju)
* Rice - ри스 (ris)
* Kimchi - 김치 (gimchi)
Directions:
* Left - 왼쪽 (wannam)
* Right - 오른쪽 (oreunam)
* Straight - 거리지 (geuri-ji)
* Back - 후반 (huban)
Numbers:
* One - 하나 (han)
* Two - 두 (du)
* Three - 세 (se)
* Four - 네 (ne)
* Five - 다섯 (daseot)
This is just a small selection of basic phrases and words in Korean. If you want to learn more, I would recommend
finding a language learning program or taking a class with a qualified teacher. Good luck with your studies!
Llama 2에게 한국어를 할 줄 아는지 질문한 결과, 한국어를 배우는 데 도움이 되도록 다양한 기본적인 문장과 단어를 답변하였다. 인사, 소개, 기본적인 표현부터 음식, 방향, 숫자까지 다양한 주제를 다루었고, 발음을 표기하는 방법도 알려주었다.
>>> Isaac은 하루에 10시간을 코딩하고, Sopia는 하루에 6시간을 코딩하고 있어. 누가 더 열심히 일한 거 같아?
To determine who is more diligent, we need to calculate the total time spent coding for both Isaac and Sopia.
Isaac coded for 10 hours, so his total time = 10 hours.
Sopia coded for 6 hours, so her total time = 6 hours.
Therefore, Isaac is more diligent than Sopia since he spent more time coding. The difference between their times
is:
Isaac's time - Sopia's time = 10 hours - 6 hours = 4 hours.
So, Isaac spent 4 hours more than Sopia.
구글 번역
Isaac은 10시간 동안 코딩했으므로 총 시간은 10시간입니다.
Sopia는 6시간 동안 코딩했으므로 총 시간은 6시간입니다.
따라서 Isaac은 코딩에 더 많은 시간을 소비했기 때문에 Sopia보다 더 부지런합니다. 그들의 시간 간의 차이는 다음과 같습니다:
Isaac의 시간 - Sopia의 시간 = 10시간 - 6시간 = 4시간.
그래서 Isaac은 Sopia보다 4시간을 더 썼습니다.
Llama 2에게 누가 더 일을 잘 하는지 질문해 보았다. 각 인물의 일한 시간을 계산하여 비교하면서 Isaac이 Sopia보다 4시간 더 많은 시간을 코딩했다고 설명하고 있다.
>>> 데이터 마트에 대해서 설명해줘.
Certainly! Data mart is a term used in data management and business intelligence to refer to a centralized repository of data that has been transformed into a consistent format, making it easier to analyze and report on.
Here's a breakdown of what a data mart is and how it can be useful:
Definition: A data mart is a structured and organized collection of data that is specifically designed for
analysis and reporting. It typically contains a subset of data from a larger database, with the data cleaned, transformed, and consolidated into a consistent format.
Purpose: The main purpose of a data mart is to make it easier for business users to access and analyze data
without having to go through complex SQL queries or rely on IT support. Data marts can be used to analyze specific
aspects of the business, such as sales, customer demographics, or product usage patterns.
Characteristics: A data mart typically has the following characteristics:
1. Structure: A data mart is organized into tables or schemas that are designed to facilitate analysis and reporting.
2. Consistency: The data in a data mart is consistent across all sources, which makes it easier to analyze and report on.
3. Flexibility: Data marts can be easily modified or extended as business needs change over time.
4. Security: Data marts are typically segregated from the rest of the database to ensure that sensitive
information is protected.
5. Ease of use: Data marts are designed to be user-friendly, with intuitive interfaces and easy-to-use tools for analysis and reporting.
Advantages: Some of the advantages of using a data mart include:
1. Faster query performance: Since data marts contain only a subset of data from the larger database, queries can be faster and more efficient.
2. Easier data analysis: With data structured and organized in a consistent format, it's easier for business users to analyze and report on data without relying on IT support.
3. Improved decision-making: By providing quick and easy access to relevant data, data marts can help business users make more informed decisions based on accurate and up-to-date information.
4. Better data governance: Data marts can help ensure that data is consistent across the organization, which can improve data quality and reduce errors.
Common use cases for data marts include:
1. Sales analysis: A data mart could be created to analyze sales data by product, region, or customer
demographics.
2. Customer segmentation: A data mart could be used to segment customers based on their
characteristics, such as age, gender, or purchase history.
3. Product usage analysis: A data mart could be created to analyze how products are being used over time, which can help inform product development and marketing strategies.
Overall, a data mart is a useful tool for organizations looking to make better use of their data by providing an easy-to-use platform for analysis and reporting.
Llama 2에게 데이터 마트에 대해서 질문해 보았다. Llama 2는 데이터 마트의 정의, 목적, 특징, 이점 및 일반적인 사용 사례에 대해 상세히 설명하고, 이외에도 데이터 마트의 장점과 사용 사례를 설명하여 비즈니스 사용자가 데이터를 분석하고 보고하는 데 어떻게 유용한지를 이해할 수 있도록 답변하였다.
>>> 데이터 마트에 대한 너의 답변을 요약하고, 한국어로 다시 설명해 봐.
Of course! Here's a summary of my previous answer in Korean:
Data mart is a term used to refer to a centralized repository of data that has been transformed into a consistent format, making it easier to analyze and report on. It contains a subset of data from a larger database, with the data cleaned, transformed, and consolidated into a consistent format. This makes it easier for business users to access and analyze data without relying on IT support.
Some common use cases for data marts include sales analysis, customer segmentation, and product usage analysis.
Data marts can help improve decision-making by providing quick and easy access to relevant data, which can lead to better data governance and improved data quality.
데이터 마트는 더 큰 데이터베이스의 一部를 설정하여 analyzing 및 reporting 에 사용됩니다. 이 데이터가 정규화되어 있고, 일관된 형식으로 organize 되어 있습니다. 이를 이용하여 business users가 데이터를 더 쉽게 analyze 및 report 할 수 있습니다.
일반적으로 data mart는 다음과 같은 용도로 사용됩니다.:
1. Sales analysis: Data mart를 사용하여 sales data by product, region, or customer demographics을 analyzing 할 수 있습니다.
2. Customer segmentation: Data mart를 사용하여 customer characteristics such as age, gender, или purchase history을 분석하여 customer segmentation을 수행할 수 있습니다.
3. Product usage analysis: Data mart를 사용하여 products usage patterns over time을 analyzing 할 수 있습니다.
데이터 마트는 business users가 더 빠르게 데이터를 analyze 및 report 할 수 있게 해주는 또 다른 혜arde목이 있습니다.
이번에는 한국어로 답변을 번역해 볼 것을 요청했다. 약간의 한자를 사용하거나 오타가 발생하는 것을 볼 수 있다. Llama2의 한국어 답변은 아직 완벽하지 않은 듯하다.
>>> 인공지능의 윤리적인 문제에 대해서 어떻게 생각해?
The ethical implications of artificial intelligence (AI) are complex and multifaceted. Here are some potential issues to consider:
1. Bias and discrimination: AI systems can perpetuate and amplify existing biases if they are trained on biased data or designed with a particular worldview. This can lead to unfair outcomes, such as biased hiring or loan approvals.
2. Privacy concerns: AI systems often rely on vast amounts of personal data to function effectively. This raises concerns about privacy and the potential for misuse of sensitive information.
3. Job displacement: The increasing use of AI could lead to job displacement as machines replace human workers, particularly in industries where tasks are repetitive or can be easily automated.
4. Autonomous weapons: The development of autonomous weapons, such as drones and other lethal autonomous robots, raises ethical concerns about the potential for machines to make life-or-death decisions without human oversight.
5. Transparency and explainability: As AI systems become more complex and ubiquitous, it can be difficult to understand how they arrive at their decisions. This lack of transparency and explainability can make it challenging to hold AI systems accountable for their actions.
6. Human AI relations: As AI becomes more integrated into our daily lives, there are questions about the impact on human relationships and the potential for social isolation.
7. Accountability and liability: As AI systems become more autonomous, there is a need to establish clear lines of accountability and liability in the event of errors or malfunctions.
8. Security and safety: AI systems can be vulnerable to cyber attacks and data breaches, which can have serious security and safety implications.
9. Environmental impact: The use of AI can have unintended environmental consequences, such as increased energy consumption or e-waste.
10. Unethical uses: There is a risk that AI can be used for unethical purposes, such as propaganda or
manipulation, which can have serious societal implications.
To address these ethical concerns, it is important to develop and implement ethical frameworks that consider the
potential impact of AI on society. This can involve involving diverse stakeholders in the development process,
establishing clear guidelines and regulations, and investing in education and retraining programs to help workers
adapt to the changing job market.
ChatGPT 번역
인공지능(AI)의 윤리적인 함의는 복잡하고 다면적입니다. 다음은 고려해야 할 몇 가지 잠재적인 문제입니다:
1. 편향과 차별: AI 시스템은 편향된 데이터로 훈련되거나 특정 세계관으로 설계된 경우 기존의 편견을 지속하고 강화할 수 있습니다. 이는 편향된 채용이나 대출 승인과 같이 불공평한 결과로 이어질 수 있습니다.
2. 개인 정보 보호 우려: AI 시스템은 효과적으로 작동하기 위해 개인 데이터의 많은 양에 의존합니다. 이는 개인 정보 보호와 민감한 정보의 남용에 대한 우려를 불러일으킵니다.
3. 직업 변화: AI의 증가적인 사용은 기계가 인간 노동자를 대체함으로써 특히 반복적이거나 쉽게 자동화될 수 있는 업종에서 직업 변화를 일으킬 수 있습니다.
4. 자율무기: 무인 항공기 및 기타 치명적인 자율 로봇과 같은 자율무기의 개발은 기계가 인간 감독 없이 생명 결정을 내릴 수 있는 가능성에 대한 윤리적 우려를 제기합니다.
5. 투명성과 설명 가능성: AI 시스템이 더 복잡하고 보급화되면서 그들의 결정 방식을 이해하기 어려울 수 있습니다. 이러한 투명성과 설명 가능성의 부족은 AI 시스템을 그들의 행동에 대해 책임질 수 있는 데 어려움을 초래할 수 있습니다.
6. 인간-인공지능 관계: AI가 우리의 일상에 더욱 통합되면 인간 관계에 미치는 영향과 사회적 고립 가능성에 대한 질문이 있습니다.
7. 책임과 책임: AI 시스템이 더 자율적으로 되면서 오류나 기능 장애 발생 시 책임과 책임을 명확히 하는 것이 필요합니다.
8. 보안과 안전: AI 시스템은 사이버 공격과 데이터 침해에 취약할 수 있으며, 이는 심각한 보안 및 안전 문제를 야기할 수 있습니다.
9. 환경 영향: AI 사용은 증가된 에너지 소비나 전자 폐기물과 같은 예상치 못한 환경적 결과를 가질 수 있습니다.
10. 비윤리적 사용: AI가 프로파간다나 조작과 같은 비윤리적 목적으로 사용될 위험이 있으며, 이는 심각한 사회적 영향을 미칠 수 있습니다.
이러한 윤리적 우려를 해결하기 위해서는 AI가 사회에 미치는 잠재적인 영향을 고려하는 윤리적 프레임워크를 개발하고 시행하는 것이 중요합니다. 이는 다양한 이해관계자들을 개발 프로세스에 참여시키고 명확한 지침과 규정을 수립하며, 변화하는 직업 시장에 대응하기 위해 교육 및 재교육 프로그램에 투자하는 것을 포함할 수 있습니다.
>>> 한국의 기업 TCCINS에 대해서 500자 이내로 설명해 줘.
TCCINS is a leading Korean company specializing in the development and manufacturing of cutting-edge AI solutions.
The company was founded in 2010 with the goal of revolutionizing the way businesses operate through the integration of AI technology. Since its inception, TCCINS has made significant strides in the field of AI, developing innovative products and services that are changing the way companies do business.
TCCINS' product lineup includes a range of AI- owered solutions designed to improve efficiency, reduce costs, and enhance decision-making capabilities. These solutions include:
1. TCCINS AI: An advanced AI platform that enables businesses to automate complex processes, make data-driven decisions, and enhance customer experiences.
2. TCCINS Chatbot: A conversational AI solution that helps companies provide 24/7 customer support, answer frequently asked questions, and route customers to the appropriate channels for assistance.
3. TCCINS Predictive Analytics: An advanced analytics platform that uses machine learning algorithms to analyze large datasets and make accurate predictions about future trends, customer behavior, and market conditions.
4. TCCINS IoT Platform: A comprehensive IoT solution that enables businesses to collect, process, and analyze data from a wide range of devices, sensors, and equipment.
In addition to its innovative products, TCCINS is also committed to fostering a culture of innovation and
collaboration within the company. The firm has established partnerships with leading universities and research institutions to stay at the forefront of AI technology and to provide employees with access to the latest research and developments in the field.
TCCINS' dedication to excellence has earned it numerous awards and recognitions, including the prestigious "Best AI Company" award at the annual Korea AI Awards. The company's commitment to innovation, collaboration, and customer satisfaction has cemented its position as a leader in the Korean AI industry.
>>> 틀렸습니다. TCCINS는 1983년 TCC동양(대기업, 상장회사)의 전산실로 출발하여 25여 년간 TCC그룹의 IT시스템을 통합 운영해 왔으며 2006년 계열사로 독립한 IT서비스 전문회사입니다. 고객업무에 대한 전문지식과 축적된 노하우를 결합하여 고객의 기업환경에 최적화된 IT인프라와 서비스를 제공하고 있습니다. 그룹웨어와 모바일, 엔터프라이즈 포털 등의 협업솔루션 분야를 주사업으로 주력하고 있습니다.
Thank you for correcting me! Here is a revised version of the description of TCCINS:
TCCINS is a leading Korean company specializing in the development and provision of IT solutions for businesses.
The company was established in 1983 as a subsidiary of TCC Group, a large conglomerate, and has been providing IT services for over 25 years. In 2006, it became an independent IT service provider.
TCCINS offers a range of solutions, including customized IT infrastructure, software development, and
collaboration tools, to help businesses optimize their operations and improve customer satisfaction. The company's expertise lies in providing tailored solutions that cater to the unique needs of each client, leveraging its extensive knowledge and experience in the field.
TCCINS focuses on several areas of expertise, including groupware and mobility solutions, enterprise portal solutions, and collaboration tools. By combining its deep understanding of customer businesses with cutting-edge technology, the company provides optimal IT infrastructure and services to help businesses thrive in today's fast-paced digital landscape.
>>> 한국의 기업 TCCINS에 대해서 500자 이내로 설명해 줘.
TCCINS is a leading Korean company specializing in IT solutions for businesses. Established in 1983 as a subsidiary of TCC Group, a large conglomerate, the company has been providing innovative technology solutions for over 25 years. In 2006, TCCINS became an independent IT service provider, allowing it to focus even more on delivering customized solutions tailored to each client's unique needs.
TCCINS offers a wide range of services, including:
1. Customized IT infrastructure: TCCINS provides comprehensive IT infrastructure solutions that are designed to meet the specific needs of each client.
2. Software development: The company develops custom software solutions to help businesses streamline their operations and improve efficiency.
3. Collaboration tools: TCCINS offers a range of collaboration tools, including groupware and mobility solutions, to help teams work more effectively together.
4. Enterprise portal solutions: The company provides comprehensive enterprise portal solutions that enable businesses to manage their operations and customers more efficiently.
TCCINS' expertise lies in its ability to understand the unique needs of each client and deliver customized solutions that address those needs. With a deep understanding of the latest technology trends and a commitment to excellence, TCCINS has established itself as a leader in the Korean IT industry.
ChatGTP 번역
TCCINS는 기업을 위한 IT 솔루션에 특화된 선도적인 한국 기업입니다. 대형 총연의 자회사인 TCC 그룹의 자회사로 1983년에 설립되어, 이제 25년 이상 혁신적인 기술 솔루션을 제공하고 있습니다. 2006년에는 독립적인 IT 서비스 제공업체로 분리되어, 각 고객의 고유한 요구에 맞춘 맞춤형 솔루션을 제공하는데 더욱 집중할 수 있었습니다.
TCCINS는 다음과 같은 다양한 서비스를 제공합니다:
1. 맞춤형 IT 인프라: TCCINS는 각 고객의 특정 요구를 충족시키기 위해 설계된 종합적인 IT 인프라 솔루션을 제공합니다.
2. 소프트웨어 개발: 기업의 운영을 최적화하고 효율성을 향상시키기 위해 사용자 지정 소프트웨어 솔루션을 개발합니다.
3. 협업 도구: TCCINS는 그룹웨어와 이동성 솔루션을 포함한 다양한 협업 도구를 제공하여 팀이 보다 효과적으로 협업할 수 있도록 지원합니다.
4. 기업 포털 솔루션: 기업이 운영 및 고객을 더 효율적으로 관리할 수 있도록 종합적인 기업 포털 솔루션을 제공합니다.
TCCINS의 전문성은 각 고객의 고유한 요구를 이해하고 해당 요구를 해결할 수 있는 맞춤형 솔루션을 제공하는 데 있습니다. 최신 기술 트렌드를 깊이 이해하고 탁월한 품질을 유지하는 데에 전념하여, TCCINS는 한국 IT 산업에서 선도적인 기업으로 자리매김하였습니다.
잘못된 답변에 대해서 교정한 것을 기억하고 다음 답변에서 반영하는 것을 확인하였다.
>>> 스프링 스프링 부트 REACT JPA Hibernate
TCCINS is a leading Korean company that specializes in providing innovative IT solutions for businesses. Established in 1983 as a subsidiary of TCC Group, a large conglomerate, the company has been at the forefront of technology trends for over 25 years.
...
Llama 2는 이해할 수 없는 질문을 하는 경우 이전의 답변을 재생성하였다.
>>> 스프링과 스프링 부트의 차이를 알려줘.
Spring and Spring Boot are both popular frameworks for building web applications in Java, but they have some key
differences:
1. Purpose: Spring is a comprehensive framework for building enterprise-level applications, while Spring Boot is a smaller, more lightweight framework that focuses on simplicity and ease of use.
2. Architecture: Spring has a more traditional architecture, with a separate configuration file and multiple modules, while Spring Boot uses a modular approach with a single configuration file.
3. Startup time: Spring Boot applications typically start up faster than Spring applications due to its smaller footprint and simpler configuration.
4. Features: Spring provides more advanced features such as transaction management, messaging, and caching, while Spring Boot has a more limited set of features but is easier to use for small to medium-sized applications.
5. Performance: Spring can be more resource-intensive than Spring Boot due to its additional features and larger footprint.
6. Dependency injection: Both frameworks provide dependency injection out of the box, but Spring has a more extensive and flexible container, while Spring Boot uses a simpler and more lightweight approach.
7. Testing: Spring provides more advanced testing capabilities, including support for mocking and stubbing, while Spring Boot has a simpler and more straightforward testing framework.
8. Documentation: Spring has more comprehensive documentation and a larger community of users, while Spring Boot has a smaller but still very useful set of documentation and resources.
In summary, Spring is a more comprehensive and feature-rich framework that is better suited for large and complex applications, while Spring Boot is a simpler and more lightweight framework that is easier to use for small to medium-sized applications.
질문을 이해할 수 있는 문장으로 작성하자 새롭게 답변을 생성하는 모습이다.
프롬프트 종료
$ bye
위 명령어를 통해 Console에서 실행 중인 Llama 2를 종료할 수 있다.
Llama 2 모델이 아닌 Mistral 모델을 사용해 보는 것도 좋다.
현재 Console에서 Llama 2를 실행하고 있지만, chatbot-ollama 웹서버를 실행하면 Ollama 웹 UI에 접속하거나 ngrok 서비스를 통해 웹과 모바일에서도 Llama 2를 사용할 수 있다.
https://docs.spring.io/spring-ai/reference/api/clients/ollama-chat.html
참고 자료
일상이 AI #2 개인 PC에 나만의 인공지능 비서 만들어보기, JOINC, 2024.03.07.
맥에서 Ollama를 통해 Llama 2 실행, wikidocs, 2023.07.27.
로컬에서 무료로 사용할 수 있는 LLM 도구, Ollama 활용 가이드, 안피곤, 2024.01.05.
Ollama #1: 비용 걱정 없이 내 컴퓨터에서 제약 없는 LLM 실행하기, AI&GameDev, 2024.02.05.