[go: up one dir, main page]

WO2025084597A1 - Device and method for generating personalized model, and storage medium - Google Patents

Device and method for generating personalized model, and storage medium Download PDF

Info

Publication number
WO2025084597A1
WO2025084597A1 PCT/KR2024/012619 KR2024012619W WO2025084597A1 WO 2025084597 A1 WO2025084597 A1 WO 2025084597A1 KR 2024012619 W KR2024012619 W KR 2024012619W WO 2025084597 A1 WO2025084597 A1 WO 2025084597A1
Authority
WO
WIPO (PCT)
Prior art keywords
model
electronic device
service
external electronic
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/KR2024/012619
Other languages
French (fr)
Korean (ko)
Inventor
이관호
고영태
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020230153846A external-priority patent/KR20250057578A/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of WO2025084597A1 publication Critical patent/WO2025084597A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Definitions

  • the descriptions below relate to a device, method, and storage medium for generating a personalized model.
  • the electronic device can collect data based on a user's input.
  • the electronic device can generate a model using the data based on the user's input.
  • the model can include an artificial intelligence model (AI model).
  • AI model artificial intelligence model
  • the electronic device can generate (or learn) the model based on federated learning.
  • the federated learning can refer to a technique in which an external electronic device connected to the electronic device and the electronic device cooperate to generate the model.
  • An electronic device as described above may include a memory storing instructions.
  • the electronic device may include a communication circuit.
  • the electronic device may include a processor.
  • the instructions, when executed by the processor may cause the electronic device to obtain a reference model from a server for federated learning via the communication circuit.
  • the instructions, when executed by the processor may cause the electronic device to generate a first model for a service from the reference model using user input data for use of the service.
  • the instructions, when executed by the processor may cause the electronic device to transmit first information instructing the service to the server.
  • the instructions, when executed by the processor may cause the electronic device to obtain, from the server, second information instructing an external electronic device to use the service, in response to the first information.
  • the instructions when executed by the processor, may cause the electronic device to obtain, from the external electronic device with which a connection has been established based on the second information, a second model for the service of the external electronic device.
  • the instructions when executed by the processor, may cause the electronic device to generate a third model for the service using the first model and the second model, based on a difference between the first model and the second model being less than a reference value.
  • An electronic device as described above may include a memory storing instructions.
  • the electronic device may include a communication circuit.
  • the electronic device may include a processor.
  • the instructions, when executed by the processor, may cause the electronic device to transmit a reference model generated for federated learning to each of a first external electronic device, a second external electronic device, and a third external electronic device.
  • the instructions, when executed by the processor may cause the electronic device to obtain a first model for a service generated from the reference model from the first external electronic device, a second model for the service generated from the reference model from the second external electronic device, and a third model for the service generated from the reference model from the third external electronic device, via the communication circuit.
  • the instructions when executed by the processor, may cause the electronic device to recognize a first difference between the first model and the second model and a second difference between the first model and the third model.
  • the instructions when executed by the processor, may cause the electronic device to generate a fourth model for the service from the first model using the second model based on the first difference being less than a threshold value and the second difference being greater than or equal to the threshold value.
  • the method may include an operation of obtaining a reference model from a server for federated learning.
  • the method may include an operation of generating a first model for the service from the reference model using input data of a user for using the service.
  • the method may include an operation of transmitting first information indicating the service to the server.
  • the method may include an operation of obtaining, in response to the first information, second information indicating an external electronic device using the service from the server.
  • the method may include an operation of obtaining, from the external electronic device with which a connection is established based on the second information, a second model for the service of the external electronic device.
  • the method may include an operation of generating a third model for the service using the first model and the second model based on a difference between the first model and the second model that is less than a reference value.
  • a non-transitory computer-readable storage medium as described above may store one or more programs including instructions that, when executed by a processor of an electronic device including a communication circuit, cause the electronic device to obtain a reference model from a server for federated learning via the communication circuit.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the electronic device to generate a first model for the service from the reference model using user input data for use of the service.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the electronic device to transmit first information indicative of the service to the server.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to, in response to the first information, obtain second information from the server, which indicates an external electronic device that uses the service.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to obtain a second model for the service of the external electronic device from the external electronic device with which a connection has been established based on the second information.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to generate a third model for the service using the first model and the second model based on a difference between the first model and the second model that is less than a reference value.
  • a method performed by an electronic device as described above may include an operation in which the electronic device transmits a reference model generated for federated learning to each of a first external electronic device, a second external electronic device, and a third external electronic device.
  • the method may include an operation in which a first model for a service generated from the reference model is acquired from the first external electronic device, a second model for the service generated from the reference model is acquired from the second external electronic device, and a third model for the service generated from the reference model is acquired from the third external electronic device, via the communication circuit.
  • the method may include an operation in which a first difference between the first model and the second model and a second difference between the first model and the third model are recognized.
  • the method may include an operation in which a fourth model for the service is generated from the first model using the second model, based on the first difference being less than a reference value and the second difference being greater than or equal to the reference value.
  • a non-transitory computer-readable storage medium as described above may store one or more programs including instructions that, when executed by a processor of an electronic device including a communication circuit, cause the electronic device to transmit a reference model generated for federated learning to each of a first external electronic device, a second external electronic device, and a third external electronic device.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the electronic device to obtain a first model for a service generated from the reference model from the first external electronic device, a second model for the service generated from the reference model from the second external electronic device, and a third model for the service generated from the reference model from the third external electronic device, via the communication circuit.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to recognize a first difference between the first model and the second model and a second difference between the first model and the third model.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to generate a fourth model for the service from the first model using the second model based on the first difference being less than a threshold value and the second difference being greater than or equal to the threshold value.
  • FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.
  • FIG. 2 illustrates an example of a method for an electronic device to generate a personalized model based on an external electronic device, according to one embodiment.
  • FIG. 3 illustrates an example of a network for generating personalized models based on peer to peer (P2P), according to one embodiment.
  • P2P peer to peer
  • FIG. 4 illustrates an example of a signal flow for a method of generating a personalized model based on P2P, according to one embodiment.
  • FIGS. 5A and 5B illustrate an example of a method for learning a model of an electronic device using a model obtained from an external electronic device, according to one embodiment.
  • FIG. 6 illustrates an example of an operational flow for a method of generating a personalized model based on P2P, according to one embodiment.
  • FIG. 7 illustrates an example of a network for generating a personalized model based on a server, according to one embodiment.
  • FIG. 8 illustrates an example signal flow for a method for generating a personalized model based on a server, according to one embodiment.
  • FIG. 9 illustrates an example of an operational flow for a method of generating a personalized model based on a server, according to one embodiment.
  • FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.
  • an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network).
  • the electronic device (101) may communicate with the electronic device (104) via the server (108).
  • the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197).
  • the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added.
  • some of these components e.g., the sensor module (176), the camera module (180), or the antenna module (197) may be integrated into one component (e.g., the display module (160)).
  • the processor (120) may control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) by executing, for example, software (e.g., a program (140)), and may perform various data processing or calculations. According to one embodiment, as at least a part of the data processing or calculations, the processor (120) may store a command or data received from another component (e.g., a sensor module (176) or a communication module (190)) in the volatile memory (132), process the command or data stored in the volatile memory (132), and store result data in the nonvolatile memory (134).
  • a command or data received from another component e.g., a sensor module (176) or a communication module (190)
  • the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphic processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together therewith.
  • a main processor (121) e.g., a central processing unit or an application processor
  • an auxiliary processor (123) e.g., a graphic processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor
  • the secondary processor (123) may be configured to use lower power than the main processor (121) or to be specialized for a given function.
  • the secondary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
  • the auxiliary processor (123) may control at least a portion of functions or states associated with at least one of the components of the electronic device (101) (e.g., the display module (160), the sensor module (176), or the communication module (190)), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state.
  • the auxiliary processor (123) e.g., an image signal processor or a communication processor
  • the auxiliary processor (123) may include a hardware structure specialized for processing artificial intelligence models.
  • the artificial intelligence models may be generated through machine learning. Such learning may be performed, for example, in the electronic device (101) itself on which the artificial intelligence model is executed, or may be performed through a separate server (e.g., server (108)).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above.
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • the artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), deep Q-networks, or a combination of two or more of the above, but is not limited to the examples described above.
  • the artificial intelligence model may additionally or alternatively include a software structure.
  • the memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101).
  • the data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto.
  • the memory (130) can include volatile memory (132) or nonvolatile memory (134).
  • the program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
  • the input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101).
  • the input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
  • the audio output module (155) can output an audio signal to the outside of the electronic device (101).
  • the audio output module (155) can include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive an incoming call. According to one embodiment, the receiver can be implemented separately from the speaker or as a part thereof.
  • the display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101).
  • the display module (160) can include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device.
  • the display module (160) can include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
  • the audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can obtain sound through an input module (150), or output sound through an audio output module (155), or an external electronic device (e.g., an electronic device (102)) (e.g., a speaker or a headphone) directly or wirelessly connected to the electronic device (101).
  • an electronic device e.g., an electronic device (102)
  • a speaker or a headphone directly or wirelessly connected to the electronic device (101).
  • the sensor module (176) can detect an operating state (e.g., power or temperature) of the electronic device (101) or an external environmental state (e.g., user state) and generate an electric signal or data value corresponding to the detected state.
  • the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)).
  • the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., the electronic device (102)).
  • the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
  • the haptic module (179) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that a user can perceive through a tactile or kinesthetic sense.
  • the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module (180) can capture still images and moving images.
  • the camera module (180) can include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module (188) can manage power supplied to the electronic device (101).
  • the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery (189) can power at least one component of the electronic device (101).
  • the battery (189) can include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • the communication module (190) may support establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., the electronic device (102), the electronic device (104), or the server (108)), and performance of communication through the established communication channel.
  • the communication module (190) may operate independently from the processor (120) (e.g., the application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
  • the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a GNSS (global navigation satellite system) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module or a power line communication module).
  • a wireless communication module (192) e.g., a cellular communication module, a short-range wireless communication module, or a GNSS (global navigation satellite system) communication module
  • a wired communication module (194) e.g., a local area network (LAN) communication module or a power line communication module.
  • a corresponding communication module may communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)).
  • a first network (198) e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network (199) e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)
  • a computer network e.g.,
  • the wireless communication module (192) may use subscriber information (e.g., international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196) to identify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199).
  • subscriber information e.g., international mobile subscriber identity (IMSI)
  • IMSI international mobile subscriber identity
  • the wireless communication module (192) can support a 5G network and next-generation communication technology after a 4G network, for example, NR access technology (new radio access technology).
  • the NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), terminal power minimization and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low-latency communications
  • the wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate.
  • a high-frequency band e.g., mmWave band
  • the wireless communication module (192) may support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna.
  • the wireless communication module (192) may support various requirements specified in an electronic device (101), an external electronic device (e.g., electronic device (104)), or a network system (e.g., second network (199)).
  • the antenna module (197) can transmit or receive signals or power to or from the outside (e.g., an external electronic device).
  • the antenna module (197) can include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB).
  • the antenna module (197) can include a plurality of antennas (e.g., an array antenna).
  • at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199) can be selected from the plurality of antennas by, for example, the communication module (190).
  • a signal or power can be transmitted or received between the communication module (190) and the external electronic device through the selected at least one antenna.
  • another component e.g., a radio frequency integrated circuit (RFIC)
  • RFIC radio frequency integrated circuit
  • the antenna module (197) may form a mmWave antenna module.
  • the mmWave antenna module may include a printed circuit board, an RFIC positioned on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) positioned on or adjacent a second side (e.g., a top side or a side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
  • a first side e.g., a bottom side
  • a plurality of antennas e.g., an array antenna
  • peripheral devices e.g., a bus, a general purpose input and output (GPIO), a serial peripheral interface (SPI), or a mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199).
  • Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101).
  • all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform at least a part of the function or service.
  • One or more external electronic devices that receive the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101).
  • the electronic device (101) may process the result as is or additionally and provide it as at least a part of a response to the request.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device (101) may provide an ultra-low latency service by using, for example, distributed computing or mobile edge computing.
  • the external electronic device (104) may include an IoT (Internet of Things) device.
  • the server (108) may be an intelligent server using machine learning and/or a neural network.
  • the external electronic device (104) or the server (108) may be included in the second network (199).
  • the electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
  • An artificial intelligence model may collect user data to improve accuracy and usability.
  • the artificial intelligence model may be trained (or generated, updated) based on the user's data.
  • the collection of the data for training the artificial intelligence model may be limited.
  • the artificial intelligence model may be referred to as a model.
  • the learning of the artificial intelligence model may include federated learning (FL).
  • a server for the FL may generate (or learn) a model.
  • the model initially generated by the server may be referred to as a base model or a reference model.
  • the generated reference model may be transmitted from the server to electronic devices connected to the server.
  • Each of the electronic devices may use a service based on the received reference model.
  • the service may be referred to as an AI service using the reference model.
  • the service may be provided based on the execution of a specific software application.
  • Each of the electronic devices may collect data of the user according to the use of the service, and perform learning (or updating) of the model based on the collected data.
  • the model learned based on the data may be a personalized model with respect to the user.
  • each of the electronic devices can transmit parameters for the updated model to the server.
  • the parameters can include vector values that configure (or define) the updated model.
  • the parameters can represent information that configures the model.
  • the server can generate a new model (or a reference model) based on the models received from each of the electronic devices. As described above, by using the FL, the model can be learned using the actual usage information of the user while protecting the personal information of the user. Accordingly, the model can be advanced.
  • a new reference model is generated in the server based on models of the electronic devices transmitted to the server, and one of the electronic devices, other than the server, may update the model of the electronic device based on a model received from at least one electronic device different from the electronic device among the electronic devices.
  • the FL performed based on the communication between the electronic devices as described above may be referred to as a P2P (peer to peer) FL.
  • the electronic device can learn (or generate, update) the model of the electronic device based on a model (or parameters or vector values of the model) obtained from at least one electronic device different from the electronic device. For example, the electronic device can use the model of the at least one electronic device that has a relatively low relevance to a user of the electronic device (or a service used by the user, or usage information of the user) for learning. In addition, considering that the information used for the learning is a parameter of the model, preprocessing such as filtering or distinction for the learning cannot be used. Accordingly, the electronic device can perform indiscriminate learning based on the model (or parameters of the model) of the at least one electronic device.
  • the electronic device learns a model by using the usage information (e.g., keyboard input) of the right-handed user when using the service of the electronic device.
  • the service may be a service (e.g., keyboard input service or keyboard input function) in which the electronic device obtains input from the user through a keyboard.
  • the electronic device may learn the model of the electronic device based on the usage information of the left-handed user. In other words, the electronic device may learn the model based on information that is not suitable for the user of the electronic device. In this case, the learned model may be a distorted model with respect to the user of the electronic device.
  • an electronic device, a method, and a storage medium can group models generated based on usage data of other users that are relevant to a user when using FL.
  • the electronic device, the method, and the storage medium according to embodiments of the present disclosure can generate (or learn, update) a personalized model for the user by generating (or learning, updating) a model using the grouped model.
  • the electronic device, the method, and the storage medium according to embodiments of the present disclosure can provide a service with improved usability for the user by using a more personalized model for the user.
  • the electronic device, the method, and the storage medium according to embodiments of the present disclosure can effectively protect the personal information of the user when generating a more personalized model for the user.
  • FIG. 2 illustrates an example of a method for an electronic device to generate a personalized model based on an external electronic device, according to one embodiment.
  • the electronic device (101) of FIG. 2 may represent an example of the electronic device (101) of FIG. 1.
  • an example of an electronic device (101) that is a smartphone is described, but the embodiments of the present disclosure are not limited thereto.
  • the electronic device (101) may be implemented by software or hardware and software, such as a server.
  • FIG. 2 illustrates examples (201, 202, 203) of a method for learning a model of an electronic device (101) and providing a service through the learned model based on other models related to the service while the electronic device (101) provides a service based on the model.
  • the service may include a voice recognition service.
  • the embodiments of the present disclosure are not limited thereto.
  • the electronic device (101) can provide a service.
  • the electronic device (101) can provide the service based on a reference model.
  • the reference model can be obtained from a server for FL.
  • the service can include a voice recognition service.
  • the electronic device (101) can obtain a voice (210) spoken by a user (205).
  • the electronic device (101) can obtain the voice (210) using a microphone (e.g., the input module (150) of FIG. 1).
  • the voice (210) can be “AAA”.
  • the electronic device (101) can perform voice recognition on the voice (210) based on the reference model.
  • the voice recognition can represent a function of recognizing a text representing the voice (210) spoken by the user (205).
  • the electronic device (101) can recognize a text (220) corresponding to the voice (210) by performing the voice recognition.
  • the electronic device (101) may display a visual object representing the recognized text (220) through a display (e.g., the display module (160) of FIG. 1).
  • a display e.g., the display module (160) of FIG. 1.
  • the text (220) according to the speech recognition performed based on the reference model may be “BBB.”
  • “BBB” may be different from “AAA,” which is a speech (210) spoken by the user (205).
  • the electronic device (101) may obtain an input (225) from a user (205) who recognizes a text (220) different from a voice (210).
  • the input (225) may represent an input of the user (205) for modifying the text (220) different from the voice (210) to be identical to the voice (210).
  • the input (225) may represent input data of the user (205) obtained while the electronic device (101) uses the service (or the voice recognition service) provided to the user (205).
  • the input data may represent data used for learning the reference model of the electronic device (101).
  • the input (225) may be used for learning the reference model.
  • the input (225) may include text (230) (e.g., “AAA”) input by a body part (e.g., a finger) of the user (205) or an external device (e.g., a stylus pen), a body part of the user (205) or a body part in contact with the external device for inputting the text (230), or information about a method by which the user (205) inputs the text (230).
  • the method may include handwriting, a location of the input (225), and an input speed.
  • the electronic device (101) may recognize the text (230) based on the input (225) as a result of voice recognition of the voice (210). In other words, the electronic device (101) may recognize the result of the voice recognition for the voice (210) as text (230) rather than text (220).
  • example (201) an example is illustrated in which an input (225) for correcting an incorrectly recognized text (220) into text (230) is used for learning (or training, adaptive training, generation, update) of the reference model, but the embodiments of the present disclosure are not limited thereto.
  • the electronic device (101) acquires a voice (210) and accurately recognizes it as text (230) based on the reference model, the accurately recognized text (230) may also be used for learning the reference model.
  • the electronic device (101) may use a designated algorithm (or judgment logic) for selecting data (e.g., an input (225) for changing text (220) into text (230), or text (230)) used for learning the reference model.
  • the designated algorithm may be an algorithm for selecting (or screening, identifying) the data. For example, only inputs (225) for changing text (220) into text (230) by the above-mentioned algorithm may be selected as data to be used for learning the reference model.
  • the electronic device (101) can obtain models (240) for the voice recognition service from three external electronic devices (not shown).
  • the electronic device (101) can obtain an input for executing an update for a model learned (or updated) based on an input (225) from the reference model.
  • the input can include an input for the display of the electronic device (101).
  • the electronic device (101) may, in response to obtaining the input for executing the update, obtain models (240) from the external electronic devices.
  • the electronic device (101) may obtain model #A (241) for the voice recognition service from a first external electronic device.
  • the electronic device (101) may obtain model #B (242) for the voice recognition service from a second external electronic device.
  • the electronic device (101) may obtain model #C (243) for the voice recognition service from a third external electronic device.
  • the electronic device (101) may obtain models from four or more or two or fewer external electronic devices.
  • the electronic device (101) may obtain a plurality of models from an external electronic device. At this time, the plurality of models may be models for a service requested by the electronic device (101) (e.g., the voice recognition service of FIG. 2).
  • the electronic device (101) can recognize at least one model similar to the model of the electronic device (101) among the models (240) acquired from the external electronic devices.
  • the model of the electronic device (101) may be a model learned based on input data including the input (225) from the reference model.
  • the electronic device (101) can recognize the difference between each of the models (240) and the model of the electronic device (101) and recognize the at least one model by comparing the difference with a reference value.
  • the difference may be referred to as a distance.
  • the electronic device (101) can recognize the at least one model in which the difference is less than the reference value.
  • the electronic device (101) can recognize at least one model in which a similarity value between each of the models (240) and the model of the electronic device (101) exceeds another reference value.
  • the smaller the difference (or the distance) or the larger the similarity value the more similar each of the models (240) and the model of the electronic device (101) can be.
  • the electronic device (101) can learn (or generate, update) the model of the electronic device (101) using the at least one model.
  • the electronic device (101) can generate (or learn, update) a new model from the model of the electronic device (101) for the voice recognition service using the at least one model.
  • the new model may be a model for the voice recognition service.
  • the electronic device (101) can generate the new model based on a representative value between parameters of the model and parameters of the at least one model.
  • the new model can be generated based on an average value between first vector values of the model and second vector values of one of the at least one model. Specific details related thereto are described below in FIG. 3.
  • the electronic device (101) can provide the voice recognition service by using the new model for the voice recognition service.
  • the electronic device (101) can obtain a voice (250) spoken by a user (205).
  • the voice (250) can include “CCC”.
  • the electronic device (101) can recognize a text (260) from the voice (250) by using the new model.
  • the text (260) can be “CCC”.
  • the electronic device (101) can accurately recognize a voice (250) that has not been learned previously.
  • the electronic device (101) can recognize a text (260) as a voice recognition result from the voice (250) based on the new model learned by using the at least one external electronic device.
  • the electronic device, method, and storage medium can learn (or generate, update) a model for a service by evaluating the similarity between a service used by a user and a model of an external electronic device for the service when using FL.
  • FIG. 3 describes an example of a technique for an electronic device (101) to learn a model based on a model acquired from an external electronic device (or a technique for learning a personalized model based on P2P).
  • FIG. 3 illustrates an example of a network for generating a personalized model based on peer to peer (P2P), according to one embodiment.
  • P2P peer to peer
  • FIG. 3 an example of a network for generating a personalized model using a model acquired from external electronic devices (310, 320, 330) is illustrated.
  • FIG. 3 illustrates an example of the network including one electronic device (101), one server (350), and three external electronic devices (310, 320, 330), but embodiments of the present disclosure are not limited thereto.
  • the number of components constituting the network may be changed.
  • FIG. 3 an exemplary situation is illustrated in which an electronic device (101), external electronic devices (310, 320, 330), and a server (350) are connected to each other based on a wired network and/or a wireless network.
  • an example is illustrated in which the electronic device (101) and the external electronic device (330) and the external electronic device (310) and the external electronic device (320) are not connected to each other, but this is merely for convenience of explanation, and the embodiments of the present disclosure are not limited thereto.
  • FIG. 3 assumes that the electronic device (101) and the external electronic device (330) and the external electronic device (310) and the external electronic device (320) are connected to each other.
  • the wired network may include a network such as the Internet, a local area network (LAN), a wide area network (WAN), or a combination thereof.
  • the wireless network may include a network such as long term evolution (LTE), fifth generation (5G) new radio (NR), wireless fidelity (WiFi), Zigbee, near field communication (NFC), Bluetooth, Bluetooth low-energy (BLE), or a combination thereof.
  • LTE long term evolution
  • 5G fifth generation
  • NR wireless fidelity
  • NFC near field communication
  • Bluetooth Bluetooth low-energy
  • the electronic device (101), external electronic devices (310, 320, 330), and server (350) are illustrated as being directly connected, the electronic device (101), external electronic devices (310, 320, 330), and server (350) may be indirectly connected via one or more routers and/or access points (APs).
  • APs access points
  • an electronic device (101) may include at least one of a processor (301), a communication circuit (303), and a memory (305).
  • the processor (301), the communication circuit (303), and the memory (305) may be electrically and/or operably coupled with each other by a communication bus.
  • the hardware components being operably coupled may mean that a direct connection or an indirect connection is established, wired or wireless, between the hardware components such that a second hardware component is controlled by a first hardware component among the hardware components.
  • the electronic device (101) may be included in a single integrated circuit such as a system on a chip (SoC).
  • SoC system on a chip
  • the type and/or number of hardware components included in the electronic device (101) are not limited to those illustrated in FIG. 3.
  • the electronic device (101) may include only some of the hardware components illustrated in FIG. 3.
  • the processor (301) of the electronic device (101) may include a hardware component for processing data based on one or more instructions.
  • the hardware component for processing data may include, for example, an arithmetic and logic unit (ALU), a floating point unit (FPU), and a field programmable gate array (FPGA).
  • the hardware component for processing data may include a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processing (DSP), and/or a neural processing unit (NPU).
  • the number of processors (301) may be one or more.
  • the processor (301) may have a multi-core processor structure such as a dual core, a quad core, or a hexa core.
  • the processor (301) of FIG. 3 may include the processor (120) of FIG. 1.
  • the processor (301) of the electronic device (101) may include various processing circuits and/or multiple processors.
  • the term "processor” as used herein, including in the claims, may include various processing circuits including at least one processor, one or more of which may be configured to perform the various functions described below individually and/or collectively in a distributed manner.
  • processor when “processor,” “at least one processor,” and “one or more processors” are described as being configured to perform various functions, these terms encompass, for example and without limitation, situations where one processor performs some of the recited functions and other processor(s) perform other parts of the recited functions, and also situations where one processor may perform all of the recited functions.
  • the at least one processor may include a combination of processors that perform the various functions enumerated/disclosed, for example, in a distributed manner. At least one processor is capable of executing program instructions to accomplish or perform various functions.
  • the communication circuit (303) of the electronic device (101) may include hardware for supporting transmission and/or reception of electrical signals between the electronic device (101), the server (350), and external electronic devices (310, 320, 330).
  • the communication circuit (303) may include, for example, at least one of a modem, an antenna, and an optical/electronic (O/E) converter.
  • the communication circuit (303) may support transmission and/or reception of electrical signals based on various types of communication means, such as Ethernet, Bluetooth, BLE (Bluetooth low energy), ZigBee, LTE (long term evolution), and 5G NR (new radio).
  • the communication circuit (303) of FIG. 3 may include the communication module (190) and/or the antenna module (197) of FIG. 1.
  • the memory (305) of the electronic device (101) may include a hardware component for storing data and/or instructions input to and/or output from the processor (301).
  • the memory (305) may include, for example, a volatile memory such as a random-access memory (RAM), and/or a non-volatile memory such as a read-only memory (ROM).
  • the volatile memory may include, for example, at least one of a dynamic RAM (DRAM), a static RAM (SRAM), a Cache RAM, and a pseudo SRAM (PSRAM).
  • DRAM dynamic RAM
  • SRAM static RAM
  • PSRAM pseudo SRAM
  • the non-volatile memory may include, for example, at least one of a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a flash memory, a hard disk, a compact disc, and an embedded multimedia card (eMMC).
  • PROM programmable ROM
  • EPROM erasable PROM
  • EEPROM electrically erasable PROM
  • flash memory a hard disk
  • eMMC embedded multimedia card
  • the memory (305) of Fig. 3 may include the memory (130) of Fig. 1.
  • the electronic device (101) may include a display.
  • the display of the electronic device (101) may output visualized information to a user.
  • the number of displays included in the electronic device (101) may be one or more.
  • the display may be controlled by a processor (301) and/or a graphic processing unit (GPU) (not shown) to output visualized information to a user.
  • the display may include a flat panel display (FPD) and/or electronic paper.
  • the FPD may include a liquid crystal display (LCD), a plasma display panel (PDP), a digital mirror device (DMD), one or more light emitting diodes (LEDs), and/or micro LEDs.
  • the LEDs may include organic LEDs (OLEDs).
  • the display may include the display module (160) of FIG. 1.
  • the electronic device (101) may include a camera.
  • the camera may include one or more optical sensors (e.g., a CCD (charged coupled device) sensor, a CMOS (complementary metal oxide semiconductor) sensor) that generate electrical signals representing the color and/or brightness of light.
  • the plurality of optical sensors included in the camera may be arranged in the form of a two-dimensional array.
  • the camera may acquire electrical signals of each of the plurality of optical sensors substantially simultaneously, and may generate an image corresponding to light reaching the optical sensors of the two-dimensional grid and including a plurality of pixels arranged two-dimensionally.
  • the electronic device (101) may include a sensor.
  • the sensor may include at least one sensor.
  • the senor may include at least a portion of the sensor module (176) of FIG. 1.
  • the sensor may include an IMU (or an IMU sensor).
  • the sensor may include a gyro sensor, a gravity sensor, and/or an acceleration sensor.
  • the electronic device (101) may obtain input data (or data used for learning a model) according to the use of a service by a user of the electronic device (101) based on the camera or the sensor.
  • the electronic device (101) may include an output means for outputting information in a form other than a visualized form.
  • the electronic device (101) may include a speaker for outputting an acoustic signal.
  • the electronic device (101) may include a motor for providing haptic feedback based on vibration.
  • one or more instructions (or commands) representing operations and/or actions to be performed on data by the processor (301) of the electronic device (101) may be stored.
  • a set of one or more instructions may be referred to as a program, firmware, an operating system, a process, a routine, a sub-routine, and/or an application.
  • an application when installed in the electronic device (e.g., the electronic device (101)), it may mean that one or more instructions provided in the form of an application are stored in the memory (305), and that the one or more applications are stored in a format executable by the processor of the electronic device (e.g., a file having an extension specified by the operating system of the electronic device (101)).
  • the electronic device (101) may execute one or more instructions stored in the memory (305) to perform the operation of FIG. 4 or FIG. 6.
  • programs installed in the electronic device (101) may be classified into one of different layers including an application layer, a framework layer, and/or a hardware abstraction layer (HAL) based on a target.
  • programs e.g., drivers
  • programs designed to target hardware (e.g., communication circuit (303), the display, the sensor) of the electronic device (101) may be classified within the hardware abstraction layer.
  • programs e.g., similarity determination module (305-1), model training module (305-2), and/or service provision module (305-3)
  • Programs classified into the framework layer may provide an executable API (application programming interface) based on other programs.
  • a program designed to target a user controlling an electronic device (101) may be classified.
  • a program classified into the application layer may include an application that provides a service to the user.
  • the embodiment of the present disclosure is not limited thereto.
  • a program classified into the application layer may call an API to cause execution of a function supported by programs classified into the framework layer.
  • an electronic device (101) may discriminate the similarity between a model of the electronic device (101) and a model acquired from an external electronic device based on the execution of a similarity determination module (305-1).
  • the electronic device (101) may acquire a reference model from a server (350).
  • the electronic device (101) may generate (or learn, update) a first model by using input data acquired by a user of the electronic device (101) from the reference model.
  • the first model may be a model for the service learned by using the input data acquired while using the service from the reference model.
  • the electronic device (101) may provide first information indicating the service to the server (350).
  • the server (350) may provide second information indicating an external electronic device that uses the service to the electronic device (101).
  • the external electronic devices are the external electronic device (310) and the external electronic device (320).
  • the electronic device (101) can establish a connection with the external electronic device (310) based on the second information indicating the external electronic device (310) and the external electronic device (320), and obtain a second model of the external electronic device (310) for the service from the external electronic device (310).
  • the second model can be a model for the service learned by the external electronic device (310) from the reference model.
  • the electronic device (101) can establish a connection with the external electronic device (320) based on the second information indicating the external electronic device (310) and the external electronic device (320), and obtain a third model of the external electronic device (320) for the service from the external electronic device (320).
  • the third model may be a model for the service learned by an external electronic device (320) from the reference model.
  • the electronic device (101) can determine the similarity between a model of the electronic device (101) and a model of an external electronic device. For example, the electronic device (101) can determine the similarity by directly comparing the model of the electronic device (101) and the model of the external electronic device, or by inputting reference data to each of the model of the electronic device (101) and the model of the external electronic device and comparing the outputs thereof.
  • the electronic device (101) can directly compare vector values constituting a model of the electronic device (101) with vector values constituting a model of an external electronic device.
  • the comparison between the models as described above can be referred to by the following mathematical formula.
  • the above D may represent a difference indicating a similarity between models
  • the W 1 may represent vector values of a model of an electronic device (101)
  • the W 2 may represent vector values of a model of an external electronic device
  • the f may represent a function for measuring the similarity.
  • the f may include a cosine distance function, a Euclidean distance function, a Manhattan distance function, a correlation function, or an inner product function.
  • the electronic device (101) may input reference data to each of a model of the electronic device (101) and a model of an external electronic device, and compare the output results to determine the similarity between the model of the electronic device (101) and the model of the external electronic device.
  • a method of determining the similarity using the reference data may be referred to as a TC (test case) method.
  • the comparison using the TC method as described above may be referred to by the following mathematical equation.
  • the above D may represent a difference indicating a similarity between models
  • the f may represent a function for measuring the similarity.
  • the f may include a cosine distance function, a Euclidean distance function, a Manhattan distance function, a correlation function, or an inner product function.
  • the electronic device (101) may calculate distance values representing the difference between vector values constituting the model of the electronic device (101) and vector values constituting the model of the external electronic device.
  • the electronic device (101) may calculate first distance values representing the difference between first vector values constituting the first model and second vector values constituting the second model.
  • the electronic device (101) may obtain the first vector values.
  • the electronic device (101) may obtain the second vector values.
  • the first vector values may be [0.1223, 0.4864, 1.4133, 8.1531, ...].
  • the second vector values may be [0.8997, 2.1253, 4.0011, 0.1113, ...].
  • the electronic device (101) may calculate first distance values representing a difference between the first vector values and the second vector values.
  • the first distance values may be [0.7774, 1.6389, 2.5878, 8.0418, ...].
  • the electronic device (101) may calculate the first distance values as a difference for determining the similarity between the first model and the second model.
  • the electronic device (101) may calculate second distance values representing a difference between the first vector values constituting the first model and third vector values constituting the third model.
  • the electronic device (101) may obtain the third vector values.
  • the third vector values may be [0.1664, 0.2844, 2,0053, 8.0003, ...].
  • the electronic device (101) may calculate the second distance values representing the difference between the first vector values and the third vector values.
  • the second distance values may be [0.0441, 0.202, 0.592, 0.1528, ...].
  • the electronic device (101) may calculate the second distance values as the difference for determining the similarity between the first model and the third model.
  • a method for determining similarity through comparison using the TC may refer to the following example. It is assumed that the electronic device (101) provides a voice recognition service. For example, the electronic device (101) may input reference data (e.g., “Hello.”) to each of a model of the electronic device (101) and a model of an external electronic device. For example, the electronic device (101) may calculate reference vector values based on the model of the electronic device (101) from the reference data and reference vector values based on the model of the external electronic device (101) from the reference data. For example, the electronic device (101) may calculate first reference vector values based on the first model, second reference vector values based on the second model, and third reference vector values based on the third model from the reference data.
  • reference data e.g., “Hello.”
  • the electronic device (101) may calculate reference vector values based on the model of the electronic device (101) from the reference data and reference vector values based on the model of the external electronic device (101) from the reference data.
  • the electronic device (101) may calculate first reference vector
  • the first reference vector values can be [0.1336, 0.5808, 1.6322, 8.3521, ...].
  • the second reference vector values can be [0.9999, 2.2311, 4.1101, 0.2131, ...].
  • the third reference vector values can be [0.2541, 0.3991, 2.1911, 8.1019, ...].
  • the electronic device (101) can calculate the first distance values representing the difference between the first reference vector values and the second reference vector values.
  • the first distance values can be [0.8663, 1.6503, 2.4779, 8.139, ...].
  • the electronic device (101) can calculate the first distance values as differences for determining the similarity between the first model and the second model.
  • the electronic device (101) can calculate the second distance values representing differences between the first reference vector values and the third reference vector values.
  • the second distance values can be [0.1205, 0.1817, 0.5589, 0.2502, ...].
  • the electronic device (101) can calculate the second distance values as differences for determining the similarity between the first model and the third model.
  • the electronic device (101) can calculate the difference based on the distance values. For example, the electronic device (101) can calculate the difference using a representative value (e.g., an average value) of the distance values. For example, the electronic device (101) can calculate the difference between the first model and the second model as 5.1296. Also, for example, the electronic device (101) can calculate the difference between the first model and the third model as 0.2136. In the above example, an example of calculating the difference between models is described, but the embodiments of the present disclosure are not limited thereto. For example, the electronic device (101) can also calculate the difference based on a comparison using the TC. For example, the electronic device (101) can determine whether the difference is less than the reference value (e.g., 1).
  • the reference value e.g., 1
  • the electronic device (101) may transmit a signal requesting the model of the external electronic device together with the model of the electronic device (101) (e.g., the first model).
  • the external electronic device may perform a similarity determination between the model of the external electronic device (e.g., the second model) and the model of the electronic device (101) (e.g., the first model).
  • the external electronic device may provide the model of the external electronic device (e.g., the second model) to the electronic device (101). Thereafter, the electronic device (101) can create (or learn, train, update) a new model from a model of the electronic device (101) (e.g., the first model) using a model of the external electronic device (e.g., the second model).
  • an electronic device (101) may train a model of the electronic device (101) based on the execution of the model training module (305-2). For example, the electronic device (101) may generate (or train, adaptively train, learn, update) a new model using input data by a user from the reference model acquired from the server (350). Alternatively, the electronic device (101) may generate (or train, adaptively train, learn, update) a new model using a model acquired from an external electronic device (e.g., the external electronic device (310)) from a model generated from the reference model. For example, the electronic device (101) may generate a fourth model from the first model using the third model. For example, the fourth model may be a model for the service provided based on the first model.
  • the fourth model may be a model for the service provided based on the first model.
  • the fourth model can be generated based on an average between the first vector values of the first model and the second vector values of the second model.
  • the first vector values are [0.1223, 0.4864, 1.4133, 8.1531, ...]
  • the third vector values are [0.1664, 0.2844, 2,0053, 8.0003, ...].
  • the fourth vector values constituting the fourth model can be [0.1444, 0.3854, 1.7093, 8.0767, ...].
  • each of the fourth vector values can represent an average of each of the first vector values and each of the third vector values.
  • an example is described of using one second model for the first model, but the embodiment of the present disclosure is not limited thereto.
  • a plurality of models may be merged for the first model.
  • a new model e.g., the fourth model
  • merging models based on an average but the embodiment of the present disclosure is not limited thereto.
  • the electronic device (101) can provide a service using a model by using the service providing module (305-3).
  • the electronic device (101) can provide the service by using the first model learned based on the input data from the reference model.
  • the electronic device (101) can provide the service by using the fourth model generated based on the third model from the first model.
  • the service providing module (305-3) can be referred to as an inferencer.
  • each of the external electronic devices (310, 320, 330) may include substantially the same components of the electronic device (101) (e.g., the processor (301), the communication circuit (303), and the memory (305)).
  • the external electronic device (310) may include a processor, a communication circuit, and a memory.
  • the external electronic device (320) may include a processor, a communication circuit, and a memory.
  • the external electronic device (330) may include a processor, a communication circuit, and a memory.
  • the description of each of the processor, the communication circuit, and the memory may be substantially the same as the description of the processor (301), the communication circuit (303), and the memory (305).
  • the server (350) may include a processor (351), a communication circuit (353), and a memory (355).
  • the description of each of the processor (351), the communication circuit (353), and the memory (355) may be substantially identical to the description of the processor (301), the communication circuit (303), and the memory (305).
  • the server (350) may be associated with a specific service.
  • the specific service may include a domain.
  • the memory (355) of the server (350) may include a reference model generation module (355-1).
  • the server (350) may generate (or train) and store a reference model for FL based on the reference model generation module (355-1).
  • the server (350) may include an application programming interface (API) to be used when the electronic device (101) or external electronic devices (310, 320, 330) downloads the reference model.
  • the API may include a rest API.
  • FIG. 4 illustrates an example of a signal flow for a method of generating a personalized model based on P2P, according to one embodiment.
  • the electronic device (101) of FIG. 4 may be an example of the electronic device (101) of FIG. 3.
  • the external electronic device (310) of FIG. 4 may be an example of the external electronic device (310) of FIG. 3.
  • the server (350) of FIG. 4 may be an example of the server (350) of FIG. 3.
  • an example of a method for generating a personalized model based on the P2P through one external electronic device (310) is illustrated, but the embodiments of the present disclosure are not limited thereto.
  • the embodiments of the present disclosure may include a method for generating a personalized model based on the P2P through a plurality of external electronic devices.
  • the server (350) can generate a reference model.
  • the server (350) can generate the reference model for FL.
  • the server (350) can store the generated reference model.
  • the reference model can be a model for a service provided by the electronic device (101).
  • the electronic device (101) may obtain (or collect) input data.
  • the electronic device (101) may obtain the user's input data for the service.
  • the input data may include an input performed by the user to the electronic device (101).
  • the input data may include the user's utterance, the user's touch input, or the user's usage history.
  • the embodiments of the present disclosure are not limited thereto.
  • the input data can be acquired while the user uses the service.
  • the electronic device (101) can provide the service using the reference model.
  • the electronic device (101) can generate output data from the input data using the reference model.
  • the output data can be used to provide the service.
  • the electronic device (101) can acquire the input data.
  • the electronic device (101) may generate a first model.
  • the electronic device (101) may generate (or train, adaptively train, learn, update) the first model using the input data from the reference model.
  • the first model may be a model for the service.
  • operation (420) is illustrated as being performed after operation (415), but the embodiments of the present disclosure are not limited thereto. For example, operation (420) may be performed simultaneously with operation (415), or may be performed before operation (415).
  • the server (350) can transmit second information.
  • the server (350) can transmit the second information indicating the external electronic device (310) using the service to the electronic device (101).
  • the server (350) can recognize the electronic device using the service based on the first information obtained from the electronic device (101) through operation (420).
  • the server (350) can recognize the external electronic device (310) based on the first information.
  • the server (350) can transmit the second information indicating the recognized external electronic device (310) to the electronic device (101).
  • the server (350) may generate the second information by further using the location information received from the electronic device (101).
  • the server (350) may recognize a plurality of external electronic devices using the service, and determine an external electronic device (310) that can be connected (or has a high possibility of being connected) to the electronic device (101) by using the location information of the electronic device (101) among the plurality of external electronic devices.
  • the external electronic device (310) may be included in at least one external electronic device that is within a specified distance from the location of the electronic device (101) among the plurality of external electronic devices.
  • the server (350) can recognize the external electronic device (310) based on the location information obtained from each of the plurality of external electronic devices and the location information of the electronic device (101). Accordingly, the server (350) can generate the second information indicating the external electronic device (310) and transmit the second information to the electronic device (101).
  • the second information may include at least one of a MAC (media access control) address of the external electronic device (310) or information for connection between the external electronic device (310) and the electronic device (101).
  • MAC media access control
  • the electronic device (101) and the external electronic device (310) may establish a connection.
  • the electronic device (101) may attempt to establish a connection with the external electronic device (310) based on the second information.
  • the electronic device (101) may request a model for the service.
  • the electronic device (101) may transmit a signal requesting the model for the service to the external electronic device (310).
  • the external electronic device (310) may transmit a second model to the electronic device (101).
  • the second model may be a model for the service generated (or learned, trained, adapted, trained, updated) by the external electronic device (310) from the reference model.
  • the electronic device (101) can determine the similarity between the models. For example, the electronic device (101) can determine the similarity between the first model and the second model. For example, the electronic device (101) can determine whether a difference between the first model and the second model is less than a reference value. For example, determining the similarity may include a method of comparing the first model and the second model themselves, or a method of comparing vector values output from reference data input for the first model and the second model. For specific details on methods of determining the similarity, reference may be made to an operation based on the similarity determination module (305-1) of FIG. 3.
  • an example of a method for determining the similarity by using the second model acquired from the external electronic device (310) by the electronic device (101) is illustrated in the example of FIG. 4, but the embodiments of the present disclosure are not limited thereto.
  • the electronic device (101) may transmit the first model of the electronic device (101) to the external electronic device (310) together with the signal.
  • the external electronic device (310) may determine the similarity between the first model and the second model.
  • the external electronic device (310) may transmit the second model to the electronic device (101).
  • the electronic device (101) can perform the operation (450) without determining the similarity between the received second model and the first model.
  • the electronic device (101) may generate a third model.
  • the electronic device (101) may generate the third model by using the second model from the first model.
  • the electronic device (101) may generate the third model by using the first model and the second model.
  • the third model may be a model for the service.
  • the third model may be composed of third vector values having an average value of first vector values constituting the first model and second vector values constituting the second model.
  • each of the third vector values may have an average value of each of the first vector values and each of the second vector values.
  • the electronic device (101) can provide the service using the generated third model.
  • the electronic device (101) can obtain the user's input data while providing the service using the third model. Thereafter, the electronic device (101) can learn (or train, adaptively train, update) the third model based on the input data obtained while providing the service using the third model.
  • the electronic device (101) may transmit the generated third model to the server (350).
  • the electronic device (101) may transmit the third model to be used for federated learning to the server (350).
  • the server (350) may receive the third model from the electronic device (101) and the model learned from the external electronic device (310).
  • the model received from the external electronic device (310) may be a model learned from the second model of the external electronic device (310).
  • the server (350) may generate an aggregated model according to the federated learning by using the third model and the model received from the external electronic device (310).
  • FIGS. 5A and 5B illustrate an example of a method for learning a model of an electronic device using a model obtained from an external electronic device, according to one embodiment.
  • the electronic device (101) of FIGS. 5A and 5B may be an example of the electronic device (101) of FIG. 3.
  • the external electronic device (310) of FIGS. 5A and 5B may be an example of the external electronic device (310) of FIG. 3.
  • the server (350) of FIGS. 5A and 5B may be an example of the server (350) of FIG. 3.
  • FIGS. 5A and 5B illustrate examples (500, 550) of methods for utilizing a model acquired from one external electronic device (310), the embodiments of the present disclosure are not limited thereto. For example, models acquired from a plurality of external electronic devices may also be utilized.
  • FIG. 5A illustrates an example (500) of a method for an electronic device (101) to learn (or generate, update) a model of an electronic device (101) using a model obtained from an external electronic device (310).
  • the electronic device (101), the server (350), and the external electronic device (310) may be connected to perform FL.
  • the server (350) can generate model #A (510).
  • model #A (510) can be generated by the server (350) and referenced as a reference model for a service.
  • the server (350) can transmit the generated model #A (510) to each of the electronic device (101) and the external electronic device (310).
  • the electronic device (101) can provide the service using the acquired model #A (511).
  • the electronic device (101) can obtain input data of a user of the electronic device (101) while providing the service using model #A (511).
  • the electronic device (101) can generate (or learn, update) model #B (521) from model #A (511) using the input data of the user of the electronic device (101).
  • the external electronic device (310) can provide the service using the acquired model #A (512).
  • the external electronic device (310) can obtain input data of a user of the external electronic device (310) while providing the service using model #A (512).
  • the external electronic device (310) can generate (or learn, update) model #C (522) from model #A (512) using the input data of the user of the external electronic device (310).
  • the electronic device (101) can transmit first information indicating the service to the server (350) and receive second information indicating an external electronic device (310) that uses the service from the server (350).
  • the electronic device (101) can be connected to the external electronic device (310) based on the second information.
  • the electronic device (101) can request a model for the service from the external electronic device (310).
  • the electronic device (101) can obtain model #C (522) from the external electronic device (310).
  • the electronic device (101) can determine the similarity between model #B (521) and model #C (522).
  • the electronic device (101) may determine that the model #C (522) is similar to the model #B (521) if the difference calculated based on the distance values between the vector values of the model #C (522) and the vector values of the model #B (521) is less than a reference value. For example, the electronic device (101) may generate (or learn, update) the model #BC (523) by using the model #C (522) from the model #B (521).
  • the location of the input (e.g., keyboard input) used by the user of the electronic device (101) for the electronic device (101) may be relatively distributed on the right side of the electronic device (101).
  • the user of the electronic device (101) executes an update of a service providing the keyboard
  • a user similar to the user of the electronic device (101) e.g., the user of the external electronic device (310)
  • an update may be performed using a model of the external electronic device (310).
  • the user of the external electronic device (310) may be right-handed.
  • the electronic device (101) may recognize that the difference calculated based on the distance values between the vector values of model #C (522) and the vector values of model #B (521) is greater than or equal to the reference value.
  • the user of the electronic device (101) uses a voice recognition service.
  • the model #B (521) of the electronic device (101) can be learned (or generated, updated) based on the input data that is the standard language.
  • the electronic device (101) can recognize a user similar to the user of the electronic device (101) (e.g., the user of the external electronic device (310)) and perform an update using the model of the external electronic device (310).
  • the user of the external electronic device (310) can use the standard language.
  • the model of the electronic device (101) can be learned based on the input data that is the dialect.
  • the electronic device (101) can recognize a user different from the user of the electronic device (101) and update using the model of the other external electronic device. At this time, the other user can use the dialect.
  • FIG. 5b illustrates an example (500) of a method in which an electronic device (101) learns (or generates, updates) a model for a service of the electronic device (101) using a model for the service obtained from an external electronic device (310), and learns (or generates, updates) a model of another service related to the service.
  • the electronic device (101), the server (350), and the external electronic device (310) may be connected to perform FL.
  • the server (350) can generate model #A (561) and model #B (562).
  • model #A (561) can be referenced as a reference model for a first service generated by the server (350).
  • model #B (562) can be referenced as a reference model for a second service generated by the server (350).
  • the second service can be related to the first service.
  • the first service is a book recommendation service
  • the second service can be a movie recommendation service.
  • the first service and the second service are services that recommend content, and can be classified as related services.
  • a voice recognition service can be a service that is not related to the first service and the second service.
  • the server (350) can transmit the generated model #A (561) and model #B (562) to the electronic device (101) and the external electronic device (310), respectively.
  • the electronic device (101) can provide the first service using the acquired model #A (571).
  • the electronic device (101) can obtain first input data of a user of the electronic device (101) while providing the first service using model #A (571).
  • the electronic device (101) can generate (or learn, update) model #A1 (581) from model #A (571) using the first input data of the user of the electronic device (101).
  • the electronic device (101) can provide the second service using the acquired model #B (572).
  • the electronic device (101) can obtain second input data of a user of the electronic device (101) while providing the second service using model #B (572).
  • the electronic device (101) can generate (or learn, update) model #B1 (582) from model #B (572) using the second input data of the user of the electronic device (101).
  • the external electronic device (310) can provide the first service using the acquired model #A (573).
  • the external electronic device (310) can obtain third input data of the user of the external electronic device (310) while providing the first service using model #A (573).
  • the external electronic device (310) can generate (or learn, update) model #A2 (583) from model #A (573) using the third input data of the user of the external electronic device (310).
  • the external electronic device (310) can provide the second service using the acquired model #B (574).
  • the external electronic device (310) can obtain fourth input data of the user of the external electronic device (310) while providing the second service using model #B (574).
  • the external electronic device (310) can generate (or learn, update) model #B2 (584) from model #B (574) using the fourth input data of the user of the external electronic device (310).
  • the electronic device (101) can transmit first information indicating the first service and the second service to the server (350), and receive second information indicating an external electronic device (310) that uses the first service and the second service from the server (350).
  • the electronic device (101) can be connected to the external electronic device (310) based on the second information.
  • the electronic device (101) can request a model for the first service and the second service from the external electronic device (310).
  • the electronic device (101) can obtain model #A2 (583) for the first service and model #B2 (584) for the second service from the external electronic device (310).
  • the electronic device (101) can determine the similarity between model #A1 (581) and model #A2 (583).
  • the electronic device (101) may determine that the model #A2 (583) is similar to the model #A1 (581) if the difference calculated based on the distance values between the vector values of the model #A1 (581) and the vector values of the model #A2 (583) is less than a reference value. For example, the electronic device (101) may generate (or learn, update) the model #A1A2 (591) from the model #A1 (581) by using the model #A2 (583). According to one embodiment, the electronic device (101) may determine the similarity between the model #A1 (581) and the model #A2 (583) and, while generating the model #A1A2 (591), determine the similarity to the model for the second service related to the first service.
  • the electronic device (101) can determine the similarity between model #B1 (582) and model #B2 (584). For example, the electronic device (101) can determine that model #B2 (584) is similar to model #B1 (582) when a difference calculated based on distance values between vector values of model #B1 (582) and vector values of model #B2 (584) is less than a reference value. For example, the electronic device (101) can generate (or learn, train, adaptively train, update) model #B1B2 (592) by using model #B2 (584) from model #B1 (582).
  • the electronic device (101) in response to the electronic device (101) determining the similarity of the models for the second service, an example is described in which the electronic device generates (or learns, trains, adapts, trains, updates) the model #B1B2 (592), but the embodiments of the present disclosure are not limited thereto.
  • the electronic device (101) may generate (or learn, train, adaptively train, update) the model #B1B2 (592) using the models for the second service (e.g., model #B1 (582) and model #B2 (584)) related to the first service.
  • the electronic device (101) can create (or learn, train, adaptively train, update) a new model for the second service using the models for the second service without determining the similarity between the models for the second service when the models related to the first service are similar.
  • FIG. 6 illustrates an example of an operational flow for a method of generating a personalized model based on P2P, according to one embodiment.
  • At least some of the above methods of FIG. 6 may be performed by the electronic device (101) of FIG. 3.
  • at least some of the above methods may be controlled by the processor (301) of the electronic device (101).
  • the respective operations may be performed sequentially, but are not necessarily performed sequentially.
  • the order of the respective operations may be changed, and at least two operations may be performed in parallel.
  • the electronic device (101) may obtain a reference model.
  • the electronic device (101) may obtain the reference model from a server (e.g., server (350) of FIG. 3).
  • the reference model may be generated by the server (350).
  • the reference model may be a model for a service.
  • the electronic device (101) may generate a first model from the reference model.
  • the electronic device (101) may generate (or train, learn, update) the first model using input data from the reference model.
  • the first model may be a model for the service.
  • the electronic device (101) may obtain (or collect) the input data.
  • the electronic device (101) may obtain the user's input data for the service.
  • the input data may include an input performed by the user to the electronic device (101).
  • the input data may include the user's utterance, the user's touch input, or the user's usage history.
  • the embodiments of the present disclosure are not limited thereto.
  • the input data can be acquired while the user uses the service.
  • the electronic device (101) can provide the service using the reference model.
  • the electronic device (101) can generate output data from the input data using the reference model.
  • the output data can be used to provide the service.
  • the electronic device (101) can acquire the input data.
  • the electronic device (101) may transmit first information indicating the service.
  • the electronic device (101) may transmit the first information indicating the service to the server (350).
  • the first information indicating the service may include a name or identification information of the service.
  • the service is a service provided based on a specific software application, it may include a name or identification information of the specific software application.
  • operation (630) is illustrated as being performed after operation (620), but the embodiments of the present disclosure are not limited thereto. For example, operation (630) may be performed simultaneously with operation (620) or may be performed before operation (620).
  • the electronic device (101) may obtain second information indicating an external electronic device.
  • the electronic device (101) may receive the second information indicating the external electronic device from the server (350).
  • the second information may include a MAC (media access control) address of the external electronic device or information for connection between the external electronic device and the electronic device (101).
  • the second information indicating one external electronic device is described, but the embodiment of the present disclosure is not limited thereto.
  • the second information may include the second information indicating a plurality of external electronic devices.
  • each of the plurality of external electronic devices indicated by the second information may be an electronic device providing the service.
  • each of the plurality of external electronic devices may generate (or update, learn) a model for the service from the reference model obtained from the server (350).
  • the wired network may include a network such as the Internet, a local area network (LAN), a wide area network (WAN), or a combination thereof.
  • the wireless network may include a network such as long term evolution (LTE), 5g new radio (NR), wireless fidelity (WiFi), Zigbee, near field communication (NFC), Bluetooth, Bluetooth low-energy (BLE), or a combination thereof.
  • LTE long term evolution
  • NR 5g new radio
  • WiFi wireless fidelity
  • Zigbee wireless fidelity
  • NFC near field communication
  • Bluetooth Bluetooth low-energy
  • the electronic device (101), external electronic devices (710, 720, 730), and server (750) are illustrated as being directly connected, the electronic device (101), external electronic devices (710, 720, 730), and server (750) may be indirectly connected via one or more routers and/or access points (APs).
  • APs access points
  • FIG. 9 illustrates an example of an operational flow for a method of generating a personalized model based on a server, according to one embodiment.
  • At least some of the above methods of FIG. 9 may be performed by the server (750) of FIG. 7.
  • at least some of the above methods may be controlled by the processor (701) of the server (750).
  • the respective operations may be performed sequentially, but are not necessarily performed sequentially.
  • the order of the respective operations may be changed, and at least two operations may be performed in parallel.
  • the server (750) may be referred to as an electronic device.
  • the server (750) can establish connections with a plurality of electronic devices for the FL.
  • the server (750) can establish connections with the first external electronic device, the second external electronic device, and the third external electronic device.
  • the server (750) can transmit the reference model to each of the first external electronic device, the second external electronic device, and the third external electronic device with which connections are established.
  • the server (750) may obtain a first model generated from the reference model from the first external electronic device, obtain a second model generated from the reference model from the second external electronic device, and obtain a third model generated from the reference model from the third external electronic device.
  • the first model may be a model for the service generated from the reference model by the first external electronic device.
  • the first model may be learned based on input (or input data) performed by a user of the first external electronic device to the first external electronic device.
  • the second model may be a model for the service generated from the reference model by the second external electronic device.
  • the second model may be learned based on input (or input data) performed by a user of the second external electronic device to the second external electronic device.
  • the third model may be a model for the service generated from the reference model by the third external electronic device.
  • the third model may be learned based on input (or input data) performed by a user of the third external electronic device to the third external electronic device.
  • the server (750) can recognize a first difference between the first model and the second model and a second difference between the first model and the third model.
  • determining the similarity may include a method of comparing the first model and the second model (or the third model) themselves, or a method of comparing vector values output from reference data input for the first model and the second model (or the third model).
  • determining the similarity reference may be made to the operation based on the model training module (305-1) of FIG. 3.
  • the server (750) can generate a fourth model for the service from the first model using the second model.
  • the server (750) can generate (or learn, update) the fourth model for the service from the first model using the second model based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value.
  • the fourth model can be composed of third vector values having an average value of the first vector values constituting the first model and the second vector values constituting the second model.
  • each of the third vector values can have an average value of each of the first vector values and each of the second vector values.
  • the server (750) can transmit the fourth model.
  • the server (750) can transmit the fourth model to the first external electronic device.
  • the fourth model is a model generated from the first model of the first external electronic device, and the server (750) can transmit the fourth model to the first external electronic device.
  • the electronic device (101) may include a memory (305) storing instructions and including one or more storage media.
  • the electronic device (101) may include a communication circuit (303).
  • the electronic device (101) may include at least one processor (301) including a processing circuit.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain a reference model from a server (350) for federated learning via the communication circuit (303).
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a first model for the service from the reference model using user input data for use of the service.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit first information indicative of the service to the server (350).
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain, in response to the first information, second information indicative of an external electronic device (310) that uses the service from the server (350).
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain a second model for the service of the external electronic device (310) from the external electronic device (310) with which a connection is established based on the second information.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a third model for the service using the first model and the second model based on a difference between the first model and the second model being less than a reference value.
  • the reference model may be learned by the server (350).
  • the second model may be generated for the service by the external electronic device (310) from the reference model.
  • the first information may include at least one of a name of the service or a name of an application providing the service.
  • the second information may include at least one of a MAC (media access control) address of the external electronic device (310) or information for establishing the connection.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit a signal to the external electronic device (310) requesting a model of the external electronic device (310) learned for the service from the reference model.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to, in response to the signal, obtain, from the external electronic device (310), the second model for the service.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to calculate the difference between the first model and the second model.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to, in response to the first information, obtain from the server (350) the second information further instructing another external electronic device (320) to use the service.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit a signal to the other external electronic device (320) with which a connection is established based on the second information, requesting a model of the other external electronic device (320) learned for the service from the reference model.
  • the signal may include the generated first model.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to recognize first vector values of the first model and second vector values of the second model.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to calculate distance values between the first vector values and the second vector values. Each of the distance values may be calculated based on a difference between each of the first vector values and each of the second vector values.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain first reference vector values generated from reference data based on the first model.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain second reference vector values generated from the reference data based on the second model.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to calculate distance values between the first reference vector values and the second reference vector values. Each of the distance values may be calculated based on a difference between each of the first reference vector values and each of the second reference vector values.
  • the above instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a fifth model for another service from another reference model obtained from the server (350) using the input data while generating the first model for the service.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a seventh model for the another service from the fifth model using a sixth model for the another service obtained from the external electronic device (310) together with the second model while generating the third model for the service.
  • the other service may be related to the service.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit the third model to the server (350).
  • the third model may be configured based on third vector values that are an average between first vector values of the first model and second vector values of the second model.
  • Each of the third vector values may be an average of each of the first vector values and each of the second vector values.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to collect other input data of the user for use of the service.
  • the instructions when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate output data for providing the service from the other input data collected while using the service, based on the third model.
  • the other input data may include speech information of the user, and the output data may include text representing the speech information.
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain, via the communication circuit (753), a first model for a service generated from the reference model from the first external electronic device (101), a second model for the service generated from the reference model from the second external electronic device (710), and a third model for the service generated from the reference model from the third external electronic device (720).
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to recognize a first difference between the first model and the second model and a second difference between the first model and the third model.
  • the above instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to generate a fourth model for the service from the first model using the second model based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value.
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain, from a fourth external electronic device (730) via the communication circuit (753), a fifth model for another service generated from the reference model.
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to determine, using device information connected to the electronic device (750), the second model and the third model as models associated with the service with respect to the first model.
  • the device information may include first service information that can be provided by the first external electronic device (101) and a MAC (media access control) address of the first external electronic device (101), second service information that can be provided by the second external electronic device (710) and a MAC address of the second external electronic device (710), third service information that can be provided by the third external electronic device (720) and a MAC address of the third external electronic device (720), and fourth service information that can be provided by the fourth external electronic device (730) and a MAC address of the fourth external electronic device (730).
  • first service information that can be provided by the first external electronic device (101) and a MAC (media access control) address of the first external electronic device (101)
  • second service information that can be provided by the second external electronic device (710) and a MAC address of the second external electronic device (710)
  • third service information that can be provided by the third external electronic device (720) and a MAC address of the third external electronic device (720)
  • fourth service information that can be provided by the fourth external electronic device (730) and
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to recognize first vector values of the first model and second vector values of the second model.
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to calculate distance values between the first vector values and the second vector values. Each of the distance values may be calculated based on a difference between each of the first vector values and each of the second vector values.
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.
  • the instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain first reference vector values generated from reference data based on the first model.
  • the instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain second reference vector values generated from the reference data based on the second model.
  • the instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to calculate distance values between the first reference vector values and the second reference vector values. Each of the distance values may be calculated based on a difference between each of the first reference vector values and each of the second reference vector values.
  • the above instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.
  • the instructions when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to transmit the fourth model to the first external electronic device (101) via the communication circuit (753).
  • the fourth model may be configured based on third vector values that are an average between first vector values of the first model and second vector values of the second model.
  • Each of the third vector values may be an average of each of the first vector values and each of the second vector values.
  • the method may include an operation of obtaining a reference model from a server (350) for federated learning.
  • the method may include an operation of generating a first model for the service from the reference model by using input data of a user for using the service.
  • the method may include an operation of transmitting first information indicating the service to the server (350).
  • the method may include an operation of obtaining, in response to the first information, second information indicating an external electronic device (310) using the service from the server (350).
  • the method may include an operation of obtaining, from the external electronic device (310) with which a connection is established based on the second information, a second model for the service of the external electronic device (310).
  • the method may include an operation of generating a third model for the service using the first model and the second model, based on a difference between the first model and the second model being less than a reference value.
  • the non-transitory computer-readable storage medium as described above can store one or more programs including instructions that, when individually or collectively executed by at least one processor (301) of an electronic device (101) including a communication circuit (303), cause the electronic device (101) to obtain a reference model from a server (350) for federated learning via the communication circuit (303).
  • the non-transitory computer-readable storage medium can store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to generate a first model for the service from the reference model using user input data for use of the service.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the server (350) to transmit first information indicating the service.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the server (350) to acquire second information indicating an external electronic device (310) that uses the service in response to the first information.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the server (350) to acquire a second model for the service of the external electronic device (310) from the external electronic device (310) to which a connection is established based on the second information.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the third model for the service to be generated using the first model and the second model based on a difference between the first model and the second model being less than a reference value.
  • the method performed by the electronic device (750) as described above may include an operation in which the electronic device (750) transmits a reference model generated for federated learning to each of the first external electronic device (101), the second external electronic device (710), and the third external electronic device (720).
  • the method may include an operation in which the first model for a service generated from the reference model is acquired from the first external electronic device (101), a second model for the service generated from the reference model is acquired from the second external electronic device (710), and a third model for the service generated from the reference model is acquired from the third external electronic device (720) via the communication circuit (753).
  • the method may include an operation in which the first difference between the first model and the second model and the second difference between the first model and the third model are recognized.
  • the method may include an operation of generating a fourth model for the service from the first model using the second model, based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value.
  • the non-transitory computer-readable storage medium as described above can store one or more programs including instructions that, when individually or collectively executed by at least one processor (751) of an electronic device (750) including a communication circuit (753), cause the electronic device (750) to transmit a reference model generated for federated learning to each of a first external electronic device (101), a second external electronic device (710), and a third external electronic device (720).
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (751), cause the electronic device (750) to obtain a first model for a service generated from the reference model from the first external electronic device (101), a second model for the service generated from the reference model from the second external electronic device (710), and a third model for the service generated from the reference model from the third external electronic device (720), via the communication circuit (753).
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (751), cause the electronic device (750) to recognize a first difference between the first model and the second model and a second difference between the first model and the third model.
  • the non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (751), cause the fourth model for the service to be generated from the first model using the second model based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value.
  • the electronic devices according to various embodiments disclosed in this document may be devices of various forms.
  • the electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliance devices.
  • portable communication devices e.g., smartphones
  • computer devices portable multimedia devices
  • portable medical devices e.g., cameras
  • wearable devices e.g., smart watch devices
  • home appliance devices e.g., smartphones
  • the electronic devices according to embodiments of this document are not limited to the above-described devices.
  • first, second, or first or second may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order).
  • a component e.g., a first component
  • another e.g., a second component
  • functionally e.g., a third component
  • module used in various embodiments of this document may include a unit implemented in hardware, software or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example.
  • a module may be an integrally configured component or a minimum unit of the component or a portion thereof that performs one or more functions.
  • a module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)).
  • a processor e.g., a processor (120)
  • the machine e.g., an electronic device (101)
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the method according to various embodiments disclosed in the present document may be provided as included in a computer program product.
  • the computer program product may be traded between a seller and a buyer as a commodity.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g., a compact disc read only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play StoreTM) or directly between two user devices (e.g., smart phones).
  • an application store e.g., Play StoreTM
  • at least a part of the computer program product may be at least temporarily stored or temporarily generated in a machine-readable storage medium, such as a memory of a manufacturer's server, a server of an application store, or an intermediary server.
  • each component e.g., a module or a program of the above-described components may include a single or multiple entities, and some of the multiple entities may be separately arranged in other components.
  • one or more components or operations of the above-described components may be omitted, or one or more other components or operations may be added.
  • the multiple components e.g., a module or a program
  • the integrated component may perform one or more functions of each of the multiple components identically or similarly to those performed by the corresponding component of the multiple components before the integration.
  • the operations performed by the module, program, or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

