Як вивчати Python без доступу до інтернету й за допомогою ШІ

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Привіт DOU, мене звати Сергій Труш, і я інженер комп’ютерних систем, захоплююсь вивченням Python, Data Science та темою штучного інтелекту.

Сьогодні я хочу поділитися з вами чудовою можливістю — навчатись з допомогою штучного інтелекту. Для прикладу, буду показувати як вивчати мову програмування Python, при цьому без доступу до Інтернету, за допомогою ШІ, який буде встановлений на Вашому ПК.

Де може бути корисно?

  1. Це розкриває низку можливостей, наприклад конфіденційність — тут лише Ви та ШІ, без третіх сторін. Якщо Ви володар бізнесу, і Ваші проєкти вимагають, щоб дані не покидали компанію — welcome;
  2. Можливість будь де і будь коли навчатись (навіть під час блекаутів), або просто спілкуватись з штучним інтелектом, прямо як у серіалі з 80-х років — «Лицар Доріг» (який я вибрав як обкладинку для цієї статті).

Це стає можливим завдяки поєднанні ШІ та open source.

Потрібно три ключові компоненти:

У цій статті я розповім про три проєкти, які в сумі роблять офлайн-навчання можливим, вони доступні для різних операційних систем(у тому числі і для Windows), окрім того — належать до open source спільноти, тобто безкоштовні та доступні всім:

  1. Ollama;
  2. LLAMA;
  3. ChatBox.

1. Ollama:

Ollama — це проєкт, який є своєрідним інтерфейсом для вводу і виводу інформації у велику мовну модель, тобто це ПЗ слугує для обміну словами(токенами ) між людиною та ШІ.

2. LLAMA3:

LLAMA3 — це велика мовна модель від компанії META, яка була навчена на величезному наборі даних (тексту та коду). Її можна використовувати для генерування тексту, перекладу мов, написання різних видів творчого контенту та, звичайно ж, і для відповіді на ваші запитання про Python. LLAMA3 публікується під особливою ліцензією(рекомендую ознайомитись перед використанням).

3. ChatBox:

ChatBox — цей проєкт є зручним користувацьким інтерфейсом, який дозволяє Вам «спілкуватися» з пз Ollama, яка, в свою чергу, використовує LLAMA3 для розуміння Ваших запитів та генерування відповідей.

Налаштування офлайн чат боту:

1. Завантаження та встановлення:

  • Завантажте та встановіть Ollama для своєї операційної системи з офіційного сайту ollama.com . Після встановлення у треї системи ви побачите ламу — сервіс Ollama(у випадку з Windows).
  • Встановіть LLM, для прикладу я буду використовувати LLAMA3 8b(вона ж «latest»), на сайті ollama це робиться дуже легко — вибираєте із списку потрібну, та копіюєте команду для командного рядка(на скріні справа):

Для прикладу — я встановлю собі 8b(LLM на 8 мільярдів параметрів), є ще версія мовної моделі 70b, тобто 70 мільярдів параметрів, але моїх 32 гігабайти DDR4 оперативки та RTX3050 на 4 гігабайти не вистачає — дуже довго генерує повідомлення, по 5-7 хвилин, для порівняння 8b генерує 10-15 секунд середнє повідомлення на 20-30 токенів(слів).

Відкриваєте командний рядок(Win+R -> cmd) та вставляєте команду з сайту:

ollama run llama3

І почне відбуватись скачування файлів LLM:

Після завантаження у Вас з’явиться змога спілкуватись з ШІ у командному рядку, правда без можливості зберегти чат, тобто одноразово. Щоб вийти використовуйте команду «/bye».

  • Завантажте та встановіть ChatBox з офіційного сайту chatboxai.app — це розширить можливості для чатування з LLM. У програмі можна створювати нові чати, вміст і контекст бесід зберігається навіть після повторного запуску, спілкуватись можна з ШІ утримуючи контекст до 10-12 останніх повідомлень(вивів для себе таке число експериментальним шляхом). Запускаємо і бачимо щось типу цього:

2. Підключення ChatBox до LLAMA3:

  • Після встановлення ChatBox заходимо в налаштування програми(тобто «Settings»), змінюємо «AI Model Provider» на «Ollama», потім «API Host» повинен підтягнутись автоматом, якщо Ви все зробили вірно на попередніх кроках. Моделей може бути кілька, я поки працюю з llama3, також є codellama — набір із різних LLM, які навчені саме під програмування, тому коли треба генерувати код, можна змінювати LLM у налаштуваннях окремого чату.

Є ще параметри «контексту» і «температури» діалогу. Хоч я виставив контекст без обмежень, все одно є обмеження самої LLM, тому просто виставив щоб потішитись. Температура, це те, у якому стилі генерується відповідь, або точно або креативно.

  • Створюємо нову бесіду, називаємо її темою, про яку говоритимемо(поле «Name»), щоб задати ШІ тему розмови задаємо системні підказки(System Prompt):

