Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Искусственный Интеллект
  4. Создание собственного искусственного интеллекта

Создание собственного искусственного интеллекта

Запланировано Прикреплена Закрыта Перенесена Искусственный Интеллект
python
18 Сообщения 6 Постеры 181 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал в отредактировано
    #1

    Это увлекательный процесс (а может быть и нет 😀 ), и Python — отличный выбор для этого благодаря богатой экосистеме библиотек.

    Шаг 1

    Начнем с простого, понимание что такое ИИ:

    • Машинное обучение (ML) — обучение модели на данных.
    • Нейронные сети — более сложные модели, особенно глубокие (Deep Learning).
    • Генеративные модели — например, чат-боты, генератор текста.

    Но начать нужно с простого — попробуем обучить модель предсказывать что-то.


    Шаг 2

    Предварительно установим Python (лучше 3.8+, надеюсь вы знаете как установить?), затем установи нужные библиотеки:

    pip install numpy pandas scikit-learn matplotlib tensorflow torch jupyter
    

    Что тут у нас:

    • scikit-learn — для простого машинного обучения.
    • numpy — работа с массивами.
    • pandas — обработка данных.
    • matplotlib — визуализация.

    Шаг 3

    Теперь попробуем создать простую модель, которая предсказывает зарплату по стажу работы.

    Пример 1: Простая модель

    # Создадим файл  linear_regression.py или main.py без разницы
    
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression
    from sklearn.model_selection import train_test_split
    
    # 1. Сгенерируем данные
    np.random.seed(42)
    стаж = np.random.randint(1, 20, 100)  # стаж в годах
    зарплата = стаж * 3000 + np.random.normal(0, 5000, 100)  # зарплата с шумом
    
    # 2. Подготовим данные
    X = стаж.reshape(-1, 1)  # признаки (стаж)
    y = зарплата               # целевая переменная (зарплата)
    
    # 3. Разделим на обучение и тест
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # 4. Создаём и обучаем модель
    model = LinearRegression()
    model.fit(X_train, y_train)
    
    # 5. Делаем предсказания
    y_pred = model.predict(X_test)
    
    # 6. Оцениваем качество
    score = model.score(X_test, y_test)
    print(f"Точность модели (R²): {score:.2f}")
    
    # 7. Визуализация
    plt.scatter(X_test, y_test, color='blue', label='Реальные данные')
    plt.plot(X_test, y_pred, color='red', label='Предсказание')
    plt.xlabel('Стаж (лет)')
    plt.ylabel('Зарплата (руб)')
    plt.legend()
    plt.show()
    

    Это простая ИИ — модель, которая “учится” на данных и делает предсказания.

    И да! Python 3 полностью поддерживает кириллицу в именах переменных, функций, комментариях и строках. Так что использовать русские слова — абсолютно нормально с точки зрения синтаксиса ну или меня 😁


    Шаг 4:

    Плавно переходит к нейросетям, попробуем нейронную сеть с помощью TensorFlow/Keras.

    Пример 2: Нейросеть для той же задачи

    # neural_network.py
    
    import numpy as np
    from sklearn.model_selection import train_test_split
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense
    
    # 1. Данные (те же)
    np.random.seed(42)
    стаж = np.random.randint(1, 20, 100)
    зарплата = стаж * 3000 + np.random.normal(0, 5000, 100)
    
    X = стаж.reshape(-1, 1)
    y = зарплата
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # 2. Создаём нейросеть
    model = Sequential([
        Dense(10, activation='relu', input_shape=(1,)),  # скрытый слой
        Dense(1)  # выходной слой (предсказание)
    ])
    
    # 3. Компилируем
    model.compile(optimizer='adam', loss='mse', metrics=['mae'])
    
    # 4. Обучаем
    history = model.fit(X_train, y_train, epochs=100, verbose=0, validation_split=0.2)
    
    # 5. Оценка
    loss, mae = model.evaluate(X_test, y_test, verbose=0)
    print(f"Средняя ошибка: {mae:.2f} руб")
    
    # 6. Предсказание
    new_experience = np.array([[5]])  # 5 лет стажа
    predicted_salary = model.predict(new_experience, verbose=0)
    print(f"Предсказанная зарплата для 5 лет стажа: {predicted_salary[0][0]:.0f} руб")
    

    А это у нас уже искусственный интеллект на основе нейросети.


    Шаг 5

    Хотим что-то “умное”, как ChatGPT? Начнем с простого ответчика на ключевые слова.

    Пример 3: Простой чат-бот

    # chatbot.py
    
    import random
    
    # База знаний бота
    responses = {
        "привет": ["Привет!", "Здравствуйте!", "Приветствую!"],
        "как дела": ["Хорошо, спасибо!", "Отлично, а у тебя?"],
        "пока": ["Пока!", "До свидания!", "Удачи!"],
        "спасибо": ["Пожалуйста!", "Всегда рад помочь!"]
    }
    
    def get_response(user_input):
        user_input = user_input.lower()
        for key in responses:
            if key in user_input:
                return random.choice(responses[key])
        return "Извините, я не понял."
    
    # Тест
    while True:
        user = input("Вы: ")
        if user.lower() == "выход":
            break
        print("Бот:", get_response(user))
    

    А что дальше ?

    Глубокое обучение - стоит попробовать transformers от Hugging Face для создания настоящих языковых моделей.

    Пример:

    from transformers import pipeline
    
    chatbot = pipeline("text-generation", model="gpt2")
    response = chatbot("Как стать программистом?", max_length=100)
    print(response[0]['generated_text'])
    

    Обучение своей модели:

    • Собери датасет (например, диалоги)
    • Дообучи модель (fine-tuning) с помощью HuggingFace Transformers.
    1 ответ Последний ответ
    0
    • Алекс44А Не в сети
      Алекс44А Не в сети
      Алекс44
      написал в отредактировано
      #2

      А почему в линейной регрессии мы используем train_test_split? Не лучше ли сразу все данные на обучение, чтобы модель точнее была?

      1 ответ Последний ответ
      0
      • В Не в сети
        В Не в сети
        Ванек
        написал в отредактировано
        #3

        Думаю, что если тестировать на тех же данных, что и обучали — модель может переобучиться и плохо работать на новых данных. Разделение помогает оценить реальную точность.

        1 ответ Последний ответ
        0
        • ВасилийВ Не в сети
          ВасилийВ Не в сети
          Василий
          написал в отредактировано
          #4

          В примере с нейросетью зачем нужен скрытый слой с 10 нейронами? Почему не просто один выходной слой? Что именно дает такая комбинация?

          1 ответ Последний ответ
          0
          • WowkW Не в сети
            WowkW Не в сети
            Wowk
            написал в отредактировано
            #5

            Тут скрытый слой позволяет открывать нелинейные зависимости. Если бы связь между стажем и зарплатой была не линейной (например, после 10 лет рост замедляется), простая регрессия не справилась бы.

            1 ответ Последний ответ
            0
            • Алекс44А Не в сети
              Алекс44А Не в сети
              Алекс44
              написал в отредактировано
              #6

              А насколько точны такие предсказания? В примере ошибка в несколько тысяч рублей — это нормально для реальных данных?

              1 ответ Последний ответ
              0
              • В Не в сети
                В Не в сети
                Ванек
                написал в отредактировано
                #7

                Для синтетических данных с шумом — да. Но в реальности точность зависит от качества данных. Если в выборке будут выбросы или нелинейная зависимость — ошибка может быть больше.

                1 ответ Последний ответ
                0
                • ВасилийВ Не в сети
                  ВасилийВ Не в сети
                  Василий
                  написал в отредактировано
                  #8

                  Интересно, почему в чат-боте используется именно словарь, а не какая-то нейросеть? Это же очень примитивно, можно было бы сделать больше возможностей.

                  1 ответ Последний ответ
                  0
                  • WowkW Не в сети
                    WowkW Не в сети
                    Wowk
                    написал в отредактировано
                    #9

                    Для простых задач хватит и словаря. Нейросеть нужна, когда нужно понимать контекст или синонимы. Но для начала и такой бот сгодится — главное, чтобы работал.

                    1 ответ Последний ответ
                    0
                    • Алекс44А Не в сети
                      Алекс44А Не в сети
                      Алекс44
                      написал в отредактировано
                      #10

                      Мне интересно, а стоит ли сразу лезть в трансформеры типа GPT? Или лучше сначала освоить базовые модели, а уже потом поступенчато продвигаться выше?

                      1 ответ Последний ответ
                      0
                      • В Не в сети
                        В Не в сети
                        Ванек
                        написал в отредактировано
                        #11

                        Начинай с линейной регрессии и простых нейросетей. Трансформеры требуют мощного железа и глубоких знаний. Не стоит бежать перед ходьбой.

                        1 ответ Последний ответ
                        0
                        • ВасилийВ Не в сети
                          ВасилийВ Не в сети
                          Василий
                          написал в отредактировано
                          #12

                          Какой минимальный набор данных нужен для обучения своей модели? 100 примеров как в примере — это достаточно?

                          1 ответ Последний ответ
                          0
                          • WowkW Не в сети
                            WowkW Не в сети
                            Wowk
                            написал в отредактировано
                            #13

                            Для линейной задачи хватит и 100. Для нейросетей лучше от 1000 примеров. Для языковых моделей типа GPT — миллионы. Все зависит от сложности задачи.

                            1 ответ Последний ответ
                            0
                            • Алекс44А Не в сети
                              Алекс44А Не в сети
                              Алекс44
                              написал в отредактировано
                              #14

                              Можно ли использовать русские названия переменных в продакшене? Не замедлит ли это выполнение кода? Или есть определенные запросы и лучше с ними и работать?

                              1 ответ Последний ответ
                              0
                              • В Не в сети
                                В Не в сети
                                Ванек
                                написал в отредактировано
                                #15

                                На производительность не влияет, но в команде могут быть разработчики, которые не знают русского. Лучше использовать английские названия — это стандарт.

                                1 ответ Последний ответ
                                0
                                • ВасилийВ Не в сети
                                  ВасилийВ Не в сети
                                  Василий
                                  написал в отредактировано
                                  #16

                                  Теперь понятно, что начинать нужно с простых моделей и постепенно усложнять. Главное -то не бояться экспериментировать.

                                  1 ответ Последний ответ
                                  0
                                  • I Не в сети
                                    I Не в сети
                                    itrace
                                    написал отредактировано
                                    #17

                                    А можно ли создать чат бот, который по запросу пользователя сможет собирать данные из определенных источников или вообще полность из яндекса и гугла и уже дать полноценный сформированный ответ опираясь на эти данные? Хочу что-то на подобии дипсика, только чтобы он мог общаться собирая данные из инэта

                                    kirilljsxK 1 ответ Последний ответ
                                    0
                                    • I itrace

                                      А можно ли создать чат бот, который по запросу пользователя сможет собирать данные из определенных источников или вообще полность из яндекса и гугла и уже дать полноценный сформированный ответ опираясь на эти данные? Хочу что-то на подобии дипсика, только чтобы он мог общаться собирая данные из инэта

                                      kirilljsxK Не в сети
                                      kirilljsxK Не в сети
                                      kirilljsx
                                      js
                                      написал отредактировано
                                      #18

                                      @itrace Ну это по сути что-то вроде аля парсера, на примере того же perplexity

                                      1 ответ Последний ответ
                                      0

                                      Категории

                                      • Главная
                                      • Новости
                                      • Фронтенд
                                      • Бекенд
                                      • Языки программирования

                                      Контакты

                                      • Сотрудничество
                                      • info@exlends.com
                                      • Наш чат
                                      • Наш ТГ канал

                                      © 2024 - 2025 ExLends, Inc. Все права защищены.

                                      Политика конфиденциальности
                                      • Войти

                                      • Нет учётной записи? Зарегистрироваться

                                      • Войдите или зарегистрируйтесь для поиска.
                                      • Первое сообщение
                                        Последнее сообщение
                                      0
                                      • Лента
                                      • Категории
                                      • Последние
                                      • Метки
                                      • Популярные
                                      • Пользователи
                                      • Группы