This electronic device may comprise: a memory for storing instructions; a communication circuit; and at least one processor. When executed individually or collectively by the at least one processor, the instructions can cause the electronic device to: obtain a reference model from a server for federated learning; generate a first model for the service from the reference model by using user input data for using the service; transmit, to the server, first information indicating the service; in response to the first information, obtain, from the server, second information indicating external electronic devices using the service; obtain a second model for the service of the external electronic device from the external electronic device with which a connection is established on the basis of the second information; and, on the basis of the difference between the first model and the second model, which is less than a reference value, generate a third model for the service by using the first model and the second model.

Description

개인화된 모델을 생성하기 위한 장치, 방법, 및 저장 매체Device, method, and storage medium for generating personalized models

아래의 설명들은, 개인화된(personalized) 모델(model)을 생성하기 위한 장치, 방법, 및 저장 매체에 관한 것이다.The descriptions below relate to a device, method, and storage medium for generating a personalized model.

전자 장치는, 사용자의 입력에 기반한 데이터를 수집할 수 있다. 상기 전자 장치는, 상기 사용자의 입력에 기반한 상기 데이터를 이용하여 모델을 생성할 수 있다. 예를 들어, 상기 모델은 인공지능 모델(artificial model, AI model)을 포함할 수 있다. 예를 들어, 상기 전자 장치는, 연합 학습(federated learning)에 기반하여, 상기 모델을 생성(또는 학습)할 수 있다. 예를 들어, 상기 연합 학습은, 상기 전자 장치와 연결된 외부 전자 장치 및 상기 전자 장치가 협력함으로써 상기 모델을 생성하는 기법을 나타낼 수 있다. The electronic device can collect data based on a user's input. The electronic device can generate a model using the data based on the user's input. For example, the model can include an artificial intelligence model (AI model). For example, the electronic device can generate (or learn) the model based on federated learning. For example, the federated learning can refer to a technique in which an external electronic device connected to the electronic device and the electronic device cooperate to generate the model.

상술한 정보는 본 개시에 대한 이해를 돕기 위한 목적으로 하는 배경 기술(related art)로 제공될 수 있다. 상술한 내용 중 어느 것도 본 개시와 관련된 종래 기술(prior art)로서 적용될 수 있는지에 대하여 어떠한 주장이나 결정이 제기되지 않는다.The above information may be provided as related art for the purpose of assisting in understanding the present disclosure. No claim or determination is made as to whether any of the above is applicable as prior art related to the present disclosure.

상술한 바와 같은, 전자 장치(electronic device)는 인스트럭션들(instructions)을 저장하는 메모리를 포함할 수 있다. 상기 전자 장치는 통신 회로(communication circuit)를 포함할 수 있다. 상기 전자 장치는 프로세서를 포함할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 통신 회로를 통해, 연합 학습(federated learning)을 위한 서버(server)로부터, 기준 모델(reference model)을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 서비스를 지시하는 제1 정보를 상기 서버에게 전송하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치를 지시하는 제2 정보를 상기 서버로부터 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치로부터, 상기 외부 전자 장치의 상기 서비스를 위한 제2 모델을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하도록, 야기할 수 있다.An electronic device as described above may include a memory storing instructions. The electronic device may include a communication circuit. The electronic device may include a processor. The instructions, when executed by the processor, may cause the electronic device to obtain a reference model from a server for federated learning via the communication circuit. The instructions, when executed by the processor, may cause the electronic device to generate a first model for a service from the reference model using user input data for use of the service. The instructions, when executed by the processor, may cause the electronic device to transmit first information instructing the service to the server. The instructions, when executed by the processor, may cause the electronic device to obtain, from the server, second information instructing an external electronic device to use the service, in response to the first information. The instructions, when executed by the processor, may cause the electronic device to obtain, from the external electronic device with which a connection has been established based on the second information, a second model for the service of the external electronic device. The instructions, when executed by the processor, may cause the electronic device to generate a third model for the service using the first model and the second model, based on a difference between the first model and the second model being less than a reference value.

상술한 바와 같은, 전자 장치(electronic device)는, 인스트럭션들(instructions)을 저장하는 메모리를 포함할 수 있다. 상기 전자 장치는, 통신 회로(communication circuit)를 포함할 수 있다. 상기 전자 장치는, 프로세서를 포함할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 연합 학습(federated learning)을 위하여 생성된 기준 모델(reference model)을 제1 외부 전자 장치, 제2 외부 전자 장치, 및 제3 외부 전자 장치 각각에게 전송하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 기준 모델로부터 생성된 서비스를 위한 제1 모델을 상기 제1 외부 전자 장치로부터 획득하고 상기 기준 모델로부터 생성된 상기 서비스를 위한 제2 모델을 상기 제2 외부 전자 장치로부터, 및 상기 기준 모델로부터 생성된 상기 서비스를 위한 제3 모델을 상기 제3 외부 전자 장치로부터, 상기 통신 회로를 통해, 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성하도록, 야기할 수 있다.An electronic device as described above may include a memory storing instructions. The electronic device may include a communication circuit. The electronic device may include a processor. The instructions, when executed by the processor, may cause the electronic device to transmit a reference model generated for federated learning to each of a first external electronic device, a second external electronic device, and a third external electronic device. The instructions, when executed by the processor, may cause the electronic device to obtain a first model for a service generated from the reference model from the first external electronic device, a second model for the service generated from the reference model from the second external electronic device, and a third model for the service generated from the reference model from the third external electronic device, via the communication circuit. The instructions, when executed by the processor, may cause the electronic device to recognize a first difference between the first model and the second model and a second difference between the first model and the third model. The instructions, when executed by the processor, may cause the electronic device to generate a fourth model for the service from the first model using the second model based on the first difference being less than a threshold value and the second difference being greater than or equal to the threshold value.

상술한 바와 같은, 전자 장치(electronic device)에 의해 수행되는 방법에 있어서, 상기 방법은, 연합 학습(federated learning)을 위한 서버(server)로부터, 기준 모델(reference model)을 획득하는 동작을 포함할 수 있다. 상기 방법은, 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하는 동작을 포함할 수 있다. 상기 방법은, 상기 서비스를 지시하는 제1 정보를 상기 서버에게 전송하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치를 지시하는 제2 정보를 상기 서버로부터 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치로부터, 상기 외부 전자 장치의 상기 서비스를 위한 제2 모델을 획득하는 동작을 포함할 수 있다. 상기 방법은, 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하는 동작을 포함할 수 있다. In a method performed by an electronic device as described above, the method may include an operation of obtaining a reference model from a server for federated learning. The method may include an operation of generating a first model for the service from the reference model using input data of a user for using the service. The method may include an operation of transmitting first information indicating the service to the server. The method may include an operation of obtaining, in response to the first information, second information indicating an external electronic device using the service from the server. The method may include an operation of obtaining, from the external electronic device with which a connection is established based on the second information, a second model for the service of the external electronic device. The method may include an operation of generating a third model for the service using the first model and the second model based on a difference between the first model and the second model that is less than a reference value.

상술한 바와 같은, 비일시적 컴퓨터 판독가능 저장 매체는, 통신 회로(communication circuit)를 포함하는 전자 장치(electronic device)의 프로세서에 의해 실행될 시, 상기 통신 회로를 통해, 연합 학습(federated learning)을 위한 서버(server)로부터, 기준 모델(reference model)을 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 상기 서비스를 지시하는 제1 정보를 상기 서버에게 전송하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치를 지시하는 제2 정보를 상기 서버로부터 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치로부터, 상기 외부 전자 장치의 상기 서비스를 위한 제2 모델을 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다.A non-transitory computer-readable storage medium as described above may store one or more programs including instructions that, when executed by a processor of an electronic device including a communication circuit, cause the electronic device to obtain a reference model from a server for federated learning via the communication circuit. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the electronic device to generate a first model for the service from the reference model using user input data for use of the service. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the electronic device to transmit first information indicative of the service to the server. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to, in response to the first information, obtain second information from the server, which indicates an external electronic device that uses the service. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to obtain a second model for the service of the external electronic device from the external electronic device with which a connection has been established based on the second information. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to generate a third model for the service using the first model and the second model based on a difference between the first model and the second model that is less than a reference value.