Так як тема статті про навчання програмуванню Python, то я написав наступну підказку:

Вказівка «Використовуй Markdown» зробила гарне кольорове форматування коду:

А підказка як мене звати персоналізувала чат бота таким чином, що він періодично і всюди згадує моє ім’я — цікаве відчуття.

3. Загальні рекомендації що до чату з ШІ :

  • На початку бесіди рекомендую попросити створити план теми, яку хочете вивчати, чим детальніше тим краще, це потрібно для того, щоб не втрачати контекст після ліміту в 10 повідомлень, після досягнення ліміту ШІ «забуде» про що говорили раніше, тоді можна натиснути кнопку «Quote», тобто цитата, тим самим «освіжаємо» пам’ять нашому «вчителю» і продовжуємо спілкуватись.

  • Інша особливість LLAMA3 це те, що вона навчена в пріоритеті на англійську мову, тому, часом може цілком вас розуміти українською, але відповідати англійською, ніхто не забороняє попросити перекласти використовуючи кнопку цитування.

Переваги офлайн-навчання:

  • Доступність: Ви можете навчатися Python де завгодно, навіть без доступу до Інтернету. Все що треба — сучасний ноутбук з зарядкою від Type C, сонячна панелька на 20-50 Вт та powerbank сумісний для зарядки Вашого ноута;
  • Конфіденційність: так як абсолютно все працює локально, на Вашій машині, то немає ніякої третьої сторони, тут тільки Ви та ШІ. Дуже корисно для бізнесу, якщо важливо щоб дані не покидали компанію;
  • Практичний досвід: Ви можете використовувати Ollama для створення власних навчальних середовищ;
  • Інтерактивність: ChatBox дозволяє вам вести доволі змістовні розмови з LLA на цікаві Вам теми;

Висновок:
Під час мого невеликого дослідження, якому присвятив цю статтю, я для себе виявив, що ШІ вже поступово інтегрується в наше побутове життя, стає більш доступнішим та простішим у використанні. Тема використання ШІ у сфері навчання вже давно приваблювало мене саме за інтерактивність цього процесу і дякуючи Open Source я став до цього на крок ближче.

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному8
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Я вже добрався до LLM Studio, де гнучкіше можна задавати параметри і взагалі більше можливостей.

Є одна загадка, перед якою як правило локальна ШІ пасує, звучить вона так — «Сім сестер знаходяться на дачі, де кожна зайнята якоюсь справою. Перша сестра читає книгу, друга — готує їжу, третя — грає в шахи, четверта — розгадує судоку, п’ята займається пранням, шоста доглядає рослини. А чим займається сьома сестра?» LLAMA3:70b часом дає хорошу відповідь, але все ж я у пошуку LLM, яка б змогла розгадувати подібні задачки і при цьому була не дуже потужна по системних вимогах.

Загадка не коректна — грати у шахи можна і одному — вирішувати етюди, тренуватися.

можна грати в інтернеті, ніде не написано що інтернета немає

Так, можна дивитись на це з різних сторін, проте мова не про це.

Трохи розв язав це рівняння. У вимогах треба було б написати: «...третя — грає у шахи з партнеркою...»
У такому разі, ШІ, який уміє у логіку, зробив би якісь такі висновки:
...партнерка — жінка, сестра — жінка. Хто партнерка? Сестра? Можливо сестра...
Бо якщо два значення тождественно дорівнють третьому «порознь» то ці значення і між собою, у даному випадку корелють (важко це вербалізується, вибач)

І що ми тут бачимо? Є дві пари із словника: партнерка-жінка, сестра-жінка. Але третя пара партнерка-сестра визначається через дві перші і інший контекст. Тобто це і є процесс міркування — визначення на підставі вже відомих співвідношень.
Це на Lua можно зробити — ШІ, що накопичуватиме логіку буття. ШІ, що буде обмислювати вхдну інформацію на базі досвіду, що вже у нього є (словники частотності у різних випадках/контекстах різної).

Ось питання, чи правильна відповідь є — грає в шахи з третьою? Може правильна є — загадала цю загадку?

Логіка у людських спілкуваннях дуже складна. Щоб створити ШІ який декомпілює людські заморочки, треба почати з самого початку. А це групи і ідентифікатори груп. Далі групи вкладені у групи. Група може бути empty.
Люди групують і це — структура всіх груп які у когось в голові — це логіка цього чоловіка.
Тобто накопиченням структури груп можна create логіку. І тоді, розбираючі вхідні вирази по цій структурі — структуру доповнювати й уточнювати, а також робити обчислення.
Також можна побачити що спілкування стає взаємодією двох чи декілька таких структур.

Мене ця гра зацікавила. Якщо додати пошук у лабірінті, то текстові логи гри — тобто:

ШІ квадрат — головний герой — пішов ліворуч, а тоді униз, а чорний квадрат ворог пішов праворуч

- будуть як логічне оповідання — казка. Але така генерація також є роздумом, міркуванням.

Проєкт повністю відкритий, я розгляну любі зміни

Це я «побачив» чи мені наснилася на яву реалізація якогось чужого проекту (може й розширення цього твого) бо у мене немає можливостей приєднатися до розробки.

Цікаво, може це бути штучним мозком? Чи можна навчити цю систему приймати рішення?
Наприклад, завести у контекст якусь алгебру і попрохати у рамках ції, заведеної алгебри, обчислити різні алгебраїчні вирази цієї заведеної алгебри.
(Я так пишу, бо алгебри бувають різні)
P.S.
Чи асемблер. Наприклад, на мові СonveysLife можна написати калькулятор, що буде щось там обчислювати. А це і є мета чи дуже близько до неї.

Ось тут я переконав LLM, щоб вона «втікала» від ворога(тобто гравця) і вона з цим справляється.
github.com/...​techn0man1ac/simpleAIGame

Так, робити деякі прості обчислення вміє, але їх треба поступово розжовувати, крок за кроком, можете спробувати погратись з чатом, окрім нього доступна бібліотека ollama, яку я використав для гри вище.

Ой, тут головне вчасно зупинитись з тими pet-проєктами, інакше чорна діра

Так. Найголовніше — тренувати пам ять, ні в якому разі не звільнятися і постійно вчити англійську мову.

До речі, скажи як спеціаліст: у ШІ який пол — жіночий чи чоловічий? Того що лексікон жінки і чоловіка досить різні. Чи це враховується у ШІ ?

А який б хотіли? Яку підсказку дасте, така стать і буде.
Якщо без підсказок запитати, то мені відповідає що поза межами гендера.

Ще помітив, що англійською наче бистріше відповідає. Проте, це я помітив на Копілоті, що у моїй віндоус

Можливо це якісь мовні особливості англійської мови. Українська явно складніше.

Якщо у тебе багато ідей з являється то це нічого. Це яснобачення. Але воно показує тобі не тільки твої майбутні проекти, але й чужі. Тому я, наприклад, більшість своїх ідей відкидаю, як ті, що я колись у когось побачу.

Давно не говорив про це, не знаю як воно називається, просто ніби в уяві проскакує образ проєкту, коли все готове і працює.

Проте проміжні етапи мені не доступні, і тут всі ці AI штуки дають реальний буст, тому, що скорочують іх, це не тижні вивчення можливостей фреймворку, а години з поверхневим розумінням його функцій, методів та можливостей.

А от відкидати ідеї тяжко інколи, тому, що береться азарт її втілити, хоча б по мінімуму.

Круто було б, якби ось так у голові, проскакував би образ тієї крипти, яка вистрелить ракетою...

Нажаль це так не працює, інсайту сприяє тривалий мозковий штурм, і то як повезе

Можна зв язати ці події між собою — квантово заплутати. Тобто не створювати якійсь MVP, доки якась крипта не вистрелить. Таким чином, ідея цього MVP — якщо промайне у голові, буде так би мовити сигналом, що купити цю крипту є вірним рішенням, бо буде дуже рости.

Так, якби мав машину часу, відправив би собі у минуле месидж купити біткоінів.
До речІ, а щось таке було наче, пригадую, що біткоінами я поцікавився ще коли вони були біля долару-десяти, але у мене тоді зовсім не було досвіду розпізнати щось прибуткове у крипті, тому сигнал пройшов повз мене — тут також треба тренувати нейрони на розпізнання образів із інтуіції мабуть.

Так, щоб отримати зрозуміле повідомлення звідкілясь, треба спочатку встановити протокол між цими двома точками простору-часу.
І не смійся бо LLM це предиктори.

Замість машини часу, мабуть краще налаштуватись на прийом повідомлень про вдалого криптобота.

От ти таки смієшся — як я і передбачав — але дивися — якщо мультивсесвіт існує, інформація що я відправляю, у власне минуле є інформація, яку я відправляю у інший — паралельний всесвіт, бо як тільки ця інформація потрапить у минуле і найголовніше спричинить якісь зміни — виникне розгалуження.
Такий погляд на всі ці речі, відміняє парадокс дідуся.

...Інший приклад утворення складного (фактично, нескінченно складного!) з набору простих правил — це множина Мандельброта. Множина утворюється як розв язок простої нерівності для кожної точки на комплексній площині...

Так влаштований світ.
— Ога, а багаті повинні всіх дурити.
— Тільки бідних. Багатий багатого не обдурить.

Шізофренія це ось такий стан розігнаності вашого процессору для AI обчислень (головного мозку звісно) — до екстремальних можливостей надшвидкої обробки вхідної інформації.

Підписатись на коментарі