상술한 바와 같은, 전자 장치(electronic device)에 의해 수행되는 방법은, 상기 전자 장치가, 연합 학습(federated learning)을 위하여 생성된 기준 모델(reference model)을 제1 외부 전자 장치, 제2 외부 전자 장치, 및 제3 외부 전자 장치 각각에게 전송하는 동작을 포함할 수 잇다. 상기 방법은, 상기 기준 모델로부터 생성된 서비스를 위한 제1 모델을 상기 제1 외부 전자 장치로부터 획득하고 상기 기준 모델로부터 생성된 상기 서비스를 위한 제2 모델을 상기 제2 외부 전자 장치로부터, 및 상기 기준 모델로부터 생성된 상기 서비스를 위한 제3 모델을 상기 제3 외부 전자 장치로부터, 상기 통신 회로를 통해, 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식하는 동작을 포함할 수 있다. 상기 방법은, 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성하는 동작을 포함할 수 있다.A method performed by an electronic device as described above may include an operation in which the electronic device transmits a reference model generated for federated learning to each of a first external electronic device, a second external electronic device, and a third external electronic device. The method may include an operation in which a first model for a service generated from the reference model is acquired from the first external electronic device, a second model for the service generated from the reference model is acquired from the second external electronic device, and a third model for the service generated from the reference model is acquired from the third external electronic device, via the communication circuit. The method may include an operation in which a first difference between the first model and the second model and a second difference between the first model and the third model are recognized. The method may include an operation in which a fourth model for the service is generated from the first model using the second model, based on the first difference being less than a reference value and the second difference being greater than or equal to the reference value.

상술한 바와 같은, 비일시적 컴퓨터 판독가능 저장 매체는, 통신 회로(communication circuit)를 포함하는 전자 장치(electronic device)의 프로세서에 의해 실행될 시, 연합 학습(federated learning)을 위하여 생성된 기준 모델(reference model)을 제1 외부 전자 장치, 제2 외부 전자 장치, 및 제3 외부 전자 장치 각각에게 전송하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 상기 전자 장치가, 상기 기준 모델로부터 생성된 서비스를 위한 제1 모델을 상기 제1 외부 전자 장치로부터 획득하고 상기 기준 모델로부터 생성된 상기 서비스를 위한 제2 모델을 상기 제2 외부 전자 장치로부터, 및 상기 기준 모델로부터 생성된 상기 서비스를 위한 제3 모델을 상기 제3 외부 전자 장치로부터, 상기 통신 회로를 통해, 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 프로세서에 의해 실행될 시, 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다.A non-transitory computer-readable storage medium as described above may store one or more programs including instructions that, when executed by a processor of an electronic device including a communication circuit, cause the electronic device to transmit a reference model generated for federated learning to each of a first external electronic device, a second external electronic device, and a third external electronic device. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the electronic device to obtain a first model for a service generated from the reference model from the first external electronic device, a second model for the service generated from the reference model from the second external electronic device, and a third model for the service generated from the reference model from the third external electronic device, via the communication circuit. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to recognize a first difference between the first model and the second model and a second difference between the first model and the third model. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when executed by the processor, cause the processor to generate a fourth model for the service from the first model using the second model based on the first difference being less than a threshold value and the second difference being greater than or equal to the threshold value.

도 1은, 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.

도 2는, 일 실시예에 따른, 전자 장치가 외부 전자 장치에 기반하여 개인화된(personalized) 모델을 생성하기 위한 방법에 대한 예를 도시한다.FIG. 2 illustrates an example of a method for an electronic device to generate a personalized model based on an external electronic device, according to one embodiment.

도 3은, 일 실시예에 따른, P2P(peer to peer)에 기반하여 개인화된 모델을 생성하기 위한 네트워크(network)의 예를 도시한다.FIG. 3 illustrates an example of a network for generating personalized models based on peer to peer (P2P), according to one embodiment.

도 4는, 일 실시예에 따른, P2P에 기반하여 개인화된 모델을 생성하는 방법에 대한 신호 흐름의 예를 도시한다.FIG. 4 illustrates an example of a signal flow for a method of generating a personalized model based on P2P, according to one embodiment.

도 5a 및 도 5b는, 일 실시예에 따른, 외부 전자 장치로부터 획득된 모델을 이용하여 전자 장치의 모델을 학습하는 방법에 대한 예를 도시한다.FIGS. 5A and 5B illustrate an example of a method for learning a model of an electronic device using a model obtained from an external electronic device, according to one embodiment.

도 6은 일 실시예에 따른, P2P에 기반하여 개인화된 모델을 생성하는 방법에 대한 동작 흐름의 예를 도시한다.FIG. 6 illustrates an example of an operational flow for a method of generating a personalized model based on P2P, according to one embodiment.

도 7은, 일 실시예에 따른, 서버에 기반하여 개인화된 모델을 생성하기 위한 네트워크(network)의 예를 도시한다.FIG. 7 illustrates an example of a network for generating a personalized model based on a server, according to one embodiment.

도 8은, 일 실시예에 따른, 서버에 기반하여 개인화된 모델을 생성하는 방법에 대한 신호 흐름의 예를 도시한다.FIG. 8 illustrates an example signal flow for a method for generating a personalized model based on a server, according to one embodiment.

도 9는 일 실시예에 따른, 서버에 기반하여 개인화된 모델을 생성하는 방법에 대한 동작 흐름의 예를 도시한다.FIG. 9 illustrates an example of an operational flow for a method of generating a personalized model based on a server, according to one embodiment.

본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.The terms used in this disclosure are only used to describe specific embodiments and may not be intended to limit the scope of other embodiments. The singular expression may include the plural expression unless the context clearly indicates otherwise. The terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by a person having ordinary skill in the art described in this disclosure. Among the terms used in this disclosure, terms defined in general dictionaries may be interpreted as having the same or similar meaning in the context of the related technology, and shall not be interpreted in an ideal or excessively formal meaning unless explicitly defined in this disclosure. In some cases, even if a term is defined in this disclosure, it cannot be interpreted to exclude embodiments of the present disclosure.

이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.In the various embodiments of the present disclosure described below, a hardware-based approach is described as an example. However, since the various embodiments of the present disclosure include techniques using both hardware and software, the various embodiments of the present disclosure do not exclude a software-based approach.

또한, 본 개시에서, 특정 조건의 만족(satisfied), 충족(fulfilled) 여부를 판단하기 위해, 초과 또는 미만의 표현이 사용될 수 있으나, 이는 일 예를 표현하기 위한 기재일 뿐 이상 또는 이하의 기재를 배제하는 것이 아니다. '이상'으로 기재된 조건은 '초과', '이하'로 기재된 조건은 '미만', '이상 및 미만'으로 기재된 조건은 '초과 및 이하'로 대체될 수 있다. 또한, 이하, 'A' 내지 'B'는 A부터(A 포함) B까지의(B 포함) 요소들 중 적어도 하나를 의미한다.In addition, in the present disclosure, in order to determine whether a specific condition is satisfied or fulfilled, the expression "more than" or "less than" may be used, but this is only a description for expressing an example and does not exclude the description of more than or less than. A condition described as "more than" may be replaced with "more than," a condition described as "less than" may be replaced with "less than," and a condition described as "more than and less than" may be replaced with "more than and less than." In addition, hereinafter, "A" to "B" mean at least one of the elements from A to (including A) and from (including B).

도 1은, 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다. FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.

도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나 와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).

프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor (120) may control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) by executing, for example, software (e.g., a program (140)), and may perform various data processing or calculations. According to one embodiment, as at least a part of the data processing or calculations, the processor (120) may store a command or data received from another component (e.g., a sensor module (176) or a communication module (190)) in the volatile memory (132), process the command or data stored in the volatile memory (132), and store result data in the nonvolatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphic processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together therewith. For example, if the electronic device (101) includes a main processor (121) and a secondary processor (123), the secondary processor (123) may be configured to use lower power than the main processor (121) or to be specialized for a given function. The secondary processor (123) may be implemented separately from the main processor (121) or as a part thereof.

보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted Boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.The auxiliary processor (123) may control at least a portion of functions or states associated with at least one of the components of the electronic device (101) (e.g., the display module (160), the sensor module (176), or the communication module (190)), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing device) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. Such learning may be performed, for example, in the electronic device (101) itself on which the artificial intelligence model is executed, or may be performed through a separate server (e.g., server (108)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers. The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), deep Q-networks, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may additionally or alternatively include a software structure.

메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or nonvolatile memory (134).

프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).

입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The audio output module (155) can output an audio signal to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes such as multimedia playback or recording playback. The receiver can be used to receive an incoming call. According to one embodiment, the receiver can be implemented separately from the speaker or as a part thereof.

디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) can include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module (160) can include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can obtain sound through an input module (150), or output sound through an audio output module (155), or an external electronic device (e.g., an electronic device (102)) (e.g., a speaker or a headphone) directly or wirelessly connected to the electronic device (101).

센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module (176) can detect an operating state (e.g., power or temperature) of the electronic device (101) or an external environmental state (e.g., user state) and generate an electric signal or data value corresponding to the detected state. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). According to one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., the electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module (179) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that a user can perceive through a tactile or kinesthetic sense. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module (180) can capture still images and moving images. According to one embodiment, the camera module (180) can include one or more lenses, image sensors, image signal processors, or flashes.

전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).

배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The battery (189) can power at least one component of the electronic device (101). In one embodiment, the battery (189) can include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다. The communication module (190) may support establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., the electronic device (102), the electronic device (104), or the server (108)), and performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., the application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a GNSS (global navigation satellite system) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module or a power line communication module). Among these communication modules, a corresponding communication module may communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) may use subscriber information (e.g., international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196) to identify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199).

무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.The wireless communication module (192) can support a 5G network and next-generation communication technology after a 4G network, for example, NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), terminal power minimization and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) may support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) may support various requirements specified in an electronic device (101), an external electronic device (e.g., electronic device (104)), or a network system (e.g., second network (199)). According to one embodiment, the wireless communication module (192) may support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL) each, or 1 ms or less for round trip) for URLLC realization.

안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다. The antenna module (197) can transmit or receive signals or power to or from the outside (e.g., an external electronic device). According to one embodiment, the antenna module (197) can include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (197) can include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), can be selected from the plurality of antennas by, for example, the communication module (190). A signal or power can be transmitted or received between the communication module (190) and the external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) can be additionally formed as a part of the antenna module (197).

다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the antenna module (197) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC positioned on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) positioned on or adjacent a second side (e.g., a top side or a side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.

상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the above components may be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, a general purpose input and output (GPIO), a serial peripheral interface (SPI), or a mobile industry processor interface (MIPI)).

일 실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다. In one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). In one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform at least a part of the function or service. One or more external electronic devices that receive the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a part of a response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (101) may provide an ultra-low latency service by using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (104) may include an IoT (Internet of Things) device. The server (108) may be an intelligent server using machine learning and/or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199). The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

인공지능 모델(또는 딥 러닝(deep learning) 모델)은, 정확도 및 사용성을 개선하기 위해 사용자의 데이터를 수집할 수 있다. 예를 들어, 상기 인공지능 모델은, 상기 사용자의 상기 데이터에 기반하여 학습(또는, 생성, 업데이트)될 수 있다. 이 때, 상기 사용자의 상기 데이터가, 상기 사용자의 개인 정보와 관련되는 경우, 상기 인공지능 모델의 학습을 위한 상기 데이터의 수집은 제한될 수 있다. 이하, 상기 인공지능 모델은 모델로 참조될 수 있다.An artificial intelligence model (or a deep learning model) may collect user data to improve accuracy and usability. For example, the artificial intelligence model may be trained (or generated, updated) based on the user's data. In this case, if the user's data is related to the user's personal information, the collection of the data for training the artificial intelligence model may be limited. Hereinafter, the artificial intelligence model may be referred to as a model.

상기 인공 지능 모델의 상기 학습은, 연합 학습(federated learning, FL)을 포함할 수 있다. 예를 들어, 상기 FL에 있어서, 상기 FL을 위한 서버(server)는 모델을 생성(또는 학습)할 수 있다. 상기 서버에 의해 최초로 생성된 상기 모델은 기본 모델(base model) 또는 기준 모델(reference model)로 참조될 수 있다. 상기 생성된 기준 모델은, 상기 서버로부터 상기 서버와 연결된 전자 장치들에게 전송될 수 있다. 상기 전자 장치들 각각은, 수신된 상기 기준 모델에 기반하여, 서비스를 이용할 수 있다. 예를 들어, 상기 서비스는, 상기 기준 모델을 이용하는 AI 서비스로 참조될 수 있다. 예를 들어, 상기 서비스는, 특정 소프트웨어 어플리케이션의 실행에 기반하여 제공될 수 있다. 상기 전자 장치들 각각은, 상기 서비스의 이용에 따라 상기 사용자의 데이터를 수집하고, 수집된 상기 데이터에 기반하여 상기 모델의 학습(또는 업데이트)을 수행할 수 있다. 상기 데이터에 기반하여 학습되는 상기 모델은, 상기 사용자에 대하여(with respect to) 개인화된 모델일 수 있다. 상기 학습이 완료된 후, 상기 전자 장치들 각각은 업데이트된 모델에 대한 파라미터(parameter)를 상기 서버에게 전송할 수 있다. 예를 들어, 상기 파라미터는, 상기 업데이트된 모델을 구성(또는 정의)하는 벡터 값들을 포함할 수 있다. 예를 들어, 상기 파라미터는, 모델을 구성하는 정보를 나타낼 수 있다. 상기 서버는, 상기 전자 장치들 각각으로부터 수신된 모델들에 기반하여 새로운 모델(또는 기준 모델)을 생성할 수 있다. 상술한 바를 참조하면, 상기 FL을 이용함으로써, 상기 사용자의 개인 정보를 보호하면서 상기 사용자의 실제 사용 정보를 이용해 상기 모델을 학습할 수 있다. 이에 따라, 상기 모델은 고도화될(advanced) 수 있다. The learning of the artificial intelligence model may include federated learning (FL). For example, in the FL, a server for the FL may generate (or learn) a model. The model initially generated by the server may be referred to as a base model or a reference model. The generated reference model may be transmitted from the server to electronic devices connected to the server. Each of the electronic devices may use a service based on the received reference model. For example, the service may be referred to as an AI service using the reference model. For example, the service may be provided based on the execution of a specific software application. Each of the electronic devices may collect data of the user according to the use of the service, and perform learning (or updating) of the model based on the collected data. The model learned based on the data may be a personalized model with respect to the user. After the learning is completed, each of the electronic devices can transmit parameters for the updated model to the server. For example, the parameters can include vector values that configure (or define) the updated model. For example, the parameters can represent information that configures the model. The server can generate a new model (or a reference model) based on the models received from each of the electronic devices. As described above, by using the FL, the model can be learned using the actual usage information of the user while protecting the personal information of the user. Accordingly, the model can be advanced.

상기 예에서는, 상기 서버에게 전송된 상기 전자 장치들의 모델들에 기반하여 상기 서버에서 새로운 상기 기준 모델이 생성되는 예가 서술, 상기 서버가 아닌 상기 전자 장치들 중 하나의 전자 장치가 상기 전자 장치들 중 상기 전자 장치와 상이한 적어도 하나의 전자 장치로부터 수신된 모델에 기반하여 상기 전자 장치의 모델을 업데이트할 수도 있다. 상술한 바와 같은 상기 전자 장치들 간 통신에 기반하여 수행되는 FL은, P2P(peer to peer) FL로 참조될 수 있다.In the above example, an example is described in which a new reference model is generated in the server based on models of the electronic devices transmitted to the server, and one of the electronic devices, other than the server, may update the model of the electronic device based on a model received from at least one electronic device different from the electronic device among the electronic devices. The FL performed based on the communication between the electronic devices as described above may be referred to as a P2P (peer to peer) FL.

상기 P2P FL의 경우, 상기 전자 장치가, 상기 전자 장치와 상이한 상기 적어도 하나의 전자 장치로부터 획득된 모델(또는 상기 모델의 파라미터 또는 벡터 값들)에 기반하여, 상기 전자 장치의 상기 모델을 학습(또는 생성, 업데이트)할 수 있다. 예를 들어, 상기 전자 장치는, 상기 전자 장치의 사용자(또는 사용자가 이용한 서비스, 또는 사용자의 사용 정보)와 관련성이 상대적으로 낮은 상기 적어도 하나의 전자 장치의 모델을 학습에 이용할 수 있다. 또한, 상기 학습에 이용되는 정보가 상기 모델의 파라미터인 점을 고려할 때, 상기 학습을 위한 필터링 또는 구별과 같은 전처리가 이용될 수 없다. 이에 따라, 상기 전자 장치는, 상기 적어도 하나의 전자 장치의 모델(또는 모델의 파라미터)에 기반하여, 무분별한 학습을 수행할 수 있다. In the case of the P2P FL, the electronic device can learn (or generate, update) the model of the electronic device based on a model (or parameters or vector values of the model) obtained from at least one electronic device different from the electronic device. For example, the electronic device can use the model of the at least one electronic device that has a relatively low relevance to a user of the electronic device (or a service used by the user, or usage information of the user) for learning. In addition, considering that the information used for the learning is a parameter of the model, preprocessing such as filtering or distinction for the learning cannot be used. Accordingly, the electronic device can perform indiscriminate learning based on the model (or parameters of the model) of the at least one electronic device.

예를 들어, 상기 전자 장치의 사용자가 오른손잡이인 경우, 상기 전자 장치의 서비스를 이용함에 있어 오른손잡이인 상기 사용자의 사용 정보(예: 키보드 입력)를 이용하여 상기 전자 장치는 모델을 학습하는 경우를 가정한다. 상기 서비스는, 상기 전자 장치가 키보드를 통해 사용자의 입력을 획득하는 서비스(예: 키보드 입력 서비스 또는 키보드 입력 기능)일 수 있다. 이 때, 상기 전자 장치는, 상기 적어도 하나의 전자 장치의 사용자 중 왼손잡이가 존재하는 경우, 상기 왼손잡이의 사용 정보에 기반하여 상기 전자 장치의 모델을 학습할 수 있다. 다시 말해서, 상기 전자 장치는, 상기 전자 장치의 사용자에 적합하지 않은 정보에 기반하여, 상기 모델을 학습할 수 있다. 이 경우, 학습된 상기 모델은, 상기 전자 장치의 사용자에 대하여 왜곡된 모델일 수 있다. For example, if the user of the electronic device is right-handed, it is assumed that the electronic device learns a model by using the usage information (e.g., keyboard input) of the right-handed user when using the service of the electronic device. The service may be a service (e.g., keyboard input service or keyboard input function) in which the electronic device obtains input from the user through a keyboard. In this case, if there is a left-handed user among the users of the at least one electronic device, the electronic device may learn the model of the electronic device based on the usage information of the left-handed user. In other words, the electronic device may learn the model based on information that is not suitable for the user of the electronic device. In this case, the learned model may be a distorted model with respect to the user of the electronic device.

이하, 본 개시의 실시예들에 따른 전자 장치, 방법, 및 저장 매체는, FL을 이용함에 있어서 사용자와 관련성 있는 다른 사용자의 사용 데이터에 기반하여 생성된 모델을 그룹핑(grouping)할 수 있다. 본 개시의 실시예들에 따른 전자 장치, 방법, 및 저장 매체는, 상기 그룹핑된 모델을 이용하여 모델을 생성(또는, 학습, 업데이트)함으로써, 상기 사용자에 대하여 개인화된 모델을 생성(또는, 학습, 업데이트)할 수 있다. 이에 따라, 본 개시의 실시예들에 따른 전자 장치, 방법, 및 저장 매체는, 상기 사용자에게 보다 개인화된 모델을 이용하여, 상기 사용자에 대하여 개선된 사용성을 갖는 서비스를 제공할 수 있다. 또한, 본 개시의 실시예들에 따른 전자 장치, 방법, 및 저장 매체는, 상기 사용자에게 보다 개인화된 모델을 생성함에 있어서, 상기 사용자의 개인 정보를 효과적으로 보호할 수 있다.Hereinafter, an electronic device, a method, and a storage medium according to embodiments of the present disclosure can group models generated based on usage data of other users that are relevant to a user when using FL. The electronic device, the method, and the storage medium according to embodiments of the present disclosure can generate (or learn, update) a personalized model for the user by generating (or learning, updating) a model using the grouped model. Accordingly, the electronic device, the method, and the storage medium according to embodiments of the present disclosure can provide a service with improved usability for the user by using a more personalized model for the user. In addition, the electronic device, the method, and the storage medium according to embodiments of the present disclosure can effectively protect the personal information of the user when generating a more personalized model for the user.

도 2는, 일 실시예에 따른, 전자 장치가 외부 전자 장치에 기반하여 개인화된(personalized) 모델을 생성하기 위한 방법에 대한 예를 도시한다.FIG. 2 illustrates an example of a method for an electronic device to generate a personalized model based on an external electronic device, according to one embodiment.

도 2의 전자 장치(101)는, 도 1의 전자 장치(101)의 일 예를 나타낼 수 있다. 예를 들어, 도 2에서는, 스마트폰인 전자 장치(101)의 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 서버(server)와 같이 소프트웨어 또는 하드웨어 및 소프트웨어에 의해 구현될 수도 있다.The electronic device (101) of FIG. 2 may represent an example of the electronic device (101) of FIG. 1. For example, in FIG. 2, an example of an electronic device (101) that is a smartphone is described, but the embodiments of the present disclosure are not limited thereto. For example, the electronic device (101) may be implemented by software or hardware and software, such as a server.

도 2는, 전자 장치(101)가 모델에 기반하여 서비스를 제공하는 동안 상기 서비스와 관련된 다른 모델들에 기반하여, 전자 장치(101)의 상기 모델을 학습하고 학습된 상기 모델을 통해 상기 서비스를 제공하는 방법에 대한 예들(201, 202, 203)을 도시한다. 도 2의 예들(201, 202, 203)에서, 상기 서비스는 음성 인식 서비스를 포함할 수 있다. 다만, 본 개시의 실시예들이 이에 제한되는 것은 아니다.FIG. 2 illustrates examples (201, 202, 203) of a method for learning a model of an electronic device (101) and providing a service through the learned model based on other models related to the service while the electronic device (101) provides a service based on the model. In the examples (201, 202, 203) of FIG. 2, the service may include a voice recognition service. However, the embodiments of the present disclosure are not limited thereto.

예(201)에서, 일 실시예에 따르면, 전자 장치(101)는, 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 기준 모델에 기반하여, 상기 서비스를 제공할 수 있다. 예를 들어, 상기 기준 모델은, FL을 위한 서버(server)로부터 획득될 수 있다. 예를 들어, 상기 서비스는, 음성 인식 서비스를 포함할 수 있다. In example (201), according to one embodiment, the electronic device (101) can provide a service. For example, the electronic device (101) can provide the service based on a reference model. For example, the reference model can be obtained from a server for FL. For example, the service can include a voice recognition service.

일 실시예에 따르면, 전자 장치(101)는, 사용자(205)에 의해 발화된 음성(210)을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 마이크(예: 도 1의 입력 모듈(150))을 이용하여, 음성(210)을 획득할 수 있다. 예를 들어, 음성(210)은 "AAA"일 수 있다. 음성(210)을 획득한 후, 전자 장치(101)는, 상기 기준 모델에 기반하여 음성(210)에 대한 음성 인식을 수행할 수 있다. 예를 들어, 상기 음성 인식은, 사용자(205)가 발화한 음성(210)을 나타내는 텍스트(text)를 인식하는 기능을 나타낼 수 있다. 전자 장치(101)는, 상기 음성 인식을 수행함에 따라, 음성(210)에 대응하는 텍스트(220)를 인식할 수 있다. 예를 들어, 전자 장치(101)는, 인식된 텍스트(220)를 나타내는 시각적 객체를 디스플레이(예: 도 1의 디스플레이 모듈(160))를 통해 표시할 수 있다. 예를 들어, 상기 기준 모델에 기반하여 수행된 상기 음성 인식에 따른 텍스트(220)는, "BBB"일 수 있다. 예를 들어, "BBB"는 사용자(205)가 발화한 음성(210)인 "AAA"와 상이할 수 있다. According to one embodiment, the electronic device (101) can obtain a voice (210) spoken by a user (205). For example, the electronic device (101) can obtain the voice (210) using a microphone (e.g., the input module (150) of FIG. 1). For example, the voice (210) can be “AAA”. After obtaining the voice (210), the electronic device (101) can perform voice recognition on the voice (210) based on the reference model. For example, the voice recognition can represent a function of recognizing a text representing the voice (210) spoken by the user (205). The electronic device (101) can recognize a text (220) corresponding to the voice (210) by performing the voice recognition. For example, the electronic device (101) may display a visual object representing the recognized text (220) through a display (e.g., the display module (160) of FIG. 1). For example, the text (220) according to the speech recognition performed based on the reference model may be “BBB.” For example, “BBB” may be different from “AAA,” which is a speech (210) spoken by the user (205).

일 실시예에 따르면, 음성(210)과 상이한 텍스트(220)를 인식한 사용자(205)로부터, 전자 장치(101)는 입력(225)을 획득할 수 있다. 예를 들어, 입력(225)은, 음성(210)과 상이한 텍스트(220)를 음성(210)과 동일하도록 수정하기 위한 사용자(205)의 입력을 나타낼 수 있다. 예를 들어, 입력(225)은, 전자 장치(101)가 사용자(205)에게 제공하는 상기 서비스(또는 상기 음성 인식 서비스)를 이용하는 동안 획득되는 사용자(205)의 입력 데이터를 나타낼 수 있다. 상기 입력 데이터는, 전자 장치(101)의 상기 기준 모델의 학습을 위해 이용되는 데이터를 나타낼 수 있다. 예를 들어, 입력(225)은, 상기 기준 모델의 학습을 위해 이용될 수 있다. 예를 들어, 입력(225)은, 사용자(205)의 신체 부분(예: 손가락) 또는 외부 장치(예: 스타일러스 펜)을 통해 입력하는 텍스트(230)(예: "AAA"), 텍스트(230)를 입력하기 위한 사용자(205)의 상기 신체 부분 또는 상기 외부 장치와 접촉된 신체 부분, 또는, 사용자(205)가 텍스트(230)를 입력하는 방식에 대한 정보를 포함할 수 있다. 예를 들어, 상기 방식은, 필체, 입력(225)의 위치, 입력 속도를 포함할 수 있다. 전자 장치(101)는, 입력(225)에 기반한 텍스트(230)를 음성(210)의 음성 인식 결과로 인식할 수 있다. 다시 말해서, 전자 장치(101)는, 음성(210)에 대한 상기 음성 인식의 결과를 텍스트(220)가 아닌 텍스트(230)로 인식할 수 있다. According to one embodiment, the electronic device (101) may obtain an input (225) from a user (205) who recognizes a text (220) different from a voice (210). For example, the input (225) may represent an input of the user (205) for modifying the text (220) different from the voice (210) to be identical to the voice (210). For example, the input (225) may represent input data of the user (205) obtained while the electronic device (101) uses the service (or the voice recognition service) provided to the user (205). The input data may represent data used for learning the reference model of the electronic device (101). For example, the input (225) may be used for learning the reference model. For example, the input (225) may include text (230) (e.g., “AAA”) input by a body part (e.g., a finger) of the user (205) or an external device (e.g., a stylus pen), a body part of the user (205) or a body part in contact with the external device for inputting the text (230), or information about a method by which the user (205) inputs the text (230). For example, the method may include handwriting, a location of the input (225), and an input speed. The electronic device (101) may recognize the text (230) based on the input (225) as a result of voice recognition of the voice (210). In other words, the electronic device (101) may recognize the result of the voice recognition for the voice (210) as text (230) rather than text (220).

예(201)에서는, 잘못 인식된 텍스트(220)를 텍스트(230)로 수정하기 위한 입력(225)을 상기 기준 모델의 학습(또는, 훈련, 적응 훈련, 생성, 업데이트)을 위해 이용하는 예가 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예(201)와 달리, 전자 장치(101)가 음성(210)을 획득하고 상기 기준 모델에 기반하여 텍스트(230)로 정확하게 인식한 경우, 정확하게 인식된 결과인 텍스트(230)도 상기 기준 모델의 학습에 이용될 수 있다. 일 실시예에 따르면, 전자 장치(101)는, 상기 기준 모델의 학습에 이용되는 데이터(예: 텍스트(220)를 텍스트(230)로 변경하기 위한 입력(225), 또는 텍스트(230))를 선택하기 위한 지정된 알고리즘(또는 판단 로직)을 이용할 수 있다. 예를 들어, 상기 지정된 알고리즘은, 상기 데이터를 선택(또는 선별, 식별)하기 위한 알고리즘일 수 있다. 예를 들어, 상기 지정된 알고리즘에 의해 텍스트(220)를 텍스트(230)로 변경하기 위한 입력(225)들만 상기 기준 모델의 학습에 이용될 데이터로 선택될 수도 있다.In example (201), an example is illustrated in which an input (225) for correcting an incorrectly recognized text (220) into text (230) is used for learning (or training, adaptive training, generation, update) of the reference model, but the embodiments of the present disclosure are not limited thereto. Unlike example (201), when the electronic device (101) acquires a voice (210) and accurately recognizes it as text (230) based on the reference model, the accurately recognized text (230) may also be used for learning the reference model. According to one embodiment, the electronic device (101) may use a designated algorithm (or judgment logic) for selecting data (e.g., an input (225) for changing text (220) into text (230), or text (230)) used for learning the reference model. For example, the designated algorithm may be an algorithm for selecting (or screening, identifying) the data. For example, only inputs (225) for changing text (220) into text (230) by the above-mentioned algorithm may be selected as data to be used for learning the reference model.

예(202)를 참조하면, 전자 장치(101)는, 3개의 외부 전자 장치(미도시)들로부터 상기 음성 인식 서비스를 위한 모델들(240)을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델로부터 입력(225)에 기반하여 학습(또는, 업데이트)된 모델에 대한 업데이트를 실행하기 위한 입력을 획득할 수 있다. 예를 들어, 상기 입력은, 전자 장치(101)의 상기 디스플레이에 대한 입력을 포함할 수 있다. Referring to example (202), the electronic device (101) can obtain models (240) for the voice recognition service from three external electronic devices (not shown). For example, the electronic device (101) can obtain an input for executing an update for a model learned (or updated) based on an input (225) from the reference model. For example, the input can include an input for the display of the electronic device (101).

일 실시예에 따르면, 전자 장치(101)는, 상기 업데이트를 실행하기 위한 상기 입력을 획득함에 응답하여, 상기 외부 전자 장치들로부터 모델들(240)을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 제1 외부 전자 장치로부터 상기 음성 인식 서비스를 위한 모델#A(241)를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 제2 외부 전자 장치로부터 상기 음성 인식 서비스를 위한 모델#B(242)를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 제3 외부 전자 장치로부터 상기 음성 인식 서비스를 위한 모델#C(243)를 획득할 수 있다. 예(202)에서는, 3개의 외부 전자 장치들 각각으로부터 하나의 상기 음성 인식 서비스를 위한 모델을 획득하는 예가 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는 4개 이상 또는 2개 이하의 외부 전자 장치들로부터 모델을 획득할 수도 있다. 또는, 예를 들어, 전자 장치(101)는, 외부 전자 장치로부터 복수의 모델들을 획득할 수도 있다. 이 때, 상기 복수의 모델들은, 전자 장치(101)에 의해 요청되는 서비스(예: 도 2의 상기 음성 인식 서비스))를 위한 모델일 수 있다.According to one embodiment, the electronic device (101) may, in response to obtaining the input for executing the update, obtain models (240) from the external electronic devices. For example, the electronic device (101) may obtain model #A (241) for the voice recognition service from a first external electronic device. For example, the electronic device (101) may obtain model #B (242) for the voice recognition service from a second external electronic device. For example, the electronic device (101) may obtain model #C (243) for the voice recognition service from a third external electronic device. In example (202), an example of obtaining one model for the voice recognition service from each of three external electronic devices is illustrated, but the embodiments of the present disclosure are not limited thereto. For example, the electronic device (101) may obtain models from four or more or two or fewer external electronic devices. Alternatively, for example, the electronic device (101) may obtain a plurality of models from an external electronic device. At this time, the plurality of models may be models for a service requested by the electronic device (101) (e.g., the voice recognition service of FIG. 2).

일 실시예에 따르면, 전자 장치(101)는, 상기 외부 전자 장치들로부터 획득된 모델들(240) 중 전자 장치(101)의 상기 모델과 유사한 적어도 하나의 모델을 인식할 수 있다. 예를 들어, 전자 장치(101)의 상기 모델은, 상기 기준 모델로부터 입력(225)을 포함하는 입력 데이터에 기반하여 학습된 모델일 수 있다. 예를 들어, 전자 장치(101)는, 모델들(240) 각각과 전자 장치(101)의 상기 모델 사이의 차이를 인식하고, 상기 차이와 기준 값 사이를 비교함으로써 상기 적어도 하나의 모델을 인식할 수 있다. 예를 들어, 상기 차이는, 거리(distance)로 참조될 수 있다. 예를 들어, 전자 장치(101)는, 상기 차이가 상기 기준 값 미만인 상기 적어도 하나의 모델을 인식할 수 있다. 상기 예에서는, 상기 차이가 상기 기준 값 미만인 상기 적어도 하나의 모델을 인식하는 경우가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 모델들(240) 각각과 전자 장치(101)의 상기 모델 사이의 유사도 값(similarity value)가 다른(another) 기준 값 초과인 상기 적어도 하나의 모델을 인식할 수 있다. 다시 말해서, 상기 차이(또는 상기 거리)가 작을수록 또는 상기 유사도 값이 클수록 모델들(240) 각각과 전자 장치(101)의 상기 모델 사이는 유사할 수 있다. According to one embodiment, the electronic device (101) can recognize at least one model similar to the model of the electronic device (101) among the models (240) acquired from the external electronic devices. For example, the model of the electronic device (101) may be a model learned based on input data including the input (225) from the reference model. For example, the electronic device (101) can recognize the difference between each of the models (240) and the model of the electronic device (101) and recognize the at least one model by comparing the difference with a reference value. For example, the difference may be referred to as a distance. For example, the electronic device (101) can recognize the at least one model in which the difference is less than the reference value. Although the example describes a case in which the at least one model in which the difference is less than the reference value is recognized, the embodiments of the present disclosure are not limited thereto. For example, the electronic device (101) can recognize at least one model in which a similarity value between each of the models (240) and the model of the electronic device (101) exceeds another reference value. In other words, the smaller the difference (or the distance) or the larger the similarity value, the more similar each of the models (240) and the model of the electronic device (101) can be.

일 실시예에 따르면, 전자 장치(101)는, 전자 장치(101)의 상기 모델을 상기 적어도 하나의 모델을 이용하여 학습(또는 생성, 업데이트)할 수 있다. 예를 들어, 전자 장치(101)는, 상기 적어도 하나의 모델을 이용하여 상기 음성 인식 서비스를 위한 전자 장치(101)의 상기 모델로부터 새로운 모델을 생성(또는 학습, 업데이트)할 수 있다. 예를 들어, 상기 새로운 모델은, 상기 음성 인식 서비스를 위한 모델일 수 있다. 일 실시예에 따르면, 전자 장치(101)는, 상기 모델의 파라미터와 상기 적어도 하나의 모델의 파라미터 사이의 대푯값에 기반하여 상기 새로운 모델을 생성할 수 있다. 예를 들어, 상기 모델의 제1 벡터 값들과 상기 적어도 하나의 모델 중 하나의 모델의 제2 벡터 값들 사이의 평균값에 기반하여 상기 새로운 모델을 생성할 수 있다. 이와 관련된 구체적인 내용은, 이하 도 3에서 서술된다.According to one embodiment, the electronic device (101) can learn (or generate, update) the model of the electronic device (101) using the at least one model. For example, the electronic device (101) can generate (or learn, update) a new model from the model of the electronic device (101) for the voice recognition service using the at least one model. For example, the new model may be a model for the voice recognition service. According to one embodiment, the electronic device (101) can generate the new model based on a representative value between parameters of the model and parameters of the at least one model. For example, the new model can be generated based on an average value between first vector values of the model and second vector values of one of the at least one model. Specific details related thereto are described below in FIG. 3.

예(203)를 참조하면, 전자 장치(101)는, 상기 음성 인식 서비스를 위한 상기 새로운 모델을 이용하여, 상기 음성 인식 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 사용자(205)가 발화한 음성(250)을 획득할 수 있다. 예를 들어, 음성(250)은, "CCC"를 포함할 수 있다. 예를 들어, 전자 장치(101)는, 상기 새로운 모델을 이용하여, 음성(250)으로부터 텍스트(260)를 인식할 수 있다. 예를 들어, 텍스트(260)는, "CCC"일 수 있다. 예(203)를 참조하면, 전자 장치(101)는, 이전에 학습되지 않은 음성(250)에 대하여, 정확하게 인식할 수 있다. 예를 들어, 전자 장치(101)는, 상기 적어도 하나의 외부 전자 장치를 이용하여 학습된 상기 새로운 모델에 기반하여, 음성(250)로부터 음성 인식 결과로써 텍스트(260)를 인식할 수 있다. Referring to example (203), the electronic device (101) can provide the voice recognition service by using the new model for the voice recognition service. For example, the electronic device (101) can obtain a voice (250) spoken by a user (205). For example, the voice (250) can include “CCC”. For example, the electronic device (101) can recognize a text (260) from the voice (250) by using the new model. For example, the text (260) can be “CCC”. Referring to example (203), the electronic device (101) can accurately recognize a voice (250) that has not been learned previously. For example, the electronic device (101) can recognize a text (260) as a voice recognition result from the voice (250) based on the new model learned by using the at least one external electronic device.

상술한 바를 참조하면, 본 개시의 실시예들에 따른 전자 장치, 방법, 및 저장 매체는, FL을 이용함에 있어서 사용자에 의해 이용되는 서비스 및 상기 서비스를 위한 외부 전자 장치의 모델의 유사도를 평가함으로써, 상기 서비스를 위한 모델을 학습(또는, 생성, 업데이트)할 수 있다. 이하 도 3에서는, 외부 전자 장치로부터 획득된 모델에 기반하여 전자 장치(101)가 상기 모델을 학습하는 기법(또는 P2P에 기반하여 개인화된 모델의 학습 기법)에 대한 예가 서술된다. As described above, the electronic device, method, and storage medium according to embodiments of the present disclosure can learn (or generate, update) a model for a service by evaluating the similarity between a service used by a user and a model of an external electronic device for the service when using FL. In the following, FIG. 3 describes an example of a technique for an electronic device (101) to learn a model based on a model acquired from an external electronic device (or a technique for learning a personalized model based on P2P).

도 3은, 일 실시예에 따른, P2P(peer to peer)에 기반하여 개인화된 모델을 생성하기 위한 네트워크(network)의 예를 도시한다.FIG. 3 illustrates an example of a network for generating a personalized model based on peer to peer (P2P), according to one embodiment.

도 3을 참조하면, 전자 장치(101)가 외부 전자 장치들(310, 320, 330)로부터 획득된 모델을 이용하여 개인화된 모델을 생성하기 위한 네트워크의 예를 도시한다. 예를 들어, 도 3에서는 하나의 전자 장치(101), 하나의 서버(350), 및 3개의 외부 전자 장치들(310, 320, 330)을 포함하는 상기 네트워크의 예가 도시되나, 본 개시의 실시예들이 이에 제한되는 것은 아니다. 예를 들어, 상기 네트워크를 구성하는 구성요소의 수는 변경될 수도 있다.Referring to FIG. 3, an example of a network for generating a personalized model using a model acquired from external electronic devices (310, 320, 330) is illustrated. For example, FIG. 3 illustrates an example of the network including one electronic device (101), one server (350), and three external electronic devices (310, 320, 330), but embodiments of the present disclosure are not limited thereto. For example, the number of components constituting the network may be changed.

도 3을 참고하면, 전자 장치(101), 외부 전자 장치들(310, 320, 330), 및 서버(350)가 유선 네트워크, 및/또는 무선 네트워크에 기반하여 서로 연결된 예시적인 상황이 도시된다. 도 3에서는 전자 장치(101)와 외부 전자 장치(330) 및 외부 전자 장치(310)와 외부 전자 장치(320)가 서로 연결되지 않은 것 같은 예가 도시되나, 설명의 편의를 위한 것에 불과할 뿐, 본 개시의 실시예가 이에 제한되는 것은 아니다. 도 3은 전자 장치(101)와 외부 전자 장치(330) 및 외부 전자 장치(310)와 외부 전자 장치(320)가 서로 연결된 것으로 가정한다. 예를 들어, 상기 유선 네트워크는, 인터넷, LAN(local area network), WAN(wide area network), 또는 이들의 조합과 같은 네트워크를 포함할 수 있다. 예를 들어, 상기 무선 네트워크는, LTE(long term evolution), 5G(fifth generation) NR(new radio), WiFi(wireless fidelity), Zigbee, NFC(near field communication), Bluetooth, BLE(Bluetooth low-energy), 또는 이들의 조합과 같은 네트워크를 포함할 수 있다. 비록, 전자 장치(101), 외부 전자 장치들(310, 320, 330), 및 서버(350)가 직접적으로 연결된(directly connected) 것으로 도시되었으나, 전자 장치(101), 외부 전자 장치들(310, 320, 330), 및 서버(350)는 하나 이상의 라우터 및/또는 AP(access point)를 통해 간접적으로 연결될 수 있다. Referring to FIG. 3, an exemplary situation is illustrated in which an electronic device (101), external electronic devices (310, 320, 330), and a server (350) are connected to each other based on a wired network and/or a wireless network. In FIG. 3, an example is illustrated in which the electronic device (101) and the external electronic device (330) and the external electronic device (310) and the external electronic device (320) are not connected to each other, but this is merely for convenience of explanation, and the embodiments of the present disclosure are not limited thereto. FIG. 3 assumes that the electronic device (101) and the external electronic device (330) and the external electronic device (310) and the external electronic device (320) are connected to each other. For example, the wired network may include a network such as the Internet, a local area network (LAN), a wide area network (WAN), or a combination thereof. For example, the wireless network may include a network such as long term evolution (LTE), fifth generation (5G) new radio (NR), wireless fidelity (WiFi), Zigbee, near field communication (NFC), Bluetooth, Bluetooth low-energy (BLE), or a combination thereof. Although the electronic device (101), external electronic devices (310, 320, 330), and server (350) are illustrated as being directly connected, the electronic device (101), external electronic devices (310, 320, 330), and server (350) may be indirectly connected via one or more routers and/or access points (APs).

도 3을 참고하면, 일 실시예에 따른, 전자 장치(101)는 프로세서(301), 통신 회로(303), 또는 메모리(305) 중 적어도 하나를 포함할 수 있다. 프로세서(301), 통신 회로(303), 및 메모리(305)는 통신 버스(a communication bus)에 의해 서로 전기적으로 및/또는 작동적으로 연결될 수 있다(electronically and/or operably coupled with each other). 이하에서, 하드웨어 컴포넌트들이 작동적으로 결합된 것은, 하드웨어 컴포넌트들 중 제1 하드웨어 컴포넌트에 의해 제2 하드웨어 컴포넌트가 제어되도록, 하드웨어 컴포넌트들 사이의 직접적인 연결, 또는 간접적인 연결이 유선으로, 또는 무선으로 수립된 것을 의미할 수 있다. 상이한 블록들에 기반하여 도시되었으나, 실시예가 이에 제한되는 것은 아니며, 도 3에 도시된 하드웨어 컴포넌트 중 일부분(예, 프로세서(301), 통신 회로(303), 및 메모리(305)의 적어도 일부분)이 SoC(system on a chip)와 같은 단일 집적 회로(single integrated circuit)에 포함될 수 있다. 전자 장치(101)에 포함된 하드웨어 컴포넌트의 타입 및/또는 개수는 도 3에 도시된 바에 제한되지 않는다. 예를 들어, 전자 장치(101)는 도 3에 도시된 하드웨어 컴포넌트 중 일부만 포함할 수 있다. Referring to FIG. 3, according to an embodiment, an electronic device (101) may include at least one of a processor (301), a communication circuit (303), and a memory (305). The processor (301), the communication circuit (303), and the memory (305) may be electrically and/or operably coupled with each other by a communication bus. Hereinafter, the hardware components being operably coupled may mean that a direct connection or an indirect connection is established, wired or wireless, between the hardware components such that a second hardware component is controlled by a first hardware component among the hardware components. Although illustrated based on different blocks, the embodiment is not limited thereto, and some of the hardware components illustrated in FIG. 3 (e.g., at least a portion of the processor (301), the communication circuit (303), and the memory (305)) may be included in a single integrated circuit such as a system on a chip (SoC). The type and/or number of hardware components included in the electronic device (101) are not limited to those illustrated in FIG. 3. For example, the electronic device (101) may include only some of the hardware components illustrated in FIG. 3.

일 실시예에 따른, 전자 장치(101)의 프로세서(301)는 하나 이상의 인스트럭션들에 기반하여 데이터를 처리하기 위한 하드웨어 컴포넌트를 포함할 수 있다. 데이터를 처리하기 위한 하드웨어 컴포넌트는, 예를 들어, ALU(arithmetic and logic unit), FPU(floating point unit), FPGA(field programmable gate array)를 포함할 수 있다. 일 예로, 데이터를 처리하기 위한 하드웨어 컴포넌트는, CPU(central processing unit), GPU(graphics processing unit), DSP(digital signal processing), 및/또는 NPU(neural processing unit)를 포함할 수 있다. 프로세서(301)의 개수는 하나 이상일 수 있다. 예를 들어, 프로세서(301)는 듀얼 코어(dual core), 쿼드 코어(quad core) 또는 헥사 코어(hexa core)와 같은 멀티-코어 프로세서의 구조를 가질 수 있다. 도 3의 프로세서(301)는, 도 1의 프로세서(120)를 포함할 수 있다.According to one embodiment, the processor (301) of the electronic device (101) may include a hardware component for processing data based on one or more instructions. The hardware component for processing data may include, for example, an arithmetic and logic unit (ALU), a floating point unit (FPU), and a field programmable gate array (FPGA). As an example, the hardware component for processing data may include a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processing (DSP), and/or a neural processing unit (NPU). The number of processors (301) may be one or more. For example, the processor (301) may have a multi-core processor structure such as a dual core, a quad core, or a hexa core. The processor (301) of FIG. 3 may include the processor (120) of FIG. 1.

예를 들어, 전자 장치(101)의 프로세서(301)는 다양한 처리 회로 및/또는 다수의 프로세서들을 포함할 수 있다. 예를 들어, 청구 범위를 포함하여 본 문서에 사용된 용어 "프로세서"는 적어도 하나의 프로세서를 포함하는 다양한 처리 회로를 포함할 수 있고, 상기 적어도 하나의 프로세서의 하나 이상은 분산 방식으로 개별적으로(individually) 및/또는 집합적으로(collectively) 이하에 설명된 다양한 기능들을 수행하도록 구성될 수 있다. 이하에서 사용된 바와 같이, "프로세서", "적어도 하나의 프로세서", 및 "하나 이상의 프로세서들"은 다양한 기능들을 수행하도록 구성되는 것으로 설명되는 경우, 이러한 용어들은, 예를 들어 제한되지 않고, 하나의 프로세서가 인용된 기능들 중 일부를 수행하고 다른 프로세서(들)가 인용된 기능들 중 다른 일부를 수행하는 상황들, 및 또한 하나의 프로세서가 인용된 기능들 모두를 수행할 수 있는 상황들을 포괄한다. 추가적으로, 상기 적어도 하나의 프로세서는 열거/개시된 다양한 기능들을 예를 들어, 분산된 방식으로 수행하는 프로세서들의 조합을 포함할 수 있다. 적어도 하나의 프로세서는 다양한 기능들을 달성하거나 수행하기 위해 프로그램 인스트럭션들을 실행할 수 있다.For example, the processor (301) of the electronic device (101) may include various processing circuits and/or multiple processors. For example, the term "processor" as used herein, including in the claims, may include various processing circuits including at least one processor, one or more of which may be configured to perform the various functions described below individually and/or collectively in a distributed manner. As used herein, when "processor," "at least one processor," and "one or more processors" are described as being configured to perform various functions, these terms encompass, for example and without limitation, situations where one processor performs some of the recited functions and other processor(s) perform other parts of the recited functions, and also situations where one processor may perform all of the recited functions. Additionally, the at least one processor may include a combination of processors that perform the various functions enumerated/disclosed, for example, in a distributed manner. At least one processor is capable of executing program instructions to accomplish or perform various functions.

일 실시예에 따른, 전자 장치(101)의 통신 회로(303)는, 전자 장치(101), 서버(350), 및 외부 전자 장치들(310, 320, 330) 사이의 전기 신호의 송신, 및/또는 수신을 지원하기 위한 하드웨어를 포함할 수 있다. 통신 회로(303)는, 예를 들어, 모뎀(MODEM), 안테나, O/E(optic/electronic) 변환기 중 적어도 하나를 포함할 수 있다. 통신 회로(303)는, 이더넷(ethernet), Bluetooth, BLE(Bluetooth low energy), ZigBee, LTE(long term evolution), 5G NR(new radio)와 같은 다양한 타입의 통신 수단에 기반하여, 전기 신호의 송신, 및/또는 수신을 지원할 수 있다. 도 3의 통신 회로(303)는, 도 1의 통신 모듈(190), 및/또는 안테나 모듈(197)을 포함할 수 있다. According to one embodiment, the communication circuit (303) of the electronic device (101) may include hardware for supporting transmission and/or reception of electrical signals between the electronic device (101), the server (350), and external electronic devices (310, 320, 330). The communication circuit (303) may include, for example, at least one of a modem, an antenna, and an optical/electronic (O/E) converter. The communication circuit (303) may support transmission and/or reception of electrical signals based on various types of communication means, such as Ethernet, Bluetooth, BLE (Bluetooth low energy), ZigBee, LTE (long term evolution), and 5G NR (new radio). The communication circuit (303) of FIG. 3 may include the communication module (190) and/or the antenna module (197) of FIG. 1.

일 실시예에 따른, 전자 장치(101)의 메모리(305)는, 프로세서(301)로 입력되거나, 및/또는 프로세서(301)로부터 출력되는 데이터, 및/또는 인스트럭션을 저장하기 위한 하드웨어 컴포넌트를 포함할 수 있다. 메모리(305)는, 예를 들어, RAM(random-access memory)과 같은 휘발성 메모리(volatile memory), 및/또는 ROM(read-only memory)와 같은 비휘발성 메모리(non-volatile memory)를 포함할 수 있다. 상기 휘발성 메모리는, 예를 들어, DRAM(dynamic RAM), SRAM(static RAM), Cache RAM, PSRAM (pseudo SRAM) 중 적어도 하나를 포함할 수 있다. 상기 비휘발성 메모리는, 예를 들어, PROM(programmable ROM), EPROM (erasable PROM), EEPROM (electrically erasable PROM), 플래시 메모리, 하드디스크, 컴팩트 디스크, eMMC(embedded multimedia card) 중 적어도 하나를 포함할 수 있다. 도 3의 메모리(305)는, 도 1의 메모리(130)를 포함할 수 있다.According to one embodiment, the memory (305) of the electronic device (101) may include a hardware component for storing data and/or instructions input to and/or output from the processor (301). The memory (305) may include, for example, a volatile memory such as a random-access memory (RAM), and/or a non-volatile memory such as a read-only memory (ROM). The volatile memory may include, for example, at least one of a dynamic RAM (DRAM), a static RAM (SRAM), a Cache RAM, and a pseudo SRAM (PSRAM). The non-volatile memory may include, for example, at least one of a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a flash memory, a hard disk, a compact disc, and an embedded multimedia card (eMMC). The memory (305) of Fig. 3 may include the memory (130) of Fig. 1.

도 3에서 도시되지 않았으나, 일 실시예에 따른, 전자 장치(101)는 디스플레이를 포함할 수 있다. 예를 들어, 전자 장치(101)의 상기 디스플레이는 사용자에게 시각화 된 정보를 출력할 수 있다. 전자 장치(101) 내에 포함된 상기 디스플레이의 개수는 하나 이상일 수 있다. 예를 들어, 상기 디스플레이는, 프로세서(301), 및/또는 GPU(graphic processing unit)(미도시)에 의해 제어되어, 사용자에게 시각화 된 정보(visualized information)를 출력할 수 있다. 상기 디스플레이는 FPD(flat panel display), 및/또는 전자 종이(electronic paper)를 포함할 수 있다. 상기 FPD는 LCD(liquid crystal display), PDP(plasma display panel), 디지털 미러 디바이스(digital mirror device, DMD), 하나 이상의 LED들(light emitting diodes), 및/또는 마이크로 LED를 포함할 수 있다. 상기 LED는 OLED(organic LED)를 포함할 수 있다. 상기 디스플레이는, 도 1의 디스플레이 모듈(160)을 포함할 수 있다. Although not shown in FIG. 3, according to one embodiment, the electronic device (101) may include a display. For example, the display of the electronic device (101) may output visualized information to a user. The number of displays included in the electronic device (101) may be one or more. For example, the display may be controlled by a processor (301) and/or a graphic processing unit (GPU) (not shown) to output visualized information to a user. The display may include a flat panel display (FPD) and/or electronic paper. The FPD may include a liquid crystal display (LCD), a plasma display panel (PDP), a digital mirror device (DMD), one or more light emitting diodes (LEDs), and/or micro LEDs. The LEDs may include organic LEDs (OLEDs). The display may include the display module (160) of FIG. 1.

도 3에서 도시되지 않았으나, 일 실시예에 따르면, 전자 장치(101)는 카메라를 포함할 수 있다. 상기 카메라는, 빛의 색상, 및/또는 밝기를 나타내는 전기 신호를 생성하는 광 센서(예, CCD(charged coupled device) 센서, CMOS(complementary metal oxide semiconductor) 센서)를 하나 이상 포함할 수 있다. 상기 카메라에 포함된 복수의 광 센서들은 2차원 격자(2 dimensional array)의 형태로 배치될 수 있다. 상기 카메라는 복수의 광 센서들 각각의 전기 신호를 실질적으로 동시에 획득하여, 2차원 격자의 광 센서들에 도달한 빛에 대응하고, 2차원으로 배열된 복수의 픽셀들을 포함하는 이미지를 생성할 수 있다. 또한, 도 3에서 도시되지 않았으나, 전자 장치(101)는 센서를 포함할 수 있다. 예를 들어, 상기 센서는, 적어도 하나의 센서를 포함할 수 있다. 예를 들어, 상기 센서는, 도 1의 센서 모듈(176)의 적어도 일부를 포함할 수 있다. 예를 들어, 상기 센서는, IMU(또는 IMU 센서)를 포함할 수 있다. 예를 들어, 상기 센서는, 자이로 센서, 중력 센서, 및/또는 가속도 센서를 포함할 수 있다. 예를 들어, 전자 장치(101)는, 상기 카메라 또는 상기 센서에 기반하여, 전자 장치(101)의 사용자가 서비스의 이용에 따른 입력 데이터(또는 모델의 학습을 위해 이용되는 데이터)를 획득할 수 있다. Although not shown in FIG. 3, according to one embodiment, the electronic device (101) may include a camera. The camera may include one or more optical sensors (e.g., a CCD (charged coupled device) sensor, a CMOS (complementary metal oxide semiconductor) sensor) that generate electrical signals representing the color and/or brightness of light. The plurality of optical sensors included in the camera may be arranged in the form of a two-dimensional array. The camera may acquire electrical signals of each of the plurality of optical sensors substantially simultaneously, and may generate an image corresponding to light reaching the optical sensors of the two-dimensional grid and including a plurality of pixels arranged two-dimensionally. In addition, although not shown in FIG. 3, the electronic device (101) may include a sensor. For example, the sensor may include at least one sensor. For example, the sensor may include at least a portion of the sensor module (176) of FIG. 1. For example, the sensor may include an IMU (or an IMU sensor). For example, the sensor may include a gyro sensor, a gravity sensor, and/or an acceleration sensor. For example, the electronic device (101) may obtain input data (or data used for learning a model) according to the use of a service by a user of the electronic device (101) based on the camera or the sensor.

또한, 도 3에서 도시되지 않았으나, 일 실시예에 따른, 전자 장치(101)는 정보를 시각화한 형태 외에 다른 형태로 출력하기 위한 출력 수단을 포함할 수 있다. 예를 들어, 전자 장치(101)는 음성 신호(acoustic signal)를 출력하기 위한 스피커를 포함할 수 있다. 예를 들어, 전자 장치(101)는 진동에 기반하는 햅틱 피드백을 제공하기 위한 모터를 포함할 수 있다.In addition, although not shown in FIG. 3, the electronic device (101) according to one embodiment may include an output means for outputting information in a form other than a visualized form. For example, the electronic device (101) may include a speaker for outputting an acoustic signal. For example, the electronic device (101) may include a motor for providing haptic feedback based on vibration.

도 3을 참조하면, 일 실시예를 따른, 전자 장치(101)의 메모리(305) 내에서, 전자 장치(101)의 프로세서(301)가 데이터에 수행할 연산, 및/또는 동작을 나타내는 하나 이상의 인스트럭션들(또는 명령어들)이 저장될 수 있다. 하나 이상의 인스트럭션들의 집합은, 프로그램, 펌웨어, 운영 체제, 프로세스, 루틴, 서브-루틴 및/또는 어플리케이션으로 참조될 수 있다. 이하에서, 어플리케이션이 전자 장치(예, 전자 장치(101)) 내에 설치되었다는 것은, 어플리케이션의 형태로 제공된 하나 이상의 인스트럭션들이 메모리(305) 내에 저장된 것으로써, 상기 하나 이상의 어플리케이션들이 전자 장치의 프로세서에 의해 실행 가능한(executable) 포맷(예, 전자 장치(101)의 운영 체제에 의해 지정된 확장자를 가지는 파일)으로 저장된 것을 의미할 수 있다. 일 실시예에 따른, 전자 장치(101)는 메모리(305)에 저장된 하나 이상의 인스트럭션들을 실행하여, 도 4 또는 도 6의 동작을 수행할 수 있다.Referring to FIG. 3, according to one embodiment, in the memory (305) of the electronic device (101), one or more instructions (or commands) representing operations and/or actions to be performed on data by the processor (301) of the electronic device (101) may be stored. A set of one or more instructions may be referred to as a program, firmware, an operating system, a process, a routine, a sub-routine, and/or an application. Hereinafter, when an application is installed in the electronic device (e.g., the electronic device (101)), it may mean that one or more instructions provided in the form of an application are stored in the memory (305), and that the one or more applications are stored in a format executable by the processor of the electronic device (e.g., a file having an extension specified by the operating system of the electronic device (101)). According to one embodiment, the electronic device (101) may execute one or more instructions stored in the memory (305) to perform the operation of FIG. 4 or FIG. 6.

도 3을 참고하면, 전자 장치(101)에 설치된 프로그램들은, 타겟에 기반하여, 어플리케이션 계층, 프레임워크 계층 및/또는 하드웨어 추상화 계층(hardware abstraction layer, HAL)을 포함하는 상이한 계층들 중 어느 한 계층으로 분류될 수 있다. 예를 들어, 상기 하드웨어 추상화 계층 내에, 전자 장치(101)의 하드웨어(예: 통신 회로(303), 상기 디스플레이, 상기 센서)를 타겟으로 설계된 프로그램들(예, 드라이버)이 분류될 수 있다. 예를 들어, 상기 프레임워크 계층 내에, 상기 하드웨어 추상화 계층 및/또는 상기 어플리케이션 계층 중 적어도 하나를 타겟으로 설계된 프로그램들(예, 유사도 판별 모듈(305-1), 모델 훈련 모듈(305-2), 및/또는 서비스 제공 모듈(305-3))이 분류될 수 있다. 상기 프레임워크 계층으로 분류되는 프로그램들은, 다른 프로그램에 기반하여 실행가능한 API(application programming interface)를 제공할 수 있다.Referring to FIG. 3, programs installed in the electronic device (101) may be classified into one of different layers including an application layer, a framework layer, and/or a hardware abstraction layer (HAL) based on a target. For example, programs (e.g., drivers) designed to target hardware (e.g., communication circuit (303), the display, the sensor) of the electronic device (101) may be classified within the hardware abstraction layer. For example, programs (e.g., similarity determination module (305-1), model training module (305-2), and/or service provision module (305-3)) designed to target at least one of the hardware abstraction layer and/or the application layer may be classified within the framework layer. Programs classified into the framework layer may provide an executable API (application programming interface) based on other programs.

예를 들어, 상기 어플리케이션 계층 내에, 전자 장치(101)를 제어하는 사용자를 타겟으로 설계된 프로그램이 분류될 수 있다. 예를 들어, 상기 어플리케이션 계층으로 분류되는 프로그램은, 상기 사용자에게 서비스를 제공하는 어플리케이션을 포함할 수 있다. 그러나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 상기 어플리케이션 계층으로 분류되는 프로그램은, API를 호출하여, 상기 프레임워크 계층으로 분류되는 프로그램들에 의해 지원되는 기능의 실행을 야기할 수 있다.For example, within the application layer, a program designed to target a user controlling an electronic device (101) may be classified. For example, a program classified into the application layer may include an application that provides a service to the user. However, the embodiment of the present disclosure is not limited thereto. For example, a program classified into the application layer may call an API to cause execution of a function supported by programs classified into the framework layer.

도 3을 참조하면, 일 실시예에 따른 전자 장치(101)는, 유사도 판별 모듈(305-1)의 실행에 기반하여, 전자 장치(101)의 모델 및 외부 전자 장치로부터 획득된 모델 사이의 유사도를 판별할(discriminate) 수 있다. 예를 들어, 전자 장치(101)는, 서버(350)로부터 기준 모델을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델로부터 전자 장치(101)의 사용자에 의해 획득된 입력 데이터를 이용하여 제1 모델을 생성(또는, 학습, 업데이트)할 수 있다. 예를 들어, 상기 제1 모델은, 상기 기준 모델로부터, 서비스를 이용하는 동안 획득된 상기 입력 데이터를 이용하여 학습된 상기 서비스를 위한 모델일 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 지시하는 제1 정보를 서버(350)에게 제공할 수 있다. 예를 들어, 서버(350)는, 상기 서비스를 이용하는 외부 전자 장치를 지시하는 제2 정보를 전자 장치(101)에게 제공할 수 있다. 설명의 편의를 위하여 상기 외부 전자 장치는 외부 전자 장치(310) 및 외부 전자 장치(320)인 경우를 가정한다. 예를 들어, 전자 장치(101)는, 외부 전자 장치(310) 및 외부 전자 장치(320)를 지시하는 상기 제2 정보에 기반하여 외부 전자 장치(310)와 연결을 수립하고, 외부 전자 장치(310)로부터 상기 서비스를 위한 외부 전자 장치(310)의 제2 모델을 획득할 수 있다. 예를 들어, 상기 제2 모델은, 상기 기준 모델로부터 외부 전자 장치(310)에 의해 학습된 상기 서비스를 위한 모델일 수 있다. 또한, 예를 들어, 전자 장치(101)는, 외부 전자 장치(310) 및 외부 전자 장치(320)를 지시하는 상기 제2 정보에 기반하여 외부 전자 장치(320)와 연결을 수립하고, 외부 전자 장치(320)로부터 상기 서비스를 위한 외부 전자 장치(320)의 제3 모델을 획득할 수 있다. 예를 들어, 상기 제3 모델은, 상기 기준 모델로부터 외부 전자 장치(320)에 의해 학습된 상기 서비스를 위한 모델일 수 있다. Referring to FIG. 3, an electronic device (101) according to an embodiment may discriminate the similarity between a model of the electronic device (101) and a model acquired from an external electronic device based on the execution of a similarity determination module (305-1). For example, the electronic device (101) may acquire a reference model from a server (350). For example, the electronic device (101) may generate (or learn, update) a first model by using input data acquired by a user of the electronic device (101) from the reference model. For example, the first model may be a model for the service learned by using the input data acquired while using the service from the reference model. For example, the electronic device (101) may provide first information indicating the service to the server (350). For example, the server (350) may provide second information indicating an external electronic device that uses the service to the electronic device (101). For convenience of explanation, it is assumed that the external electronic devices are the external electronic device (310) and the external electronic device (320). For example, the electronic device (101) can establish a connection with the external electronic device (310) based on the second information indicating the external electronic device (310) and the external electronic device (320), and obtain a second model of the external electronic device (310) for the service from the external electronic device (310). For example, the second model can be a model for the service learned by the external electronic device (310) from the reference model. In addition, for example, the electronic device (101) can establish a connection with the external electronic device (320) based on the second information indicating the external electronic device (310) and the external electronic device (320), and obtain a third model of the external electronic device (320) for the service from the external electronic device (320). For example, the third model may be a model for the service learned by an external electronic device (320) from the reference model.

일 실시예에 따르면, 전자 장치(101)는, 전자 장치(101)의 모델과 외부 전자 장치의 모델 사이의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 전자 장치(101)의 모델과 외부 전자 장치의 모델을 직접적으로 비교하거나, 전자 장치(101)의 모델과 외부 전자 장치의 모델 각각에게 기준 데이터를 입력하고 이에 따른 출력을 비교함으로써, 상기 유사도를 판별할 수 있다. According to one embodiment, the electronic device (101) can determine the similarity between a model of the electronic device (101) and a model of an external electronic device. For example, the electronic device (101) can determine the similarity by directly comparing the model of the electronic device (101) and the model of the external electronic device, or by inputting reference data to each of the model of the electronic device (101) and the model of the external electronic device and comparing the outputs thereof.

예를 들어, 전자 장치(101)는, 전자 장치(101)의 모델을 구성하는 벡터 값들과 외부 전자 장치의 모델을 구성하는 벡터 값들 사이를 직접 비교할 수 있다. 상술한 바와 같은 모델들 간의 비교는 이하의 수학식이 참조될 수 있다.For example, the electronic device (101) can directly compare vector values constituting a model of the electronic device (101) with vector values constituting a model of an external electronic device. The comparison between the models as described above can be referred to by the following mathematical formula.

Figure PCTKR2024012619-appb-img-000001
Figure PCTKR2024012619-appb-img-000001

상기 D는 모델들 간의 유사도를 나타내는 차이(difference)를, 상기 W1은 전자 장치(101)의 모델의 벡터 값들을, 상기 W2는 외부 전자 장치의 모델의 벡터 값들을, 및 상기 f는 상기 유사도를 측정하기 위한 함수를 나타낼 수 있다. 예를 들어, 상기 f는 코사인 거리(cosine distance) 함수, 유클라디안 거리(Euclidean distance) 함수, 맨하탄 거리(Manhattan distance) 함수, 상관(correlation) 함수, 또는 내적(inner product) 함수를 포함할 수 있다. The above D may represent a difference indicating a similarity between models, the W 1 may represent vector values of a model of an electronic device (101), the W 2 may represent vector values of a model of an external electronic device, and the f may represent a function for measuring the similarity. For example, the f may include a cosine distance function, a Euclidean distance function, a Manhattan distance function, a correlation function, or an inner product function.

또는, 예를 들어, 전자 장치(101)는, 전자 장치(101)의 모델 및 외부 전자 장치의 모델 각각에게 기준 데이터를 입력하고, 출력된 결과를 비교함으로써, 전자 장치(101)의 모델 및 외부 전자 장치의 모델 사이의 유사도를 판별할 수 있다. 예를 들어, 상기 기준 데이터를 이용하여 유사도를 판별하는 방식은 TC(test case) 방식으로 참조될 수 있다. 상술한 바와 같은 상기 TC 방식을 이용한 비교는 이하의 수학식이 참조될 수 있다.Alternatively, for example, the electronic device (101) may input reference data to each of a model of the electronic device (101) and a model of an external electronic device, and compare the output results to determine the similarity between the model of the electronic device (101) and the model of the external electronic device. For example, a method of determining the similarity using the reference data may be referred to as a TC (test case) method. The comparison using the TC method as described above may be referred to by the following mathematical equation.

Figure PCTKR2024012619-appb-img-000002
Figure PCTKR2024012619-appb-img-000002

상기 D는 모델들 간의 유사도를 나타내는 차이(difference)를, 상기 α1은 전자 장치(101)의 모델에 의한 추론 함수(interference function)(M1(t))의 값(즉, α1=M1(t)이고, t는 상기 기준 데이터 값)을, 상기 α2은 외부 전자 장치의 모델의 추론 함수(M2(t))의 값(즉, α2=M2(t)이고, t는 상기 기준 데이터 값)을, 및 상기 f는 상기 유사도를 측정하기 위한 함수를 나타낼 수 있다. 예를 들어, 상기 f는 코사인 거리(cosine distance) 함수, 유클라디안 거리(Euclidean distance) 함수, 맨하탄 거리(Manhattan distance) 함수, 상관(correlation) 함수, 또는 내적(inner product) 함수를 포함할 수 있다. The above D may represent a difference indicating a similarity between models, the α 1 may represent a value of an interference function (M 1 (t)) by a model of the electronic device (101) (i.e., α 1 =M 1 (t) and t is the reference data value), the α 2 may represent a value of an interference function (M 2 (t)) of a model of an external electronic device (i.e., α 2 =M 2 (t) and t is the reference data value), and the f may represent a function for measuring the similarity. For example, the f may include a cosine distance function, a Euclidean distance function, a Manhattan distance function, a correlation function, or an inner product function.

상기 모델들 간의 비교를 통해 유사도를 판별하는 방법은, 이하의 예시가 참조될 수 있다. 예를 들어, 전자 장치(101)는, 전자 장치(101)의 모델을 구성하는 벡터 값들과 외부 전자 장치의 모델을 구성하는 벡터 값들 사이의 차이를 나타내는 거리 값들을 계산할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델을 구성하는 제1 벡터 값들과 상기 제2 모델을 구성하는 제2 벡터 값들 사이의 차이를 나타내는 제1 거리 값들을 계산할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 벡터 값들을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제2 벡터 값들을 획득할 수 있다. 예를 들어, 상기 제1 벡터 값들은, [0.1223, 0.4864, 1.4133, 8.1531, ...]일 수 있다. 예를 들어, 상기 제2 벡터 값들은, [0.8997, 2.1253, 4.0011, 0.1113, ...]일 수 있다. 전자 장치(101)는, 상기 제1 벡터 값들과 상기 제2 벡터 값들 사이의 차이를 나타내는 제1 거리 값들을 계산할 수 있다. 예를 들어, 상기 제1 거리 값들은, [0.7774, 1.6389, 2.5878, 8.0418, ...]일 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 거리 값들을 상기 제1 모델과 상기 제2 모델 사이의 상기 유사도를 판단하기 위한 차이로 계산할 수 있다. 또한, 예를 들어, 전자 장치(101)는, 상기 제1 모델을 구성하는 상기 제1 벡터 값들과 상기 제3 모델을 구성하는 제3 벡터 값들 사이의 차이를 나타내는 제2 거리 값들을 계산할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제3 벡터 값들을 획득할 수 있다. 상기 제3 벡터 값들은, [0.1664, 0.2844, 2,0053, 8.0003, ...]일 수 있다. 전자 장치(101)는, 상기 제1 벡터 값들과 상기 제3 벡터 값들 사이의 차이를 나타내는 상기 제2 거리 값들을 계산할 수 있다. 예를 들어, 상기 제2 거리 값들은, [0.0441, 0.202, 0.592, 0.1528, ...]일 수 있다. 예를 들어, 전자 장치(101)는, 상기 제2 거리 값들을 상기 제1 모델과 상기 제3 모델 사이의 상기 유사도를 판단하기 위한 차이로 계산할 수 있다. The method for determining the similarity through comparison between the above models may refer to the following examples. For example, the electronic device (101) may calculate distance values representing the difference between vector values constituting the model of the electronic device (101) and vector values constituting the model of the external electronic device. For example, the electronic device (101) may calculate first distance values representing the difference between first vector values constituting the first model and second vector values constituting the second model. For example, the electronic device (101) may obtain the first vector values. For example, the electronic device (101) may obtain the second vector values. For example, the first vector values may be [0.1223, 0.4864, 1.4133, 8.1531, ...]. For example, the second vector values may be [0.8997, 2.1253, 4.0011, 0.1113, ...]. The electronic device (101) may calculate first distance values representing a difference between the first vector values and the second vector values. For example, the first distance values may be [0.7774, 1.6389, 2.5878, 8.0418, ...]. For example, the electronic device (101) may calculate the first distance values as a difference for determining the similarity between the first model and the second model. In addition, for example, the electronic device (101) may calculate second distance values representing a difference between the first vector values constituting the first model and third vector values constituting the third model. For example, the electronic device (101) may obtain the third vector values. The third vector values may be [0.1664, 0.2844, 2,0053, 8.0003, ...]. The electronic device (101) may calculate the second distance values representing the difference between the first vector values and the third vector values. For example, the second distance values may be [0.0441, 0.202, 0.592, 0.1528, ...]. For example, the electronic device (101) may calculate the second distance values as the difference for determining the similarity between the first model and the third model.

또는, 상기 TC를 이용한 비교를 통해 유사도를 판별하는 방법은, 이하의 예시가 참조될 수 있다. 전자 장치(101)가 음성 인식 서비스를 제공하는 경우가 가정된다. 예를 들어, 전자 장치(101)는, 기준 데이터(예: "안녕하세요.")를 전자 장치(101)의 모델 및 외부 전자 장치의 모델 각각에게 입력할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 데이터로부터 전자 장치(101)의 모델에 기반한 기준 벡터 값들 및 상기 기준 데이터로부터 외부 전자 장치(101)의 모델에 기반한 기준 벡터 값들을 계산할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 데이터로부터 상기 제1 모델에 기반한 제1 기준 벡터 값들, 상기 제2 모델에 기반한 제2 기준 벡터 값들, 및 상기 제3 모델에 기반한 제3 기준 벡터 값들을 계산할 수 있다. 예를 들어, 상기 제1 기준 벡터 값들은, [0.1336, 0.5808, 1.6322, 8.3521, ...]일 수 있다. 예를 들어, 상기 제2 기준 벡터 값들은, [0.9999, 2.2311, 4.1101, 0.2131, ...]일 수 있다. 예를 들어, 상기 제3 기준 벡터 값들은, [0.2541, 0.3991, 2.1911, 8.1019, ...]일 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 기준 벡터 값들과 상기 제2 기준 벡터 값들 사이의 차이를 나타내는 상기 제1 거리 값들을 계산할 수 있다. 예를 들어, 상기 제1 거리 값들은, [0.8663, 1.6503, 2.4779, 8.139, ...]일 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 거리 값들을 상기 제1 모델과 상기 제2 모델 사이의 상기 유사도를 판단하기 위한 차이로 계산할 수 있다. 또한, 전자 장치(101)는, 상기 제1 기준 벡터 값들과 상기 제3 기준 벡터 값들 사이의 차이를 나타내는 상기 제2 거리 값들을 계산할 수 있다. 예를 들어, 상기 제2 거리 값들은, [0.1205, 0.1817, 0.5589, 0.2502, ...]일 수 있다. 예를 들어, 전자 장치(101)는, 상기 제2 거리 값들을 상기 제1 모델과 상기 제3 모델 사이의 상기 유사도를 판단하기 위한 차이로 계산할 수 있다. Alternatively, a method for determining similarity through comparison using the TC may refer to the following example. It is assumed that the electronic device (101) provides a voice recognition service. For example, the electronic device (101) may input reference data (e.g., “Hello.”) to each of a model of the electronic device (101) and a model of an external electronic device. For example, the electronic device (101) may calculate reference vector values based on the model of the electronic device (101) from the reference data and reference vector values based on the model of the external electronic device (101) from the reference data. For example, the electronic device (101) may calculate first reference vector values based on the first model, second reference vector values based on the second model, and third reference vector values based on the third model from the reference data. For example, the first reference vector values can be [0.1336, 0.5808, 1.6322, 8.3521, ...]. For example, the second reference vector values can be [0.9999, 2.2311, 4.1101, 0.2131, ...]. For example, the third reference vector values can be [0.2541, 0.3991, 2.1911, 8.1019, ...]. For example, the electronic device (101) can calculate the first distance values representing the difference between the first reference vector values and the second reference vector values. For example, the first distance values can be [0.8663, 1.6503, 2.4779, 8.139, ...]. For example, the electronic device (101) can calculate the first distance values as differences for determining the similarity between the first model and the second model. In addition, the electronic device (101) can calculate the second distance values representing differences between the first reference vector values and the third reference vector values. For example, the second distance values can be [0.1205, 0.1817, 0.5589, 0.2502, ...]. For example, the electronic device (101) can calculate the second distance values as differences for determining the similarity between the first model and the third model.

예를 들어, 전자 장치(101)는, 상기 거리 값들에 기반하여, 차이를 계산할 수 있다. 예를 들어, 전자 장치(101)는, 상기 거리 값들의 대푯값(예: 평균값)을 이용하여, 상기 차이를 계산할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제2 모델 사이의 상기 차이를 5.1296으로 계산할 수 있다. 또한, 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제3 모델 사이의 상기 차이를 0.2136으로 계산할 수 있다. 상기 예에서는, 모델들 간의 상기 차이를 계산하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 상기 TC를 이용한 비교에 기반한 상기 차이를 계산할 수도 있다. 예를 들어, 전자 장치(101)는, 상기 차이가 상기 기준 값(예: 1) 미만인지 여부를 결정할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 이상임을 결정할 수 있고, 상기 제1 모델과 상기 제3 모델 사이의 상기 차이가 상기 기준 값 미만임을 결정할 수 있다. 이에 따라, 전자 장치(101)는, 상기 제1 모델의 학습을 위해 상기 제3 모델을 이용할 수 있다. For example, the electronic device (101) can calculate the difference based on the distance values. For example, the electronic device (101) can calculate the difference using a representative value (e.g., an average value) of the distance values. For example, the electronic device (101) can calculate the difference between the first model and the second model as 5.1296. Also, for example, the electronic device (101) can calculate the difference between the first model and the third model as 0.2136. In the above example, an example of calculating the difference between models is described, but the embodiments of the present disclosure are not limited thereto. For example, the electronic device (101) can also calculate the difference based on a comparison using the TC. For example, the electronic device (101) can determine whether the difference is less than the reference value (e.g., 1). For example, the electronic device (101) may determine that the difference between the first model and the second model is greater than or equal to the reference value, and may determine that the difference between the first model and the third model is less than the reference value. Accordingly, the electronic device (101) may utilize the third model for learning the first model.

상기 예에서는, 전자 장치(101)가 외부 전자 장치로부터 획득된 모델에 기반하여 상기 유사도를 판별하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 일 실시예에 따르면, 전자 장치(101)는, 외부 전자 장치에게 전자 장치(101)의 모델(예: 상기 제1 모델)과 함께 상기 외부 전자 장치의 모델을 요청하는 신호를 전송할 수 있다. 이에 응답하여, 상기 외부 전자 장치는, 상기 외부 전자 장치의 모델(예: 상기 제2 모델)과 전자 장치(101)의 모델(예: 상기 제1 모델) 사이의 유사도 판별을 수행할 수 있다. 이 때, 상기 외부 전자 장치는, 상기 외부 전자 장치의 모델(예: 상기 제2 모델)과 전자 장치(101)의 모델(예: 상기 제1 모델)이 유사하다고 결정한 경우, 상기 외부 전자 장치의 모델(예: 상기 제2 모델)을 전자 장치(101)에게 제공할 수 있다. 이 후, 전자 장치(101)는, 상기 외부 전자 장치의 모델(예: 상기 제2 모델)을 이용하여 전자 장치(101)의 모델(예: 상기 제1 모델)로부터 새로운 모델을 생성(또는, 학습, 훈련, 업데이트)할 수 있다. In the above example, an example is described in which the electronic device (101) determines the similarity based on a model acquired from an external electronic device, but the embodiments of the present disclosure are not limited thereto. According to one embodiment, the electronic device (101) may transmit a signal requesting the model of the external electronic device together with the model of the electronic device (101) (e.g., the first model). In response, the external electronic device may perform a similarity determination between the model of the external electronic device (e.g., the second model) and the model of the electronic device (101) (e.g., the first model). At this time, if the external electronic device determines that the model of the external electronic device (e.g., the second model) and the model of the electronic device (101) (e.g., the first model) are similar, the external electronic device may provide the model of the external electronic device (e.g., the second model) to the electronic device (101). Thereafter, the electronic device (101) can create (or learn, train, update) a new model from a model of the electronic device (101) (e.g., the first model) using a model of the external electronic device (e.g., the second model).

도 3을 참조하면, 일 실시예에 따른 전자 장치(101)는, 모델 훈련 모듈(305-2)의 실행에 기반하여, 전자 장치(101)의 모델을 훈련할 수 있다. 예를 들어, 전자 장치(101)는, 서버(350)로부터 획득된 상기 기준 모델로부터 사용자에 의한 입력 데이터를 이용하여 새로운 모델을 생성(또는, 훈련, 적응 훈련, 학습, 업데이트)할 수 있다. 또는, 전자 장치(101)는, 상기 기준 모델로부터 생성된 모델로부터 외부 전자 장치(예: 외부 전자 장치(310))로부터 획득된 모델을 이용하여 새로운 모델을 생성(또는, 훈련, 적응 훈련, 학습, 업데이트)할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제3 모델을 이용하여, 상기 제1 모델로부터 제4 모델을 생성할 수 있다. 예를 들어, 상기 제4 모델은, 상기 제1 모델에 기반하여 제공되는 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제4 모델은, 상기 제1 모델의 상기 제1 벡터 값들 및 상기 제2 모델의 상기 제2 벡터 값들 사이의 평균에 기반하여 생성될 수 있다. 예를 들어, 상기 제1 벡터 값들은, [0.1223, 0.4864, 1.4133, 8.1531, ...]이고, 상기 제3 벡터 값들은, [0.1664, 0.2844, 2,0053, 8.0003, ...]인 경우를 가정한다. 예를 들어, 상기 제4 모델을 구성하는 제4 벡터 값들은, [0.1444, 0.3854, 1.7093, 8.0767, ...]일 수 있다. 다시 말해서, 상기 제4 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제3 벡터 값들 각각의 평균을 나타낼 수 있다. 상기 예에서는, 상기 제1 모델에 대하여 하나의 상기 제2 모델을 이용하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 상기 제1 모델에 대하여 복수의 모델들이 병합될 수도 있다. 또한, 상기 예에서는, 평균에 기반하여 모델들을 병합함으로써, 새로운 모델(예: 상기 제4 모델)을 생성(또는, 획득, 업데이트)하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. Referring to FIG. 3, an electronic device (101) according to an embodiment may train a model of the electronic device (101) based on the execution of the model training module (305-2). For example, the electronic device (101) may generate (or train, adaptively train, learn, update) a new model using input data by a user from the reference model acquired from the server (350). Alternatively, the electronic device (101) may generate (or train, adaptively train, learn, update) a new model using a model acquired from an external electronic device (e.g., the external electronic device (310)) from a model generated from the reference model. For example, the electronic device (101) may generate a fourth model from the first model using the third model. For example, the fourth model may be a model for the service provided based on the first model. For example, the fourth model can be generated based on an average between the first vector values of the first model and the second vector values of the second model. For example, it is assumed that the first vector values are [0.1223, 0.4864, 1.4133, 8.1531, ...], and the third vector values are [0.1664, 0.2844, 2,0053, 8.0003, ...]. For example, the fourth vector values constituting the fourth model can be [0.1444, 0.3854, 1.7093, 8.0767, ...]. In other words, each of the fourth vector values can represent an average of each of the first vector values and each of the third vector values. In the above example, an example is described of using one second model for the first model, but the embodiment of the present disclosure is not limited thereto. For example, a plurality of models may be merged for the first model. In addition, in the above example, an example is described of creating (or obtaining, updating) a new model (e.g., the fourth model) by merging models based on an average, but the embodiment of the present disclosure is not limited thereto.

도 3을 참조하면, 전자 장치(101)는, 서비스 제공 모듈(305-3)을 이용하여, 모델을 이용한 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델로부터 상기 입력 데이터에 기반하여 학습된 상기 제1 모델을 이용하여 상기 서비스를 제공할 수 있다. 또는, 예를 들어, 전자 장치(101)는, 상기 제1 모델로부터 상기 제3 모델에 기반하여 생성된 상기 제4 모델을 이용하여 상기 서비스를 제공할 수 있다. 예를 들어, 서비스 제공 모듈(305-3)은, 인퍼런서(inferencer)로 참조될 수 있다. Referring to FIG. 3, the electronic device (101) can provide a service using a model by using the service providing module (305-3). For example, the electronic device (101) can provide the service by using the first model learned based on the input data from the reference model. Or, for example, the electronic device (101) can provide the service by using the fourth model generated based on the third model from the first model. For example, the service providing module (305-3) can be referred to as an inferencer.

도 3의 예에서는, 외부 전자 장치들(310, 320, 330) 각각은 전자 장치(101)의 구성요소들(예: 프로세서(301), 통신 회로(303), 및 메모리(305))를 실질적으로 동일하게 포함할 수 있다. 예를 들어, 외부 전자 장치(310)는, 프로세서, 통신 회로, 및 메모리를 포함할 수 있다. 예를 들어, 외부 전자 장치(320)는, 프로세서, 통신 회로, 및 메모리를 포함할 수 있다. 예를 들어, 외부 전자 장치(330)는, 프로세서, 통신 회로, 및 메모리를 포함할 수 있다. 상기 프로세서, 상기 통신 회로, 및 상기 메모리 각각에 대한 설명은, 프로세서(301), 통신 회로(303), 및 메모리(305)에 대한 설명이 실질적으로 동일하게 적용될 수 있다.In the example of FIG. 3, each of the external electronic devices (310, 320, 330) may include substantially the same components of the electronic device (101) (e.g., the processor (301), the communication circuit (303), and the memory (305)). For example, the external electronic device (310) may include a processor, a communication circuit, and a memory. For example, the external electronic device (320) may include a processor, a communication circuit, and a memory. For example, the external electronic device (330) may include a processor, a communication circuit, and a memory. The description of each of the processor, the communication circuit, and the memory may be substantially the same as the description of the processor (301), the communication circuit (303), and the memory (305).

도 3을 참조하면, 서버(350)는, 프로세서(351), 통신 회로(353), 메모리(355)를 포함할 수 있다. 프로세서(351), 통신 회로(353), 및 메모리(355) 각각에 대한 설명은, 프로세서(301), 통신 회로(303), 및 메모리(305)에 대한 설명이 실질적으로 동일하게 적용될 수 있다. 예를 들어, 서버(350)는, 특정 서비스와 연관될 수 있다. 예를 들어, 상기 특정 서비스는 도메인(domain)을 포함할 수 있다. Referring to FIG. 3, the server (350) may include a processor (351), a communication circuit (353), and a memory (355). The description of each of the processor (351), the communication circuit (353), and the memory (355) may be substantially identical to the description of the processor (301), the communication circuit (303), and the memory (305). For example, the server (350) may be associated with a specific service. For example, the specific service may include a domain.

일 실시예에 따르면, 서버(350)의 메모리(355)는, 기준 모델 생성 모듈(355-1)을 포함할 수 있다. 예를 들어, 서버(350)는, 기준 모델 생성 모듈(355-1)에 기반하여, FL을 위한 기준 모델을 생성(또는 훈련)하고 저장할 수 있다. 예를 들어, 서버(350)는, 상기 기준 모델을 전자 장치(101) 또는 외부 전자 장치들(310, 320, 330)이 다운로드할 시, 이용될 API(application programming interface)를 포함할 수 있다. 예를 들어, 상기 API는 rest API를 포함할 수 있다. According to one embodiment, the memory (355) of the server (350) may include a reference model generation module (355-1). For example, the server (350) may generate (or train) and store a reference model for FL based on the reference model generation module (355-1). For example, the server (350) may include an application programming interface (API) to be used when the electronic device (101) or external electronic devices (310, 320, 330) downloads the reference model. For example, the API may include a rest API.

도 4는, 일 실시예에 따른, P2P에 기반하여 개인화된 모델을 생성하는 방법에 대한 신호 흐름의 예를 도시한다.FIG. 4 illustrates an example of a signal flow for a method of generating a personalized model based on P2P, according to one embodiment.

도 4의 전자 장치(101)는, 도 3의 전자 장치(101)의 일 예일 수 있다. 도 4의 외부 전자 장치(310)는, 도 3의 외부 전자 장치(310)의 일 예일 수 있다. 도 4의 서버(350)는, 도 3의 서버(350)의 일 예일 수 있다. 도 4의 예에서는, 하나의 외부 전자 장치(310)를 통해 상기 P2P에 기반하여 개인화된 모델을 생성하는 방법에 대한 예가 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 본 개시의 실시예들은, 복수의 외부 전자 장치들을 통해 상기 P2P에 기반하여 개인화된 모델을 생성하는 방법을 포함할 수 있다. The electronic device (101) of FIG. 4 may be an example of the electronic device (101) of FIG. 3. The external electronic device (310) of FIG. 4 may be an example of the external electronic device (310) of FIG. 3. The server (350) of FIG. 4 may be an example of the server (350) of FIG. 3. In the example of FIG. 4, an example of a method for generating a personalized model based on the P2P through one external electronic device (310) is illustrated, but the embodiments of the present disclosure are not limited thereto. For example, the embodiments of the present disclosure may include a method for generating a personalized model based on the P2P through a plurality of external electronic devices.

도 4를 참조하면, 동작(400)에서, 서버(350)는, 기준 모델을 생성할 수 있다. 예를 들어, 서버(350)는, FL을 위한 상기 기준 모델을 생성할 수 있다. 예를 들어, 서버(350)는, 생성된 상기 기준 모델을 저장할 수 있다. 예를 들어, 상기 기준 모델은, 전자 장치(101)에 의해 제공되는 서비스를 위한 모델일 수 있다. Referring to FIG. 4, in operation (400), the server (350) can generate a reference model. For example, the server (350) can generate the reference model for FL. For example, the server (350) can store the generated reference model. For example, the reference model can be a model for a service provided by the electronic device (101).

동작(405)에서, 서버(350)는, 상기 기준 모델을 전송할 수 있다. 예를 들어, 서버(350)는, 상기 FL을 위하여 복수의 전자 장치들과 연결을 수립할 수 있다. 예를 들어, 서버(350)는, 전자 장치(101)와 연결을 수립할 수 있다. 예를 들어, 서버(350)는, 외부 전자 장치(310)와 연결을 수립할 수 있다. 예를 들어, 서버(350)는, 연결이 수립된 전자 장치(101) 및 외부 전자 장치(101) 각각에게 상기 기준 모델을 전송할 수 있다. In operation (405), the server (350) can transmit the reference model. For example, the server (350) can establish a connection with a plurality of electronic devices for the FL. For example, the server (350) can establish a connection with the electronic device (101). For example, the server (350) can establish a connection with an external electronic device (310). For example, the server (350) can transmit the reference model to each of the electronic device (101) and the external electronic device (101) with which the connection is established.

동작(410)에서, 전자 장치(101)는, 입력 데이터를 획득(또는 수집)할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 사용자의 상기 입력 데이터를 획득할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자가 전자 장치(101)에 대하여 수행하는 입력을 포함할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자의 발화, 상기 사용자의 터치 입력, 또는, 상기 사용자의 사용 기록을 포함할 수 있다. 다만, 본 개시의 실시예가 이에 제한되는 것은 아니다. In operation (410), the electronic device (101) may obtain (or collect) input data. For example, the electronic device (101) may obtain the user's input data for the service. For example, the input data may include an input performed by the user to the electronic device (101). For example, the input data may include the user's utterance, the user's touch input, or the user's usage history. However, the embodiments of the present disclosure are not limited thereto.

일 실시예에 따르면, 상기 입력 데이터는, 상기 사용자가 상기 서비스를 이용하는 동안 획득될 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델을 이용하여 상기 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델을 이용하여, 상기 입력 데이터로부터 출력 데이터를 생성할 수 있다. 상기 출력 데이터는, 상기 서비스를 제공하기 위해 이용될 수 있다. 상기 기준 모델을 이용하여 상기 서비스가 제공되는 동안, 전자 장치(101)는, 상기 입력 데이터를 획득할 수 있다. According to one embodiment, the input data can be acquired while the user uses the service. For example, the electronic device (101) can provide the service using the reference model. For example, the electronic device (101) can generate output data from the input data using the reference model. The output data can be used to provide the service. While the service is provided using the reference model, the electronic device (101) can acquire the input data.

동작(415)에서, 전자 장치(101)는, 제1 모델을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델로부터, 상기 입력 데이터를 이용하여 상기 제1 모델을 생성(또는, 훈련, 적응 훈련, 학습, 업데이트)할 수 있다. 예를 들어, 상기 제1 모델은, 상기 서비스를 위한 모델일 수 있다. In operation (415), the electronic device (101) may generate a first model. For example, the electronic device (101) may generate (or train, adaptively train, learn, update) the first model using the input data from the reference model. For example, the first model may be a model for the service.

동작(420)에서, 전자 장치(101)는, 제1 정보를 전송할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 지시하는 상기 제1 정보를 서버(350)에게 전송할 수 있다. 예를 들어, 상기 서비스를 지시하는 상기 제1 정보는, 상기 서비스의 이름 또는 식별 정보 중 적어도 하나를 포함할 수 있다. 예를 들어, 상기 서비스가 특정 소프트웨어 어플리케이션에 기반하여 제공되는 서비스인 경우, 상기 특정 소프트웨어 어플리케이션의 이름 또는 식별 정보 중 적어도 하나를 포함할 수 있다. 상기 예에서, 전자 장치(101)는, 상기 서비스를 지시하는 상기 제1 정보를 서버(350)에게 전송하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 상기 제1 정보와 함께 전자 장치(101)의 위치 정보를 서버(350)에게 전송할 수 있다. 예를 들어, 전자 장치(101)의 상기 위치 정보는, 전자 장치(101)의 GPS(global positioning system) 좌표 정보, 또는 통신 기법(예: WiFi, BLE)에 기반한 위치 측위 정보를 포함할 수 있다. In operation (420), the electronic device (101) may transmit first information. For example, the electronic device (101) may transmit the first information indicating the service to the server (350). For example, the first information indicating the service may include at least one of a name or identification information of the service. For example, if the service is provided based on a specific software application, it may include at least one of a name or identification information of the specific software application. In the above example, an example in which the electronic device (101) transmits the first information indicating the service to the server (350) is described, but the embodiments of the present disclosure are not limited thereto. For example, the electronic device (101) may transmit location information of the electronic device (101) to the server (350) together with the first information. For example, the location information of the electronic device (101) may include GPS (global positioning system) coordinate information of the electronic device (101) or location information based on a communication technique (e.g., WiFi, BLE).

도 4에서는, 동작(420)이 동작(415) 이후 수행되는 것으로 도시되나 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 동작(420)은 동작(415)과 동시에 수행되거나, 동작(415) 이전에 수행될 수도 있다.In FIG. 4, operation (420) is illustrated as being performed after operation (415), but the embodiments of the present disclosure are not limited thereto. For example, operation (420) may be performed simultaneously with operation (415), or may be performed before operation (415).

동작(425)에서, 서버(350)는, 제2 정보를 전송할 수 있다. 예를 들어, 서버(350)는, 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 상기 제2 정보를 전자 장치(101)에게 전송할 수 있다. 예를 들어, 서버(350)는, 동작(420)을 통해 전자 장치(101)로부터 획득된 상기 제1 정보에 기반하여, 상기 서비스를 이용하는 전자 장치를 인식할 수 있다. 예를 들어, 서버(350)는, 상기 제1 정보에 기반하여 외부 전자 장치(310)를 인식할 수 있다. 예를 들어, 서버(350)는, 인식된 외부 전자 장치(310)를 지시하는 상기 제2 정보를 전자 장치(101)에게 전송할 수 있다.In operation (425), the server (350) can transmit second information. For example, the server (350) can transmit the second information indicating the external electronic device (310) using the service to the electronic device (101). For example, the server (350) can recognize the electronic device using the service based on the first information obtained from the electronic device (101) through operation (420). For example, the server (350) can recognize the external electronic device (310) based on the first information. For example, the server (350) can transmit the second information indicating the recognized external electronic device (310) to the electronic device (101).

상기 예에서는, 서버(350)가 상기 제1 정보에 기반하여 인식되는 외부 전자 장치(310)를 지시하는 상기 제2 정보를 생성하고, 상기 제2 정보를 전자 장치(101)에게 전송하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 일 실시예에 따르면, 서버(350)는, 전자 장치(101)로부터 수신된 상기 위치 정보를 더 이용하여, 상기 제2 정보를 생성할 수 있다. 예를 들어, 서버(350)는, 상기 서비스를 이용하는 복수의 외부 전자 장치들을 인식하고, 상기 복수의 외부 전자 장치들 중에서 전자 장치(101)의 상기 위치 정보를 이용하여 전자 장치(101)와 연결될 수 있는(또는 연결될 가능성이 높은) 외부 전자 장치(310)를 결정할 수 있다. 예를 들어, 외부 전자 장치(310)는, 상기 복수의 외부 전자 장치들 중에서 전자 장치(101)의 위치로부터 지정된 거리 내에 있는 적어도 하나의 외부 전자 장치에 포함될 수 있다. 예를 들어, 서버(350)는, 상기 복수의 외부 전자 장치들 각각으로부터 획득된 위치 정보 및 전자 장치(101)의 상기 위치 정보에 기반하여, 외부 전자 장치(310)를 인식할 수 있다. 이에 따라, 서버(350)는, 외부 전자 장치(310)를 지시하는 상기 제2 정보를 생성하고, 상기 제2 정보를 전자 장치(101)에게 전송할 수 있다.In the above example, an example is described in which the server (350) generates the second information indicating the external electronic device (310) recognized based on the first information, and transmits the second information to the electronic device (101), but the embodiment of the present disclosure is not limited thereto. According to one embodiment, the server (350) may generate the second information by further using the location information received from the electronic device (101). For example, the server (350) may recognize a plurality of external electronic devices using the service, and determine an external electronic device (310) that can be connected (or has a high possibility of being connected) to the electronic device (101) by using the location information of the electronic device (101) among the plurality of external electronic devices. For example, the external electronic device (310) may be included in at least one external electronic device that is within a specified distance from the location of the electronic device (101) among the plurality of external electronic devices. For example, the server (350) can recognize the external electronic device (310) based on the location information obtained from each of the plurality of external electronic devices and the location information of the electronic device (101). Accordingly, the server (350) can generate the second information indicating the external electronic device (310) and transmit the second information to the electronic device (101).

일 실시예에 따르면, 상기 제2 정보는, 외부 전자 장치(310)의 MAC(media access control) 주소(address) 또는 외부 전자 장치(310)와 전자 장치(101) 사이의 연결을 위한 정보 중 적어도 하나를 포함할 수 있다. According to one embodiment, the second information may include at least one of a MAC (media access control) address of the external electronic device (310) or information for connection between the external electronic device (310) and the electronic device (101).

동작(430)에서, 전자 장치(101) 및 외부 전자 장치(310)는, 연결을 수립할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제2 정보에 기반하여 외부 전자 장치(310)와 상기 연결의 수립을 시도할 수 있다. In operation (430), the electronic device (101) and the external electronic device (310) may establish a connection. For example, the electronic device (101) may attempt to establish a connection with the external electronic device (310) based on the second information.

동작(435)에서, 전자 장치(101)는, 상기 서비스를 위한 모델을 요청할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 모델을, 외부 전자 장치(310)에게 요청하는 신호를 전송할 수 있다. 동작(440)에서, 외부 전자 장치(310)는, 제2 모델을 전자 장치(101)에게 전송할 수 있다. 예를 들어, 상기 제2 모델은, 상기 기준 모델로부터 외부 전자 장치(310)에 의해 생성(또는 학습, 훈련, 적응 훈련, 업데이트)된, 상기 서비스를 위한 모델일 수 있다. In operation (435), the electronic device (101) may request a model for the service. For example, the electronic device (101) may transmit a signal requesting the model for the service to the external electronic device (310). In operation (440), the external electronic device (310) may transmit a second model to the electronic device (101). For example, the second model may be a model for the service generated (or learned, trained, adapted, trained, updated) by the external electronic device (310) from the reference model.

동작(445)에서, 전자 장치(101)는, 모델 간의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제2 모델 사이의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제2 모델 사이의 차이가 기준 값 미만인지 여부를 결정할 수 있다. 예를 들어, 상기 유사도를 판별하는 것은, 상기 제1 모델과 상기 제2 모델 자체를 비교하는 방법, 또는 상기 제1 모델과 상기 제2 모델에 대하여 입력된 기준 데이터로부터 출력된 벡터 값들 사이를 비교하는 방법을 포함할 수 있다. 상기 유사도를 판별하는 방법들에 대한 구체적인 내용은 도 3의 유사도 판별 모듈(305-1)에 기반한 동작이 참조될 수 있다.In operation (445), the electronic device (101) can determine the similarity between the models. For example, the electronic device (101) can determine the similarity between the first model and the second model. For example, the electronic device (101) can determine whether a difference between the first model and the second model is less than a reference value. For example, determining the similarity may include a method of comparing the first model and the second model themselves, or a method of comparing vector values output from reference data input for the first model and the second model. For specific details on methods of determining the similarity, reference may be made to an operation based on the similarity determination module (305-1) of FIG. 3.

동작(435), 동작(440), 및 동작(445)을 참조하면, 도 4의 예에서는 전자 장치(101)가 외부 전자 장치(310)로부터 획득된 상기 제2 모델을 이용하여 상기 유사도를 판별하는 방법에 대한 예가 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 모델을 요청하는 상기 신호를 전송할 시, 상기 신호와 함께 전자 장치(101)의 상기 제1 모델을 외부 전자 장치(310)에게 전송할 수 있다. 외부 전자 장치(310)는, 상기 제1 모델과 상기 제2 모델에 대한 유사도를 판별할 수 있다. 상기 제2 모델과 상기 제1 모델 사이의 상기 차이가 상기 기준 값 미만임을 결정함에 따라, 외부 전자 장치(310)는, 상기 제2 모델을 전자 장치(101)에게 전송할 수도 있다. 이 경우, 전자 장치(101)는, 수신된 상기 제2 모델과 상기 제1 모델 사이의 유사도를 판별하지 않고, 동작(450)을 수행할 수 있다.Referring to operations (435), (440), and (445), an example of a method for determining the similarity by using the second model acquired from the external electronic device (310) by the electronic device (101) is illustrated in the example of FIG. 4, but the embodiments of the present disclosure are not limited thereto. For example, when the electronic device (101) transmits the signal requesting the model for the service, the electronic device (101) may transmit the first model of the electronic device (101) to the external electronic device (310) together with the signal. The external electronic device (310) may determine the similarity between the first model and the second model. Upon determining that the difference between the second model and the first model is less than the reference value, the external electronic device (310) may transmit the second model to the electronic device (101). In this case, the electronic device (101) can perform the operation (450) without determining the similarity between the received second model and the first model.

동작(450)에서, 전자 장치(101)는, 제3 모델을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델로부터 상기 제2 모델을 이용하여 상기 제3 모델을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 제3 모델을 생성할 수 있다. 예를 들어, 상기 제3 모델은 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제3 모델은, 상기 제1 모델을 구성하는 제1 벡터 값들과 상기 제2 모델을 구성하는 제2 벡터 값들의 평균값을 갖는 제3 벡터 값들로 구성될 수 있다. 예를 들어, 상기 제3 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 평균값을 가질 수 있다.In operation (450), the electronic device (101) may generate a third model. For example, the electronic device (101) may generate the third model by using the second model from the first model. For example, the electronic device (101) may generate the third model by using the first model and the second model. For example, the third model may be a model for the service. For example, the third model may be composed of third vector values having an average value of first vector values constituting the first model and second vector values constituting the second model. For example, each of the third vector values may have an average value of each of the first vector values and each of the second vector values.

도 4에서 도시하지 않았으나, 전자 장치(101)는, 생성된 상기 제3 모델을 이용하여, 상기 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제3 모델을 이용하여 상기 서비스를 제공하는 동안, 상기 사용자의 입력 데이터를 획득할 수 있다. 이 후, 전자 장치(101)는, 제3 모델을 이용하여 상기 서비스가 제공되는 동안 획득된 상기 입력 데이터에 기반하여 상기 제3 모델을 학습(또는, 훈련, 적응 훈련, 업데이트)할 수 있다.Although not illustrated in FIG. 4, the electronic device (101) can provide the service using the generated third model. For example, the electronic device (101) can obtain the user's input data while providing the service using the third model. Thereafter, the electronic device (101) can learn (or train, adaptively train, update) the third model based on the input data obtained while providing the service using the third model.

또한, 도 4에서 도시하지 않았으나, 전자 장치(101)는, 생성된 상기 제3 모델을 서버(350)에게 전송할 수 있다. 예를 들어, 전자 장치(101)는, 연합 학습에 이용될 상기 제3 모델을 서버(350)에게 전송할 수 있다. 예를 들어, 서버(350)는, 전자 장치(101)로부터 상기 제3 모델 및 외부 전자 장치(310)로부터 학습된 모델을 수신할 수 있다. 예를 들어, 외부 전자 장치(310)로부터 수신된 상기 모델은, 외부 전자 장치(310)의 상기 제2 모델로부터 학습된 모델일 수 있다. 예를 들어, 서버(350)는, 상기 제3 모델 및 외부 전자 장치(310)로부터 수신된 상기 모델을 이용하여, 상기 연합 학습에 따른 통합된(aggregated) 모델을 생성할 수 있다. In addition, although not shown in FIG. 4, the electronic device (101) may transmit the generated third model to the server (350). For example, the electronic device (101) may transmit the third model to be used for federated learning to the server (350). For example, the server (350) may receive the third model from the electronic device (101) and the model learned from the external electronic device (310). For example, the model received from the external electronic device (310) may be a model learned from the second model of the external electronic device (310). For example, the server (350) may generate an aggregated model according to the federated learning by using the third model and the model received from the external electronic device (310).

도 5a 및 도 5b는, 일 실시예에 따른, 외부 전자 장치로부터 획득된 모델을 이용하여 전자 장치의 모델을 학습하는 방법에 대한 예를 도시한다.FIGS. 5A and 5B illustrate an example of a method for learning a model of an electronic device using a model obtained from an external electronic device, according to one embodiment.

도 5a 및 도 5b의 전자 장치(101)는 도 3의 전자 장치(101)의 일 예일 수 있다. 도 5a 및 도 5b의 외부 전자 장치(310)는 도 3의 외부 전자 장치(310)의 일 예일 수 있다. 도 5a 및 도 5b의 서버(350)는 도 3의 서버(350)의 일 예일 수 있다. 도 5a 및 도 5b에서는, 하나의 외부 전자 장치(310)로부터 획득된 모델을 이용하는 방법의 예들(500, 550)이 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 복수의 외부 전자 장치들로부터 획득된 모델들이 이용될 수도 있다.The electronic device (101) of FIGS. 5A and 5B may be an example of the electronic device (101) of FIG. 3. The external electronic device (310) of FIGS. 5A and 5B may be an example of the external electronic device (310) of FIG. 3. The server (350) of FIGS. 5A and 5B may be an example of the server (350) of FIG. 3. Although FIGS. 5A and 5B illustrate examples (500, 550) of methods for utilizing a model acquired from one external electronic device (310), the embodiments of the present disclosure are not limited thereto. For example, models acquired from a plurality of external electronic devices may also be utilized.

도 5a는 전자 장치(101)가 외부 전자 장치(310)로부터 획득된 모델을 이용하여 전자 장치(101)의 모델을 학습(또는, 생성, 업데이트)하는 방법에 대한 예(500)가 도시된다. 전자 장치(101), 서버(350), 및 외부 전자 장치(310)는, FL을 수행하기 위해 연결될 수 있다.FIG. 5A illustrates an example (500) of a method for an electronic device (101) to learn (or generate, update) a model of an electronic device (101) using a model obtained from an external electronic device (310). The electronic device (101), the server (350), and the external electronic device (310) may be connected to perform FL.

예(500)를 참조하면, 서버(350)는 모델#A(510)을 생성할 수 있다. 예를 들어, 모델#A(510)은 서버(350)에 의해 생성되고 서비스를 위한 기준 모델로 참조될 수 있다. 예를 들어, 서버(350)는, 생성된 모델#A(510)을 전자 장치(101) 및 외부 전자 장치(310) 각각에게 전송할 수 있다. Referring to example (500), the server (350) can generate model #A (510). For example, model #A (510) can be generated by the server (350) and referenced as a reference model for a service. For example, the server (350) can transmit the generated model #A (510) to each of the electronic device (101) and the external electronic device (310).

예를 들어, 전자 장치(101)는 획득된 모델#A(511)을 이용하여 상기 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 모델#A(511)을 상기 서비스를 제공하는 동안, 전자 장치(101)의 사용자의 입력 데이터를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 전자 장치(101)의 상기 사용자의 상기 입력 데이터를 이용하여 모델#A(511)로부터 모델#B(521)을 생성(또는, 학습, 업데이트)할 수 있다. For example, the electronic device (101) can provide the service using the acquired model #A (511). For example, the electronic device (101) can obtain input data of a user of the electronic device (101) while providing the service using model #A (511). For example, the electronic device (101) can generate (or learn, update) model #B (521) from model #A (511) using the input data of the user of the electronic device (101).

또한, 예를 들어, 외부 전자 장치(310)는 획득된 모델#A(512)을 이용하여 상기 서비스를 제공할 수 있다. 예를 들어, 외부 전자 장치(310)는, 모델#A(512)을 상기 서비스를 제공하는 동안, 외부 전자 장치(310)의 사용자의 입력 데이터를 획득할 수 있다. 예를 들어, 외부 전자 장치(310)는, 외부 전자 장치(310)의 상기 사용자의 상기 입력 데이터를 이용하여 모델#A(512)로부터 모델#C(522)을 생성(또는, 학습, 업데이트)할 수 있다.In addition, for example, the external electronic device (310) can provide the service using the acquired model #A (512). For example, the external electronic device (310) can obtain input data of a user of the external electronic device (310) while providing the service using model #A (512). For example, the external electronic device (310) can generate (or learn, update) model #C (522) from model #A (512) using the input data of the user of the external electronic device (310).

예를 들어, 전자 장치(101)는, 상기 서비스를 지시하는 제1 정보를 서버(350)에게 전송하고, 서버(350)로부터 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 수신할 수 있다. 전자 장치(101)는, 상기 제2 정보에 기반하여, 외부 전자 장치(310)와 연결될 수 있다. 전자 장치(101)는, 외부 전자 장치(310)에게 상기 서비스를 위한 모델을 요청할 수 있다. 예를 들어, 전자 장치(101)는, 외부 전자 장치(310)로부터 모델#C(522)를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 모델#B(521)과 모델#C(522) 사이의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 모델#C(522)의 벡터 값들과 모델#B(521)의 벡터 값들 사이의 거리 값들에 기반하여 계산되는 차이가 기준 값 미만인 경우, 상기 모델#B(521)에 대하여 모델#C(522)가 유사하다고 결정할 수 있다. 예를 들어, 전자 장치(101)는, 모델#B(521)로부터 모델#C(522)를 이용하여, 모델#BC(523)을 생성(또는, 학습, 업데이트)할 수 있다. For example, the electronic device (101) can transmit first information indicating the service to the server (350) and receive second information indicating an external electronic device (310) that uses the service from the server (350). The electronic device (101) can be connected to the external electronic device (310) based on the second information. The electronic device (101) can request a model for the service from the external electronic device (310). For example, the electronic device (101) can obtain model #C (522) from the external electronic device (310). For example, the electronic device (101) can determine the similarity between model #B (521) and model #C (522). For example, the electronic device (101) may determine that the model #C (522) is similar to the model #B (521) if the difference calculated based on the distance values between the vector values of the model #C (522) and the vector values of the model #B (521) is less than a reference value. For example, the electronic device (101) may generate (or learn, update) the model #BC (523) by using the model #C (522) from the model #B (521).

도 5a의 예(500)와 관련하여, 전자 장치(101)의 상기 사용자가 오른손잡이인 경우, 전자 장치(101)의 상기 사용자가 전자 장치(101)에 대하여 사용하는 입력(예: 키보드 입력)의 위치는 상대적으로 전자 장치(101)의 오른쪽에 분포될 수 있다. 이 때, 전자 장치(101)의 상기 사용자가 상기 키보드를 제공하는 서비스의 업데이트를 실행하는 경우, 전자 장치(101)의 상기 사용자와 유사한 사용자(예: 외부 전자 장치(310)의 상기 사용자)를 인식하고, 외부 전자 장치(310)의 모델을 이용하여 업데이트를 수행할 수 있다. 이 때, 외부 전자 장치(310)의 상기 사용자는 오른손잡이일 수 있다. 만약, 외부 전자 장치(310)의 상기 사용자가 왼손잡이인 경우, 전자 장치(101)는, 모델#C(522)의 벡터 값들과 모델#B(521)의 벡터 값들 사이의 거리 값들에 기반하여 계산되는 상기 차이가 상기 기준 값 이상으로 인식할 수 있다. With respect to the example (500) of FIG. 5a, if the user of the electronic device (101) is right-handed, the location of the input (e.g., keyboard input) used by the user of the electronic device (101) for the electronic device (101) may be relatively distributed on the right side of the electronic device (101). At this time, when the user of the electronic device (101) executes an update of a service providing the keyboard, a user similar to the user of the electronic device (101) (e.g., the user of the external electronic device (310)) may be recognized, and an update may be performed using a model of the external electronic device (310). At this time, the user of the external electronic device (310) may be right-handed. If the user of the external electronic device (310) is left-handed, the electronic device (101) may recognize that the difference calculated based on the distance values between the vector values of model #C (522) and the vector values of model #B (521) is greater than or equal to the reference value.

또한, 도 5a의 예(500)와 관련하여, 전자 장치(101)의 상기 사용자가 음성 인식 서비스를 사용하는 경우를 가정한다. 예를 들어, 전자 장치(101)의 상기 사용자가 표준어를 이용하는 경우, 전자 장치(101)의 모델#B(521)은 상기 표준어인 입력 데이터에 기반하여 학습(또는, 생성, 업데이트)될 수 있다. 전자 장치(101)는, 전자 장치(101)의 상기 사용자와 유사한 사용자(예: 외부 전자 장치(310)의 상기 사용자)를 인식하고, 외부 전자 장치(310)의 모델을 이용하여 업데이트를 수행할 수 있다. 외부 전자 장치(310)의 상기 사용자는 상기 표준어를 이용할 수 있다. 이 후, 전자 장치(101)의 상기 사용자가 방언을 이용하는 경우, 전자 장치(101)의 모델은 상기 방언인 입력 데이터에 기반하여 학습될 수 있다. 전자 장치(101)는, 전자 장치(101)의 상기 사용자와 다른 사용자를 인식하고, 다른 외부 전자 장치의 모델을 이용하여 업데이트할 수 있다. 이 때, 상기 다른 사용자는, 상기 방언을 이용할 수 있다. In addition, with respect to the example (500) of FIG. 5a, it is assumed that the user of the electronic device (101) uses a voice recognition service. For example, if the user of the electronic device (101) uses a standard language, the model #B (521) of the electronic device (101) can be learned (or generated, updated) based on the input data that is the standard language. The electronic device (101) can recognize a user similar to the user of the electronic device (101) (e.g., the user of the external electronic device (310)) and perform an update using the model of the external electronic device (310). The user of the external electronic device (310) can use the standard language. Thereafter, if the user of the electronic device (101) uses a dialect, the model of the electronic device (101) can be learned based on the input data that is the dialect. The electronic device (101) can recognize a user different from the user of the electronic device (101) and update using the model of the other external electronic device. At this time, the other user can use the dialect.

도 5b는 전자 장치(101)가 외부 전자 장치(310)로부터 획득된 서비스를 위한 모델을 이용하여 전자 장치(101)의 상기 서비스를 위한 모델을 학습(또는, 생성, 업데이트)하고, 상기 서비스와 관련된 다른(another) 서비스의 모델을 학습(또는, 생성, 업데이트)하는 방법에 대한 예(500)가 도시된다. 전자 장치(101), 서버(350), 및 외부 전자 장치(310)는, FL을 수행하기 위해 연결될 수 있다.FIG. 5b illustrates an example (500) of a method in which an electronic device (101) learns (or generates, updates) a model for a service of the electronic device (101) using a model for the service obtained from an external electronic device (310), and learns (or generates, updates) a model of another service related to the service. The electronic device (101), the server (350), and the external electronic device (310) may be connected to perform FL.

예(550)를 참조하면, 서버(350)는 모델#A(561) 및 모델#B(562)을 생성할 수 있다. 예를 들어, 모델#A(561)은 서버(350)에 의해 생성되는 제1 서비스를 위한 기준 모델로 참조될 수 있다. 예를 들어, 모델#B(562)은 서버(350)에 의해 생성되는 제2 서비스를 위한 기준 모델로 참조될 수 있다. 상기 제2 서비스는, 상기 제1 서비스와 관련될 수 있다. 예를 들어, 상기 제1 서비스가 도서 추천 서비스인 경우, 상기 제2 서비스는 영화 추천 서비스일 수 있다. 예를 들어, 상기 제1 서비스 및 상기 제2 서비스는 컨텐츠를 추천하는 서비스로, 서로 관련 있는 서비스로 분류될 수 있다. 예를 들어, 음성 인식 서비스는 상기 제1 서비스 및 상기 제2 서비스와 관련되지 않은 서비스일 수 있다. 예를 들어, 서버(350)는, 생성된 모델#A(561) 및 모델#B(562)을 전자 장치(101) 및 외부 전자 장치(310) 각각에게 전송할 수 있다. Referring to example (550), the server (350) can generate model #A (561) and model #B (562). For example, model #A (561) can be referenced as a reference model for a first service generated by the server (350). For example, model #B (562) can be referenced as a reference model for a second service generated by the server (350). The second service can be related to the first service. For example, when the first service is a book recommendation service, the second service can be a movie recommendation service. For example, the first service and the second service are services that recommend content, and can be classified as related services. For example, a voice recognition service can be a service that is not related to the first service and the second service. For example, the server (350) can transmit the generated model #A (561) and model #B (562) to the electronic device (101) and the external electronic device (310), respectively.

예를 들어, 전자 장치(101)는 획득된 모델#A(571)을 이용하여 상기 제1 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 모델#A(571)을 상기 제1 서비스를 제공하는 동안, 전자 장치(101)의 사용자의 제1 입력 데이터를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 전자 장치(101)의 상기 사용자의 상기 제1 입력 데이터를 이용하여 모델#A(571)로부터 모델#A1(581)을 생성(또는, 학습, 업데이트)할 수 있다. 또한, 전자 장치(101)는 획득된 모델#B(572)을 이용하여 상기 제2 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 모델#B(572)을 상기 제2 서비스를 제공하는 동안, 전자 장치(101)의 사용자의 제2 입력 데이터를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 전자 장치(101)의 상기 사용자의 상기 제2 입력 데이터를 이용하여 모델#B(572)로부터 모델#B1(582)을 생성(또는, 학습, 업데이트)할 수 있다.For example, the electronic device (101) can provide the first service using the acquired model #A (571). For example, the electronic device (101) can obtain first input data of a user of the electronic device (101) while providing the first service using model #A (571). For example, the electronic device (101) can generate (or learn, update) model #A1 (581) from model #A (571) using the first input data of the user of the electronic device (101). In addition, the electronic device (101) can provide the second service using the acquired model #B (572). For example, the electronic device (101) can obtain second input data of a user of the electronic device (101) while providing the second service using model #B (572). For example, the electronic device (101) can generate (or learn, update) model #B1 (582) from model #B (572) using the second input data of the user of the electronic device (101).

또한, 예를 들어, 외부 전자 장치(310)는 획득된 모델#A(573)을 이용하여 상기 제1 서비스를 제공할 수 있다. 예를 들어, 외부 전자 장치(310)는, 모델#A(573)을 상기 제1 서비스를 제공하는 동안, 외부 전자 장치(310)의 사용자의 제3 입력 데이터를 획득할 수 있다. 예를 들어, 외부 전자 장치(310)는, 외부 전자 장치(310)의 상기 사용자의 상기 제3 입력 데이터를 이용하여 모델#A(573)로부터 모델#A2(583)을 생성(또는, 학습, 업데이트)할 수 있다. 또한, 외부 전자 장치(310)는 획득된 모델#B(574)을 이용하여 상기 제2 서비스를 제공할 수 있다. 예를 들어, 외부 전자 장치(310)는, 모델#B(574)을 상기 제2 서비스를 제공하는 동안, 외부 전자 장치(310)의 사용자의 제4 입력 데이터를 획득할 수 있다. 예를 들어, 외부 전자 장치(310)는, 외부 전자 장치(310)의 상기 사용자의 상기 제4 입력 데이터를 이용하여 모델#B(574)로부터 모델#B2(584)을 생성(또는, 학습, 업데이트)할 수 있다.In addition, for example, the external electronic device (310) can provide the first service using the acquired model #A (573). For example, the external electronic device (310) can obtain third input data of the user of the external electronic device (310) while providing the first service using model #A (573). For example, the external electronic device (310) can generate (or learn, update) model #A2 (583) from model #A (573) using the third input data of the user of the external electronic device (310). In addition, the external electronic device (310) can provide the second service using the acquired model #B (574). For example, the external electronic device (310) can obtain fourth input data of the user of the external electronic device (310) while providing the second service using model #B (574). For example, the external electronic device (310) can generate (or learn, update) model #B2 (584) from model #B (574) using the fourth input data of the user of the external electronic device (310).

예를 들어, 전자 장치(101)는, 상기 제1 서비스 및 상기 제2 서비스를 지시하는 제1 정보를 서버(350)에게 전송하고, 서버(350)로부터 상기 제1 서비스 및 상기 제2 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 수신할 수 있다. 전자 장치(101)는, 상기 제2 정보에 기반하여, 외부 전자 장치(310)와 연결될 수 있다. 전자 장치(101)는, 외부 전자 장치(310)에게 상기 제1 서비스 및 상기 제2 서비스를 위한 모델을 요청할 수 있다. 예를 들어, 전자 장치(101)는, 외부 전자 장치(310)로부터 상기 제1 서비스를 위한 모델#A2(583) 및 상기 제2 서비스를 위한 모델#B2(584)를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 모델#A1(581)과 모델#A2(583) 사이의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 모델#A1(581)의 벡터 값들과 모델#A2(583)의 벡터 값들 사이의 거리 값들에 기반하여 계산되는 차이가 기준 값 미만인 경우, 상기 모델#A1(581)에 대하여 모델#A2(583)가 유사하다고 결정할 수 있다. 예를 들어, 전자 장치(101)는, 모델#A1(581)로부터 모델#A2(583)을 이용하여, 모델#A1A2(591)을 생성(또는, 학습, 업데이트)할 수 있다. 일 실시예에 따르면, 전자 장치(101)는, 모델#A1(581)과 모델#A2(583) 사이의 유사도를 판별하고 모델#A1A2(591)을 생성하는 동안, 상기 제1 서비스와 관련된 상기 제2 서비스를 위한 모델에 대한 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 모델#B1(582)과 모델#B2(584) 사이의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 모델#B1(582)의 벡터 값들과 모델#B2(584)의 벡터 값들 사이의 거리 값들에 기반하여 계산되는 차이가 기준 값 미만인 경우, 상기 모델#B1(582)에 대하여 모델#B2(584)가 유사하다고 결정할 수 있다. 예를 들어, 전자 장치(101)는, 모델#B1(582)로부터 모델#B2(584)를 이용하여, 모델#B1B2(592)을 생성(또는, 학습, 훈련, 적응 훈련, 업데이트)할 수 있다.For example, the electronic device (101) can transmit first information indicating the first service and the second service to the server (350), and receive second information indicating an external electronic device (310) that uses the first service and the second service from the server (350). The electronic device (101) can be connected to the external electronic device (310) based on the second information. The electronic device (101) can request a model for the first service and the second service from the external electronic device (310). For example, the electronic device (101) can obtain model #A2 (583) for the first service and model #B2 (584) for the second service from the external electronic device (310). For example, the electronic device (101) can determine the similarity between model #A1 (581) and model #A2 (583). For example, the electronic device (101) may determine that the model #A2 (583) is similar to the model #A1 (581) if the difference calculated based on the distance values between the vector values of the model #A1 (581) and the vector values of the model #A2 (583) is less than a reference value. For example, the electronic device (101) may generate (or learn, update) the model #A1A2 (591) from the model #A1 (581) by using the model #A2 (583). According to one embodiment, the electronic device (101) may determine the similarity between the model #A1 (581) and the model #A2 (583) and, while generating the model #A1A2 (591), determine the similarity to the model for the second service related to the first service. For example, the electronic device (101) can determine the similarity between model #B1 (582) and model #B2 (584). For example, the electronic device (101) can determine that model #B2 (584) is similar to model #B1 (582) when a difference calculated based on distance values between vector values of model #B1 (582) and vector values of model #B2 (584) is less than a reference value. For example, the electronic device (101) can generate (or learn, train, adaptively train, update) model #B1B2 (592) by using model #B2 (584) from model #B1 (582).

상기 예에서는, 전자 장치(101)가 상기 제2 서비스를 위한 모델들에 대한 유사도를 판별함에 응답하여, 모델#B1B2(592)을 생성(또는, 학습, 훈련, 적응 훈련, 업데이트)하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 상기 제1 서비스와 관련된 모델들(예: 모델#A1(581) 및 모델#A2(583))이 유사하다고 판별한 경우, 상기 제1 서비스와 관련된 상기 제2 서비스를 위한 모델들(예: 모델#B1(582) 및 모델#B2(584))을 이용하여 모델#B1B2(592)을 생성(또는, 학습, 훈련, 적응 훈련, 업데이트)할 수 있다. 다시 말해서, 전자 장치(101)는, 상기 제1 서비스와 관련된 모델들이 유사한 경우, 상기 제2 서비스를 위한 모델들 간의 유사도를 판별하지 않고, 상기 제2 서비스를 위한 모델들을 이용하여 상기 제2 서비스를 위한 새로운 모델을 생성(또는, 학습, 훈련, 적응 훈련, 업데이트)할 수 있다. In the above example, in response to the electronic device (101) determining the similarity of the models for the second service, an example is described in which the electronic device generates (or learns, trains, adapts, trains, updates) the model #B1B2 (592), but the embodiments of the present disclosure are not limited thereto. For example, if the electronic device (101) determines that the models related to the first service (e.g., model #A1 (581) and model #A2 (583)) are similar, the electronic device (101) may generate (or learn, train, adaptively train, update) the model #B1B2 (592) using the models for the second service (e.g., model #B1 (582) and model #B2 (584)) related to the first service. In other words, the electronic device (101) can create (or learn, train, adaptively train, update) a new model for the second service using the models for the second service without determining the similarity between the models for the second service when the models related to the first service are similar.

도 6은 일 실시예에 따른, P2P에 기반하여 개인화된 모델을 생성하는 방법에 대한 동작 흐름의 예를 도시한다.FIG. 6 illustrates an example of an operational flow for a method of generating a personalized model based on P2P, according to one embodiment.

도 6의 상기 방법 중 적어도 일부는, 도 3의 전자 장치(101)에 의해 수행될 수 있다. 예를 들어, 상기 방법 중 적어도 일부는, 전자 장치(101)의 프로세서(301)에 의해 제어될 수 있다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. At least some of the above methods of FIG. 6 may be performed by the electronic device (101) of FIG. 3. For example, at least some of the above methods may be controlled by the processor (301) of the electronic device (101). In the following embodiments, the respective operations may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the respective operations may be changed, and at least two operations may be performed in parallel.

일 실시예에 따르면, 동작(610)에서, 전자 장치(101)는, 기준 모델을 획득할 수 있다. 예를 들어, 전자 장치(101)는, 서버(예: 도 3의 서버(350))로부터, 상기 기준 모델을 획득할 수 있다. 예를 들어, 상기 기준 모델은, 서버(350)에 의해 생성될 수 있다. 예를 들어, 상기 기준 모델은, 서비스를 위한 모델일 수 있다. According to one embodiment, in operation (610), the electronic device (101) may obtain a reference model. For example, the electronic device (101) may obtain the reference model from a server (e.g., server (350) of FIG. 3). For example, the reference model may be generated by the server (350). For example, the reference model may be a model for a service.

일 실시예에 따르면, 동작(620)에서, 전자 장치(101)는, 상기 기준 모델로부터 제1 모델을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델로부터, 입력 데이터를 이용하여 상기 제1 모델을 생성(또는, 훈련, 학습, 업데이트)할 수 있다. 예를 들어, 상기 제1 모델은, 상기 서비스를 위한 모델일 수 있다. In one embodiment, in operation (620), the electronic device (101) may generate a first model from the reference model. For example, the electronic device (101) may generate (or train, learn, update) the first model using input data from the reference model. For example, the first model may be a model for the service.

일 실시예에 따르면, 전자 장치(101)는, 상기 입력 데이터를 획득(또는 수집)할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 사용자의 상기 입력 데이터를 획득할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자가 전자 장치(101)에 대하여 수행하는 입력을 포함할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자의 발화, 상기 사용자의 터치 입력, 또는, 상기 사용자의 사용 기록을 포함할 수 있다. 다만, 본 개시의 실시예가 이에 제한되는 것은 아니다. According to one embodiment, the electronic device (101) may obtain (or collect) the input data. For example, the electronic device (101) may obtain the user's input data for the service. For example, the input data may include an input performed by the user to the electronic device (101). For example, the input data may include the user's utterance, the user's touch input, or the user's usage history. However, the embodiments of the present disclosure are not limited thereto.

일 실시예에 따르면, 상기 입력 데이터는, 상기 사용자가 상기 서비스를 이용하는 동안 획득될 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델을 이용하여 상기 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델을 이용하여, 상기 입력 데이터로부터 출력 데이터를 생성할 수 있다. 상기 출력 데이터는, 상기 서비스를 제공하기 위해 이용될 수 있다. 상기 기준 모델을 이용하여 상기 서비스가 제공되는 동안, 전자 장치(101)는, 상기 입력 데이터를 획득할 수 있다. According to one embodiment, the input data can be acquired while the user uses the service. For example, the electronic device (101) can provide the service using the reference model. For example, the electronic device (101) can generate output data from the input data using the reference model. The output data can be used to provide the service. While the service is provided using the reference model, the electronic device (101) can acquire the input data.

일 실시예에 따르면, 동작(630)에서, 전자 장치(101)는, 상기 서비스를 지시하는 제1 정보를 전송할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 지시하는 상기 제1 정보를 서버(350)에게 전송할 수 있다. 예를 들어, 상기 서비스를 지시하는 상기 제1 정보는, 상기 서비스의 이름 또는 식별 정보를 포함할 수 있다. 예를 들어, 상기 서비스가 특정 소프트웨어 어플리케이션에 기반하여 제공되는 서비스인 경우, 상기 특정 소프트웨어 어플리케이션의 이름 또는 식별 정보를 포함할 수 있다. 도 6에서는, 동작(630)이 동작(620) 이후 수행되는 것으로 도시되나 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 동작(630)은 동작(620)과 동시에 수행되거나, 동작(620) 이전에 수행될 수도 있다.According to one embodiment, in operation (630), the electronic device (101) may transmit first information indicating the service. For example, the electronic device (101) may transmit the first information indicating the service to the server (350). For example, the first information indicating the service may include a name or identification information of the service. For example, if the service is a service provided based on a specific software application, it may include a name or identification information of the specific software application. In FIG. 6, operation (630) is illustrated as being performed after operation (620), but the embodiments of the present disclosure are not limited thereto. For example, operation (630) may be performed simultaneously with operation (620) or may be performed before operation (620).

일 실시예에 따르면, 동작(640)에서, 전자 장치(101)는, 외부 전자 장치를 지시하는 제2 정보를 획득할 수 있다. 예를 들어, 전자 장치(101)는, 상기 외부 전자 장치를 지시하는 상기 제2 정보를 서버(350)로부터 수신할 수 있다. 예를 들어, 상기 제2 정보는, 상기 외부 전자 장치의 MAC(media access control) 주소(address) 또는 상기 외부 전자 장치와 전자 장치(101) 사이의 연결을 위한 정보를 포함할 수 있다. 상기 예에서는, 설명의 편의를 위하여 하나의 상기 외부 전자 장치를 지시하는 상기 제2 정보가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 상기 제2 정보는, 복수의 외부 전자 장치들을 지시하는 상기 제2 정보를 포함할 수 있다. 이 때, 상기 제2 정보에 의해 지시되는 상기 복수의 외부 전자 장치들 각각은, 상기 서비스를 제공하는 전자 장치일 수 있다. 예를 들어, 상기 복수의 외부 전자 장치들 각각은, 서버(350)로부터 획득된 상기 기준 모델로부터 상기 서비스를 위한 모델을 생성(또는, 업데이트, 학습)할 수 있다.According to one embodiment, in operation (640), the electronic device (101) may obtain second information indicating an external electronic device. For example, the electronic device (101) may receive the second information indicating the external electronic device from the server (350). For example, the second information may include a MAC (media access control) address of the external electronic device or information for connection between the external electronic device and the electronic device (101). In the above example, for convenience of explanation, the second information indicating one external electronic device is described, but the embodiment of the present disclosure is not limited thereto. For example, the second information may include the second information indicating a plurality of external electronic devices. In this case, each of the plurality of external electronic devices indicated by the second information may be an electronic device providing the service. For example, each of the plurality of external electronic devices may generate (or update, learn) a model for the service from the reference model obtained from the server (350).

일 실시예에 따르면, 동작(650)에서, 전자 장치(101)는, 상기 외부 전자 장치의 상기 서비스를 위한 제2 모델을 획득할 수 있다. 예를 들어, 전자 장치(101) 및 상기 외부 전자 장치는, 연결을 수립할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제2 정보에 기반하여 상기 외부 전자 장치와 상기 연결의 수립을 시도할 수 있다. According to one embodiment, in operation (650), the electronic device (101) can obtain a second model for the service of the external electronic device. For example, the electronic device (101) and the external electronic device can establish a connection. For example, the electronic device (101) can attempt to establish the connection with the external electronic device based on the second information.

일 실시예에 따르면, 전자 장치(101)는, 상기 서비스를 위한 모델을 상기 외부 전자 장치에게 요청할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 모델을, 상기 외부 전자 장치에게 요청하는 신호를 전송할 수 있다. 예를 들어, 전자 장치(101)는, 상기 외부 전자 장치로부터, 상기 서비스를 위한 상기 제2 모델을 획득할 수 있다. 예를 들어, 상기 제2 모델은, 상기 기준 모델로부터 상기 외부 전자 장치에 의해 생성(또는 학습, 훈련, 업데이트)된, 상기 서비스를 위한 모델일 수 있다. According to one embodiment, the electronic device (101) may request a model for the service from the external electronic device. For example, the electronic device (101) may transmit a signal requesting a model for the service to the external electronic device. For example, the electronic device (101) may obtain the second model for the service from the external electronic device. For example, the second model may be a model for the service generated (or learned, trained, or updated) by the external electronic device from the reference model.

일 실시예에 따르면, 동작(660)에서, 전자 장치(101)는, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 상기 제3 모델을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델로부터 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제2 모델 사이의 차이가 기준 값 미만인 경우, 상기 제1 모델로부터 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성할 수 있다. 예를 들어, 상기 제3 모델은 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제3 모델은, 상기 제1 모델을 구성하는 제1 벡터 값들과 상기 제2 모델을 구성하는 제2 벡터 값들의 평균값을 갖는 제3 벡터 값들로 구성될 수 있다. 예를 들어, 상기 제3 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 평균값을 가질 수 있다.According to one embodiment, in operation (660), the electronic device (101) may generate the third model for the service using the first model and the second model. For example, the electronic device (101) may generate the third model for the service using the second model from the first model. For example, the electronic device (101) may generate the third model for the service using the second model from the first model when a difference between the first model and the second model is less than a reference value. For example, the third model may be a model for the service. For example, the third model may be composed of third vector values having an average value of first vector values constituting the first model and second vector values constituting the second model. For example, each of the third vector values may have an average value of each of the first vector values and each of the second vector values.

일 실시예에 따르면, 전자 장치(101)는, 모델 간의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제2 모델 사이의 유사도를 판별할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 미만인지 여부를 결정할 수 있다. 예를 들어, 상기 유사도를 판별하는 것은, 상기 제1 모델과 상기 제2 모델 자체를 비교하는 방법, 또는 상기 제1 모델과 상기 제2 모델에 대하여 입력된 기준 데이터로부터 출력된 벡터 값들 사이를 비교하는 방법을 포함할 수 있다. 상기 유사도를 판별하는 방법들에 대한 구체적인 내용은 도 3의 유사도 판별 모듈(305-1)에 기반한 동작이 참조될 수 있다. According to one embodiment, the electronic device (101) can determine the similarity between models. For example, the electronic device (101) can determine the similarity between the first model and the second model. For example, the electronic device (101) can determine whether the difference between the first model and the second model is less than the reference value. For example, determining the similarity may include a method of comparing the first model and the second model themselves, or a method of comparing vector values output from reference data input for the first model and the second model. For specific details on the methods of determining the similarity, reference may be made to the operation based on the similarity determination module (305-1) of FIG. 3.

일 실시예에 따르면, 전자 장치(101)는, 생성된 상기 제3 모델을 이용하여, 상기 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 상기 제3 모델을 이용하여 상기 서비스를 제공하는 동안, 상기 사용자의 입력 데이터를 획득할 수 있다. 이 후, 전자 장치(101)는, 제3 모델을 이용하여 상기 서비스가 제공되는 동안 획득된 상기 입력 데이터에 기반하여 상기 제3 모델을 학습(또는, 훈련, 업데이트)할 수 있다.According to one embodiment, the electronic device (101) can provide the service by using the generated third model. For example, the electronic device (101) can obtain the user's input data while providing the service by using the third model. Thereafter, the electronic device (101) can learn (or train, update) the third model based on the input data obtained while providing the service by using the third model.

상기 예에서는 전자 장치(101)가 상기 외부 전자 장치로부터 획득된 상기 제2 모델을 이용하여 상기 유사도를 판별하는 방법에 대한 예가 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 모델을 요청하는 상기 신호를 전송할 시, 상기 신호와 함께 전자 장치(101)의 상기 제1 모델을 상기 외부 전자 장치에게 전송할 수 있다. 상기 외부 전자 장치는, 상기 제1 모델과 상기 제2 모델에 대한 유사도를 판별할 수 있다. 상기 제2 모델과 상기 제1 모델 사이의 상기 차이가 상기 기준 값 미만임을 결정함에 따라, 상기 외부 전자 장치는, 상기 제2 모델을 전자 장치(101)에게 전송할 수도 있다. 이 경우, 전자 장치(101)는, 수신된 상기 제2 모델과 상기 제1 모델 사이의 유사도를 판별하지 않고, 상기 제3 모델을 생성할 수 있다. Although the above example illustrates an example of a method for the electronic device (101) to determine the similarity using the second model acquired from the external electronic device, the embodiments of the present disclosure are not limited thereto. For example, when the electronic device (101) transmits the signal requesting the model for the service, the electronic device (101) may transmit the first model of the electronic device (101) to the external electronic device together with the signal. The external electronic device may determine the similarity between the first model and the second model. Upon determining that the difference between the second model and the first model is less than the reference value, the external electronic device may transmit the second model to the electronic device (101). In this case, the electronic device (101) may generate the third model without determining the similarity between the received second model and the first model.

도 7은, 일 실시예에 따른, 서버에 기반하여 개인화된 모델을 생성하기 위한 네트워크(network)의 예를 도시한다.FIG. 7 illustrates an example of a network for generating a personalized model based on a server, according to one embodiment.

도 7을 참조하면, 전자 장치(101)가 외부 전자 장치들(710, 720, 730)로부터 획득된 모델을 이용하여 개인화된 모델을 생성하기 위한 네트워크의 예를 도시한다. 예를 들어, 도 7에서는 하나의 전자 장치(101), 하나의 서버(750), 및 3개의 외부 전자 장치들(710, 720, 730)을 포함하는 상기 네트워크의 예가 도시되나, 본 개시의 실시예들이 이에 제한되는 것은 아니다. 예를 들어, 상기 네트워크를 구성하는 구성요소의 수는 변경될 수도 있다.Referring to FIG. 7, an example of a network for generating a personalized model using a model acquired from external electronic devices (710, 720, 730) is illustrated. For example, FIG. 7 illustrates an example of the network including one electronic device (101), one server (750), and three external electronic devices (710, 720, 730), but embodiments of the present disclosure are not limited thereto. For example, the number of components constituting the network may be changed.

도 3을 참고하면, 전자 장치(101), 외부 전자 장치들(710, 720, 730), 및 서버(750)가 유선 네트워크, 및/또는 무선 네트워크에 기반하여 서로 연결된 예시적인 상황이 도시된다. 도 7에서는 전자 장치(101)와 외부 전자 장치(730) 및 외부 전자 장치(710)와 외부 전자 장치(720)가 서로 연결되지 않은 것 같은 예가 도시되나, 설명의 편의를 위한 것에 불과할 뿐, 본 개시의 실시예가 이에 제한되는 것은 아니다. 도 7은 전자 장치(101)와 외부 전자 장치(730) 및 외부 전자 장치(710)와 외부 전자 장치(720)가 서로 연결된 것으로 가정한다. 예를 들어, 상기 유선 네트워크는, 인터넷, LAN(local area network), WAN(wide area network), 또는 이들의 조합과 같은 네트워크를 포함할 수 있다. 예를 들어, 상기 무선 네트워크는, LTE(long term evolution), 5g NR(new radio), WiFi(wireless fidelity), Zigbee, NFC(near field communication), Bluetooth, BLE(Bluetooth low-energy), 또는 이들의 조합과 같은 네트워크를 포함할 수 있다. 비록, 전자 장치(101), 외부 전자 장치들(710, 720, 730), 및 서버(750)가 직접적으로 연결된(directly connected) 것으로 도시되었으나, 전자 장치(101), 외부 전자 장치들(710, 720, 730), 및 서버(750)는 하나 이상의 라우터 및/또는 AP(access point)를 통해 간접적으로 연결될 수 있다. Referring to FIG. 3, an exemplary situation is illustrated in which an electronic device (101), external electronic devices (710, 720, 730), and a server (750) are connected to each other based on a wired network and/or a wireless network. In FIG. 7, an example is illustrated in which the electronic device (101) and the external electronic device (730) and the external electronic device (710) and the external electronic device (720) are not connected to each other, but this is merely for convenience of explanation, and the embodiments of the present disclosure are not limited thereto. FIG. 7 assumes that the electronic device (101) and the external electronic device (730) and the external electronic device (710) and the external electronic device (720) are connected to each other. For example, the wired network may include a network such as the Internet, a local area network (LAN), a wide area network (WAN), or a combination thereof. For example, the wireless network may include a network such as long term evolution (LTE), 5g new radio (NR), wireless fidelity (WiFi), Zigbee, near field communication (NFC), Bluetooth, Bluetooth low-energy (BLE), or a combination thereof. Although the electronic device (101), external electronic devices (710, 720, 730), and server (750) are illustrated as being directly connected, the electronic device (101), external electronic devices (710, 720, 730), and server (750) may be indirectly connected via one or more routers and/or access points (APs).

도 7을 참고하면, 일 실시예에 따른, 전자 장치(101)는 프로세서(701), 통신 회로(703), 또는 메모리(705) 중 적어도 하나를 포함할 수 있다. 도 7의 프로세서(701)는 도 3의 프로세서(301)와 상응할 수 있다. 도 7의 통신 회로(703)는 도 3의 통신 회로(303)와 상응할 수 있다. 도 7의 메모리(705)는 도 3의 메모리(305)와 상응할 수 있다. 다시 말해서, 도 7의 프로세서(701), 통신 회로(703), 및 메모리(705) 각각에 대한 구체적인 내용은, 도 3의 프로세서(01), 통신 회로(303), 및 메모리(305)에 대한 내용이 실질적으로 동일하게 적용될 수 있다.Referring to FIG. 7, according to one embodiment, the electronic device (101) may include at least one of a processor (701), a communication circuit (703), and a memory (705). The processor (701) of FIG. 7 may correspond to the processor (301) of FIG. 3. The communication circuit (703) of FIG. 7 may correspond to the communication circuit (303) of FIG. 3. The memory (705) of FIG. 7 may correspond to the memory (305) of FIG. 3. In other words, specific details of the processor (701), the communication circuit (703), and the memory (705) of FIG. 7 may be substantially identically applied to the details of the processor (01), the communication circuit (303), and the memory (305) of FIG. 3.

도 7의 예에서는, 외부 전자 장치들(710, 720, 730) 각각은 전자 장치(101)의 구성요소들(예: 프로세서(701), 통신 회로(703), 및 메모리(705))를 실질적으로 동일하게 포함할 수 있다. 예를 들어, 외부 전자 장치(710)는, 프로세서, 통신 회로, 및 메모리를 포함할 수 있다. 예를 들어, 외부 전자 장치(720)는, 프로세서, 통신 회로, 및 메모리를 포함할 수 있다. 예를 들어, 외부 전자 장치(730)는, 프로세서, 통신 회로, 및 메모리를 포함할 수 있다. 상기 프로세서, 상기 통신 회로, 및 상기 메모리 각각에 대한 설명은, 프로세서(301), 통신 회로(303), 및 메모리(305)에 대한 설명이 실질적으로 동일하게 적용될 수 있다.In the example of FIG. 7, each of the external electronic devices (710, 720, 730) may include substantially the same components of the electronic device (101) (e.g., the processor (701), the communication circuit (703), and the memory (705)). For example, the external electronic device (710) may include a processor, a communication circuit, and a memory. For example, the external electronic device (720) may include a processor, a communication circuit, and a memory. For example, the external electronic device (730) may include a processor, a communication circuit, and a memory. The description of each of the processor, the communication circuit, and the memory may be substantially the same as the description of the processor (301), the communication circuit (303), and the memory (305).

도 7을 참조하면, 서버(750)는, 프로세서(751), 통신 회로(753), 메모리(755)를 포함할 수 있다. 프로세서(751), 통신 회로(753), 및 메모리(755) 각각에 대한 설명은, 프로세서(701), 통신 회로(703), 및 메모리(705)에 대한 설명이 실질적으로 동일하게 적용될 수 있다. 예를 들어, 서버(750)는, 특정 서비스와 연관될 수 있다. 예를 들어, 상기 특정 서비스는 도메인(domain)을 포함할 수 있다. Referring to FIG. 7, the server (750) may include a processor (751), a communication circuit (753), and a memory (755). The description of each of the processor (751), the communication circuit (753), and the memory (755) may be substantially identical to the description of the processor (701), the communication circuit (703), and the memory (705). For example, the server (750) may be associated with a specific service. For example, the specific service may include a domain.

도 7을 참조하면, 일 실시예를 따른, 서버(750)의 메모리(755) 내에서, 서버(750)의 프로세서(751)가 데이터에 수행할 연산, 및/또는 동작을 나타내는 하나 이상의 인스트럭션들(또는 명령어들)이 저장될 수 있다. 하나 이상의 인스트럭션들의 집합은, 프로그램, 펌웨어, 운영 체제, 프로세스, 루틴, 서브-루틴 및/또는 어플리케이션으로 참조될 수 있다. 이하에서, 어플리케이션이 전자 장치(예, 서버(750)) 내에 설치되었다는 것은, 어플리케이션의 형태로 제공된 하나 이상의 인스트럭션들이 메모리(755) 내에 저장된 것으로써, 상기 하나 이상의 어플리케이션들이 전자 장치의 프로세서에 의해 실행 가능한(executable) 포맷(예, 서버(750))의 운영 체제에 의해 지정된 확장자를 가지는 파일)으로 저장된 것을 의미할 수 있다. 일 실시예에 따른, 서버(750)는 메모리(755)에 저장된 하나 이상의 인스트럭션들을 실행하여, 도 8 또는 도 9의 동작을 수행할 수 있다.Referring to FIG. 7, according to one embodiment, in the memory (755) of the server (750), one or more instructions (or commands) representing operations and/or actions to be performed on data by the processor (751) of the server (750) may be stored. A set of one or more instructions may be referred to as a program, firmware, an operating system, a process, a routine, a sub-routine, and/or an application. Hereinafter, when an application is installed in an electronic device (e.g., the server (750)), it may mean that one or more instructions provided in the form of an application are stored in the memory (755), and that the one or more applications are stored in a format executable by the processor of the electronic device (e.g., a file having an extension specified by the operating system of the server (750)). According to one embodiment, the server (750) may execute one or more instructions stored in the memory (755) to perform the operation of FIG. 8 or FIG. 9.

일 실시예에 따르면, 서버(750)에 설치된 프로그램들은, 타겟에 기반하여, 어플리케이션 계층, 프레임워크 계층 및/또는 하드웨어 추상화 계층(hardware abstraction layer, HAL)을 포함하는 상이한 계층들 중 어느 한 계층으로 분류될 수 있다. 예를 들어, 상기 하드웨어 추상화 계층 내에, 서버(750)의 하드웨어(예: 통신 회로(753))를 타겟으로 설계된 프로그램들(예, 드라이버)이 분류될 수 있다. 예를 들어, 상기 프레임워크 계층 내에, 상기 하드웨어 추상화 계층 및/또는 상기 어플리케이션 계층 중 적어도 하나를 타겟으로 설계된 프로그램들(예, 기준 모델 생성 모듈(755-1), 유사도 판별 모듈(755-2), 및/또는 모델 훈련 모듈(755-3))이 분류될 수 있다. 상기 프레임워크 계층으로 분류되는 프로그램들은, 다른 프로그램에 기반하여 실행가능한 API(application programming interface)를 제공할 수 있다.According to one embodiment, the programs installed in the server (750) may be classified into one of different layers, including an application layer, a framework layer, and/or a hardware abstraction layer (HAL), based on a target. For example, programs (e.g., drivers) designed to target the hardware (e.g., communication circuit (753)) of the server (750) may be classified within the hardware abstraction layer. For example, programs (e.g., reference model generation module (755-1), similarity determination module (755-2), and/or model training module (755-3)) designed to target at least one of the hardware abstraction layer and/or the application layer may be classified within the framework layer. Programs classified into the framework layer may provide an executable API (application programming interface) based on other programs.

도 7을 참조하면, 일 실시예에 따른 서버(750)는, 기준 모델 생성 모듈(755-1)의 실행에 기반하여, FL을 위한 기준 모델을 생성(또는 훈련)하고 저장할 수 있다. 예를 들어, 서버(750)는, 상기 기준 모델을 전자 장치(101) 또는 외부 전자 장치들(710, 720, 730)이 다운로드할 시, 이용될 API(application programming interface)를 포함할 수 있다. 예를 들어, 상기 API는 rest API를 포함할 수 있다. Referring to FIG. 7, a server (750) according to one embodiment may generate (or train) and store a reference model for FL based on the execution of a reference model generation module (755-1). For example, the server (750) may include an API (application programming interface) to be used when the electronic device (101) or external electronic devices (710, 720, 730) download the reference model. For example, the API may include a rest API.

도 7을 참조하면, 일 실시예에 따른 서버(750)는, 유사도 판별 모듈(755-2)의 실행에 기반하여, 전자 장치(101)의 모델 및 외부 전자 장치들(710, 720, 730)로부터 획득된 모델들 사이의 유사도를 판별할(discriminate) 수 있다. 예를 들어, 서버(750)는, 전자 장치(101)의 제1 모델, 외부 전자 장치(710)의 제2 모델, 외부 전자 장치(720)의 제3 모델, 외부 전자 장치(730)의 제4 모델을 수신할 수 있다. 예를 들어, 상기 제1 모델은, 전자 장치(101)에 의해 상기 기준 모델로부터 학습되고, 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제2 모델은, 외부 전자 장치(710)에 의해 상기 기준 모델로부터 학습되고, 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제3 모델은, 외부 전자 장치(720)에 의해 상기 기준 모델로부터 학습되고, 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제4 모델은, 외부 전자 장치(730)에 의해 상기 기준 모델로부터 학습되고, 상기 서비스를 위한 모델일 수 있다. 상기 예에서, 상기 제1 모델, 상기 제2 모델, 상기 제3 모델, 및 상기 제4 모델은, 상기 서비스와 관련된 모델인 경우를 가정한다. 다만, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 서버(750)는, 외부 전자 장치(710)로부터 상기 서비스와 관련되지 않는 다른 서비스를 위한 제5 모델을 획득(또는 저장)할 수도 있다. Referring to FIG. 7, a server (750) according to an embodiment may discriminate the similarity between a model of an electronic device (101) and models obtained from external electronic devices (710, 720, 730) based on the execution of a similarity determination module (755-2). For example, the server (750) may receive a first model of the electronic device (101), a second model of the external electronic device (710), a third model of the external electronic device (720), and a fourth model of the external electronic device (730). For example, the first model may be learned from the reference model by the electronic device (101) and may be a model for the service. For example, the second model may be learned from the reference model by the external electronic device (710) and may be a model for the service. For example, the third model may be learned from the reference model by the external electronic device (720) and may be a model for the service. For example, the fourth model may be learned from the reference model by the external electronic device (730) and may be a model for the service. In the above example, it is assumed that the first model, the second model, the third model, and the fourth model are models related to the service. However, the embodiment of the present disclosure is not limited thereto. For example, the server (750) may also obtain (or store) a fifth model for another service that is not related to the service from the external electronic device (710).

일 실시예에 따르면, 서버(750)는, 전자 장치(101)의 모델과 외부 전자 장치들(710, 720, 730)의 모델들 사이의 유사도를 판별할 수 있다. 예를 들어, 서버(750)는, 전자 장치(101)의 상기 제1 모델을 기준으로, 상기 제1 모델에 대하여 유사한 모델을 식별할 수 있다. 예를 들어, 서버(750)는, 외부 전자 장치들(710, 720, 730)의 모델들(예: 상기 제2 모델, 상기 제3 모델, 상기 제4 모델) 각각과 전자 장치(101)의 상기 제1 모델 사이의 상기 유사도를 판별할 수 있다. 이 때, 서버(750)는, 상기 제1 모델과 관련된 상기 서비스를 위한 모델들인 상기 제2 모델, 상기 제3 모델, 상기 제4 모델을 인식할 수 있다. 이와 다리, 서버(750)는, 상기 제5 모델이 상기 제1 모델과 상이한 상기 다른 서비스를 위한 모델임을 인식함에 기반하여 상기 제5 모델은 상기 유사도 판별을 위한 모델에서 제외할 수 있다. According to one embodiment, the server (750) can determine the similarity between the model of the electronic device (101) and the models of the external electronic devices (710, 720, 730). For example, the server (750) can identify a similar model with respect to the first model of the electronic device (101) based on the first model of the electronic device (101). For example, the server (750) can determine the similarity between each of the models (e.g., the second model, the third model, the fourth model) of the external electronic devices (710, 720, 730) and the first model of the electronic device (101). At this time, the server (750) can recognize the second model, the third model, and the fourth model, which are models for the service related to the first model. Based on the recognition that the fifth model is a model for the other service different from the first model, the server (750) can exclude the fifth model from the model for determining similarity.

일 실시예에 따르면, 서버(750)는, 전자 장치(101)의 모델과 외부 전자 장치의 모델을 직접적으로 비교하거나, 전자 장치(101)의 모델과 외부 전자 장치의 모델 각각에게 기준 데이터를 입력하고 이에 따른 출력을 비교함으로써, 상기 유사도를 판별할 수 있다. 이와 관련된 구체적인 내용은, 도 3의 유사도 판별 모듈(305-1)에 대한 내용이 참조될 수 있다.According to one embodiment, the server (750) can determine the similarity by directly comparing the model of the electronic device (101) with the model of the external electronic device, or by inputting reference data to each of the model of the electronic device (101) and the model of the external electronic device and comparing the outputs thereof. For specific details related thereto, reference may be made to the content of the similarity determination module (305-1) of FIG. 3.

도 7을 참조하면, 일 실시예에 따른 서버(750)는, 모델 훈련 모듈(755-3)의 실행에 기반하여, 전자 장치(101)의 모델(예: 상기 제1 모델)을 훈련할 수 있다. 예를 들어, 서버(750)는, 전자 장치(101)의 상기 제1 모델과 외부 전자 장치(710)의 상기 제2 모델이 유사하다고 판단하는 경우, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 새로운 모델을 생성(또는 학습, 업데이트)할 수 있다. 일 실시예에 따르면, 서버(750)는, 상기 서비스를 위한 상기 새로운 모델을 전자 장치(101)에게 전송할 수 있다. 이 후, 전자 장치(101)는, 수신된 상기 새로운 모델에 기반하여 상기 서비스를 제공할 수 있다. Referring to FIG. 7, a server (750) according to an embodiment may train a model (e.g., the first model) of an electronic device (101) based on the execution of a model training module (755-3). For example, if the server (750) determines that the first model of the electronic device (101) and the second model of the external electronic device (710) are similar, the server (750) may generate (or learn, update) a new model for the service from the first model using the second model. According to an embodiment, the server (750) may transmit the new model for the service to the electronic device (101). Thereafter, the electronic device (101) may provide the service based on the received new model.

상술한 예에서는, 서버(750)가 상기 서비스에 대하여 전자 장치(101)의 모델(예: 상기 제1 모델)을 기준으로 수행하는 동작들의 예가 서술되나, 본 개시의 실시예들이 이에 제한되는 것은 아니다. 예를 들어, 서버(750)는, 외부 전자 장치들(710, 720, 730) 각각에 대하여도 상기 동작들을 수행할 수 있다. In the above-described example, the server (750) is described as an example of operations performed based on the model (e.g., the first model) of the electronic device (101) for the service, but the embodiments of the present disclosure are not limited thereto. For example, the server (750) may also perform the operations for each of the external electronic devices (710, 720, 730).

도 8은, 일 실시예에 따른, 서버에 기반하여 개인화된 모델을 생성하는 방법에 대한 신호 흐름의 예를 도시한다.FIG. 8 illustrates an example signal flow for a method for generating a personalized model based on a server, according to one embodiment.

도 8의 전자 장치(101)는, 도 7의 전자 장치(101)의 일 예일 수 있다. 도 8의 외부 전자 장치(710)는, 도 7의 외부 전자 장치(710)의 일 예일 수 있다. 도 8의 서버(750)는, 도 7의 서버(750)의 일 예일 수 있다. 도 8의 예에서는, 하나의 외부 전자 장치(710)를 통해 상기 서버에 기반하여 개인화된 모델을 생성하는 방법에 대한 예가 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 본 개시의 실시예들은, 복수의 외부 전자 장치들을 통해 상기 서버에 기반하여 개인화된 모델을 생성하는 방법을 포함할 수 있다. The electronic device (101) of FIG. 8 may be an example of the electronic device (101) of FIG. 7. The external electronic device (710) of FIG. 8 may be an example of the external electronic device (710) of FIG. 7. The server (750) of FIG. 8 may be an example of the server (750) of FIG. 7. In the example of FIG. 8, an example of a method for generating a personalized model based on the server through one external electronic device (710) is illustrated, but the embodiments of the present disclosure are not limited thereto. For example, the embodiments of the present disclosure may include a method for generating a personalized model based on the server through a plurality of external electronic devices.

도 8을 참조하면, 동작(800)에서, 서버(750)는, 기준 모델을 생성할 수 있다. 예를 들어, 서버(750)는, FL을 위한 상기 기준 모델을 생성할 수 있다. 예를 들어, 서버(750)는, 생성된 상기 기준 모델을 저장할 수 있다. 예를 들어, 상기 기준 모델은, 전자 장치(101)에 의해 제공되는 서비스를 위한 모델일 수 있다. Referring to FIG. 8, in operation (800), the server (750) can generate a reference model. For example, the server (750) can generate the reference model for FL. For example, the server (750) can store the generated reference model. For example, the reference model can be a model for a service provided by the electronic device (101).

동작(805)에서, 서버(750)는, 상기 기준 모델을 전송할 수 있다. 예를 들어, 서버(750)는, 상기 FL을 위하여 복수의 전자 장치들과 연결을 수립할 수 있다. 예를 들어, 서버(750)는, 전자 장치(101)와 연결을 수립할 수 있다. 예를 들어, 서버(750)는, 외부 전자 장치(710)와 연결을 수립할 수 있다. 예를 들어, 서버(750)는, 연결이 수립된 전자 장치(101) 및 외부 전자 장치(101) 각각에게 상기 기준 모델을 전송할 수 있다. In operation (805), the server (750) can transmit the reference model. For example, the server (750) can establish connections with a plurality of electronic devices for the FL. For example, the server (750) can establish a connection with the electronic device (101). For example, the server (750) can establish a connection with an external electronic device (710). For example, the server (750) can transmit the reference model to each of the electronic device (101) and the external electronic device (101) with which the connection is established.

동작(810)에서, 전자 장치(101)는, 입력 데이터를 획득(또는 수집)할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 사용자의 상기 입력 데이터를 획득할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자가 전자 장치(101)에 대하여 수행하는 입력을 포함할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자의 발화, 상기 사용자의 터치 입력, 또는, 상기 사용자의 사용 기록을 포함할 수 있다. 다만, 본 개시의 실시예가 이에 제한되는 것은 아니다. 일 실시예에 따르면, 상기 입력 데이터는, 전자 장치(101)의 상기 사용자가 상기 서비스를 이용하는 동안 획득될 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델을 이용하여 상기 서비스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델을 이용하여, 상기 입력 데이터로부터 출력 데이터를 생성할 수 있다. 상기 출력 데이터는, 상기 서비스를 제공하기 위해 이용될 수 있다. 상기 기준 모델을 이용하여 상기 서비스가 제공되는 동안, 전자 장치(101)는, 상기 입력 데이터를 획득할 수 있다. In operation (810), the electronic device (101) may obtain (or collect) input data. For example, the electronic device (101) may obtain the user's input data for the service. For example, the input data may include an input performed by the user to the electronic device (101). For example, the input data may include the user's utterance, the user's touch input, or the user's usage history. However, the embodiment of the present disclosure is not limited thereto. According to one embodiment, the input data may be obtained while the user of the electronic device (101) uses the service. For example, the electronic device (101) may provide the service using the reference model. For example, the electronic device (101) may generate output data from the input data using the reference model. The output data may be used to provide the service. While the service is provided using the reference model, the electronic device (101) may obtain the input data.

동작(815)에서, 전자 장치(101)는, 제1 모델을 생성할 수 있다. 예를 들어, 전자 장치(101)는, 상기 기준 모델로부터, 상기 입력 데이터를 이용하여 상기 제1 모델을 생성(또는, 훈련, 학습, 업데이트)할 수 있다. 예를 들어, 상기 제1 모델은, 상기 서비스를 위한 모델일 수 있다. In operation (815), the electronic device (101) may generate a first model. For example, the electronic device (101) may generate (or train, learn, update) the first model using the input data from the reference model. For example, the first model may be a model for the service.

동작(820)에서, 외부 전자 장치(710)는, 입력 데이터를 획득(또는 수집)할 수 있다. 예를 들어, 외부 전자 장치(710)는, 상기 서비스를 위한 사용자의 상기 입력 데이터를 획득할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자가 외부 전자 장치(710)에 대하여 수행하는 입력을 포함할 수 있다. 예를 들어, 상기 입력 데이터는, 상기 사용자의 발화, 상기 사용자의 터치 입력, 또는, 상기 사용자의 사용 기록을 포함할 수 있다. 다만, 본 개시의 실시예가 이에 제한되는 것은 아니다. 일 실시예에 따르면, 상기 입력 데이터는, 외부 전자 장치(710)의 상기 사용자가 상기 서비스를 이용하는 동안 획득될 수 있다. 예를 들어, 외부 전자 장치(710)는, 상기 기준 모델을 이용하여 상기 서비스를 제공할 수 있다. 예를 들어, 외부 전자 장치(710)는, 상기 기준 모델을 이용하여, 상기 입력 데이터로부터 출력 데이터를 생성할 수 있다. 상기 출력 데이터는, 상기 서비스를 제공하기 위해 이용될 수 있다. 상기 기준 모델을 이용하여 상기 서비스가 제공되는 동안, 외부 전자 장치(710)는, 상기 입력 데이터를 획득할 수 있다. In operation (820), the external electronic device (710) may obtain (or collect) input data. For example, the external electronic device (710) may obtain the user's input data for the service. For example, the input data may include an input that the user performs with respect to the external electronic device (710). For example, the input data may include the user's utterance, the user's touch input, or the user's usage history. However, the embodiment of the present disclosure is not limited thereto. According to one embodiment, the input data may be obtained while the user of the external electronic device (710) uses the service. For example, the external electronic device (710) may provide the service using the reference model. For example, the external electronic device (710) may generate output data from the input data using the reference model. The output data may be used to provide the service. While the service is provided using the reference model, the external electronic device (710) may obtain the input data.

동작(825)에서, 외부 전자 장치(710)는, 제2 모델을 생성할 수 있다. 예를 들어, 외부 전자 장치(710)는, 상기 기준 모델로부터, 상기 입력 데이터를 이용하여 상기 제2 모델을 생성(또는, 훈련, 학습, 업데이트)할 수 있다. 예를 들어, 상기 제2 모델은, 상기 서비스를 위한 모델일 수 있다. In operation (825), the external electronic device (710) may generate a second model. For example, the external electronic device (710) may generate (or train, learn, update) the second model using the input data from the reference model. For example, the second model may be a model for the service.

도 8에서는, 동작(810) 및 동작(815)이 동작(820) 및 동작(825)과 동시에 수행되는 것으로 도시되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)에 의해 수행되는 동작(810) 및 동작(815)은, 외부 전자 장치(710)에 의해 수행되는 동작(820) 및 동작(825) 보다 먼저 수행되거나, 늦게 수행될 수도 있다. In FIG. 8, operations (810) and (815) are illustrated as being performed simultaneously with operations (820) and (825), but the embodiments of the present disclosure are not limited thereto. For example, operations (810) and (815) performed by the electronic device (101) may be performed before or after operations (820) and (825) performed by the external electronic device (710).

동작(830)에서, 전자 장치(101)는, 상기 제1 모델을 전송할 수 있다. 예를 들어, 전자 장치(101)는, 상기 서비스를 위한 상기 제1 모델을 서버(750)에게 전송할 수 있다. 동작(835)에서, 외부 전자 장치(710)는, 상기 제2 모델을 전송할 수 있다. 예를 들어, 외부 전자 장치(710)는, 상기 서비스를 위한 상기 제2 모델을 서버(750)에게 전송할 수 있다. In operation (830), the electronic device (101) can transmit the first model. For example, the electronic device (101) can transmit the first model for the service to the server (750). In operation (835), the external electronic device (710) can transmit the second model. For example, the external electronic device (710) can transmit the second model for the service to the server (750).

상기 예에서, 전자 장치(101)는, 상기 제1 모델을 서버(750)에게 전송하는 예가 서술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다. 예를 들어, 전자 장치(101)는, 상기 제1 모델과 함께 전자 장치(101)의 위치 정보를 서버(750)에게 전송할 수 있다. 또한, 예를 들어, 외부 전자 장치(710)는, 상기 제2 모델과 함께 외부 전자 장치(710)의 위치 정보를 서버(750)에게 전송할 수 있다. 예를 들어, 전자 장치(101)의 상기 위치 정보 또는 외부 전자 장치(710)의 상기 위치 정보는, 전자 장치(101)의 GPS(global positioning system) 좌표 정보, 또는 통신 기법(예: WiFi, BLE)에 기반한 위치 측위 정보를 포함할 수 있다.In the above example, the electronic device (101) is described as an example of transmitting the first model to the server (750), but the embodiments of the present disclosure are not limited thereto. For example, the electronic device (101) may transmit location information of the electronic device (101) to the server (750) together with the first model. In addition, for example, the external electronic device (710) may transmit location information of the external electronic device (710) to the server (750) together with the second model. For example, the location information of the electronic device (101) or the location information of the external electronic device (710) may include global positioning system (GPS) coordinate information of the electronic device (101) or location measurement information based on a communication technique (e.g., WiFi, BLE).

동작(840)에서, 서버(750)는, 모델 간의 유사도를 판별할 수 있다. 예를 들어, 서버(750)는, 상기 제1 모델과 상기 제2 모델 사이의 유사도를 판별할 수 있다. 예를 들어, 서버(750)는, 상기 유사도의 판별을 위한 기준이 될 모델로, 상기 제1 모델을 선택할 수 있다. 예를 들어, 서버(750)는, 선택된 상기 제1 모델에 의해 제공되는 상기 서비스를 위한 다른 모델(예: 상기 제2 모델)을 식별할 수 있다. 예를 들어, 서버(750)는, 상기 제1 모델과 상기 제2 모델 사이의 차이가 기준 값 미만인지 여부를 결정할 수 있다. 예를 들어, 상기 유사도를 판별하는 것은, 상기 제1 모델과 상기 제2 모델 자체를 비교하는 방법, 또는 상기 제1 모델과 상기 제2 모델에 대하여 입력된 기준 데이터로부터 출력된 벡터 값들 사이를 비교하는 방법을 포함할 수 있다. 상기 유사도를 판별하는 방법들에 대한 구체적인 내용은 도 3의 모델 훈련 모듈(305-1)에 기반한 동작이 참조될 수 있다.In operation (840), the server (750) can determine the similarity between the models. For example, the server (750) can determine the similarity between the first model and the second model. For example, the server (750) can select the first model as a model to be a reference for determining the similarity. For example, the server (750) can identify another model (e.g., the second model) for the service provided by the selected first model. For example, the server (750) can determine whether a difference between the first model and the second model is less than a reference value. For example, determining the similarity can include a method of comparing the first model and the second model themselves, or a method of comparing vector values output from reference data input for the first model and the second model. For specific details on methods for determining the above similarity, reference may be made to the operation based on the model training module (305-1) of FIG. 3.

일 실시예에 따르면, 서버(750)는, 전자 장치(101)로부터 수신된 상기 위치 정보를 더 이용하여, 상기 제1 모델에 대하여 유사도를 판별할 모델인 상기 제2 모델을 인식할 수 있다. 예를 들어, 서버(750)는, 상기 서비스를 이용하는 복수의 외부 전자 장치들을 인식하고, 상기 복수의 외부 전자 장치들 중에서 전자 장치(101)의 상기 위치 정보를 이용하여 전자 장치(101)와 연결될 수 있는(또는 연결될 가능성이 높은) 외부 전자 장치(710)를 결정할 수 있다. 예를 들어, 외부 전자 장치(710)는, 상기 복수의 외부 전자 장치들 중에서 전자 장치(101)의 위치로부터 지정된 거리 내에 있는 적어도 하나의 외부 전자 장치에 포함될 수 있다. 예를 들어, 서버(750)는, 상기 복수의 외부 전자 장치들 각각으로부터 획득된 위치 정보 및 전자 장치(101)의 상기 위치 정보에 기반하여, 외부 전자 장치(710)를 인식할 수 있다. 이에 따라, 서버(750)는, 상기 제1 모델 및 상기 제1 모델과 동일한 상기 서비스를 제공하고 상기 전자 장치(101)와 가까운 영역에 위치되는 외부 전자 장치(710)의 상기 제2 모델을 인식할 수 있다. 예를 들어, 서버(750)는, 인식된 상기 제1 모델 및 상기 제2 모델 사이의 유사도를 판별할 수 있다. According to one embodiment, the server (750) may further use the location information received from the electronic device (101) to recognize the second model, which is a model for determining similarity with respect to the first model. For example, the server (750) may recognize a plurality of external electronic devices that use the service, and determine an external electronic device (710) that can be connected (or is likely to be connected) to the electronic device (101) by using the location information of the electronic device (101) among the plurality of external electronic devices. For example, the external electronic device (710) may be included in at least one external electronic device that is within a specified distance from the location of the electronic device (101) among the plurality of external electronic devices. For example, the server (750) may recognize the external electronic device (710) based on the location information obtained from each of the plurality of external electronic devices and the location information of the electronic device (101). Accordingly, the server (750) can recognize the first model and the second model of the external electronic device (710) that provides the same service as the first model and is located in a close area to the electronic device (101). For example, the server (750) can determine the similarity between the recognized first model and the second model.

동작(845)에서, 서버(750)는, 제3 모델을 생성할 수 있다. 예를 들어, 서버(750)는, 상기 제1 모델로부터 상기 제2 모델을 이용하여 상기 제3 모델을 생성할 수 있다. 예를 들어, 상기 제3 모델은 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제3 모델은, 상기 제1 모델을 구성하는 제1 벡터 값들과 상기 제2 모델을 구성하는 제2 벡터 값들의 평균값을 갖는 제3 벡터 값들로 구성될 수 있다. 예를 들어, 상기 제3 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 평균값을 가질 수 있다.In operation (845), the server (750) can generate a third model. For example, the server (750) can generate the third model from the first model using the second model. For example, the third model can be a model for the service. For example, the third model can be composed of third vector values having an average value of first vector values constituting the first model and second vector values constituting the second model. For example, each of the third vector values can have an average value of each of the first vector values and each of the second vector values.

동작(850)에서, 서버(750)는, 상기 제3 모델을 전송할 수 있다. 예를 들어, 서버(750)는, 상기 제3 모델을 전자 장치(101)에게 전송할 수 있다. 상기 제3 모델은 전자 장치(101)의 상기 제1 모델로부터 생성된 모델인 바, 서버(750)는, 상기 제3 모델을 전자 장치(101)에게 전송할 수 있다.In operation (850), the server (750) can transmit the third model. For example, the server (750) can transmit the third model to the electronic device (101). The third model is a model generated from the first model of the electronic device (101), and the server (750) can transmit the third model to the electronic device (101).

도 9는 일 실시예에 따른, 서버에 기반하여 개인화된 모델을 생성하는 방법에 대한 동작 흐름의 예를 도시한다.FIG. 9 illustrates an example of an operational flow for a method of generating a personalized model based on a server, according to one embodiment.

도 9의 상기 방법 중 적어도 일부는, 도 7의 서버(750)에 의해 수행될 수 있다. 예를 들어, 상기 방법 중 적어도 일부는, 서버(750)의 프로세서(701)에 의해 제어될 수 있다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 도 9에서, 서버(750)는, 전자 장치로 참조될 수 있다. At least some of the above methods of FIG. 9 may be performed by the server (750) of FIG. 7. For example, at least some of the above methods may be controlled by the processor (701) of the server (750). In the following embodiments, the respective operations may be performed sequentially, but are not necessarily performed sequentially. For example, the order of the respective operations may be changed, and at least two operations may be performed in parallel. In FIG. 9, the server (750) may be referred to as an electronic device.

일 실시예에 따르면, 동작(910)에서, 서버(750)는, 기준 모델을 제1 외부 전자 장치, 제2 외부 전자 장치, 및 제3 외부 전자 장치 각각에게 전송할 수 있다. 예를 들어, 서버(750)는, FL을 위한 상기 기준 모델을 생성할 수 있다. 예를 들어, 서버(750)는, 생성된 상기 기준 모델을 저장할 수 있다. 예를 들어, 상기 기준 모델은, 상기 제1 외부 전자 장치(예: 전자 장치(101)), 상기 제3 외부 전자 장치, 및 상기 제3 외부 전자 장치 각각에 의해 제공되는 서비스를 위한 모델일 수 있다. According to one embodiment, in operation (910), the server (750) can transmit the reference model to each of the first external electronic device, the second external electronic device, and the third external electronic device. For example, the server (750) can generate the reference model for FL. For example, the server (750) can store the generated reference model. For example, the reference model can be a model for a service provided by each of the first external electronic device (e.g., electronic device (101)), the third external electronic device, and the third external electronic device.

예를 들어, 서버(750)는, 상기 FL을 위하여 복수의 전자 장치들과 연결을 수립할 수 있다. 예를 들어, 서버(750)는, 상기 제1 외부 전자 장치, 상기 제2 외부 전자 장치, 및 상기 제3 외부 전자 장치와 연결을 수립할 수 있다. 예를 들어, 서버(750)는, 연결이 수립된 상기 제1 외부 전자 장치, 상기 제2 외부 전자 장치, 및 상기 제3 외부 전자 장치 각각에게 상기 기준 모델을 전송할 수 있다.For example, the server (750) can establish connections with a plurality of electronic devices for the FL. For example, the server (750) can establish connections with the first external electronic device, the second external electronic device, and the third external electronic device. For example, the server (750) can transmit the reference model to each of the first external electronic device, the second external electronic device, and the third external electronic device with which connections are established.

일 실시예에 따르면, 동작(920)에서, 서버(750)는, 상기 기준 모델로부터 생성된 제1 모델을 상기 제1 외부 전자 장치로부터 획득하고, 상기 기준 모델로부터 생성된 제2 모델을 상기 제2 외부 전자 장치로부터 획득하고, 상기 기준 모델로부터 생성된 제3 모델을 상기 제3 외부 전자 장치로부터 획득할 수 있다. According to one embodiment, in operation (920), the server (750) may obtain a first model generated from the reference model from the first external electronic device, obtain a second model generated from the reference model from the second external electronic device, and obtain a third model generated from the reference model from the third external electronic device.

예를 들어, 상기 제1 모델은, 상기 제1 외부 전자 장치에 의해 상기 기준 모델로부터 생성된 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제1 모델은, 상기 제1 외부 전자 장치의 사용자가 상기 제1 외부 전자 장치에 대하여 수행한 입력(또는 입력 데이터)에 기반하여 학습될 수 있다. 예를 들어, 상기 제2 모델은, 상기 제2 외부 전자 장치에 의해 상기 기준 모델로부터 생성된 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제2 모델은, 상기 제2 외부 전자 장치의 사용자가 상기 제2 외부 전자 장치에 대하여 수행한 입력(또는 입력 데이터)에 기반하여 학습될 수 있다. 예를 들어, 상기 제3 모델은, 상기 제3 외부 전자 장치에 의해 상기 기준 모델로부터 생성된 상기 서비스를 위한 모델일 수 있다. 예를 들어, 상기 제3 모델은, 상기 제3 외부 전자 장치의 사용자가 상기 제3 외부 전자 장치에 대하여 수행한 입력(또는 입력 데이터)에 기반하여 학습될 수 있다.For example, the first model may be a model for the service generated from the reference model by the first external electronic device. For example, the first model may be learned based on input (or input data) performed by a user of the first external electronic device to the first external electronic device. For example, the second model may be a model for the service generated from the reference model by the second external electronic device. For example, the second model may be learned based on input (or input data) performed by a user of the second external electronic device to the second external electronic device. For example, the third model may be a model for the service generated from the reference model by the third external electronic device. For example, the third model may be learned based on input (or input data) performed by a user of the third external electronic device to the third external electronic device.

일 실시예에 따르면, 동작(930)에서, 서버(750)는, 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식할 수 있다. In one embodiment, at operation (930), the server (750) can recognize a first difference between the first model and the second model and a second difference between the first model and the third model.

예를 들어, 서버(750)는, 상기 제1 모델과 상기 제2 모델(및 상기 제3 모델) 사이의 유사도를 판별할 수 있다. 예를 들어, 서버(750)는, 상기 유사도의 판별을 위한 기준이 될 모델로, 상기 제1 모델을 선택할 수 있다. 예를 들어, 서버(750)는, 선택된 상기 제1 모델에 의해 제공되는 상기 서비스를 위한 다른 모델들(예: 상기 제2 모델 및 상기 제3 모델)을 식별할 수 있다. 예를 들어, 서버(750)는, 상기 제1 모델과 상기 제2 모델 사이의 상기 제1 차이가 기준 값 미만인지 여부를 결정할 수 있다. 예를 들어, 서버(750)는, 상기 제1 모델과 상기 제3 모델 사이의 상기 제2 차이가 상기 기준 값 미만인지 여부를 결정할 수 있다. 예를 들어, 상기 유사도를 판별하는 것은, 상기 제1 모델과 상기 제2 모델(또는 상기 제3 모델) 자체를 비교하는 방법, 또는 상기 제1 모델과 상기 제2 모델(또는 상기 제3 모델)에 대하여 입력된 기준 데이터로부터 출력된 벡터 값들 사이를 비교하는 방법을 포함할 수 있다. 상기 유사도를 판별하는 방법들에 대한 구체적인 내용은 도 3의 모델 훈련 모듈(305-1)에 기반한 동작이 참조될 수 있다.For example, the server (750) can determine the similarity between the first model and the second model (and the third model). For example, the server (750) can select the first model as a model to be a criterion for determining the similarity. For example, the server (750) can identify other models (e.g., the second model and the third model) for the service provided by the selected first model. For example, the server (750) can determine whether the first difference between the first model and the second model is less than a criterion value. For example, the server (750) can determine whether the second difference between the first model and the third model is less than the criterion value. For example, determining the similarity may include a method of comparing the first model and the second model (or the third model) themselves, or a method of comparing vector values output from reference data input for the first model and the second model (or the third model). For specific details on methods of determining the similarity, reference may be made to the operation based on the model training module (305-1) of FIG. 3.

일 실시예에 따르면, 동작(940)에서, 서버(750)는, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성할 수 있다. 예를 들어, 서버(750)는, 상기 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 상기 제4 모델을 생성(또는 학습, 업데이트)할 수 있다. 예를 들어, 상기 제4 모델은, 상기 제1 모델을 구성하는 제1 벡터 값들과 상기 제2 모델을 구성하는 제2 벡터 값들의 평균값을 갖는 제3 벡터 값들로 구성될 수 있다. 예를 들어, 상기 제3 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 평균값을 가질 수 있다.In one embodiment, in operation (940), the server (750) can generate a fourth model for the service from the first model using the second model. For example, the server (750) can generate (or learn, update) the fourth model for the service from the first model using the second model based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value. For example, the fourth model can be composed of third vector values having an average value of the first vector values constituting the first model and the second vector values constituting the second model. For example, each of the third vector values can have an average value of each of the first vector values and each of the second vector values.

일 실시예에 따르면, 서버(750)는, 상기 제4 모델을 전송할 수 있다. 예를 들어, 서버(750)는, 상기 제4 모델을 상기 제1 외부 전자 장치에게 전송할 수 있다. 상기 제4 모델은 상기 제1 외부 전자 장치의 상기 제1 모델로부터 생성된 모델인 바, 서버(750)는, 상기 제4 모델을 상기 제1 외부 전자 장치에게 전송할 수 있다.According to one embodiment, the server (750) can transmit the fourth model. For example, the server (750) can transmit the fourth model to the first external electronic device. The fourth model is a model generated from the first model of the first external electronic device, and the server (750) can transmit the fourth model to the first external electronic device.

상술한 바와 같은, 전자 장치(101)(electronic device)는 인스트럭션들(instructions)을 저장하고, 하나 이상의 저장 매체들을 포함하는 메모리(305)를 포함할 수 있다. 상기 전자 장치(101)는 통신 회로(communication circuit)(303)를 포함할 수 있다. 상기 전자 장치(101)는 프로세싱 회로를 포함하는 적어도 하나의 프로세서(301)를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 통신 회로(303)를 통해, 연합 학습(federated learning)을 위한 서버(server)(350)로부터, 기준 모델(reference model)을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 서비스를 지시하는 제1 정보를 상기 서버(350)에게 전송하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 상기 서버(350)로부터 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치(310)로부터, 상기 외부 전자 장치(310)의 상기 서비스를 위한 제2 모델을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하도록, 야기할 수 있다.As described above, the electronic device (101) may include a memory (305) storing instructions and including one or more storage media. The electronic device (101) may include a communication circuit (303). The electronic device (101) may include at least one processor (301) including a processing circuit. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain a reference model from a server (350) for federated learning via the communication circuit (303). The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a first model for the service from the reference model using user input data for use of the service. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit first information indicative of the service to the server (350). The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain, in response to the first information, second information indicative of an external electronic device (310) that uses the service from the server (350). The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain a second model for the service of the external electronic device (310) from the external electronic device (310) with which a connection is established based on the second information. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a third model for the service using the first model and the second model based on a difference between the first model and the second model being less than a reference value.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 기준 모델에 기반하여, 상기 서비스를 이용하는 동안 수집된(collected) 상기 입력 데이터로부터 상기 서비스를 제공하는 출력 데이터를 생성하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 사용자의 입력을 획득함에 기반하여, 상기 입력 데이터를 이용하여 상기 기준 모델로부터 상기 제1 모델을 생성하도록, 야기할 수 있다.According to one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate output data for providing the service from the input data collected while using the service, based on the reference model. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate the first model from the reference model using the input data, based on obtaining the user's input.

일 실시예에 따르면, 상기 기준 모델은, 상기 서버(350)에 의해 학습될 수 있다. 상기 제2 모델은, 상기 기준 모델로부터 상기 외부 전자 장치(310)에 의해 상기 서비스에 대하여 생성될 수 있다.According to one embodiment, the reference model may be learned by the server (350). The second model may be generated for the service by the external electronic device (310) from the reference model.

일 실시예에 따르면, 상기 제1 정보는, 상기 서비스의 이름(name) 또는 상기 서비스를 제공하는 어플리케이션의 이름 중 적어도 하나를 포함할 수 있다. 상기 제2 정보는 상기 외부 전자 장치(310)의 MAC(media access control) 주소(address) 또는 상기 연결을 수립하기 위한 정보 중 적어도 하나를 포함할 수 있다.According to one embodiment, the first information may include at least one of a name of the service or a name of an application providing the service. The second information may include at least one of a MAC (media access control) address of the external electronic device (310) or information for establishing the connection.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 외부 전자 장치(310)에게, 상기 기준 모델로부터 상기 서비스에 대하여 학습된 상기 외부 전자 장치(310)의 모델을 요청하는 신호를 전송하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 신호에 응답하여, 상기 외부 전자 장치(310)로부터, 상기 서비스를 위한 상기 제2 모델을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제1 모델과 상기 제2 모델 사이의 상기 차이를 계산하도록, 야기할 수 있다.In one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit a signal to the external electronic device (310) requesting a model of the external electronic device (310) learned for the service from the reference model. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to, in response to the signal, obtain, from the external electronic device (310), the second model for the service. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to calculate the difference between the first model and the second model.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 다른(another) 외부 전자 장치(320)를 더(further) 지시하는 상기 제2 정보를 상기 서버(350)로부터 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제2 정보에 기반하여 연결이 수립된 상기 다른 외부 전자 장치(320)에게, 상기 기준 모델로부터 상기 서비스에 대하여 학습된 상기 다른 외부 전자 장치(320)의 모델을 요청하는 신호를 전송하도록, 야기할 수 있다. 상기 신호는 상기 생성된 제1 모델을 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 다른 외부 전자 장치(320)로부터, 상기 다른 외부 전자 장치(320)의 상기 서비스를 위한 제4 모델을 획득하도록, 야기할 수 있다. 상기 다른 외부 전자 장치(320)에 의해 인식되는 상기 제1 모델과 상기 제4 모델 사이의 차이는 상기 기준 값 미만일 수 있다. 상기 제3 모델은, 상기 제1 모델로부터, 상기 제4 모델을 더(further) 이용하여 생성될 수 있다.According to one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to, in response to the first information, obtain from the server (350) the second information further instructing another external electronic device (320) to use the service. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit a signal to the other external electronic device (320) with which a connection is established based on the second information, requesting a model of the other external electronic device (320) learned for the service from the reference model. The signal may include the generated first model. The above instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain, from the other external electronic device (320), a fourth model for the service of the other external electronic device (320). A difference between the first model and the fourth model recognized by the other external electronic device (320) may be less than the reference value. The third model may be generated from the first model by further utilizing the fourth model.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제1 모델의 제1 벡터 값들 및 상기 제2 모델의 제2 벡터 값들을 인식하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제1 벡터 값들과 상기 제2 벡터 값들의 사이의 거리(distance) 값들을 계산하도록, 야기할 수 있다. 상기 거리 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 차이에 기반하여 계산될 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 거리 값들의 평균값인 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 미만인지 여부를 결정하도록, 야기할 수 있다.In one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to recognize first vector values of the first model and second vector values of the second model. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to calculate distance values between the first vector values and the second vector values. Each of the distance values may be calculated based on a difference between each of the first vector values and each of the second vector values. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제1 모델에 기반하여, 기준 데이터(reference data)로부터 생성된 제1 기준 벡터 값들을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제2 모델에 기반하여, 상기 기준 데이터로부터 생성된 제2 기준 벡터 값들을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제1 기준 벡터 값들과 상기 제2 기준 벡터 값들의 사이의 거리(distance) 값들을 계산하도록, 야기할 수 있다. 상기 거리 값들 각각은 상기 제1 기준 벡터 값들 각각과 상기 제2 기준 벡터 값들 각각의 차이에 기반하여 계산될 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 거리 값들의 평균값인 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 미만인지 여부를 결정하도록, 야기할 수 있다.In one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain first reference vector values generated from reference data based on the first model. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to obtain second reference vector values generated from the reference data based on the second model. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to calculate distance values between the first reference vector values and the second reference vector values. Each of the distance values may be calculated based on a difference between each of the first reference vector values and each of the second reference vector values. The above instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 서비스를 위한 상기 제1 모델을 생성하는 동안, 상기 입력 데이터를 이용하여 상기 서버(350)로부터 획득된 다른(another) 기준 모델로부터 다른(another) 서비스를 위한 제5 모델을 생성하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 서비스를 위한 상기 제3 모델을 생성하는 동안, 상기 외부 전자 장치(310)로부터 상기 제2 모델과 함께 획득된 상기 다른 서비스를 위한 제6 모델을 이용하여, 상기 제5 모델로부터 상기 다른 서비스를 위한 제7 모델을 생성하도록, 야기할 수 있다. 상기 다른 서비스는, 상기 서비스와 관련될 수 있다.In one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a fifth model for another service from another reference model obtained from the server (350) using the input data while generating the first model for the service. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate a seventh model for the another service from the fifth model using a sixth model for the another service obtained from the external electronic device (310) together with the second model while generating the third model for the service. The other service may be related to the service.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제3 모델을 서버(350)에게 전송하도록, 야기할 수 있다. 상기 제3 모델은, 상기 제1 모델의 제1 벡터 값들과 상기 제2 모델의 제2 벡터 값들 사이의 평균값인 제3 벡터 값들에 기반하여 구성될 수 있다. 상기 제3 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 평균값일 수 있다.According to one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to transmit the third model to the server (350). The third model may be configured based on third vector values that are an average between first vector values of the first model and second vector values of the second model. Each of the third vector values may be an average of each of the first vector values and each of the second vector values.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 서비스의 이용을 위한 상기 사용자의 다른 입력 데이터를 수집하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가, 상기 제3 모델에 기반하여, 상기 서비스를 이용하는 동안 수집된 상기 다른 입력 데이터로부터 상기 서비스를 제공하는 출력 데이터를 생성하도록, 야기할 수 있다.According to one embodiment, the instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to collect other input data of the user for use of the service. The instructions, when individually or collectively executed by the at least one processor (301), may cause the electronic device (101) to generate output data for providing the service from the other input data collected while using the service, based on the third model.

일 실시예에 따르면, 상기 서비스가 음성 인식 서비스인 경우, 상기 다른 입력 데이터는 상기 사용자의 음성 정보(speech information)을 포함하고, 상기 출력 데이터는, 상기 음성 정보를 나타내는 텍스트(text)를 포함할 수 있다.According to one embodiment, if the service is a voice recognition service, the other input data may include speech information of the user, and the output data may include text representing the speech information.

상술한 바와 같은, 전자 장치(electronic device)(750)는, 인스트럭션들(instructions)을 저장하고, 하나 이상의 저장 매체들을 포함하는 메모리(755)를 포함할 수 있다. 상기 전자 장치(750)는, 통신 회로(communication circuit)(753)를 포함할 수 있다. 상기 전자 장치(750)는, 프로세싱 회로를 포함하는 적어도 하나의 프로세서(751)를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 연합 학습(federated learning)을 위하여 생성된 기준 모델(reference model)을 제1 외부 전자 장치(101), 제2 외부 전자 장치(710), 및 제3 외부 전자 장치(720) 각각에게 전송하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 기준 모델로부터 생성된 서비스를 위한 제1 모델을 상기 제1 외부 전자 장치(101)로부터 획득하고 상기 기준 모델로부터 생성된 상기 서비스를 위한 제2 모델을 상기 제2 외부 전자 장치(710)로부터, 및 상기 기준 모델로부터 생성된 상기 서비스를 위한 제3 모델을 상기 제3 외부 전자 장치(720)로부터, 상기 통신 회로(753)를 통해, 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성하도록, 야기할 수 있다.As described above, the electronic device (750) may include a memory (755) storing instructions and including one or more storage media. The electronic device (750) may include a communication circuit (753). The electronic device (750) may include at least one processor (751) including a processing circuit. The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to transmit a reference model generated for federated learning to each of the first external electronic device (101), the second external electronic device (710), and the third external electronic device (720). The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain, via the communication circuit (753), a first model for a service generated from the reference model from the first external electronic device (101), a second model for the service generated from the reference model from the second external electronic device (710), and a third model for the service generated from the reference model from the third external electronic device (720). The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to recognize a first difference between the first model and the second model and a second difference between the first model and the third model. The above instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to generate a fourth model for the service from the first model using the second model based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 기준 모델로부터 생성된 다른(another) 서비스를 위한 제5 모델을 제4 외부 전자 장치(730)로부터, 상기 통신 회로(753)를 통해, 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 전자 장치(750)와 연결된 장치 정보(device information)를 이용하여, 상기 제2 모델 및 상기 제3 모델을, 상기 제1 모델에 대하여 상기 서비스와 관련된 모델로 결정하도록, 야기할 수 있다. In one embodiment, the instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain, from a fourth external electronic device (730) via the communication circuit (753), a fifth model for another service generated from the reference model. The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to determine, using device information connected to the electronic device (750), the second model and the third model as models associated with the service with respect to the first model.

일 실시예에 따르면, 상기 장치 정보는 상기 제1 외부 전자 장치(101)에 의해 제공될 수 있는 제1 서비스 정보 및 상기 제1 외부 전자 장치(101)의 MAC(media access control) 주소(address), 상기 제2 외부 전자 장치(710)에 의해 제공될 수 있는 제2 서비스 정보 및 상기 제2 외부 전자 장치(710)의 MAC 주소, 상기 제3 외부 전자 장치(720)에 의해 제공될 수 있는 제3 서비스 정보 및 상기 제3 외부 전자 장치(720)의 MAC 주소, 및 상기 제4 외부 전자 장치(730)에 의해 제공될 수 있는 제4 서비스 정보 및 상기 제4 외부 전자 장치(730)의 MAC 주소를 포함할 수 있다.According to one embodiment, the device information may include first service information that can be provided by the first external electronic device (101) and a MAC (media access control) address of the first external electronic device (101), second service information that can be provided by the second external electronic device (710) and a MAC address of the second external electronic device (710), third service information that can be provided by the third external electronic device (720) and a MAC address of the third external electronic device (720), and fourth service information that can be provided by the fourth external electronic device (730) and a MAC address of the fourth external electronic device (730).

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 제1 모델의 제1 벡터 값들 및 상기 제2 모델의 제2 벡터 값들을 인식하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 제1 벡터 값들과 상기 제2 벡터 값들의 사이의 거리(distance) 값들을 계산하도록, 야기할 수 있다. 상기 거리 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 차이에 기반하여 계산될 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 거리 값들의 평균값인 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 미만인지 여부를 결정하도록, 야기할 수 있다.In one embodiment, the instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to recognize first vector values of the first model and second vector values of the second model. The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to calculate distance values between the first vector values and the second vector values. Each of the distance values may be calculated based on a difference between each of the first vector values and each of the second vector values. The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 제1 모델에 기반하여, 기준 데이터(reference data)로부터 생성된 제1 기준 벡터 값들을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 제2 모델에 기반하여, 상기 기준 데이터로부터 생성된 제2 기준 벡터 값들을 획득하도록, 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 제1 기준 벡터 값들과 상기 제2 기준 벡터 값들의 사이의 거리(distance) 값들을 계산하도록, 야기할 수 있다. 상기 거리 값들 각각은 상기 제1 기준 벡터 값들 각각과 상기 제2 기준 벡터 값들 각각의 차이에 기반하여 계산될 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 거리 값들의 평균값인 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 미만인지 여부를 결정하도록, 야기할 수 있다.In one embodiment, the instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain first reference vector values generated from reference data based on the first model. The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to obtain second reference vector values generated from the reference data based on the second model. The instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to calculate distance values between the first reference vector values and the second reference vector values. Each of the distance values may be calculated based on a difference between each of the first reference vector values and each of the second reference vector values. The above instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to determine whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value.

일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 제4 모델을, 상기 제1 외부 전자 장치(101)에게, 상기 통신 회로(753)를 통해, 전송하도록, 야기할 수 있다. 상기 제4 모델은, 상기 제1 모델의 제1 벡터 값들과 상기 제2 모델의 제2 벡터 값들 사이의 평균값인 제3 벡터 값들에 기반하여 구성될 수 있다. 상기 제3 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 평균값일 수 있다. According to one embodiment, the instructions, when individually or collectively executed by the at least one processor (751), may cause the electronic device (750) to transmit the fourth model to the first external electronic device (101) via the communication circuit (753). The fourth model may be configured based on third vector values that are an average between first vector values of the first model and second vector values of the second model. Each of the third vector values may be an average of each of the first vector values and each of the second vector values.

상술한 바와 같은, 전자 장치(electronic device)(101)에 의해 수행되는 방법에 있어서, 상기 방법은, 연합 학습(federated learning)을 위한 서버(server)(350)로부터, 기준 모델(reference model)을 획득하는 동작을 포함할 수 있다. 상기 방법은, 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하는 동작을 포함할 수 있다. 상기 방법은, 상기 서비스를 지시하는 제1 정보를 상기 서버(350)에게 전송하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 상기 서버(350)로부터 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치(310)로부터, 상기 외부 전자 장치(310)의 상기 서비스를 위한 제2 모델을 획득하는 동작을 포함할 수 있다. 상기 방법은, 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하는 동작을 포함할 수 있다. In a method performed by an electronic device (101) as described above, the method may include an operation of obtaining a reference model from a server (350) for federated learning. The method may include an operation of generating a first model for the service from the reference model by using input data of a user for using the service. The method may include an operation of transmitting first information indicating the service to the server (350). The method may include an operation of obtaining, in response to the first information, second information indicating an external electronic device (310) using the service from the server (350). The method may include an operation of obtaining, from the external electronic device (310) with which a connection is established based on the second information, a second model for the service of the external electronic device (310). The method may include an operation of generating a third model for the service using the first model and the second model, based on a difference between the first model and the second model being less than a reference value.

상술한 바와 같은, 비일시적 컴퓨터 판독가능 저장 매체는, 통신 회로(communication circuit)(303)를 포함하는 전자 장치(electronic device)(101)의 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 통신 회로(303)를 통해, 연합 학습(federated learning)을 위한 서버(server)(350)로부터, 기준 모델(reference model)을 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 서비스를 지시하는 제1 정보를 상기 서버(350)에게 전송하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 상기 서버(350)로부터 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치(310)로부터, 상기 외부 전자 장치(310)의 상기 서비스를 위한 제2 모델을 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다.The non-transitory computer-readable storage medium as described above can store one or more programs including instructions that, when individually or collectively executed by at least one processor (301) of an electronic device (101) including a communication circuit (303), cause the electronic device (101) to obtain a reference model from a server (350) for federated learning via the communication circuit (303). The non-transitory computer-readable storage medium can store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to generate a first model for the service from the reference model using user input data for use of the service. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the server (350) to transmit first information indicating the service. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the server (350) to acquire second information indicating an external electronic device (310) that uses the service in response to the first information. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the server (350) to acquire a second model for the service of the external electronic device (310) from the external electronic device (310) to which a connection is established based on the second information. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (301), cause the third model for the service to be generated using the first model and the second model based on a difference between the first model and the second model being less than a reference value.

상술한 바와 같은, 전자 장치(electronic device)(750)에 의해 수행되는 방법은, 상기 전자 장치(750)가, 연합 학습(federated learning)을 위하여 생성된 기준 모델(reference model)을 제1 외부 전자 장치(101), 제2 외부 전자 장치(710), 및 제3 외부 전자 장치(720) 각각에게 전송하는 동작을 포함할 수 잇다. 상기 방법은, 상기 기준 모델로부터 생성된 서비스를 위한 제1 모델을 상기 제1 외부 전자 장치(101)로부터 획득하고 상기 기준 모델로부터 생성된 상기 서비스를 위한 제2 모델을 상기 제2 외부 전자 장치(710)로부터, 및 상기 기준 모델로부터 생성된 상기 서비스를 위한 제3 모델을 상기 제3 외부 전자 장치(720)로부터, 상기 통신 회로(753)를 통해, 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식하는 동작을 포함할 수 있다. 상기 방법은, 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성하는 동작을 포함할 수 있다.The method performed by the electronic device (750) as described above may include an operation in which the electronic device (750) transmits a reference model generated for federated learning to each of the first external electronic device (101), the second external electronic device (710), and the third external electronic device (720). The method may include an operation in which the first model for a service generated from the reference model is acquired from the first external electronic device (101), a second model for the service generated from the reference model is acquired from the second external electronic device (710), and a third model for the service generated from the reference model is acquired from the third external electronic device (720) via the communication circuit (753). The method may include an operation in which the first difference between the first model and the second model and the second difference between the first model and the third model are recognized. The method may include an operation of generating a fourth model for the service from the first model using the second model, based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value.

상술한 바와 같은, 비일시적 컴퓨터 판독가능 저장 매체는, 통신 회로(communication circuit)(753)를 포함하는 전자 장치(electronic device)(750)의 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 연합 학습(federated learning)을 위하여 생성된 기준 모델(reference model)을 제1 외부 전자 장치(101), 제2 외부 전자 장치(710), 및 제3 외부 전자 장치(720) 각각에게 전송하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가, 상기 기준 모델로부터 생성된 서비스를 위한 제1 모델을 상기 제1 외부 전자 장치(101)로부터 획득하고 상기 기준 모델로부터 생성된 상기 서비스를 위한 제2 모델을 상기 제2 외부 전자 장치(710)로부터, 및 상기 기준 모델로부터 생성된 상기 서비스를 위한 제3 모델을 상기 제3 외부 전자 장치(720)로부터, 상기 통신 회로(753)를 통해, 획득하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장할 수 있다.The non-transitory computer-readable storage medium as described above can store one or more programs including instructions that, when individually or collectively executed by at least one processor (751) of an electronic device (750) including a communication circuit (753), cause the electronic device (750) to transmit a reference model generated for federated learning to each of a first external electronic device (101), a second external electronic device (710), and a third external electronic device (720). The non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (751), cause the electronic device (750) to obtain a first model for a service generated from the reference model from the first external electronic device (101), a second model for the service generated from the reference model from the second external electronic device (710), and a third model for the service generated from the reference model from the third external electronic device (720), via the communication circuit (753). The non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (751), cause the electronic device (750) to recognize a first difference between the first model and the second model and a second difference between the first model and the third model. The non-transitory computer-readable storage medium may store one or more programs including instructions that, when individually or collectively executed by the at least one processor (751), cause the fourth model for the service to be generated from the first model using the second model based on the first difference being less than the reference value and the second difference being greater than or equal to the reference value.

본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.The electronic devices according to various embodiments disclosed in this document may be devices of various forms. The electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliance devices. The electronic devices according to embodiments of this document are not limited to the above-described devices.

본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.It should be understood that the various embodiments of this document and the terminology used herein are not intended to limit the technical features described in this document to specific embodiments, but include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly dictates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first", "second", or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" used in various embodiments of this document may include a unit implemented in hardware, software or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be an integrally configured component or a minimum unit of the component or a portion thereof that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the called at least one instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.

일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded between a seller and a buyer as a commodity. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., a compact disc read only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a part of the computer program product may be at least temporarily stored or temporarily generated in a machine-readable storage medium, such as a memory of a manufacturer's server, a server of an application store, or an intermediary server.

다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (e.g., a module or a program) of the above-described components may include a single or multiple entities, and some of the multiple entities may be separately arranged in other components. According to various embodiments, one or more components or operations of the above-described components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, the multiple components (e.g., a module or a program) may be integrated into one component. In such a case, the integrated component may perform one or more functions of each of the multiple components identically or similarly to those performed by the corresponding component of the multiple components before the integration. According to various embodiments, the operations performed by the module, program, or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims (15)

전자 장치(101)(electronic device)에 있어서,In an electronic device (101), 인스트럭션들(instructions)을 저장하고, 하나 이상의 저장 매체들을 포함하는 메모리(305);A memory (305) storing instructions and including one or more storage media; 통신 회로(communication circuit)(303); 및a communication circuit (303); and 프로세싱 회로를 포함하는 적어도 하나의 프로세서(301)를 포함하고,At least one processor (301) comprising a processing circuit, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 통신 회로(303)를 통해, 연합 학습(federated learning)을 위한 서버(server)(350)로부터, 기준 모델(reference model)을 획득하고;Through the above communication circuit (303), a reference model is obtained from a server (350) for federated learning; 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하고; Using user input data for use of the service, a first model for the service is created from the reference model; 상기 서비스를 지시하는 제1 정보를 상기 서버(350)에게 전송하고;Transmitting first information instructing the above service to the server (350); 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 상기 서버(350)로부터 획득하고;In response to the first information, second information is obtained from the server (350) that instructs an external electronic device (310) to use the service; 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치(310)로부터, 상기 외부 전자 장치(310)의 상기 서비스를 위한 제2 모델을 획득하고; 및Obtaining a second model for the service of the external electronic device (310) from the external electronic device (310) with which a connection is established based on the second information; and 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하도록, 야기하는,Based on the difference between the first model and the second model which is less than a reference value, causing a third model for the service to be generated using the first model and the second model. 전자 장치(101).Electronic device (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 기준 모델에 기반하여, 상기 서비스를 이용하는 동안 수집된(collected) 상기 입력 데이터로부터 상기 서비스를 제공하는 출력 데이터를 생성하고; 및Based on the above reference model, generating output data for providing the service from the input data collected while using the service; and 상기 사용자의 입력을 획득함에 기반하여, 상기 입력 데이터를 이용하여 상기 기준 모델로부터 상기 제1 모델을 생성하도록, 야기하는,Based on obtaining the input of the user, causing the first model to be generated from the reference model using the input data. 전자 장치(101).Electronic device (101). 청구항 1에 있어서,In claim 1, 상기 기준 모델은, 상기 서버(350)에 의해 학습되고, 및The above reference model is learned by the server (350), and 상기 제2 모델은, 상기 기준 모델로부터 상기 외부 전자 장치(310)에 의해 상기 서비스에 대하여 생성된, The second model is generated for the service by the external electronic device (310) from the reference model. 전자 장치(101).Electronic device (101). 청구항 1에 있어서,In claim 1, 상기 제1 정보는, 상기 서비스의 이름(name) 또는 상기 서비스를 제공하는 어플리케이션의 이름 중 적어도 하나를 포함하고, 및The first information includes at least one of the name of the service or the name of the application providing the service, and 상기 제2 정보는 상기 외부 전자 장치(310)의 MAC(media access control) 주소(address) 또는 상기 연결을 수립하기 위한 정보 중 적어도 하나를 포함하는,The second information includes at least one of the MAC (media access control) address of the external electronic device (310) or information for establishing the connection. 전자 장치(101).Electronic device (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 외부 전자 장치(310)에게, 상기 기준 모델로부터 상기 서비스에 대하여 학습된 상기 외부 전자 장치(310)의 모델을 요청하는 신호를 전송하고; Transmitting a signal to the external electronic device (310) requesting a model of the external electronic device (310) learned for the service from the reference model; 상기 신호에 응답하여, 상기 외부 전자 장치(310)로부터, 상기 서비스를 위한 상기 제2 모델을 획득하고; 및In response to the signal, obtaining the second model for the service from the external electronic device (310); and 상기 제1 모델과 상기 제2 모델 사이의 상기 차이를 계산하도록, 야기하는,causing the difference between the first model and the second model to be calculated, 전자 장치(101).Electronic device (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 다른(another) 외부 전자 장치(320)를 더(further) 지시하는 상기 제2 정보를 상기 서버(350)로부터 획득하고;In response to the first information, the second information is obtained from the server (350) to further instruct another external electronic device (320) to use the service; 상기 제2 정보에 기반하여 연결이 수립된 상기 다른 외부 전자 장치(320)에게, 상기 기준 모델로부터 상기 서비스에 대하여 학습된 상기 다른 외부 전자 장치(320)의 모델을 요청하는 신호를 전송하고, 상기 신호는 상기 생성된 제1 모델을 포함함; 및Transmitting a signal to the other external electronic device (320) with which a connection is established based on the second information, requesting a model of the other external electronic device (320) learned for the service from the reference model, the signal including the generated first model; and 상기 다른 외부 전자 장치(320)로부터, 상기 다른 외부 전자 장치(320)의 상기 서비스를 위한 제4 모델을 획득하도록, 야기하고,To cause the other external electronic device (320) to obtain a fourth model for the service of the other external electronic device (320), 상기 다른 외부 전자 장치(320)에 의해 인식되는 상기 제1 모델과 상기 제4 모델 사이의 차이는 상기 기준 값 미만이고, 및The difference between the first model and the fourth model recognized by the other external electronic device (320) is less than the reference value, and 상기 제3 모델은, 상기 제1 모델로부터, 상기 제4 모델을 더(further) 이용하여 생성되는,The third model is generated by further utilizing the fourth model from the first model. 전자 장치(101). Electronic device (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 제1 모델의 제1 벡터 값들 및 상기 제2 모델의 제2 벡터 값들을 인식하고;Recognize first vector values of the first model and second vector values of the second model; 상기 제1 벡터 값들과 상기 제2 벡터 값들의 사이의 거리(distance) 값들을 계산하고, 상기 거리 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 차이에 기반하여 계산됨; 및Calculating distance values between the first vector values and the second vector values, each of the distance values being calculated based on a difference between each of the first vector values and each of the second vector values; and 상기 거리 값들의 평균값인 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 미만인지 여부를 결정하도록, 야기하는,causing a determination as to whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value; 전자 장치(101).Electronic device (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 제1 모델에 기반하여, 기준 데이터(reference data)로부터 생성된 제1 기준 벡터 값들을 획득하고;Based on the first model, first reference vector values generated from reference data are obtained; 상기 제2 모델에 기반하여, 상기 기준 데이터로부터 생성된 제2 기준 벡터 값들을 획득하고;Based on the second model, second reference vector values generated from the reference data are obtained; 상기 제1 기준 벡터 값들과 상기 제2 기준 벡터 값들의 사이의 거리(distance) 값들을 계산하고, 상기 거리 값들 각각은 상기 제1 기준 벡터 값들 각각과 상기 제2 기준 벡터 값들 각각의 차이에 기반하여 계산됨; 및Calculating distance values between the first reference vector values and the second reference vector values, each of the distance values being calculated based on a difference between each of the first reference vector values and each of the second reference vector values; and 상기 거리 값들의 평균값인 상기 제1 모델과 상기 제2 모델 사이의 상기 차이가 상기 기준 값 미만인지 여부를 결정하도록, 야기하는,causing a determination as to whether the difference between the first model and the second model, which is an average of the distance values, is less than the reference value; 전자 장치(101).Electronic devices (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 서비스를 위한 상기 제1 모델을 생성하는 동안, 상기 입력 데이터를 이용하여 상기 서버(350)로부터 획득된 다른(another) 기준 모델로부터 다른(another) 서비스를 위한 제5 모델을 생성하고; 및While generating the first model for the above service, generating a fifth model for another service from another reference model obtained from the server (350) using the input data; and 상기 서비스를 위한 상기 제3 모델을 생성하는 동안, 상기 외부 전자 장치(310)로부터 상기 제2 모델과 함께 획득된 상기 다른 서비스를 위한 제6 모델을 이용하여, 상기 제5 모델로부터 상기 다른 서비스를 위한 제7 모델을 생성하도록, 야기하고,While generating the third model for the above service, cause the seventh model for the other service to be generated from the fifth model by using the sixth model for the other service obtained together with the second model from the external electronic device (310). 상기 다른 서비스는, 상기 서비스와 관련되는,The above other services, related to the above services, 전자 장치(101).Electronic devices (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 제3 모델을 서버(350)에게 전송하도록, 야기하고, Causing the above third model to be transmitted to the server (350), 상기 제3 모델은, 상기 제1 모델의 제1 벡터 값들과 상기 제2 모델의 제2 벡터 값들 사이의 평균값인 제3 벡터 값들에 기반하여 구성되고, 및The third model is configured based on third vector values which are an average value between the first vector values of the first model and the second vector values of the second model, and 상기 제3 벡터 값들 각각은, 상기 제1 벡터 값들 각각과 상기 제2 벡터 값들 각각의 평균값인,Each of the above third vector values is an average of each of the above first vector values and each of the above second vector values. 전자 장치(101).Electronic devices (101). 청구항 1에 있어서,In claim 1, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:The above instructions, when individually or collectively executed by the at least one processor (301), cause the electronic device (101) to: 상기 서비스의 이용을 위한 상기 사용자의 다른 입력 데이터를 수집하고; 및Collect other input data of the user for use of the above service; and 상기 제3 모델에 기반하여, 상기 서비스를 이용하는 동안 수집된 상기 다른 입력 데이터로부터 상기 서비스를 제공하는 출력 데이터를 생성하도록, 야기하는,Based on the third model, causing the output data for providing the service to be generated from the other input data collected while using the service. 전자 장치(101).Electronic devices (101). 청구항 11에 있어서,In claim 11, 상기 서비스가 음성 인식 서비스인 경우, 상기 다른 입력 데이터는 상기 사용자의 음성 정보(speech information)을 포함하고, 상기 출력 데이터는, 상기 음성 정보를 나타내는 텍스트(text)를 포함하는,If the above service is a voice recognition service, the other input data includes the user's speech information, and the output data includes text representing the speech information. 전자 장치(101).Electronic devices (101). 전자 장치(electronic device)(750)에 있어서,In an electronic device (750), 인스트럭션들(instructions)을 저장하고, 하나 이상의 저장 매체들을 포함하는 메모리(755);A memory (755) storing instructions and including one or more storage media; 통신 회로(communication circuit)(753); 및a communication circuit (753); and 프로세싱 회로를 포함하는 적어도 하나의 프로세서(751)를 포함하고,At least one processor (751) comprising a processing circuit, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서(751)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(750)가:The above instructions, when individually or collectively executed by the at least one processor (751), cause the electronic device (750) to: 연합 학습(federated learning)을 위하여 생성된 기준 모델(reference model)을 제1 외부 전자 장치(101), 제2 외부 전자 장치(710), 및 제3 외부 전자 장치(720) 각각에게 전송하고;A reference model generated for federated learning is transmitted to each of the first external electronic device (101), the second external electronic device (710), and the third external electronic device (720); 상기 기준 모델로부터 생성된 서비스를 위한 제1 모델을 상기 제1 외부 전자 장치(101)로부터 획득하고, 상기 기준 모델로부터 생성된 상기 서비스를 위한 제2 모델을 상기 제2 외부 전자 장치(710)로부터, 및 상기 기준 모델로부터 생성된 상기 서비스를 위한 제3 모델을 상기 제3 외부 전자 장치(720)로부터, 상기 통신 회로(753)를 통해, 획득하고; Obtaining a first model for a service generated from the above-mentioned reference model from the first external electronic device (101), obtaining a second model for the service generated from the above-mentioned reference model from the second external electronic device (710), and obtaining a third model for the service generated from the above-mentioned reference model from the third external electronic device (720) through the communication circuit (753); 상기 제1 모델과 상기 제2 모델 사이의 제1 차이 및 상기 제1 모델과 상기 제3 모델 사이의 제2 차이를 인식하고; 및Recognizing a first difference between the first model and the second model and a second difference between the first model and the third model; and 기준 값 미만인 상기 제1 차이 및 상기 기준 값 이상인 상기 제2 차이에 기반하여, 상기 제2 모델을 이용하여 상기 제1 모델로부터 상기 서비스를 위한 제4 모델을 생성하도록, 야기하는,Based on the first difference being less than the reference value and the second difference being greater than the reference value, causing a fourth model for the service to be generated from the first model using the second model. 전자 장치(750).Electronic devices (750). 전자 장치(electronic device)(101)에 의해 수행되는 방법에 있어서, 상기 방법은:A method performed by an electronic device (101), the method comprising: 연합 학습(federated learning)을 위한 서버(server)(350)로부터, 기준 모델(reference model)을 획득하는 동작;An operation of obtaining a reference model from a server (350) for federated learning; 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하는 동작; An operation of generating a first model for the service from the reference model using user input data for using the service; 상기 서비스를 지시하는 제1 정보를 상기 서버(350)에게 전송하는 동작;An action of transmitting first information instructing the above service to the server (350); 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 상기 서버(350)로부터 획득하는 동작;In response to the first information, an operation of obtaining second information from the server (350) that instructs an external electronic device (310) to use the service; 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치(310)로부터, 상기 외부 전자 장치(310)의 상기 서비스를 위한 제2 모델을 획득하는 동작; 및An operation of obtaining a second model for the service of the external electronic device (310) from the external electronic device (310) to which a connection is established based on the second information; and 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하는 동작을 포함하는,An operation of generating a third model for the service using the first model and the second model, based on a difference between the first model and the second model that is less than a reference value, 방법.method. 비일시적 컴퓨터 판독가능 저장 매체는, 통신 회로(communication circuit)(303)를 포함하는 전자 장치(electronic device)(101)의 적어도 하나의 프로세서(301)에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 전자 장치(101)가:A non-transitory computer-readable storage medium, when individually or collectively executed by at least one processor (301) of an electronic device (101) including a communication circuit (303), causes the electronic device (101) to: 상기 통신 회로(303)를 통해, 연합 학습(federated learning)을 위한 서버(server)(350)로부터, 기준 모델(reference model)을 획득하고;Through the above communication circuit (303), a reference model is obtained from a server (350) for federated learning; 서비스(service)의 이용을 위한 사용자(user)의 입력 데이터를 이용하여, 상기 기준 모델로부터 상기 서비스를 위한 제1 모델을 생성하고; Using user input data for use of the service, a first model for the service is created from the reference model; 상기 서비스를 지시하는 제1 정보를 상기 서버(350)에게 전송하고;Transmitting first information instructing the above service to the server (350); 상기 제1 정보에 응답하여, 상기 서비스를 이용하는 외부 전자 장치(310)를 지시하는 제2 정보를 상기 서버(350)로부터 획득하고;In response to the first information, second information is obtained from the server (350) that instructs an external electronic device (310) to use the service; 상기 제2 정보에 기반하여 연결이 수립된 상기 외부 전자 장치(310)로부터, 상기 외부 전자 장치(310)의 상기 서비스를 위한 제2 모델을 획득하고; 및Obtaining a second model for the service of the external electronic device (310) from the external electronic device (310) with which a connection is established based on the second information; and 기준 값 미만인 상기 제1 모델과 상기 제2 모델 사이의 차이에 기반하여, 상기 제1 모델 및 상기 제2 모델을 이용하여 상기 서비스를 위한 제3 모델을 생성하도록, 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램을 저장하는,storing one or more programs including instructions causing a third model for the service to be generated using the first model and the second model, based on a difference between the first model and the second model that is less than a reference value; 비일시적 컴퓨터 판독가능 저장 매체.A non-transitory computer-readable storage medium.
PCT/KR2024/012619 2023-10-20 2024-08-23 Device and method for generating personalized model, and storage medium Pending WO2025084597A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20230140962 2023-10-20
KR10-2023-0140962 2023-10-20
KR1020230153846A KR20250057578A (en) 2023-10-20 2023-11-08 Device, method, and storage medium for generating personalized model
KR10-2023-0153846 2023-11-08

Publications (1)

Publication Number Publication Date
WO2025084597A1 true WO2025084597A1 (en) 2025-04-24

Family

ID=95449056

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2024/012619 Pending WO2025084597A1 (en) 2023-10-20 2024-08-23 Device and method for generating personalized model, and storage medium

Country Status (1)

Country Link
WO (1) WO2025084597A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190032433A (en) * 2016-07-18 2019-03-27 난토믹스, 엘엘씨 Distributed machine learning systems, apparatus, and methods
KR20220131798A (en) * 2021-03-22 2022-09-29 한국과학기술원 Crowd deep learning method of medical artificial intelligence and its system
KR102501496B1 (en) * 2020-06-11 2023-02-20 라인플러스 주식회사 Method, system, and computer program for providing multiple models of federated learning using personalization
KR20230126908A (en) * 2022-02-24 2023-08-31 명지대학교 산학협력단 Efficient distributed clustering method and system for large-scale federated learning
KR20230144834A (en) * 2022-04-08 2023-10-17 인하대학교 산학협력단 Method and System for Improving Training Stability of Federated Learning by Dataset Condensation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190032433A (en) * 2016-07-18 2019-03-27 난토믹스, 엘엘씨 Distributed machine learning systems, apparatus, and methods
KR102501496B1 (en) * 2020-06-11 2023-02-20 라인플러스 주식회사 Method, system, and computer program for providing multiple models of federated learning using personalization
KR20220131798A (en) * 2021-03-22 2022-09-29 한국과학기술원 Crowd deep learning method of medical artificial intelligence and its system
KR20230126908A (en) * 2022-02-24 2023-08-31 명지대학교 산학협력단 Efficient distributed clustering method and system for large-scale federated learning
KR20230144834A (en) * 2022-04-08 2023-10-17 인하대학교 산학협력단 Method and System for Improving Training Stability of Federated Learning by Dataset Condensation

Similar Documents

Publication Publication Date Title
WO2020032443A1 (en) Electronic device supporting personalized device connection and method thereof
WO2022010157A1 (en) Method for providing screen in artificial intelligence virtual secretary service, and user terminal device and server for supporting same
WO2022211590A1 (en) Electronic device for processing user utterance and controlling method thereof
WO2025084597A1 (en) Device and method for generating personalized model, and storage medium
WO2023158076A1 (en) Electronic device and utterance processing method thereof
WO2023048379A1 (en) Server and electronic device for processing user utterance, and operation method thereof
WO2025095329A1 (en) Device, method, and storage medium for managing data for model in federated learning
WO2025005554A1 (en) Method of obtaining user information and electronic device performing method
WO2025155000A1 (en) Electronic device and category-based message display method using same
WO2024258185A1 (en) Electronic device and method for inserting data into execution screen of application, and recording medium
WO2024215112A1 (en) Computer-readable storage medium, method, and electronic device for inferring software application to be executed using neural network
WO2025143508A1 (en) Electronic device and method for changing color temperature of screen, and non-transitory computer-readable storage medium
WO2025058315A1 (en) Screen capture method and electronic device therefor
WO2025249984A1 (en) Electronic device, operating method thereof, and storage medium
WO2025127383A1 (en) Electronic device for executing function corresponding to command by using caching and method thereof
WO2025023513A1 (en) Electronic device, method, and non-transitory computer-readable storage medium for changing layout of screen by photographing external electronic device
WO2025154924A1 (en) Electronic device for transforming handwriting input, operating method thereof, and recording medium therefor
WO2025089912A1 (en) Electronic device and method for clustering data in electronic device
WO2022177165A1 (en) Electronic device and method for analyzing speech recognition result
WO2024172343A1 (en) Electronic device for providing location information and operating method thereof
WO2025249824A1 (en) Electronic device for detecting input with electronic pen and operating method thereof
WO2025080076A1 (en) Electronic device and method for processing user utterance
WO2025100700A1 (en) Electronic device comprising camera, and operating method thereof
WO2025150687A1 (en) Electronic device, method, and non-transitory computer-readable recording medium for managing user profile
WO2025053649A1 (en) Capability-based connection control method and electronic device therefor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24879937

Country of ref document: EP

Kind code of ref document: A1